Skip to main content

Catalog

A data domain: a catalog with its storage location, an owner group and grants.

Spec​

FieldTypeRequiredDefaultDescriptionConstraints
spec.descriptionstring (nullable)Nomax 500
spec.displayNamestring (nullable)Nomax 100
spec.grantsarray of objectNo[]max 50
spec.grants[].groupstringYesmin 1, max 64; pattern ^[A-Za-z0-9][A-Za-z0-9._-]*$
spec.grants[].verbstringYesWhat a grant lets a group do with a catalog. Six verbs exist; use belongs to compute (SqlWarehouse) and is not a data verb. There is no deny, no ALL PRIVILEGES and no per-column verb.browse, select, write, create, manage
spec.lakehouseRefobjectYesThe Lakehouse that hosts a catalog or a warehouse.
spec.lakehouseRef.namestringYesmin 1, max 63; pattern ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
spec.managedAccessbooleanNofalseTrue: the owner cannot grant on this catalog; only platform administrators can.
spec.ownerstringYesExactly one group. Ownership means manage and does not mean select.min 1, max 64; pattern ^[A-Za-z0-9][A-Za-z0-9._-]*$
spec.storageobject (nullable)NoWhere a catalog's data files live. Omitted: the Lakehouse's storage defaults.
spec.storage.bucketstring (nullable)NoAn isolated bucket per catalog.min 3, max 63; pattern ^[a-z0-9][a-z0-9.-]*[a-z0-9]$
spec.storage.credentialSecretRefobject (nullable)NoThe per-catalog storage identity. A reference only: the Secret is never part of this resource.
spec.storage.credentialSecretRef.keystringYesmin 1, max 253; pattern ^[-._a-zA-Z0-9]+$
spec.storage.credentialSecretRef.namestringYesmin 1, max 253; pattern ^[a-z0-9]([-a-z0-9.]*[a-z0-9])?$
spec.storage.keyPrefixstring (nullable)NoRequired where all catalogs share one bucket (the demo profile); no leading slash, no ...max 512; pattern ^[A-Za-z0-9][A-Za-z0-9_./-]*$

Status​

FieldTypeRequiredDefaultDescriptionConstraints
status.catalogNamestring (nullable)NoThe Trino catalog name actually rendered.
status.conditionsarray of objectNo[]
status.conditions[].lastTransitionTimestring (nullable)No
status.conditions[].messagestring (nullable)No
status.conditions[].observedGenerationinteger (nullable)Noformat int64
status.conditions[].reasonstring (nullable)No
status.conditions[].statusstringYes
status.conditions[].typestringYes
status.observedGenerationinteger (nullable)Noformat int64
status.phasestringNo""
status.warehouseIdstring (nullable)NoThe Lakekeeper warehouse id, so Nova and the access bridge never guess it by name.

Validation rules​

  • each group may hold each verb once
  • storage.keyPrefix must not contain .. or //