Documentation
¶
Index ¶
- Variables
- func HashPassword(password string) (string, error)
- func SecretRefEmpty(ref SecretRef) bool
- func ValidateManagedWarehouseSecretRefs(orgID, defaultNamespace string, warehouse *ManagedWarehouseConfig) error
- func ValidateTenantSecretRef(orgID, tenantNamespace, defaultNamespace, field string, ref SecretRef) error
- type ConfigStore
- func (cs *ConfigStore) ClaimHotIdleWorker(ownerCPInstanceID, orgID string) (*WorkerRecord, error)
- func (cs *ConfigStore) ClaimIdleWorker(ownerCPInstanceID, orgID string, maxOrgWorkers int) (*WorkerRecord, error)
- func (cs *ConfigStore) CloseFlightSessionRecord(sessionToken string, closedAt time.Time) error
- func (cs *ConfigStore) CreateNeutralWarmWorkerSlot(ownerCPInstanceID, podNamePrefix string, ...) (*WorkerRecord, error)
- func (cs *ConfigStore) CreateSpawningWorkerSlot(ownerCPInstanceID, orgID string, ownerEpoch int64, podNamePrefix string, ...) (*WorkerRecord, error)
- func (cs *ConfigStore) DB() *gorm.DB
- func (cs *ConfigStore) ExpireControlPlaneInstances(cutoff time.Time) (int64, error)
- func (cs *ConfigStore) ExpireDrainingControlPlaneInstances(before time.Time) (int64, error)
- func (cs *ConfigStore) ExpireFlightSessionRecords(before time.Time) (int64, error)
- func (cs *ConfigStore) FindAndValidateUser(username, password string) (string, bool)
- func (cs *ConfigStore) GetControlPlaneInstance(id string) (*ControlPlaneInstance, error)
- func (cs *ConfigStore) GetFlightSessionRecord(sessionToken string) (*FlightSessionRecord, error)
- func (cs *ConfigStore) GetWorkerRecord(workerID int) (*WorkerRecord, error)
- func (cs *ConfigStore) ListExpiredHotIdleWorkers(before time.Time) ([]WorkerRecord, error)
- func (cs *ConfigStore) ListOrphanedWorkers(before time.Time) ([]WorkerRecord, error)
- func (cs *ConfigStore) ListStuckWorkers(spawningBefore, activatingBefore time.Time) ([]WorkerRecord, error)
- func (cs *ConfigStore) ListWarehousesByStates(states []ManagedWarehouseProvisioningState) ([]ManagedWarehouse, error)
- func (cs *ConfigStore) OnChange(fn func(old, new *Snapshot))
- func (cs *ConfigStore) Reload() error
- func (cs *ConfigStore) ResolveDatabase(database string) string
- func (cs *ConfigStore) RetireHotIdleWorker(workerID int) (bool, error)
- func (cs *ConfigStore) RuntimeSchema() string
- func (cs *ConfigStore) Snapshot() *Snapshot
- func (cs *ConfigStore) Start(ctx context.Context)
- func (cs *ConfigStore) TakeOverWorker(workerID int, ownerCPInstanceID, orgID string, expectedOwnerEpoch int64) (*WorkerRecord, error)
- func (cs *ConfigStore) TouchFlightSessionRecord(sessionToken string, lastSeenAt time.Time) error
- func (cs *ConfigStore) UpdateWarehouseState(orgID string, expectedState ManagedWarehouseProvisioningState, ...) error
- func (cs *ConfigStore) UpsertControlPlaneInstance(instance *ControlPlaneInstance) error
- func (cs *ConfigStore) UpsertFlightSessionRecord(record *FlightSessionRecord) error
- func (cs *ConfigStore) UpsertWorkerRecord(record *WorkerRecord) error
- func (cs *ConfigStore) ValidateOrgUser(orgID, username, password string) bool
- type ControlPlaneInstance
- type ControlPlaneInstanceState
- type DuckLakeConfig
- type FlightSessionRecord
- type FlightSessionState
- type GlobalConfig
- type ManagedWarehouse
- type ManagedWarehouseConfig
- type ManagedWarehouseDatabase
- type ManagedWarehouseMetadataStore
- type ManagedWarehouseProvisioningState
- type ManagedWarehouseS3
- type ManagedWarehouseWorkerIdentity
- type Org
- type OrgConfig
- type OrgUser
- type OrgUserKey
- type QueryLogConfig
- type RateLimitConfig
- type SecretRef
- type Snapshot
- type WorkerRecord
- type WorkerState
Constants ¶
This section is empty.
Variables ¶
var ErrWorkerOwnerEpochMismatch = errors.New("worker owner epoch mismatch")
Functions ¶
func HashPassword ¶
HashPassword hashes a plaintext password using bcrypt.
func SecretRefEmpty ¶
SecretRefEmpty reports whether the ref is entirely unset.
func ValidateManagedWarehouseSecretRefs ¶
func ValidateManagedWarehouseSecretRefs(orgID, defaultNamespace string, warehouse *ManagedWarehouseConfig) error
ValidateManagedWarehouseSecretRefs validates every secret reference carried by a managed-warehouse config against the tenant namespace/prefix rules.
func ValidateTenantSecretRef ¶
func ValidateTenantSecretRef(orgID, tenantNamespace, defaultNamespace, field string, ref SecretRef) error
ValidateTenantSecretRef constrains shared-worker secret refs to tenant-owned locations so one org cannot point activation at another org's secret.
Types ¶
type ConfigStore ¶
type ConfigStore struct {
// contains filtered or unexported fields
}
ConfigStore manages configuration stored in a PostgreSQL database.
func NewConfigStore ¶
func NewConfigStore(connStr string, pollInterval time.Duration) (*ConfigStore, error)
NewConfigStore connects to the PostgreSQL config store, runs migrations, ensures singleton rows exist, and loads the initial snapshot.
func (*ConfigStore) ClaimHotIdleWorker ¶
func (cs *ConfigStore) ClaimHotIdleWorker(ownerCPInstanceID, orgID string) (*WorkerRecord, error)
ClaimHotIdleWorker atomically claims one hot-idle worker row that was previously activated for the given org. The selected row is locked with SKIP LOCKED and transitioned to reserved while incrementing owner_epoch.
func (*ConfigStore) ClaimIdleWorker ¶
func (cs *ConfigStore) ClaimIdleWorker(ownerCPInstanceID, orgID string, maxOrgWorkers int) (*WorkerRecord, error)
ClaimIdleWorker atomically claims one idle worker row for a control-plane instance. The selected row is locked with SKIP LOCKED and transitioned to reserved while incrementing owner_epoch. When maxOrgWorkers is set, org claims are serialized under the same advisory lock used for spawn-slot allocation.
func (*ConfigStore) CloseFlightSessionRecord ¶
func (cs *ConfigStore) CloseFlightSessionRecord(sessionToken string, closedAt time.Time) error
func (*ConfigStore) CreateNeutralWarmWorkerSlot ¶
func (cs *ConfigStore) CreateNeutralWarmWorkerSlot(ownerCPInstanceID, podNamePrefix string, targetWarmWorkers, maxGlobalWorkers int) (*WorkerRecord, error)
CreateNeutralWarmWorkerSlot creates a durable spawning worker row for the shared neutral warm pool under advisory-lock protected cluster-wide warm-target and global capacity checks. A nil result means capacity already satisfies the target or the global worker cap blocked the spawn.
func (*ConfigStore) CreateSpawningWorkerSlot ¶
func (cs *ConfigStore) CreateSpawningWorkerSlot(ownerCPInstanceID, orgID string, ownerEpoch int64, podNamePrefix string, maxOrgWorkers, maxGlobalWorkers int) (*WorkerRecord, error)
CreateSpawningWorkerSlot creates a durable spawning worker row under advisory-lock protected org/global capacity checks. A nil result means capacity blocked the spawn.
func (*ConfigStore) DB ¶
func (cs *ConfigStore) DB() *gorm.DB
DB exposes the GORM database for direct CRUD operations (used by admin API).
func (*ConfigStore) ExpireControlPlaneInstances ¶
func (cs *ConfigStore) ExpireControlPlaneInstances(cutoff time.Time) (int64, error)
ExpireControlPlaneInstances marks stale control-plane instance rows as expired.
func (*ConfigStore) ExpireDrainingControlPlaneInstances ¶
func (cs *ConfigStore) ExpireDrainingControlPlaneInstances(before time.Time) (int64, error)
ExpireDrainingControlPlaneInstances marks draining control-plane rows expired once their draining_at timestamp exceeds the configured handover timeout.
func (*ConfigStore) ExpireFlightSessionRecords ¶
func (cs *ConfigStore) ExpireFlightSessionRecords(before time.Time) (int64, error)
ExpireFlightSessionRecords marks reconnectable Flight sessions expired when their reconnect deadline has passed.
func (*ConfigStore) FindAndValidateUser ¶
func (cs *ConfigStore) FindAndValidateUser(username, password string) (string, bool)
FindAndValidateUser scans all orgs to find and authenticate a user by username/password. This is used for Flight SQL which doesn't have SNI-based org routing.
func (*ConfigStore) GetControlPlaneInstance ¶
func (cs *ConfigStore) GetControlPlaneInstance(id string) (*ControlPlaneInstance, error)
GetControlPlaneInstance returns a runtime control-plane instance row by id.
func (*ConfigStore) GetFlightSessionRecord ¶
func (cs *ConfigStore) GetFlightSessionRecord(sessionToken string) (*FlightSessionRecord, error)
GetFlightSessionRecord returns a durable Flight reconnect row by session token.
func (*ConfigStore) GetWorkerRecord ¶
func (cs *ConfigStore) GetWorkerRecord(workerID int) (*WorkerRecord, error)
GetWorkerRecord returns a runtime worker row by worker id.
func (*ConfigStore) ListExpiredHotIdleWorkers ¶
func (cs *ConfigStore) ListExpiredHotIdleWorkers(before time.Time) ([]WorkerRecord, error)
ListExpiredHotIdleWorkers returns hot-idle workers whose updated_at timestamp is at or before the given cutoff time.
func (*ConfigStore) ListOrphanedWorkers ¶
func (cs *ConfigStore) ListOrphanedWorkers(before time.Time) ([]WorkerRecord, error)
ListOrphanedWorkers returns workers whose owning control-plane instance has already been marked expired long enough ago to pass the orphan grace cutoff. Retired/lost rows are included so a replacement janitor can finish deleting worker pods when the original control plane died after persisting retirement but before the Kubernetes delete completed.
func (*ConfigStore) ListStuckWorkers ¶
func (cs *ConfigStore) ListStuckWorkers(spawningBefore, activatingBefore time.Time) ([]WorkerRecord, error)
ListStuckWorkers returns workers stuck in spawning, reserved, or activating beyond their respective cutoffs.
func (*ConfigStore) ListWarehousesByStates ¶
func (cs *ConfigStore) ListWarehousesByStates(states []ManagedWarehouseProvisioningState) ([]ManagedWarehouse, error)
ListWarehousesByStates returns all warehouses with a state matching one of the given values. This is a direct DB query, not snapshot-based, for use by the provisioning controller.
func (*ConfigStore) OnChange ¶
func (cs *ConfigStore) OnChange(fn func(old, new *Snapshot))
OnChange registers a callback that fires when the config snapshot changes.
func (*ConfigStore) Reload ¶
func (cs *ConfigStore) Reload() error
Reload forces an immediate config reload from the database.
func (*ConfigStore) ResolveDatabase ¶
func (cs *ConfigStore) ResolveDatabase(database string) string
ResolveDatabase maps a database name to an org ID. Returns "" if not found.
func (*ConfigStore) RetireHotIdleWorker ¶
func (cs *ConfigStore) RetireHotIdleWorker(workerID int) (bool, error)
RetireHotIdleWorker atomically transitions a worker from hot_idle to retired. Returns true if the transition happened, false if the worker was no longer hot_idle (e.g. it was reclaimed by another CP pod between the list query and this call).
func (*ConfigStore) RuntimeSchema ¶
func (cs *ConfigStore) RuntimeSchema() string
RuntimeSchema returns the dedicated runtime coordination schema name.
func (*ConfigStore) Snapshot ¶
func (cs *ConfigStore) Snapshot() *Snapshot
Snapshot returns the current config snapshot.
func (*ConfigStore) Start ¶
func (cs *ConfigStore) Start(ctx context.Context)
Start begins the polling goroutine that periodically reloads config.
func (*ConfigStore) TakeOverWorker ¶
func (cs *ConfigStore) TakeOverWorker(workerID int, ownerCPInstanceID, orgID string, expectedOwnerEpoch int64) (*WorkerRecord, error)
TakeOverWorker transfers durable worker ownership to a new control-plane instance when the caller still has the expected prior owner_epoch.
func (*ConfigStore) TouchFlightSessionRecord ¶
func (cs *ConfigStore) TouchFlightSessionRecord(sessionToken string, lastSeenAt time.Time) error
func (*ConfigStore) UpdateWarehouseState ¶
func (cs *ConfigStore) UpdateWarehouseState(orgID string, expectedState ManagedWarehouseProvisioningState, updates map[string]interface{}) error
UpdateWarehouseState performs a compare-and-swap update on a warehouse row. Only updates if the current state matches expectedState, preventing races.
func (*ConfigStore) UpsertControlPlaneInstance ¶
func (cs *ConfigStore) UpsertControlPlaneInstance(instance *ControlPlaneInstance) error
UpsertControlPlaneInstance inserts or updates a runtime control-plane instance row.
func (*ConfigStore) UpsertFlightSessionRecord ¶
func (cs *ConfigStore) UpsertFlightSessionRecord(record *FlightSessionRecord) error
UpsertFlightSessionRecord inserts or updates a durable Flight reconnect row.
func (*ConfigStore) UpsertWorkerRecord ¶
func (cs *ConfigStore) UpsertWorkerRecord(record *WorkerRecord) error
UpsertWorkerRecord inserts or updates a runtime worker row.
func (*ConfigStore) ValidateOrgUser ¶
func (cs *ConfigStore) ValidateOrgUser(orgID, username, password string) bool
ValidateOrgUser checks username/password scoped to a specific org.
type ControlPlaneInstance ¶
type ControlPlaneInstance struct {
ID string `gorm:"primaryKey;size:255" json:"id"`
PodName string `gorm:"size:255;not null" json:"pod_name"`
PodUID string `gorm:"size:255;not null" json:"pod_uid"`
BootID string `gorm:"size:255;not null" json:"boot_id"`
State ControlPlaneInstanceState `gorm:"size:32;not null" json:"state"`
StartedAt time.Time `json:"started_at"`
LastHeartbeatAt time.Time `gorm:"index" json:"last_heartbeat_at"`
DrainingAt *time.Time `json:"draining_at,omitempty"`
ExpiredAt *time.Time `json:"expired_at,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
ControlPlaneInstance is a runtime coordination record for one control-plane process. These rows live in the runtime schema, not the snapshot-backed config tables.
func (ControlPlaneInstance) TableName ¶
func (ControlPlaneInstance) TableName() string
type ControlPlaneInstanceState ¶
type ControlPlaneInstanceState string
ControlPlaneInstanceState describes the liveness state of a control-plane instance.
const ( ControlPlaneInstanceStateActive ControlPlaneInstanceState = "active" ControlPlaneInstanceStateDraining ControlPlaneInstanceState = "draining" ControlPlaneInstanceStateExpired ControlPlaneInstanceState = "expired" )
type DuckLakeConfig ¶
type DuckLakeConfig struct {
ID uint `gorm:"primaryKey" json:"-"`
MetadataStore string `gorm:"size:1024" json:"metadata_store"`
ObjectStore string `gorm:"size:1024" json:"object_store"`
DataPath string `gorm:"size:1024" json:"data_path"`
S3Provider string `gorm:"size:64" json:"s3_provider"`
S3Endpoint string `gorm:"size:512" json:"s3_endpoint"`
S3AccessKey string `gorm:"size:255" json:"s3_access_key"`
S3SecretKey string `gorm:"size:255" json:"-"`
S3Region string `gorm:"size:64" json:"s3_region"`
S3UseSSL bool `json:"s3_use_ssl"`
S3URLStyle string `gorm:"size:16" json:"s3_url_style"`
S3Chain string `gorm:"size:255" json:"s3_chain"`
S3Profile string `gorm:"size:255" json:"s3_profile"`
UpdatedAt time.Time `json:"updated_at"`
}
DuckLakeConfig is a singleton row (ID=1) for legacy cluster-wide DuckLake settings. In multi-tenant mode, the managed-warehouse contract is the intended per-org source of truth.
func (DuckLakeConfig) TableName ¶
func (DuckLakeConfig) TableName() string
type FlightSessionRecord ¶
type FlightSessionRecord struct {
SessionToken string `gorm:"primaryKey;size:255" json:"session_token"`
Username string `gorm:"size:255;not null" json:"username"`
OrgID string `gorm:"size:255;not null" json:"org_id"`
WorkerID int `gorm:"not null;index" json:"worker_id"`
OwnerEpoch int64 `gorm:"not null" json:"owner_epoch"`
CPInstanceID string `gorm:"size:255" json:"cp_instance_id"`
State FlightSessionState `gorm:"size:32;not null" json:"state"`
ExpiresAt time.Time `gorm:"index" json:"expires_at"`
LastSeenAt time.Time `json:"last_seen_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
FlightSessionRecord is the durable reconnect record for Flight sessions.
func (FlightSessionRecord) TableName ¶
func (FlightSessionRecord) TableName() string
type FlightSessionState ¶
type FlightSessionState string
FlightSessionState is the durable reconnect state for Flight-only sessions.
const ( FlightSessionStateActive FlightSessionState = "active" FlightSessionStateReconnecting FlightSessionState = "reconnecting" FlightSessionStateExpired FlightSessionState = "expired" FlightSessionStateClosed FlightSessionState = "closed" )
type GlobalConfig ¶
type GlobalConfig struct {
ID uint `gorm:"primaryKey" json:"-"`
MemoryBudget string `gorm:"size:32" json:"memory_budget"`
MemoryRebalance bool `json:"memory_rebalance"`
MaxConnections int `json:"max_connections"`
IdleTimeoutS int `json:"idle_timeout_s"`
WorkerQueueTimeoutS int `json:"worker_queue_timeout_s"`
WorkerIdleTimeoutS int `json:"worker_idle_timeout_s"`
Extensions string `gorm:"size:1024" json:"extensions"`
UpdatedAt time.Time `json:"updated_at"`
}
GlobalConfig is a singleton row (ID=1) for cluster-wide settings.
func (GlobalConfig) TableName ¶
func (GlobalConfig) TableName() string
type ManagedWarehouse ¶
type ManagedWarehouse struct {
OrgID string `gorm:"primaryKey;size:255" json:"org_id"`
Image string `gorm:"size:512" json:"image"`
AuroraMinACU float64 `json:"aurora_min_acu"`
AuroraMaxACU float64 `json:"aurora_max_acu"`
WarehouseDatabase ManagedWarehouseDatabase `gorm:"embedded;embeddedPrefix:warehouse_database_" json:"warehouse_database"`
MetadataStore ManagedWarehouseMetadataStore `gorm:"embedded;embeddedPrefix:metadata_store_" json:"metadata_store"`
S3 ManagedWarehouseS3 `gorm:"embedded;embeddedPrefix:s3_" json:"s3"`
WorkerIdentity ManagedWarehouseWorkerIdentity `gorm:"embedded;embeddedPrefix:worker_identity_" json:"worker_identity"`
WarehouseDatabaseCredentials SecretRef `gorm:"embedded;embeddedPrefix:warehouse_database_credentials_" json:"warehouse_database_credentials"`
MetadataStoreCredentials SecretRef `gorm:"embedded;embeddedPrefix:metadata_store_credentials_" json:"metadata_store_credentials"`
S3Credentials SecretRef `gorm:"embedded;embeddedPrefix:s3_credentials_" json:"s3_credentials"`
RuntimeConfig SecretRef `gorm:"embedded;embeddedPrefix:runtime_config_" json:"runtime_config"`
State ManagedWarehouseProvisioningState `gorm:"size:32" json:"state"`
StatusMessage string `gorm:"size:1024" json:"status_message"`
WarehouseDatabaseState ManagedWarehouseProvisioningState `gorm:"size:32" json:"warehouse_database_state"`
WarehouseDatabaseStatusMessage string `gorm:"size:1024" json:"warehouse_database_status_message"`
MetadataStoreState ManagedWarehouseProvisioningState `gorm:"size:32" json:"metadata_store_state"`
MetadataStoreStatusMessage string `gorm:"size:1024" json:"metadata_store_status_message"`
S3State ManagedWarehouseProvisioningState `gorm:"size:32" json:"s3_state"`
S3StatusMessage string `gorm:"size:1024" json:"s3_status_message"`
IdentityState ManagedWarehouseProvisioningState `gorm:"size:32" json:"identity_state"`
IdentityStatusMessage string `gorm:"size:1024" json:"identity_status_message"`
SecretsState ManagedWarehouseProvisioningState `gorm:"size:32" json:"secrets_state"`
SecretsStatusMessage string `gorm:"size:1024" json:"secrets_status_message"`
ProvisioningStartedAt *time.Time `json:"provisioning_started_at"`
ReadyAt *time.Time `json:"ready_at"`
FailedAt *time.Time `json:"failed_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
ManagedWarehouse is the config-store source of truth for an org's managed warehouse metadata.
func (ManagedWarehouse) TableName ¶
func (ManagedWarehouse) TableName() string
type ManagedWarehouseConfig ¶
type ManagedWarehouseConfig struct {
OrgID string
Image string
AuroraMinACU float64
AuroraMaxACU float64
WarehouseDatabase ManagedWarehouseDatabase
MetadataStore ManagedWarehouseMetadataStore
S3 ManagedWarehouseS3
WorkerIdentity ManagedWarehouseWorkerIdentity
WarehouseDatabaseCredentials SecretRef
MetadataStoreCredentials SecretRef
S3Credentials SecretRef
RuntimeConfig SecretRef
State ManagedWarehouseProvisioningState
StatusMessage string
WarehouseDatabaseState ManagedWarehouseProvisioningState
WarehouseDatabaseStatusMessage string
MetadataStoreState ManagedWarehouseProvisioningState
MetadataStoreStatusMessage string
S3State ManagedWarehouseProvisioningState
S3StatusMessage string
IdentityState ManagedWarehouseProvisioningState
IdentityStatusMessage string
SecretsState ManagedWarehouseProvisioningState
SecretsStatusMessage string
ReadyAt *time.Time
FailedAt *time.Time
}
ManagedWarehouseConfig is the in-memory snapshot view of an org's warehouse metadata.
type ManagedWarehouseDatabase ¶
type ManagedWarehouseDatabase struct {
Region string `gorm:"size:64" json:"region"`
Endpoint string `gorm:"size:512" json:"endpoint"`
Port int `json:"port"`
DatabaseName string `gorm:"size:255" json:"database_name"`
Username string `gorm:"size:255" json:"username"`
}
ManagedWarehouseDatabase stores primary warehouse DB metadata for an org.
type ManagedWarehouseMetadataStore ¶
type ManagedWarehouseMetadataStore struct {
Kind string `gorm:"size:64" json:"kind"`
Engine string `gorm:"size:64" json:"engine"`
Region string `gorm:"size:64" json:"region"`
Endpoint string `gorm:"size:512" json:"endpoint"`
Port int `json:"port"`
DatabaseName string `gorm:"size:255" json:"database_name"`
Username string `gorm:"size:255" json:"username"`
}
ManagedWarehouseMetadataStore stores org-scoped DuckLake metadata DB info.
type ManagedWarehouseProvisioningState ¶
type ManagedWarehouseProvisioningState string
ManagedWarehouseProvisioningState is an open string used for warehouse lifecycle status. The constants below are the canonical values used by current tooling, but callers may persist other states while provisioning workflows evolve.
const ( ManagedWarehouseStatePending ManagedWarehouseProvisioningState = "pending" ManagedWarehouseStateProvisioning ManagedWarehouseProvisioningState = "provisioning" ManagedWarehouseStateReady ManagedWarehouseProvisioningState = "ready" ManagedWarehouseStateFailed ManagedWarehouseProvisioningState = "failed" ManagedWarehouseStateDeleting ManagedWarehouseProvisioningState = "deleting" ManagedWarehouseStateDeleted ManagedWarehouseProvisioningState = "deleted" )
type ManagedWarehouseS3 ¶
type ManagedWarehouseS3 struct {
Provider string `gorm:"size:64" json:"provider"`
Region string `gorm:"size:64" json:"region"`
Bucket string `gorm:"size:255" json:"bucket"`
PathPrefix string `gorm:"size:1024" json:"path_prefix"`
Endpoint string `gorm:"size:512" json:"endpoint"`
UseSSL bool `json:"use_ssl"`
URLStyle string `gorm:"size:16" json:"url_style"`
}
ManagedWarehouseS3 stores object-store metadata for an org's warehouse.
type ManagedWarehouseWorkerIdentity ¶
type ManagedWarehouseWorkerIdentity struct {
Namespace string `gorm:"size:255" json:"namespace"`
ServiceAccountName string `gorm:"size:255" json:"service_account_name"`
IAMRoleARN string `gorm:"size:512" json:"iam_role_arn"`
}
ManagedWarehouseWorkerIdentity stores org-scoped worker identity metadata.
type Org ¶
type Org struct {
Name string `gorm:"primaryKey;size:255" json:"name"`
DatabaseName string `gorm:"size:255;uniqueIndex" json:"database_name"`
MaxWorkers int `gorm:"default:0" json:"max_workers"`
MemoryBudget string `gorm:"size:32" json:"memory_budget"`
IdleTimeoutS int `gorm:"default:0" json:"idle_timeout_s"`
Users []OrgUser `gorm:"foreignKey:OrgID;references:Name" json:"users,omitempty"`
Warehouse *ManagedWarehouse `gorm:"foreignKey:OrgID;references:Name;constraint:OnDelete:CASCADE" json:"warehouse,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
Org represents a tenant with per-org resource limits.
type OrgConfig ¶
type OrgConfig struct {
Name string
DatabaseName string
MaxWorkers int
MemoryBudget string
IdleTimeoutS int
Users map[string]string // username -> password
Warehouse *ManagedWarehouseConfig
}
OrgConfig is a convenience view combining org metadata with resource limits.
type OrgUser ¶
type OrgUser struct {
OrgID string `gorm:"primaryKey;size:255" json:"org_id"`
Username string `gorm:"primaryKey;size:255" json:"username"`
Password string `gorm:"size:255;not null" json:"-"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
OrgUser maps a username to an org with credentials.
type OrgUserKey ¶
OrgUserKey is the composite key for org-scoped user lookups.
type QueryLogConfig ¶
type QueryLogConfig struct {
ID uint `gorm:"primaryKey" json:"-"`
Enabled bool `json:"enabled"`
FlushIntervalS int `json:"flush_interval_s"`
BatchSize int `json:"batch_size"`
CompactIntervalS int `json:"compact_interval_s"`
DataInliningRowLimit int `json:"data_inlining_row_limit"`
UpdatedAt time.Time `json:"updated_at"`
}
QueryLogConfig is a singleton row (ID=1) for query logging.
func (QueryLogConfig) TableName ¶
func (QueryLogConfig) TableName() string
type RateLimitConfig ¶
type RateLimitConfig struct {
ID uint `gorm:"primaryKey" json:"-"`
MaxFailedAttempts int `json:"max_failed_attempts"`
FailedAttemptWindowS int `json:"failed_attempt_window_s"`
BanDurationS int `json:"ban_duration_s"`
MaxConnectionsPerIP int `json:"max_connections_per_ip"`
UpdatedAt time.Time `json:"updated_at"`
}
RateLimitConfig is a singleton row (ID=1) for rate limiting.
func (RateLimitConfig) TableName ¶
func (RateLimitConfig) TableName() string
type SecretRef ¶
type SecretRef struct {
Namespace string `gorm:"size:255" json:"namespace"`
Name string `gorm:"size:255" json:"name"`
Key string `gorm:"size:255" json:"key"`
}
SecretRef identifies a secret key without storing secret material in the config store.
type Snapshot ¶
type Snapshot struct {
Orgs map[string]*OrgConfig
DatabaseOrg map[string]string // database name -> org ID
OrgUserPassword map[OrgUserKey]string // (orgID, username) -> bcrypt hash
Global GlobalConfig
DuckLake DuckLakeConfig
RateLimit RateLimitConfig
QueryLog QueryLogConfig
}
Snapshot holds a point-in-time copy of all config data for fast lookups.
type WorkerRecord ¶
type WorkerRecord struct {
WorkerID int `gorm:"primaryKey" json:"worker_id"`
PodName string `gorm:"size:255;not null;uniqueIndex" json:"pod_name"`
PodUID string `gorm:"size:255" json:"pod_uid"`
State WorkerState `gorm:"size:32;not null;index" json:"state"`
OrgID string `gorm:"size:255;index" json:"org_id"`
OwnerCPInstanceID string `gorm:"size:255;index" json:"owner_cp_instance_id"`
OwnerEpoch int64 `gorm:"not null" json:"owner_epoch"`
ActivationStartedAt *time.Time `json:"activation_started_at,omitempty"`
LastHeartbeatAt time.Time `json:"last_heartbeat_at"`
RetireReason string `gorm:"size:64" json:"retire_reason"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
WorkerRecord is the durable runtime coordination record for one worker pod.
func (WorkerRecord) TableName ¶
func (WorkerRecord) TableName() string
type WorkerState ¶
type WorkerState string
WorkerState is the durable lifecycle state for a worker pod.
const ( WorkerStateSpawning WorkerState = "spawning" WorkerStateIdle WorkerState = "idle" WorkerStateReserved WorkerState = "reserved" WorkerStateActivating WorkerState = "activating" WorkerStateHot WorkerState = "hot" WorkerStateHotIdle WorkerState = "hot_idle" WorkerStateDraining WorkerState = "draining" WorkerStateRetired WorkerState = "retired" WorkerStateLost WorkerState = "lost" )