databrickslabs / databrickslabs/ontos

[Feature]: Compliance: default workflow templates (Data Contract + Data Product Compliance)

Open
#136 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

#125

What to build

Ship two built-in process workflows in default_workflows.yaml that serve as the default compliance check templates:

1. "Data Contract Compliance" workflow:

  • Step 1: policy_check -- SCHEMA_DRIFT check
  • Step 2: policy_check -- SLA_COMPLIANT check
  • Step 3: policy_check -- ACCESS_AUDIT check
  • Step 4: policy_check -- DQ_SCORE check (threshold from config, default 80%)
  • Step 5: validation -- Native DSL: ASSERT HAS_TAG('owner') AND HAS_TAG('domain')
  • Chained via on_pass/on_fail; overall result = all steps pass

2. "Data Product Compliance" workflow:

  • Step 1: policy_check -- CONTRACT_LINKED check
  • Step 2: policy_check -- Cascading contract compliance check
  • Step 3: validation -- Native DSL: ASSERT obj.owners.length > 0
  • Step 4: validation -- Native DSL: ASSERT obj.status IN ['active']

Wire both as system-wide defaults (entity_type=data_domain, entity_id=system) so all new contracts/products get them unless the domain overrides.

Acceptance criteria

  • Both workflows defined in default_workflows.yaml with correct step types and chaining
  • Workflows reference the check functions implemented in earlier slices
  • Workflows registered as system-wide defaults in entity_compliance_checks on app startup
  • New contracts/products receive these workflows as default bindings (via domain defaults / system fallback)

Blocked by

  • Blocked by #126 (entity_compliance_checks data layer)
  • Blocked by #129 (SCHEMA_DRIFT)
  • Blocked by #130 (SLA_COMPLIANT)
  • Blocked by #131 (ACCESS_AUDIT)
  • Blocked by #132 (DQ_SCORE)
  • Blocked by #133 (CONTRACT_LINKED)

User stories addressed

  • User story 26

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 default_workflows.yaml and review the entity_compliance_checks data layer plus the earlier check implementations in issues #126 and #129–#133. Define both workflows with the specified steps and chaining, then trace app startup and domain fallback registration. Done means system-wide defaults are registered and new contracts and products receive them unless overridden.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.