Skip to main content

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.

ParameterTypeDefaultDescription
org_idUUIDrequiredOrganization ID
parent_idUUID | NoneNoneFilter by parent domain
include_childrenboolFalseInclude 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.

ParameterTypeDefaultDescription
namestrrequiredDomain name
descriptionstr | NoneNoneDescription
iconstr | NoneNoneEmoji icon
owner_idUUID | NoneNoneOwner user ID
steward_idslist[UUID] | NoneNoneSteward user IDs
parent_idUUID | NoneNoneParent 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.

ParameterTypeDescription
product_idslist[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%}")