databrickslabs / databrickslabs/ontos

Compliance Templates — Slice 5: blocking publish enforcement

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

Nobody has claimed this yet.

scope/products type/feature
Dominant language
Python
Stars
212
Forks
71
Avg merge
4d 10h
Merged PRs (30d)
43

Description

Parent PRD

#676

What to build

Turn the completeness validator (#710) into blocking enforcement at publish, while keeping routine edits frictionless. Wire the check explicitly into the publish path, next to the existing inline validation in data_products_manager.publish_product() — which raises ValueError that the route converts to HTTP 400 (the symmetry model). On failure, publication is refused with the list of missing mandatory fields; the owner fixes them and retries. Editing unrelated product fields must never be blocked by pending compliance fields.

Single on_publish enforcement point in v1; no per-field enforcement knob. See PRD Enforcement and Integration.

Acceptance criteria

  • Publishing a product with unmet mandatory compliance fields is refused
  • The refusal surfaces the explicit list of missing mandatory fields
  • Fixing the fields and retrying allows publication to proceed
  • Products that pass completeness publish normally
  • Routine (unrelated) product edits are never blocked by pending compliance fields
  • Enforcement is wired at the publish call site next to the existing validation (ValueError → HTTP 400 pattern)

Blocked by

  • Blocked by #710

User stories addressed

  • User story 20
  • User story 21

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 blocked issue #710, then inspect data_products_manager.publish_product() and the route that converts ValueError to HTTP 400. Verify the completeness check is enforced only at the publish call site, while unrelated edits remain unaffected. Done means incomplete products are refused with the missing-field list, corrected products publish, and complete products retain normal behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.