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
Blocked by
User stories addressed
- User story 20
- User story 21
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 raisesValueErrorthat 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_publishenforcement point in v1; no per-field enforcement knob. See PRD Enforcement and Integration.Acceptance criteria
Blocked by
User stories addressed