Skip to content

feat(sync): emit SyncCycleReceipt; add spec manifest#35

Merged
mdheller merged 1 commit into
mainfrom
feat/sync-cycle-receipt-emit
Jun 16, 2026
Merged

feat(sync): emit SyncCycleReceipt; add spec manifest#35
mdheller merged 1 commit into
mainfrom
feat/sync-cycle-receipt-emit

Conversation

@mdheller

Copy link
Copy Markdown
Contributor

Summary

  • ContentViewSyncer.execute() now emits a SyncCycleReceipt (spec 0.1.0) in all outcome paths: applied, dry_run, denied, skipped, failed. Receipt is returned under result["receipt"].
  • Adds .sourceos/manifest.json: domain content-sync, ownedSchemas [SyncCycleReceipt], engineId sourceos.sync.katello-content.
  • Updates test for test_execute_dry_run_denied: burst_cloud locus now correctly returns denied (not generic skipped).

Test plan

  • python3 -m pytest tests/ -q → 85 passed
  • sourceos-syncd sync plan ... returns receipt in output
  • sourceos-syncd sync apply ... returns receipt with outcome: applied

…nifest

ContentViewSyncer.execute() now returns a SyncCycleReceipt in all outcome
paths (applied, dry_run, denied, skipped, failed). The receipt carries the
Katello content view versions, per-step results, locus, and audit URN.

.sourceos/manifest.json declares this repo to sourceos-spec: domain
content-sync, ownedSchemas [SyncCycleReceipt], engineId
sourceos.sync.katello-content.
@mdheller mdheller merged commit f863208 into main Jun 16, 2026
4 checks passed
@mdheller mdheller deleted the feat/sync-cycle-receipt-emit branch June 16, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant