Package Exports
- @contractspec/lib.contracts-integrations
- @contractspec/lib.contracts-integrations/integrations
- @contractspec/lib.contracts-integrations/integrations/auth
- @contractspec/lib.contracts-integrations/integrations/auth-helpers
- @contractspec/lib.contracts-integrations/integrations/binding
- @contractspec/lib.contracts-integrations/integrations/byok
- @contractspec/lib.contracts-integrations/integrations/connection
- @contractspec/lib.contracts-integrations/integrations/docs/integrations.docblock
- @contractspec/lib.contracts-integrations/integrations/health
- @contractspec/lib.contracts-integrations/integrations/health/contracts
- @contractspec/lib.contracts-integrations/integrations/health/contracts/activities
- @contractspec/lib.contracts-integrations/integrations/health/contracts/biometrics
- @contractspec/lib.contracts-integrations/integrations/health/contracts/index
- @contractspec/lib.contracts-integrations/integrations/health/contracts/nutrition
- @contractspec/lib.contracts-integrations/integrations/health/contracts/sleep
- @contractspec/lib.contracts-integrations/integrations/health/contracts/webhooks
- @contractspec/lib.contracts-integrations/integrations/health/contracts/workouts
- @contractspec/lib.contracts-integrations/integrations/health/guards
- @contractspec/lib.contracts-integrations/integrations/health/health.capability
- @contractspec/lib.contracts-integrations/integrations/health/health.feature
- @contractspec/lib.contracts-integrations/integrations/health/models
- @contractspec/lib.contracts-integrations/integrations/health/telemetry
- @contractspec/lib.contracts-integrations/integrations/index
- @contractspec/lib.contracts-integrations/integrations/integrations.capability
- @contractspec/lib.contracts-integrations/integrations/integrations.feature
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/index
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/meetings
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/transcripts
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/webhooks
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/meeting-recorder.capability
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/meeting-recorder.feature
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/models
- @contractspec/lib.contracts-integrations/integrations/meeting-recorder/telemetry
- @contractspec/lib.contracts-integrations/integrations/openbanking/contracts
- @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/accounts
- @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/balances
- @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/index
- @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/transactions
- @contractspec/lib.contracts-integrations/integrations/openbanking/guards
- @contractspec/lib.contracts-integrations/integrations/openbanking/models
- @contractspec/lib.contracts-integrations/integrations/openbanking/openbanking.capability
- @contractspec/lib.contracts-integrations/integrations/openbanking/openbanking.feature
- @contractspec/lib.contracts-integrations/integrations/openbanking/telemetry
- @contractspec/lib.contracts-integrations/integrations/operations
- @contractspec/lib.contracts-integrations/integrations/providers
- @contractspec/lib.contracts-integrations/integrations/providers/analytics
- @contractspec/lib.contracts-integrations/integrations/providers/analytics-reader
- @contractspec/lib.contracts-integrations/integrations/providers/analytics-writer
- @contractspec/lib.contracts-integrations/integrations/providers/apple-health
- @contractspec/lib.contracts-integrations/integrations/providers/calendar
- @contractspec/lib.contracts-integrations/integrations/providers/composio
- @contractspec/lib.contracts-integrations/integrations/providers/database
- @contractspec/lib.contracts-integrations/integrations/providers/deepgram
- @contractspec/lib.contracts-integrations/integrations/providers/eightsleep
- @contractspec/lib.contracts-integrations/integrations/providers/elevenlabs
- @contractspec/lib.contracts-integrations/integrations/providers/email
- @contractspec/lib.contracts-integrations/integrations/providers/embedding
- @contractspec/lib.contracts-integrations/integrations/providers/fal
- @contractspec/lib.contracts-integrations/integrations/providers/fal-image
- @contractspec/lib.contracts-integrations/integrations/providers/fathom
- @contractspec/lib.contracts-integrations/integrations/providers/fireflies
- @contractspec/lib.contracts-integrations/integrations/providers/fitbit
- @contractspec/lib.contracts-integrations/integrations/providers/garmin
- @contractspec/lib.contracts-integrations/integrations/providers/gcs-storage
- @contractspec/lib.contracts-integrations/integrations/providers/gmail
- @contractspec/lib.contracts-integrations/integrations/providers/google-calendar
- @contractspec/lib.contracts-integrations/integrations/providers/gradium
- @contractspec/lib.contracts-integrations/integrations/providers/granola
- @contractspec/lib.contracts-integrations/integrations/providers/health
- @contractspec/lib.contracts-integrations/integrations/providers/health-provider-shared
- @contractspec/lib.contracts-integrations/integrations/providers/image
- @contractspec/lib.contracts-integrations/integrations/providers/index
- @contractspec/lib.contracts-integrations/integrations/providers/jira
- @contractspec/lib.contracts-integrations/integrations/providers/linear
- @contractspec/lib.contracts-integrations/integrations/providers/llm
- @contractspec/lib.contracts-integrations/integrations/providers/meeting-recorder
- @contractspec/lib.contracts-integrations/integrations/providers/messaging
- @contractspec/lib.contracts-integrations/integrations/providers/messaging-github
- @contractspec/lib.contracts-integrations/integrations/providers/messaging-slack
- @contractspec/lib.contracts-integrations/integrations/providers/messaging-whatsapp-meta
- @contractspec/lib.contracts-integrations/integrations/providers/messaging-whatsapp-twilio
- @contractspec/lib.contracts-integrations/integrations/providers/mistral
- @contractspec/lib.contracts-integrations/integrations/providers/mistral-conversational
- @contractspec/lib.contracts-integrations/integrations/providers/mistral-stt
- @contractspec/lib.contracts-integrations/integrations/providers/myfitnesspal
- @contractspec/lib.contracts-integrations/integrations/providers/notion
- @contractspec/lib.contracts-integrations/integrations/providers/openai-image
- @contractspec/lib.contracts-integrations/integrations/providers/openai-realtime
- @contractspec/lib.contracts-integrations/integrations/providers/openbanking
- @contractspec/lib.contracts-integrations/integrations/providers/openwearables
- @contractspec/lib.contracts-integrations/integrations/providers/oura
- @contractspec/lib.contracts-integrations/integrations/providers/payments
- @contractspec/lib.contracts-integrations/integrations/providers/peloton
- @contractspec/lib.contracts-integrations/integrations/providers/posthog
- @contractspec/lib.contracts-integrations/integrations/providers/posthog-llm-telemetry
- @contractspec/lib.contracts-integrations/integrations/providers/postmark
- @contractspec/lib.contracts-integrations/integrations/providers/powens
- @contractspec/lib.contracts-integrations/integrations/providers/project-management
- @contractspec/lib.contracts-integrations/integrations/providers/qdrant
- @contractspec/lib.contracts-integrations/integrations/providers/registry
- @contractspec/lib.contracts-integrations/integrations/providers/sms
- @contractspec/lib.contracts-integrations/integrations/providers/storage
- @contractspec/lib.contracts-integrations/integrations/providers/strava
- @contractspec/lib.contracts-integrations/integrations/providers/stripe
- @contractspec/lib.contracts-integrations/integrations/providers/supabase-postgres
- @contractspec/lib.contracts-integrations/integrations/providers/supabase-vector
- @contractspec/lib.contracts-integrations/integrations/providers/tldv
- @contractspec/lib.contracts-integrations/integrations/providers/twilio-sms
- @contractspec/lib.contracts-integrations/integrations/providers/vector-store
- @contractspec/lib.contracts-integrations/integrations/providers/video
- @contractspec/lib.contracts-integrations/integrations/providers/voice
- @contractspec/lib.contracts-integrations/integrations/providers/voice-video-sync
- @contractspec/lib.contracts-integrations/integrations/providers/whoop
- @contractspec/lib.contracts-integrations/integrations/runtime
- @contractspec/lib.contracts-integrations/integrations/secrets
- @contractspec/lib.contracts-integrations/integrations/secrets-types
- @contractspec/lib.contracts-integrations/integrations/secrets/aws-secret-manager
- @contractspec/lib.contracts-integrations/integrations/secrets/env-secret-provider
- @contractspec/lib.contracts-integrations/integrations/secrets/gcp-secret-manager
- @contractspec/lib.contracts-integrations/integrations/secrets/index
- @contractspec/lib.contracts-integrations/integrations/secrets/manager
- @contractspec/lib.contracts-integrations/integrations/secrets/provider
- @contractspec/lib.contracts-integrations/integrations/secrets/scaleway-secret-manager
- @contractspec/lib.contracts-integrations/integrations/spec
- @contractspec/lib.contracts-integrations/integrations/transport
- @contractspec/lib.contracts-integrations/integrations/versioning
Readme
@contractspec/lib.contracts-integrations
Integration contract definitions, provider catalogs, and secret/runtime integration primitives.
Website: https://contractspec.io/
Why this package exists
@contractspec/lib.contracts-integrations is the integration-focused slice split from @contractspec/lib.contracts.
It groups everything related to external systems (payments, messaging, health, vector stores, etc.) so projects can depend on integration contracts without pulling all runtime adapters.
Package boundary (important)
Use this package for:
- Integration metadata contracts (
IntegrationSpec,IntegrationSpecRegistry,defineIntegration). - Provider catalogs and registration helpers (
createDefaultIntegrationSpecRegistry). - Integration connection operations (
CreateIntegrationConnection,TestIntegrationConnection, ...). - Connection/binding data contracts (
IntegrationConnection,AppIntegrationBinding). - Secret provider abstraction and implementations (AWS, GCP, Scaleway, env).
- Integration call reliability utilities (
IntegrationCallGuard).
Use other packages for:
- Base operation/event/form/policy contract primitives ->
@contractspec/lib.contracts-spec - REST/GraphQL/MCP/React adapters -> runtime split packages
Installation
npm install @contractspec/lib.contracts-integrations @contractspec/lib.contracts-spec
# or
bun add @contractspec/lib.contracts-integrations @contractspec/lib.contracts-specWhat you get
Top-level exports include:
- Integration contracts and registries.
- Provider domain contracts.
- Integration connection operations and registration helpers.
Important subpath exports include:
@contractspec/lib.contracts-integrations/integrations/providers/registry@contractspec/lib.contracts-integrations/integrations/runtime@contractspec/lib.contracts-integrations/integrations/secrets/*
Quick start
1) Build integration spec and operation registries
import { OperationSpecRegistry } from "@contractspec/lib.contracts-spec";
import {
createDefaultIntegrationSpecRegistry,
registerIntegrationContracts,
} from "@contractspec/lib.contracts-integrations";
const integrationSpecs = createDefaultIntegrationSpecRegistry();
const integrationOps = registerIntegrationContracts(new OperationSpecRegistry());
console.log("integration specs", integrationSpecs.count());
console.log("integration ops", integrationOps.count());2) Compose secret providers with priority
import { SecretProviderManager } from "@contractspec/lib.contracts-integrations/integrations/secrets/manager";
import { EnvSecretProvider } from "@contractspec/lib.contracts-integrations/integrations/secrets/env-secret-provider";
import { GcpSecretManagerProvider } from "@contractspec/lib.contracts-integrations/integrations/secrets/gcp-secret-manager";
const secrets = new SecretProviderManager()
.register(new EnvSecretProvider(), { priority: 100 })
.register(new GcpSecretManagerProvider({ projectId: "my-project" }), {
priority: 10,
});
console.log(secrets.canHandle("env://OPENAI_API_KEY"));3) Guard provider calls with retries + telemetry hooks
import { IntegrationCallGuard } from "@contractspec/lib.contracts-integrations/integrations/runtime";
import type { ResolvedAppConfig } from "@contractspec/lib.contracts-spec/app-config/runtime";
declare const resolvedConfig: ResolvedAppConfig;
const guard = new IntegrationCallGuard(secrets, {
maxAttempts: 3,
backoffMs: 250,
});
const result = await guard.executeWithGuards(
"payments-primary",
"charge.create",
{ amount: 2000, currency: "usd" },
resolvedConfig,
async (connection, secretValues) => {
return {
provider: connection.meta.integrationKey,
apiKeyPresent: Boolean(secretValues.apiKey || secretValues.secret),
};
}
);
console.log(result.success, result.metadata.attempts);Integration architecture notes
IntegrationSpecdescribes provider capabilities and configuration/secret schema.IntegrationConnectionmodels tenant-specific binding to a provider account.AppIntegrationBindingmaps app slots/features to actual connections.IntegrationCallGuardcentralizes resiliency (retry/backoff) and telemetry.
This separation lets you keep provider concerns explicit and testable.
AI assistant guidance
When generating code:
- Use this package when the task mentions providers, credentials, integrations, or external platform bindings.
- Prefer modeling with
IntegrationSpecfirst, then wireIntegrationConnectionflows. - Use
SecretProviderManagerinstead of hardcoding one secret backend.
When reading code:
- Distinguish contract-level definitions (
spec.ts,connection.ts) from runtime execution utilities (runtime.ts). - Check subpath imports for secret provider implementations.
Split migration from deprecated monolith
@contractspec/lib.contracts/integrations/*->@contractspec/lib.contracts-integrations/integrations/*- Provider contracts and secret abstractions are now isolated from non-integration runtime surfaces