Integration Platform — overview¶
Target
This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.
Rewritten 2026-10-09 (design plan P6)
This page replaces the June-2026 overview that described vendor-specific integration services (CRM, email, payments, SMS, support, cloud providers). Those are connector descriptors over the existing client libraries now; the 2026 modules are connections, connectors with subscriptions and deliveries, and the webhook ingress. The old page is archived under catalogs 2026-06.
The Integration Platform is how the Factory reaches anything outside itself without ever holding a raw secret: a connection names the system, its endpoint policy and a credential reference; a grant says who may use it; a connector describes the provider's capabilities behind an adapter that passed certification; a subscription receives the provider's events through a verified ingress; every call and delivery leaves a receipt.
| Platform | PF-06 Integration Platform (Capability & Tools) |
| Bounded contexts | BC-16, BC-17 |
| Services | 15 (2 hosts, 8 modules, 5 external, 0 later) — 4 modelled |
| Gateways | GW-06 |
| Status | target |
Purpose¶
- Provider, not code. A vendor is registered as a descriptor with an adapter; the first-party clients that already exist (Azure DevOps, GitHub, Deputy, Braze, Bill, Twilio, Israel019, ACS, GA, Meta) become connectors without forks.
- Custody, not copies. Credentials live in Key Vault as references; the Secret Broker issues short-lived scoped credentials per use; prompts, events, receipts and manifests never carry a secret.
- Grants decide. A project source, an agent release, a tool descriptor or an MCP server uses a connection only with a grant, optionally narrowed.
- Verified in, governed out. Inbound deliveries are signature-checked, replay-protected and deduplicated at GW-06; outbound deliveries carry the calling tool's policy decision and approval and end with a receipt.
Bounded contexts and services¶
| Context | Owns | Services (granularity) |
|---|---|---|
| BC-16 Connections | Connections, grants, rotation, health | IntegrationService (module); SecretBindingService merged; SecretGovernanceService merged into the Secret Broker (BC-40) |
| BC-17 Connectors & Webhooks | Connector descriptors with certification, subscriptions, deliveries; inbound verification | ConnectorRegistryService (module, added), WebhookGatewayService (standalone, conditional GW-06); Azure DevOps, GitHub, cloud-provider and vendor-client rows merged as adapters; CRM, email, payment, SMS and support rows external-canonical (client libraries) |
| Host | Composition, adapters | IntegrationHost (standalone) |
| Service | Context | Granularity | Status |
|---|---|---|---|
| AzureDevOpsIntegrationService | BC-17 | module of host | unmodelled |
| CloudProviderAdapterService | BC-17 | module of host | unmodelled |
| CrmIntegrationService | BC-17 | external / canonical | unmodelled |
| EmailIntegrationService | BC-17 | external / canonical | unmodelled |
| GitHubIntegrationService | BC-17 | module of host | unmodelled |
| ConnectorRegistryService | BC-17 | module of host | target |
| IntegrationHost | BC-16 | standalone host | target |
| IntegrationService | BC-16 | module of host | target |
| PaymentIntegrationService | BC-17 | external / canonical | unmodelled |
| SecretBindingService | BC-16 | module of host | unmodelled |
| SecretGovernanceService | BC-16 | module of host | unmodelled |
| SmsIntegrationService | BC-17 | external / canonical | unmodelled |
| SupportIntegrationService | BC-17 | external / canonical | unmodelled |
| VendorApiClientRegistryService | BC-17 | module of host | unmodelled |
| WebhookGatewayService | BC-17 | standalone host | target |
Role in the Factory¶
flowchart LR
KM["Knowledge & Memory<br/>sources"] -- "Resolve connection" --> IP["Integration Platform<br/>IntegrationHost"]
Tools["Tools & MCP<br/>external tools, consumed MCP servers"] -- "Resolve, Deliver" --> IP
Vendors["Vendors and products"] -- "webhooks via GW-06" --> WH["WebhookGatewayService"] --> IP
IP -- "workflow triggers, knowledge sync, fleet signals" --> CP["Control Plane, Agent Mesh, Fleet Operations"]
IP -- "credentials, grant policy" --> Gov["Governance<br/>Secret Broker"]
IP -- "receipts, deliveries" --> Obs["Observability"]
Component view¶
flowchart LR
subgraph P["Integration Platform"]
IntegrationHost["IntegrationHost"]
WebhookGatewayService["WebhookGatewayService"]
end
GW_06{"GW-06 Integration / webhook ingress"} --> P
P --> SecretBrokerService["SecretBrokerService"]
P --> ArtifactService["ArtifactService"]
P --> WorkflowEngineService["WorkflowEngineService"]
P --> ext_client_libraries["ext-client-libraries"]
P --> GovernanceHost["GovernanceHost"]
P --> ControlPlaneApi["ControlPlaneApi"]
P --> ext_azure_devops["ext-azure-devops"]
P --> ext_github["ext-github"]
P --> ext_identity_platform["ext-identity-platform"]
P --> PolicyEngineService["PolicyEngineService"]
P --> ProjectService["ProjectService"]
Built from the ConnectSoft estate¶
| Component | Use here | Status |
|---|---|---|
First-party API clients and SMS providers (ConnectSoft.*.ApiClient, ConnectSoft.Sms.*) |
connector adapters | exists |
ConnectSoft.Extensions.Http.OAuth2 |
token management for HTTP adapters | exists |
| API Gateway template | WebhookGatewayService |
exists |
| Microservice template, MessagingModel Orleans adapter, Audit.NET, rate limiting | host, outbox, audit, limits | exists |
| Connection registry, grants, descriptors, certification, subscriptions, deliveries, ingress verification | the platform itself | develop |
Modernization (2 to 3 year horizon)¶
- Agent identity as workload identity for connections used by agents; delegated user scopes narrow grants per run.
- MCP consumed servers as a connector kind with the same custody and grants (ADR-0022).
- Integration packs as marketplace assets; agent-drafted packs from OpenAPI and SDK specs reviewed by humans.
- CloudEvents as an optional envelope profile for deliveries (ADR-0012 note).
Current implementation¶
The client libraries and OAuth2 token management exist; no connection registry, grants, descriptors, certification, subscriptions, deliveries or ingress exist. See the plane index.
Final-state summary¶
One host, two modules and a minimal conditional ingress; vendors as certified descriptors over existing clients; credentials in custody, grants explicit, deliveries verified and receipted.
Related¶
- Workflows · UI surfaces · Security · Observability · Deployment · Later capabilities
- Catalogs: bounded contexts · microservices · APIs · events · aggregate roots · data model · storage · workers