Integrations pillar · v0.15.3
integration Integration
Integration data contract aligned with ODPS input ports and ODCS contract concepts.
$id · https://corpospec.com/schemas/v0.15.3/integration.schema.json
Fields
| Field | Type | Required | Description |
|---|---|---|---|
| id | PathRef | yes | Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$` |
| name | string | yes | |
| status | IntegrationStatus | yes | Integration lifecycle status. |
| system | string | yes | |
| type | IntegrationType | yes | Integration direction type. |
| config | unknown | — | Connector-specific opaque configuration for untyped connectors (Stripe, HubSpot, Linear, PostHog, Cloudflare, Segment, Mixpanel, etc.). Typed connectors (AdMob, App Store Connect, Google Play, Supabase, Sportmonks, GitHub) populate `typed_config` instead and leave this field empty. Mutually exclusive with `typed_config` in practice; either may be present, never both. |
| data_contract | DataContract? | — | |
| input_port | InputPort? | — | |
| outputs | PathRef[] | — | |
| pipeline | Pipeline? | — | |
| secret_bindings | SecretBinding[] | — | Credential bindings required by this connector. Declares env-var names and their sources (environment, vault, OAuth, cloud IAM) but never the secret values themselves. |
| typed_config | ConnectorConfig? | — | Typed connector-specific configuration for the six first-class connectors (see [`ConnectorConfig`]). Canonical alternative to `config` for connectors that have earned a typed variant. |
Definitions
Shared types referenced within this schema.
AdUnit
A single ad unit (e.g. "rewarded video on iOS").
type: object
AdUnitFormat
Ad-unit format on an ad-network connector.
enum: "banner", "interstitial", "rewarded", "rewarded-interstitial", "app-open", "native"
Aggregation
Aggregation method for pipeline field mappings.
enum: "sum", "avg", "count", "first", "last", "max", "min", "median", "p50", "p95", "p99", "percentile", "ratio", "stddev", "variance"
AuthMethod
Authentication method.
AuthModel
Authentication model for a Supabase connector.
ConnectorConfig
Typed connector-specific configuration. Internally tagged on `kind`.
Matches the Cockpit `TypedConnectorConfig` union verbatim (see
`cockpit/src/components/onboarding/connectors/connector-types.ts`).
Connectors not yet typed (Stripe, HubSpot, Linear, PostHog, Cloudflare,
Segment, Mixpanel) remain on `Integration.config: serde_json::Value`
until each earns a variant here.
ConnectorPlatform
Target platform for a connector binding.
enum: "ios", "android", "web", "mac-os", "windows", "linux"
DataContract
Data contract.
type: object
DataField
Data contract field definition.
type: object
DataQuality
Data quality constraints declared by the contract owner.
type: object
DataSchema
Data contract schema.
type: object
EdgeFunction
A Supabase edge function binding.
type: object
FieldMapping
Maps a source field to a CorpoSpec metric via aggregation.
type: object
Freshness
Freshness requirements.
type: object
InputPort
Input port configuration.
type: object
IntegrationStatus
Integration lifecycle status.
enum: "draft", "planned", "development", "testing", "active", "sunset", "retired"
IntegrationType
Integration direction type.
enum: "source", "destination", "bidirectional"
PathRef
Path-based cross-reference relative to .corpospec/ root.
Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
Pipeline
Pipeline configuration: how raw records are transformed into metric snapshots.
type: object
Protocol
Transport or API style declared on an input port.
Internally tagged on `kind`. The `Other` variant carries a free-form label
for bespoke protocols (e.g. `"Git CLI"`, `"WebRTC"`) that don't map onto
one of the canonical transports. Prefer the named variants when they fit.
ScheduleBinding
A cron-style schedule bound to a connector task
(e.g. Sportmonks daily-ingest).
type: object
SecretBinding
Declaration of a credential required by an integration.
Captures the environment-variable / vault binding without embedding the
secret itself. Distinct from connector-specific `config:` because bindings
are deployment-environment concerns; config is integration shape.
type: object
SecretSource
Source of a secret referenced by an integration.
Sla
Service level agreement offered by the source system for this contract.
type: object
Reference in your YAML
# yaml-language-server: $schema=https://corpospec.com/schemas/v0.15.3/integration.schema.json