Skip to content

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"]
Hold "Alt" / "Option" to enable pan & zoom

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"]
Hold "Alt" / "Option" to enable pan & zoom

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.