Harden terms oracle: hash-aware sync, anti-downgrade, Content-SHA256 binding (#6) #26
No reviewers
Labels
No labels
agent:implement
agent:ready
api
bot
bug
ci
enhancement
ready
security
terra-classic
testing
ux
web
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-ecosystem-legal!26
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-6-terms-oracle"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
content_sha256+Version:label; same label with mutated body is rejected (operators must bumpVersion:— no silent drift / no auto-suffix).is_latestunlessFORCE_TERMS_DOWNGRADE=true(logged; reactivates existing row only when remote hash matches stored bytes).Content-SHA256: <hex>(breaking format — deploy API + SDK + web together and bump termsVersion:so clients re-sign).skills/security-ops/SKILL.md, README,.env.example); removed orphanapi/src/terms_sync.rs.Closes #6.
Deploy order (breaking)
@plasticdigits/cl8y-clickwrap+ portal together.TERMS_AND_CONDITIONS.txtVersion:so everyone re-signs the new message format.FORCE_TERMS_DOWNGRADEin production.Test plan
cd api && cargo test(unit + integration, includingintegration_terms_oracle_sync_policy)npm run test:sdk(message golden includesContent-SHA256)npm run build:sdk && npm run test:webContent-SHA256Acceptance criteria (issue #6)
Version:+ same body →UnchangedVersion:+ different body → hard error requiring label bump (documented)content_sha256hex/update_termsBearer + rate-limit behavior unchangedmentioned in issue #6
mentioned in commit
4afa9976ccmentioned in issue #5