This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.
A connection is the Factory's named, governed way to reach one external system: a provider, an endpoint policy (allowed hosts, methods, rate limits), a credential kind and a reference to its value in Key Vault, rotation metadata, health, and grants that say which projects, agents, tools, sources and MCP servers may use it and with what narrowing. IntegrationService owns that record and the grant check; the Secret Broker (BC-40) turns a reference into a short-lived scoped credential per use. Knowledge sources, external tools, consumed MCP servers and outbound deliveries all name a connection and must hold a grant.
It absorbs the June-2026 SecretBindingService (binding a reference to a connection is a connection concern) while secret governance moves to the Secret Broker.
flowchart LR
S["IntegrationService"]
KnowledgeIngestionService["KnowledgeIngestionService"] -->|grpc| S
ToolAdapterService["ToolAdapterService"] -->|grpc| S
McpServerRegistryService["McpServerRegistryService"] -->|grpc| S
ConnectorRegistryService["ConnectorRegistryService"] -->|grpc| S
StudioBff["StudioBff"] -->|sync-http| S
S -->|grpc| SecretBrokerService["SecretBrokerService"]
S -->|grpc| PolicyEngineService["PolicyEngineService"]
S -->|grpc| ProjectService["ProjectService"]
S -. "ConnectionRegistered" .-> E_ConnectionRegistered(("event"))
S -. "ConnectionStateChanged" .-> E_ConnectionStateChanged(("event"))
S -. "ConnectionGrantChanged" .-> E_ConnectionGrantChanged(("event"))
S -. "CredentialRotated" .-> E_CredentialRotated(("event"))
Connection — A tenant-scoped connection to one external system with its provider, endpoint policy (hosts, methods, rate limits), credential reference and kind, rotation metadata, grants and health. (catalog entry)
Field
Type
Required
Description
connectionId
guid
yes
tenantId
string
yes
name
string
yes
provider
string
yes
azure-devops
endpointPolicy
json
yes
Allowed hosts, base URL, methods, rate limits, timeouts
credentialKind
enum:CredentialKind
yes
credentialRef
string
yes
Key Vault reference; the Secret Broker resolves it per use.
A connection stores a credential reference and kind, never a value; verification and every use go through the Secret Broker, which issues a short-lived scoped credential.
A connection is usable only in state Active and healthy and only by subjects with a grant; a project's source scope, an agent's release closure or a tool descriptor must name the connection and hold a grant.
Secrets never appear in prompts, events, receipts or release manifests; receipts record the connection id and credential kind only.
Revocation is immediate and emits an event that stops every dependent source, tool and server.
stateDiagram-v2
Draft --> Verified : VerificationSucceeded
Verified --> Active : Activate
Active --> Degraded : HealthProbeFailed
Degraded --> Active : HealthProbeRecovered
Active --> Suspended : Suspend
Suspended --> Active : Resume
Active --> Revoked : Revoke
Suspended --> Revoked : Revoke
Degraded --> Revoked : Revoke
Register a connection with provider, endpoint policy, credential kind and a Key Vault reference (Workspace admin or Platform admin); the value is written to Key Vault by the caller or the Secret Broker flow, never posted here.
GET
/factory/connections
ListConnections
factory.connections.read
read
natural
GW-03
Connections in scope with provider, state, health, rotation due and grant counts.
POST
/factory/connections/{connectionId}/verify
VerifyConnection
factory.connections.admin
external
key-header
GW-03
Verify the credential through the Secret Broker and a provider health call (external class, read-only probe).
Grant or narrow a subject's use of the connection.
POST
/factory/connections/{connectionId}/rotate
RotateCredential
factory.connections.admin
production
key-header
GW-03
Record a rotation (new reference) and re-verify; production class because dependent systems are affected.
POST
/factory/connections/{connectionId}/revoke
RevokeConnection
factory.connections.admin
production
natural
GW-03
Revoke immediately; dependent sources, tools and servers stop.
gRPC service
Method
Streaming
Visibility
Side effects
Summary
Connections
Resolve
none
internal
read
Resolve a connection for a subject with a grant check; returns endpoint policy and a broker ticket the caller exchanges for a short-lived credential.
Resolve answers the question every dependent asks: may this subject use this connection now, and with which endpoint policy; the answer carries a broker ticket, never a credential.