feat: expose connector datasource origins
This commit is contained in:
@@ -32,6 +32,8 @@ The module owns:
|
||||
|
||||
The module does not own:
|
||||
|
||||
- governed datasource identity, staging, materializations, frozen states, or
|
||||
consumer read semantics, owned by `govoplan-datasources`
|
||||
- file storage semantics, owned by files/DMS
|
||||
- identity provisioning semantics, owned by IDM/access
|
||||
- mail/calendar semantics, owned by mail/calendar
|
||||
@@ -69,6 +71,11 @@ Domain modules should ask whether a connector capability exists and request a
|
||||
profile/test result through core-mediated capabilities. They must not import
|
||||
connector implementation modules directly.
|
||||
|
||||
Data-oriented consumers use a two-layer path: Connectors publishes a
|
||||
provider-specific datasource origin, then Datasources registers and governs it.
|
||||
Dataflow, Workflow, Reporting, and other consumers use Datasources rather than
|
||||
calling the connector origin directly.
|
||||
|
||||
## Reference Journeys
|
||||
|
||||
### OpenProject Connector First
|
||||
|
||||
@@ -88,10 +88,12 @@ this lifecycle when a connector publishes status.
|
||||
2. Fetch only the minimal remote data required for the declared use case.
|
||||
3. Normalize into a connector-owned staging payload.
|
||||
4. Validate shape, required fields, and source trust level.
|
||||
5. Emit a core-mediated event such as `connector.record_discovered`.
|
||||
6. Let domain modules claim or transform staged data through capabilities, not
|
||||
imports.
|
||||
7. Store external references with source system, object type, object id, version
|
||||
5. Publish data-shaped inputs as versioned datasource origins.
|
||||
6. Let Datasources register live/cached origins or stage immutable snapshots.
|
||||
7. Let domain modules consume governed datasource references through
|
||||
capabilities, not imports.
|
||||
8. Emit a core-mediated event such as `connector.record_discovered`.
|
||||
9. Store external references with source system, object type, object id, version
|
||||
or ETag, and last-seen timestamp.
|
||||
|
||||
## Publish Flow
|
||||
@@ -124,6 +126,7 @@ should ask core for capabilities such as:
|
||||
- `connectors.profileTester`
|
||||
- `connectors.health`
|
||||
- `connectors.externalReferences`
|
||||
- `connectors.datasourceOrigins`
|
||||
- `connectors.sourceConsumer`
|
||||
- `connectors.sourcePublisher`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user