Announce shared connector runtime contract
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user