Documentation
¶
Overview ¶
Package bun provides a Bun ORM implementation of the store.Store interface.
Bun is a SQL-first Golang ORM for PostgreSQL, MySQL, MSSQL, and SQLite. This implementation supports PostgreSQL with TimescaleDB for time-series data and SQLite for lightweight deployments. The store uses proper relational schema with tables, indexes, and foreign keys, and includes a migration system for schema management.
Index ¶
- type Config
- type Driver
- type Store
- func (s *Store) Close() error
- func (s *Store) CountByTenant(ctx context.Context, tenantID string) (int, error)
- func (s *Store) CountDomainsByTenant(ctx context.Context, tenantID string) (int, error)
- func (s *Store) CountSecretsByTenant(ctx context.Context, tenantID string) (int, error)
- func (s *Store) CountTenants(ctx context.Context) (int, error)
- func (s *Store) CountTenantsByStatus(ctx context.Context, status admin.TenantStatus) (int, error)
- func (s *Store) Delete(ctx context.Context, tenantID string, instanceID id.ID) error
- func (s *Store) DeleteCertificate(ctx context.Context, tenantID string, certID id.ID) error
- func (s *Store) DeleteCheck(ctx context.Context, tenantID string, checkID id.ID) error
- func (s *Store) DeleteDomain(ctx context.Context, tenantID string, domainID id.ID) error
- func (s *Store) DeleteRoute(ctx context.Context, tenantID string, routeID id.ID) error
- func (s *Store) DeleteSecret(ctx context.Context, tenantID string, instanceID id.ID, key string) error
- func (s *Store) DeleteTenant(ctx context.Context, tenantID string) error
- func (s *Store) GetByID(ctx context.Context, tenantID string, instanceID id.ID) (*instance.Instance, error)
- func (s *Store) GetBySlug(ctx context.Context, tenantID string, slug string) (*instance.Instance, error)
- func (s *Store) GetCertificate(ctx context.Context, tenantID string, certID id.ID) (*network.Certificate, error)
- func (s *Store) GetCheck(ctx context.Context, tenantID string, checkID id.ID) (*health.HealthCheck, error)
- func (s *Store) GetDeployment(ctx context.Context, tenantID string, deployID id.ID) (*deploy.Deployment, error)
- func (s *Store) GetDomain(ctx context.Context, tenantID string, domainID id.ID) (*network.Domain, error)
- func (s *Store) GetDomainByHostname(ctx context.Context, hostname string) (*network.Domain, error)
- func (s *Store) GetLatestResourceSnapshot(ctx context.Context, tenantID string, instanceID id.ID) (*telemetry.ResourceSnapshot, error)
- func (s *Store) GetLatestResult(ctx context.Context, tenantID string, checkID id.ID) (*health.HealthResult, error)
- func (s *Store) GetRelease(ctx context.Context, tenantID string, releaseID id.ID) (*deploy.Release, error)
- func (s *Store) GetRoute(ctx context.Context, tenantID string, routeID id.ID) (*network.Route, error)
- func (s *Store) GetSecretByKey(ctx context.Context, tenantID string, instanceID id.ID, key string) (*secrets.Secret, error)
- func (s *Store) GetTenant(ctx context.Context, tenantID string) (*admin.Tenant, error)
- func (s *Store) GetTenantBySlug(ctx context.Context, slug string) (*admin.Tenant, error)
- func (s *Store) Insert(ctx context.Context, inst *instance.Instance) error
- func (s *Store) InsertAuditEntry(ctx context.Context, entry *admin.AuditEntry) error
- func (s *Store) InsertCertificate(ctx context.Context, cert *network.Certificate) error
- func (s *Store) InsertCheck(ctx context.Context, check *health.HealthCheck) error
- func (s *Store) InsertDeployment(ctx context.Context, d *deploy.Deployment) error
- func (s *Store) InsertDomain(ctx context.Context, domain *network.Domain) error
- func (s *Store) InsertLogs(ctx context.Context, logs []telemetry.LogEntry) error
- func (s *Store) InsertMetrics(ctx context.Context, metrics []telemetry.Metric) error
- func (s *Store) InsertRelease(ctx context.Context, r *deploy.Release) error
- func (s *Store) InsertResourceSnapshot(ctx context.Context, snap *telemetry.ResourceSnapshot) error
- func (s *Store) InsertResult(ctx context.Context, result *health.HealthResult) error
- func (s *Store) InsertRoute(ctx context.Context, route *network.Route) error
- func (s *Store) InsertSecret(ctx context.Context, secret *secrets.Secret) error
- func (s *Store) InsertTenant(ctx context.Context, tenant *admin.Tenant) error
- func (s *Store) InsertTraces(ctx context.Context, traces []telemetry.Trace) error
- func (s *Store) List(ctx context.Context, tenantID string, opts instance.ListOptions) (*instance.ListResult, error)
- func (s *Store) ListCertificates(ctx context.Context, tenantID string, instanceID id.ID) ([]network.Certificate, error)
- func (s *Store) ListCertificatesByDomain(ctx context.Context, tenantID string, domainID id.ID) ([]network.Certificate, error)
- func (s *Store) ListChecks(ctx context.Context, tenantID string, instanceID id.ID) ([]health.HealthCheck, error)
- func (s *Store) ListDeployments(ctx context.Context, tenantID string, instanceID id.ID, ...) (*deploy.DeployListResult, error)
- func (s *Store) ListDomains(ctx context.Context, tenantID string, instanceID id.ID) ([]network.Domain, error)
- func (s *Store) ListReleases(ctx context.Context, tenantID string, instanceID id.ID, ...) (*deploy.ReleaseListResult, error)
- func (s *Store) ListResourceSnapshots(ctx context.Context, tenantID string, instanceID id.ID, ...) ([]telemetry.ResourceSnapshot, error)
- func (s *Store) ListResults(ctx context.Context, tenantID string, checkID id.ID, ...) ([]health.HealthResult, error)
- func (s *Store) ListRoutes(ctx context.Context, tenantID string, instanceID id.ID) ([]network.Route, error)
- func (s *Store) ListSecrets(ctx context.Context, tenantID string, instanceID id.ID) ([]secrets.Secret, error)
- func (s *Store) ListTenants(ctx context.Context, opts admin.ListTenantsOptions) (*admin.TenantListResult, error)
- func (s *Store) Migrate(ctx context.Context) error
- func (s *Store) NextReleaseVersion(ctx context.Context, tenantID string, instanceID id.ID) (int, error)
- func (s *Store) Ping(ctx context.Context) error
- func (s *Store) QueryAuditLog(ctx context.Context, opts admin.AuditQuery) (*admin.AuditResult, error)
- func (s *Store) QueryLogs(ctx context.Context, q telemetry.LogQuery) ([]telemetry.LogEntry, error)
- func (s *Store) QueryMetrics(ctx context.Context, q telemetry.MetricQuery) ([]telemetry.Metric, error)
- func (s *Store) QueryTraces(ctx context.Context, q telemetry.TraceQuery) ([]telemetry.Trace, error)
- func (s *Store) Update(ctx context.Context, inst *instance.Instance) error
- func (s *Store) UpdateCertificate(ctx context.Context, cert *network.Certificate) error
- func (s *Store) UpdateCheck(ctx context.Context, check *health.HealthCheck) error
- func (s *Store) UpdateDeployment(ctx context.Context, d *deploy.Deployment) error
- func (s *Store) UpdateDomain(ctx context.Context, domain *network.Domain) error
- func (s *Store) UpdateRoute(ctx context.Context, route *network.Route) error
- func (s *Store) UpdateSecret(ctx context.Context, secret *secrets.Secret) error
- func (s *Store) UpdateTenant(ctx context.Context, tenant *admin.Tenant) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Driver specifies the database driver (postgres or sqlite).
Driver Driver `default:"postgres" env:"CP_BUN_DRIVER" json:"driver"`
// DSN is the database connection string.
DSN string `env:"CP_BUN_DSN" json:"dsn"`
// MaxOpenConns is the maximum number of open connections.
MaxOpenConns int `default:"25" env:"CP_BUN_MAX_OPEN_CONNS" json:"max_open_conns"`
// MaxIdleConns is the maximum number of idle connections.
MaxIdleConns int `default:"5" env:"CP_BUN_MAX_IDLE_CONNS" json:"max_idle_conns"`
// ConnMaxLifetime is the maximum lifetime of a connection.
ConnMaxLifetime time.Duration `default:"5m" env:"CP_BUN_CONN_MAX_LIFETIME" json:"conn_max_lifetime"`
// ConnMaxIdleTime is the maximum idle time of a connection.
ConnMaxIdleTime time.Duration `default:"1m" env:"CP_BUN_CONN_MAX_IDLE_TIME" json:"conn_max_idle_time"`
}
Config holds the configuration for the Bun store.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store is the Bun SQL implementation of store.Store.
func (*Store) CountByTenant ¶
func (*Store) CountDomainsByTenant ¶
func (*Store) CountSecretsByTenant ¶
func (*Store) CountTenantsByStatus ¶
func (*Store) DeleteCertificate ¶
func (*Store) DeleteCheck ¶
func (*Store) DeleteDomain ¶
func (*Store) DeleteRoute ¶
func (*Store) DeleteSecret ¶
func (*Store) DeleteTenant ¶
func (*Store) GetCertificate ¶
func (*Store) GetDeployment ¶
func (*Store) GetDomainByHostname ¶
func (*Store) GetLatestResourceSnapshot ¶
func (*Store) GetLatestResult ¶
func (*Store) GetRelease ¶
func (*Store) GetSecretByKey ¶
func (*Store) GetTenantBySlug ¶
func (*Store) InsertAuditEntry ¶
func (*Store) InsertCertificate ¶
func (*Store) InsertCheck ¶
func (*Store) InsertDeployment ¶
func (*Store) InsertDomain ¶
func (*Store) InsertLogs ¶
func (*Store) InsertMetrics ¶
func (*Store) InsertRelease ¶
func (*Store) InsertResourceSnapshot ¶
func (*Store) InsertResult ¶
func (*Store) InsertRoute ¶
func (*Store) InsertSecret ¶
func (*Store) InsertTenant ¶
func (*Store) InsertTraces ¶
func (*Store) List ¶
func (s *Store) List(ctx context.Context, tenantID string, opts instance.ListOptions) (*instance.ListResult, error)
func (*Store) ListCertificates ¶
func (*Store) ListCertificatesByDomain ¶
func (*Store) ListChecks ¶
func (*Store) ListDeployments ¶
func (*Store) ListDomains ¶
func (*Store) ListReleases ¶
func (*Store) ListResourceSnapshots ¶
func (*Store) ListResults ¶
func (*Store) ListRoutes ¶
func (*Store) ListSecrets ¶
func (*Store) ListTenants ¶
func (s *Store) ListTenants(ctx context.Context, opts admin.ListTenantsOptions) (*admin.TenantListResult, error)
func (*Store) NextReleaseVersion ¶
func (*Store) QueryAuditLog ¶
func (s *Store) QueryAuditLog(ctx context.Context, opts admin.AuditQuery) (*admin.AuditResult, error)
func (*Store) QueryMetrics ¶
func (*Store) QueryTraces ¶
func (*Store) UpdateCertificate ¶
func (*Store) UpdateCheck ¶
func (*Store) UpdateDeployment ¶
func (*Store) UpdateDomain ¶
func (*Store) UpdateRoute ¶
func (*Store) UpdateSecret ¶
Click to show internal directories.
Click to hide internal directories.