feat: Milestone 2 — Structured Run Manifest System (#64)#67
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
In case you haven't seen it, I've already approved. You decide when to merge it |
Pull Request
Description
Introduces the Structured Run Manifest System (Milestone 2) for the Databus Python Client. When --manifest is passed to any of the three existing commands (download, deploy, delete), a JSON-LD manifest file is written recording the complete details of the operation — input parameters, per-file URLs, checksums, byte sizes, timestamps, success/failure status, and a structured execution summary.
The manifest uses the DataID vocabulary (the same vocabulary used by the Databus platform itself), is versioned via dbus:schemaVersion, and never writes sensitive credentials. If the manifest file already exists at the given path, it auto-suffixes (run_1.jsonld, run_2.jsonld, ...) with a warning rather than silently overwriting. Passing a directory path instead of a file path raises a clear error. Manifest writing failure warns and continues — the exit code reflects the actual operation result, not the manifest write.
The manifest is written even when the operation itself fails, capturing whatever partial results were recorded before the failure — enabling the debugging use case described in the proposal (Use Case 5).
Related Issues
#64
Type of change
Checklist:
poetry run pytest- all tests passedpoetry run ruff check- no linting errors