Document reconciliation modes
This commit is contained in:
@@ -100,6 +100,9 @@ Each destination bundle path is managed by `.distributor.json`. This file is bot
|
||||
- pipeline id;
|
||||
- destination id;
|
||||
- publication timestamp;
|
||||
- state creation and update timestamps;
|
||||
- single-owner state mode;
|
||||
- reconciliation mode;
|
||||
- the normalized source manifest used for publication;
|
||||
- metadata for copied source outputs;
|
||||
- metadata for generated outputs, such as HTML files;
|
||||
@@ -110,11 +113,19 @@ A representative destination state file is:
|
||||
|
||||
```json
|
||||
{
|
||||
"schema_version": 1,
|
||||
"schema_version": 2,
|
||||
"distributor_version": "0.1.0",
|
||||
"pipeline_id": "weather-daily",
|
||||
"destination_id": "static-html",
|
||||
"published_at": "2026-05-30T11:12:00Z",
|
||||
"created_at": "2026-05-30T11:12:00Z",
|
||||
"updated_at": "2026-05-30T11:12:00Z",
|
||||
"state": {
|
||||
"mode": "single_owner"
|
||||
},
|
||||
"reconciliation": {
|
||||
"mode": "replace"
|
||||
},
|
||||
"source": {
|
||||
"manifest": {
|
||||
"schema_version": 1,
|
||||
@@ -141,7 +152,9 @@ A representative destination state file is:
|
||||
"transform": "markdown_to_html",
|
||||
"sha256": "sha256:...",
|
||||
"size": 23456,
|
||||
"url": "https://reports.example.com/weather-daily/"
|
||||
"url": "https://reports.example.com/weather-daily/",
|
||||
"created_at": "2026-05-30T11:12:00Z",
|
||||
"updated_at": "2026-05-30T11:12:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -156,6 +169,8 @@ Destination comparison rules are based on `.distributor.json`:
|
||||
- Existing state has the same source id and same `created` but different digest: fail as a conflict.
|
||||
- Existing state has a different source id: fail as a conflict.
|
||||
|
||||
For older destination state, destination `reconciliation.mode` controls output updates. `replace` rewrites the managed output set to match the new plan. `merge` retains omitted managed outputs, overwrites only existing managed paths, and rejects planned paths that collide with unmanaged storage content.
|
||||
|
||||
## Publication and Transform Policy
|
||||
|
||||
Source files are canonical bundle artifacts. Transform outputs are derived publication artifacts.
|
||||
|
||||
Reference in New Issue
Block a user