Announce shared connector runtime contract

This commit is contained in:
2026-08-02 14:54:56 +02:00
parent 7be93785a2
commit 26f8898d11
2 changed files with 35 additions and 0 deletions
+14
View File
@@ -25,6 +25,20 @@ Detailed follow-up documents:
- [OpenProject connector concept](OPENPROJECT_CONNECTOR.md) - [OpenProject connector concept](OPENPROJECT_CONNECTOR.md)
- [OpenDesk integration map](OPENDESK_INTEGRATION_MAP.md) - [OpenDesk integration map](OPENDESK_INTEGRATION_MAP.md)
## Shared runtime boundary
Connector transports use the versioned Core runtime contract for bounded dry
runs and diagnostics. Connectors owns endpoint discovery, authentication
hand-off, protocol reads, retry/backoff, and source health. A consuming module
owns domain mappings and mutations: Addresses, for example, owns contact and
vCard semantics even when Connectors supplies reusable LDAP, CardDAV, Exchange,
or Google transport patterns.
Dry runs carry an immutable input hash, source revision and fingerprint,
redacted effects, diagnostics, truncation state, and an apply token. Apply must
reject a changed input or source revision. URLs and diagnostics never contain
credential material; they retain only credential-envelope references.
## Ownership ## Ownership
The module owns: The module owns:
@@ -71,6 +71,7 @@ TABULAR_SOURCE_INTERFACE_VERSION = "0.1.0"
DATASOURCE_ORIGIN_INTERFACE_VERSION = "0.1.0" DATASOURCE_ORIGIN_INTERFACE_VERSION = "0.1.0"
SANCTIONS_SNAPSHOT_INTERFACE_VERSION = "1.0.0" SANCTIONS_SNAPSHOT_INTERFACE_VERSION = "1.0.0"
FEED_INTERFACE_VERSION = "0.1.0" FEED_INTERFACE_VERSION = "0.1.0"
CONNECTOR_RUNTIME_INTERFACE_VERSION = "1.0.0"
ARCHITECTURE = ModuleArchitectureDeclaration( ARCHITECTURE = ModuleArchitectureDeclaration(
layer="data_reporting_integration", layer="data_reporting_integration",
@@ -358,6 +359,10 @@ manifest = ModuleManifest(
name="connectors.feeds", name="connectors.feeds",
version=FEED_INTERFACE_VERSION, version=FEED_INTERFACE_VERSION,
), ),
ModuleInterfaceProvider(
name="connectors.runtime_contract",
version=CONNECTOR_RUNTIME_INTERFACE_VERSION,
),
), ),
permissions=PERMISSIONS, permissions=PERMISSIONS,
role_templates=ROLE_TEMPLATES, role_templates=ROLE_TEMPLATES,
@@ -424,6 +429,22 @@ manifest = ModuleManifest(
related_modules=("datasources", "dataflow", "ops", "policy", "audit"), related_modules=("datasources", "dataflow", "ops", "policy", "audit"),
order=39, order=39,
), ),
DocumentationTopic(
id="connectors.runtime-preview-contract",
title="Connector previews and diagnostics",
summary="Use one bounded, redacted dry-run shape across external transports.",
body=(
"Connectors owns endpoint discovery, authentication hand-off, transport limits, retries, and protocol health. "
"Domain modules own field mapping, validation, reconciliation, and record mutation. The shared Core runtime "
"contract reports redacted effects and diagnostics with source revisions, fingerprints, and immutable input hashes. "
"A commit must reject stale, truncated, conflicting, or error-bearing previews, and credentials never appear in URLs or samples."
),
layer="available",
documentation_types=("admin", "user"),
audience=("operator", "module_admin", "power_user"),
related_modules=("addresses", "datasources", "dataflow", "policy", "audit"),
order=40,
),
DocumentationTopic( DocumentationTopic(
id="connectors.tabular-sources", id="connectors.tabular-sources",
title="Governed tabular sources", title="Governed tabular sources",