This document details the core data structures (Structs) defined in pangolin_core.
The root multi-tenancy isolation boundary.
id:Uuidname:Stringproperties:HashMap<String, String>
Physical storage backend configuration (S3, GCS, ADLS).
id:Uuidname:String(Unique per tenant)tenant_id:Uuidstorage_config:HashMap<String, String>vending_strategy:Option<VendingStrategy>use_sts:bool(Legacy flag)
Logical grouping for assets, maps to an Iceberg Catalog.
id:Uuid(For granular permissions)name:Stringcatalog_type:CatalogType(Local or Federated)warehouse_name:Option<String>storage_location:Option<String>federated_config:Option<FederatedCatalogConfig>properties:HashMap<String, String>
Hierarchical organization unit (db.schema).
name:Vec<String>(Path parts)properties:HashMap<String, String>
Managed data artifact.
id:Uuidname:Stringkind:AssetTypelocation:String(Object store URI)properties:HashMap<String, String>
Pointer to a commit history chain.
name:Stringhead_commit_id:Option<Uuid>branch_type:BranchTypeassets:Vec<String>(Visible asset names)
Named immutable reference to a commit.
name:Stringcommit_id:Uuid
Immutable record of atomic changes.
id:Uuidparent_id:Option<Uuid>timestamp:i64(Epoch)author:Stringmessage:Stringoperations:Vec<CommitOperation>(Put or Delete)
Human user profile.
id:Uuidusername:Stringemail:Stringpassword_hash:Option<String>(BCrypt)oauth_provider:Option<OAuthProvider>tenant_id:Option<Uuid>role:UserRoleactive:bool
Machine account for API key access.
id:Uuidname:Stringtenant_id:Uuidapi_key_hash:Stringrole:UserRolelast_used:Option<DateTime<Utc>>active:bool
A named group of permissions within a tenant.
id:Uuidname:Stringtenant_id:Uuidpermissions:Vec<PermissionGrant>
Directly assigned permission grant.
id:Uuiduser_id:Uuidscope:PermissionScopeactions:HashSet<Action>
Permission definition stored within a Role.
scope:PermissionScopeactions:HashSet<Action>
State tracking for branch reconciliation.
id:Uuidsource_branch:Stringtarget_branch:Stringbase_commit_id:Option<Uuid>status:MergeStatusconflicts:Vec<Uuid>
Governance metadata for an asset.
asset_id:Uuidowner:Stringtags:Vec<String>description:Option<String>
Workflow record for requesting asset access.
id:Uuidasset_id:Uuidrequester_id:Uuidstatus:String(Pending/Approved/Rejected)
Global configuration for a tenant.
allow_public_signup:Option<bool>default_warehouse_bucket:Option<String>default_retention_days:Option<i32>smtp_host:Option<String>, etc.
Performance metrics for federated catalogs.
last_synced_at:Option<DateTime<Utc>>sync_status:Stringtables_synced:i32