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.

email.postmark

Postmark integration for transactional email delivery.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: platform.messaging
  • Tags: email, transactional
  • File: packages/libs/contracts-integrations/src/integrations/providers/postmark.ts
  • field.key.label
    email.postmark
    field.version.label
    1.0.0
    field.type.label
    integration (integration)
    field.title.label
    email.postmark
    field.description.label

    Postmark integration for transactional email delivery.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: platform.messaging
  • Tags: email, transactional
  • File: packages/libs/contracts-integrations/src/integrations/providers/postmark.ts
  • field.tags.label
    email,transactional
    field.owners.label
    platform.messaging
    field.stability.label

    Postmark integration for transactional email delivery.

    Source Definition

    export const postmarkIntegrationSpec = defineIntegration({
    	meta: {
    		key: 'email.postmark',
    		version: '1.0.0',
    		category: 'email',
    		title: 'Postmark Transactional Email',
    		description: 'Postmark integration for transactional email delivery.',
    		domain: 'communications',
    		owners: ['platform.messaging'],
    		tags: ['email', 'transactional'],
    		stability: StabilityEnum.Stable,
    	},
    	supportedModes: ['managed', 'byok'],
    	transports: [
    		{ type: 'rest', baseUrl: 'https://api.postmarkapp.com' },
    		{
    			type: 'webhook',
    			inbound: {
    				signatureHeader: 'x-postmark-signature',
    				signingAlgorithm: 'hmac-sha256',
    			},
    		},
    	],
    	preferredTransport: 'rest',
    	supportedAuthMethods: [
    		{ type: 'header', headerName: 'X-Postmark-Server-Token' },
    	],
    	capabilities: {
    		provides: [{ key: 'email.transactional', version: '1.0.0' }],
    		requires: [
    			{
    				key: 'platform.webhooks',
    				optional: true,
    				reason: 'Optional for inbound bounce handling',
    			},
    		],
    	},
    	configSchema: {
    		schema: {
    			type: 'object',
    			properties: {
    				messageStream: {
    					type: 'string',
    					description:
    						'Optional message stream identifier (e.g., transactional).',
    				},
    				fromEmail: {
    					type: 'string',
    					description: 'Default From address used for outbound messages.',
    				},
    			},
    		},
    		example: {
    			messageStream: 'outbound',
    			fromEmail: 'notifications@example.com',
    		},
    	},
    	secretSchema: {
    		schema: {
    			type: 'object',
    			required: ['serverToken'],
    			properties: {
    				serverToken: {
    					type: 'string',
    					description: 'Server token for the Postmark account.',
    				},
    			},
    		},
    		example: {
    			serverToken: 'server-***',
    		},
    	},
    	healthCheck: {
    		method: 'ping',
    		timeoutMs: 3000,
    	},
    	docsUrl: 'https://postmarkapp.com/developer',
    	constraints: {
    		rateLimit: {
    			rpm: 500,
    		},
    	},
    	byokSetup: {
    		setupInstructions:
    			'Create a Postmark server token with outbound send permissions and configure allowed from addresses.',
    		keyRotationSupported: true,
    		quotaTrackingSupported: false,
    	},
    });