Domains
The Domains resource (client.domains) provides methods for managing data domains — logical groupings of data products by business function.
Methods
list(org_id, *, parent_id=, include_children=False)
List all domains in an organization.
| Parameter | Type | Default | Description |
|---|---|---|---|
org_id | UUID | required | Organization ID |
parent_id | UUID | None | None | Filter by parent domain |
include_children | bool | False | Include sub-domains |
Returns: list[Domain]
domains = await client.domains.list(org_id)
for domain in domains:
print(f"{domain.icon} {domain.name}: {domain.product_count} products")
get(org_id, domain_id)
Get a domain by ID.
Returns: Domain
create(org_id, *, name, description=, icon=, owner_id=, steward_ids=, parent_id=)
Create a new data domain.
| Parameter | Type | Default | Description |
|---|---|---|---|
name | str | required | Domain name |
description | str | None | None | Description |
icon | str | None | None | Emoji icon |
owner_id | UUID | None | None | Owner user ID |
steward_ids | list[UUID] | None | None | Steward user IDs |
parent_id | UUID | None | None | Parent domain (for sub-domains) |
Returns: Domain
domain = await client.domains.create(
org_id,
name="Revenue Recognition",
icon="📊",
owner_id=cfo_user_id,
parent_id=finance_domain_id,
)
update(org_id, domain_id, **fields)
Update a domain.
Returns: Domain
delete(org_id, domain_id)
Delete a domain. Products are unlinked but not deleted.
Returns: None
assign_products(org_id, domain_id, product_ids)
Assign products to a domain.
| Parameter | Type | Description |
|---|---|---|
product_ids | list[UUID] | Product UUIDs to assign |
Returns: Domain
await client.domains.assign_products(org_id, domain_id, [product_1_id, product_2_id])
remove_product(org_id, domain_id, product_id)
Remove a product from a domain.
Returns: None
scorecard(org_id, domain_id)
Get the governance scorecard for a domain.
Returns: DomainScorecard with documentation_coverage, ownership_coverage, quality_coverage, contract_coverage, overall_score
scorecard = await client.domains.scorecard(org_id, domain_id)
print(f"Overall: {scorecard.overall_score:.0%}")
print(f"Docs: {scorecard.documentation_coverage:.0%}")
print(f"Quality: {scorecard.quality_coverage:.0%}")