Reference
For everyone
Roles and permissions
Everybody can read everything: the record is not hidden from anybody who may sign in. What a role restricts is who may decide — answer a demand, accept the agreement, promote a release. A role cannot approve its own request, which is why the three gates belong to three different roles. How a person gets a role is in Identity.
This page is generated from dpf/domain/rbac.py.
Roles
| Role | Who | Decides |
|---|---|---|
Use Case Team (use_case) |
Asks for the data product and lives with what it promises. Writes the brief, states the requirements, and signs the contract. | the brief, requirements, the contract signature |
Source System (source_system) |
Owns data somebody wants. Signs their section of the data contract's v0.1 and the access request — and is the only role that can, because a team cannot approve its own ask. | the data contract v0.1, access requests |
Data Hub (data_hub) |
Builds the product: the design, the model, the contract text, the release. Accountable for it working, not for whether it was wanted. | the design, descriptions, releases and promotion |
Administrator (admin) |
Everything, plus managing people. Exists so a workspace of one is usable; a real deployment gives it to as few people as possible. | everything |
Permissions
An administrator holds every permission. Anything not listed is denied.
| Permission | Lets you | Held by |
|---|---|---|
product.create |
Start a new data product. | Use Case Team, Data Hub |
product.edit |
Change a product's delivery context: freshness, history, retention, sensitivity, consumers and business questions. | Use Case Team, Data Hub |
requirement.write |
Write, revise and retire requirements, and accept drafted ones. | Use Case Team, Data Hub |
source.scope |
Choose the source systems and tables a product draws on. | Use Case Team, Data Hub |
demand.send |
Send a source system's owner their section of the data contract v0.1. | Use Case Team, Data Hub |
access.raise |
Raise an access request for a source system. | Use Case Team, Data Hub |
demand.decide |
Sign your section of the data contract v0.1 — grant, grant with conditions, or deny — for a system you own. | Source System |
access.decide |
Approve or refuse an access request for a system you own. | Source System |
design.edit |
Change the data model. | Data Hub |
description.write |
Write what a column means to the business. | Data Hub, Use Case Team |
description.approve |
Sign off a column's business description. | Data Hub |
contract.write |
Draft and edit the data contract. | Data Hub |
agent.run |
Ask an agent for a draft. | Data Hub, Use Case Team |
release.build |
Build and validate a release, push the build plan to a tracker, and push quality checks to Databricks. | Data Hub |
release.promote |
Approve, promote and roll back a release. | Data Hub |
contract.sign |
Accept the data contract, and sign off the integration test, on behalf of the consumer. | Use Case Team |
user.manage |
Add people, change their roles, send sign-in links, and change connection settings. | Administrator |
A source owner may only answer for the system they own: holding the role is not the same as owning the data.