databrickslabs / databrickslabs/ontos

[Feature]: Data Contract Certification + Publication (end-to-end)

Open
#91 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type/feature
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 published boolean with publication_scope on data_contracts
  • Existing contract data migrated (status="certified" -> active + top cert level; published=True -> publication_scope="organization")
  • POST/DELETE /api/data-contracts/{id}/certify endpoints with Steward/Admin RBAC
  • POST/DELETE /api/data-contracts/{id}/publish endpoints 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.