databrickslabs / databrickslabs/ontos
[Feature]: Data Contract Certification + Publication (end-to-end)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 212
- Forks
- 71
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 43
Description
Parent PRD
#86
What to build
Extend certification and publication scope to Data Contracts, reusing the infrastructure built for Data Products.
Add certification columns (certification_level, inherited_certification_level, certified_at, certified_by, certification_expires_at, certification_notes) and publication columns (publication_scope, published_at, published_by) to the data_contracts table. Drop the old published boolean column. Implement contract-specific certify/decertify and publish/unpublish API endpoints with the same patterns as products. Migrate existing contract data (status="certified" and published=True). Wire CertificationBadge and PublicationBadge components into the contract list and detail pages.
Refer to the parent PRD "Entity Scope" section: Data Contracts get all three dimensions.
Acceptance criteria
- Alembic migration adds certification columns and replaces
publishedboolean withpublication_scopeondata_contracts - Existing contract data migrated (status="certified" -> active + top cert level; published=True -> publication_scope="organization")
-
POST/DELETE /api/data-contracts/{id}/certifyendpoints with Steward/Admin RBAC -
POST/DELETE /api/data-contracts/{id}/publishendpoints with active-status prerequisite - Auto-unpublish on contract deprecation
- CertificationBadge and PublicationBadge shown in contract list table and detail page
- Unit tests for contract certify/publish logic
- Demo data files updated
Blocked by
- Blocked by #89 (reuses CertificationBadge and cert infrastructure)
- Blocked by #90 (reuses PublicationBadge and pub infrastructure)
User stories addressed
From PRD #86:
- User story 4: Separate visual indicators for certification, publication, and status on each entity
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with parent PRD #86 and the certification and publication work in blocked issues #89 and #90. Trace the Alembic migration for data_contracts, the contract certify/publish endpoints, the contract list and detail pages, unit tests, and demo data files. Done means all acceptance criteria pass, including data migration, RBAC, active-status and deprecation behavior, badges, and tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend, database, frontend, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100