OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

project-management.notion

Notion integration for creating shared project summaries and task entries.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: @platform.integrations
  • Tags: project-management, notion
  • field.key.label
    project-management.notion
    field.version.label
    1.0.0
    field.type.label
    integration (integration)
    field.title.label
    project-management.notion
    field.description.label

    Notion integration for creating shared project summaries and task entries.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: @platform.integrations
  • Tags: project-management, notion
  • field.tags.label
    project-management,notion
    field.owners.label
    @platform.integrations
    field.stability.label

    Notion integration for creating shared project summaries and task entries.

    Source Definition

    export const notionIntegrationSpec = defineIntegration({
    	meta: {
    		key: 'project-management.notion',
    		version: '1.0.0',
    		category: 'project-management',
    		title: 'Notion',
    		description:
    			'Notion integration for creating shared project summaries and task entries.',
    		domain: 'productivity',
    		owners: ['@platform.integrations'],
    		tags: ['project-management', 'notion'],
    		stability: StabilityEnum.Beta,
    	},
    	supportedModes: ['managed', 'byok'],
    	transports: [
    		{
    			type: 'rest',
    			baseUrl: 'https://api.notion.com',
    			apiVersionHeader: 'Notion-Version',
    		},
    	],
    	preferredTransport: 'rest',
    	supportedAuthMethods: [
    		{ type: 'bearer' },
    		{
    			type: 'oauth2',
    			grantType: 'authorization_code',
    			authorizationUrl: 'https://api.notion.com/v1/oauth/authorize',
    			tokenUrl: 'https://api.notion.com/v1/oauth/token',
    			scopes: [],
    		},
    	],
    	versionPolicy: {
    		currentVersion: '2022-06-28',
    		supportedVersions: [{ version: '2022-06-28', status: 'stable' }],
    		versionHeader: 'Notion-Version',
    	},
    	capabilities: {
    		provides: [{ key: 'project-management.work-items', version: '1.0.0' }],
    	},
    	configSchema: {
    		schema: {
    			type: 'object',
    			properties: {
    				databaseId: {
    					type: 'string',
    					description: 'Optional Notion database ID to store tasks.',
    				},
    				summaryParentPageId: {
    					type: 'string',
    					description: 'Optional parent page ID for summary pages.',
    				},
    				titleProperty: {
    					type: 'string',
    					description: 'Database title property name (defaults to "Name").',
    				},
    				statusProperty: {
    					type: 'string',
    					description: 'Database status/select property name.',
    				},
    				priorityProperty: {
    					type: 'string',
    					description: 'Database priority/select property name.',
    				},
    				tagsProperty: {
    					type: 'string',
    					description: 'Database multi-select tags property name.',
    				},
    				dueDateProperty: {
    					type: 'string',
    					description: 'Database date property name for due dates.',
    				},
    				descriptionProperty: {
    					type: 'string',
    					description: 'Database rich-text property for descriptions.',
    				},
    			},
    		},
    		example: {
    			databaseId: 'xxxxxxxxxxxxxxxx',
    			summaryParentPageId: 'yyyyyyyyyyyyyyyy',
    			titleProperty: 'Name',
    			statusProperty: 'Status',
    		},
    	},
    	secretSchema: {
    		schema: {
    			type: 'object',
    			required: ['apiKey'],
    			properties: {
    				apiKey: {
    					type: 'string',
    					description: 'Notion integration secret token.',
    				},
    			},
    		},
    		example: {
    			apiKey: 'secret_notion_token',
    		},
    	},
    	healthCheck: {
    		method: 'custom',
    		timeoutMs: 4000,
    	},
    	docsUrl: 'https://developers.notion.com',
    	constraints: {},
    	byokSetup: {
    		setupInstructions:
    			'Create a Notion internal integration, share the target database/page with it, and store the secret token.',
    		keyRotationSupported: false,
    		quotaTrackingSupported: false,
    	},
    });