memory

package
v1.5.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2026 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package memory provides an in-memory implementation of the store.Store interface. It uses maps protected by a sync.RWMutex and is intended for unit tests and development environments.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store is the in-memory implementation of store.Store.

func New

func New() *Store

New creates a new in-memory store.

func (*Store) Close

func (s *Store) Close() error

Close is a no-op for the in-memory store.

func (*Store) CountByTenant

func (s *Store) CountByTenant(_ context.Context, tenantID string) (int, error)

func (*Store) CountDatacentersByTenant added in v1.3.0

func (s *Store) CountDatacentersByTenant(_ context.Context, tenantID string) (int, error)

CountDatacentersByTenant returns the total number of datacenters for a tenant.

func (*Store) CountDomainsByTenant

func (s *Store) CountDomainsByTenant(_ context.Context, tenantID string) (int, error)

func (*Store) CountInstancesByDatacenter added in v1.3.0

func (s *Store) CountInstancesByDatacenter(_ context.Context, tenantID string, datacenterID id.ID) (int, error)

CountInstancesByDatacenter returns the number of instances linked to a datacenter.

func (*Store) CountSecretsByTenant

func (s *Store) CountSecretsByTenant(_ context.Context, tenantID string) (int, error)

func (*Store) CountTenants

func (s *Store) CountTenants(_ context.Context) (int, error)

func (*Store) CountTenantsByStatus

func (s *Store) CountTenantsByStatus(_ context.Context, status admin.TenantStatus) (int, error)

func (*Store) Delete

func (s *Store) Delete(_ context.Context, tenantID string, instanceID id.ID) error

func (*Store) DeleteBootstrap added in v1.5.1

func (s *Store) DeleteBootstrap(_ context.Context, bootstrapID id.ID) error

DeleteBootstrap removes a row. Idempotent: deleting a row that doesn't exist is treated as success (matches the convergent-delete shape used elsewhere — re-running the reconciler after a partial failure should not error).

func (*Store) DeleteCertificate

func (s *Store) DeleteCertificate(_ context.Context, tenantID string, certID id.ID) error

func (*Store) DeleteCheck

func (s *Store) DeleteCheck(_ context.Context, tenantID string, checkID id.ID) error

func (*Store) DeleteDatacenter added in v1.3.0

func (s *Store) DeleteDatacenter(_ context.Context, tenantID string, datacenterID id.ID) error

DeleteDatacenter removes a datacenter from the store.

func (*Store) DeleteDomain

func (s *Store) DeleteDomain(_ context.Context, tenantID string, domainID id.ID) error

func (*Store) DeleteRoute

func (s *Store) DeleteRoute(_ context.Context, tenantID string, routeID id.ID) error

func (*Store) DeleteSecret

func (s *Store) DeleteSecret(_ context.Context, tenantID string, instanceID id.ID, key string) error

func (*Store) DeleteTemplate added in v1.3.0

func (s *Store) DeleteTemplate(_ context.Context, tenantID string, templateID id.ID) error

DeleteTemplate removes a template.

func (*Store) DeleteTenant

func (s *Store) DeleteTenant(_ context.Context, tenantID string) error

func (*Store) DeleteWorkload added in v1.5.1

func (s *Store) DeleteWorkload(_ context.Context, tenantID string, workloadID id.ID) error

func (*Store) GetBootstrap added in v1.5.1

func (s *Store) GetBootstrap(_ context.Context, bootstrapID id.ID) (*bootstrap.BootstrapWorkload, error)

GetBootstrap returns a bootstrap workload by ID.

func (*Store) GetBootstrapByName added in v1.5.1

func (s *Store) GetBootstrapByName(_ context.Context, datacenterID id.ID, name string) (*bootstrap.BootstrapWorkload, error)

GetBootstrapByName returns the row whose (DatacenterID, Name) pair matches. ErrNotFound when no row matches.

func (*Store) GetByID

func (s *Store) GetByID(_ context.Context, tenantID string, instanceID id.ID) (*instance.Instance, error)

func (*Store) GetBySlug

func (s *Store) GetBySlug(_ context.Context, tenantID string, slug string) (*instance.Instance, error)

func (*Store) GetCertificate

func (s *Store) GetCertificate(_ context.Context, tenantID string, certID id.ID) (*network.Certificate, error)

func (*Store) GetCheck

func (s *Store) GetCheck(_ context.Context, tenantID string, checkID id.ID) (*health.HealthCheck, error)

func (*Store) GetDatacenterByID added in v1.3.0

func (s *Store) GetDatacenterByID(_ context.Context, tenantID string, datacenterID id.ID) (*datacenter.Datacenter, error)

GetDatacenterByID retrieves a datacenter by its ID. The result is returned when it belongs to tenantID OR when it is a platform-shared datacenter (TenantID == ""). The shared-tenant convention lets operator-managed regions (e.g. baked-in local-dev defaults, hosted multi-region SaaS) be visible to every customer without seeding a per-tenant copy.

func (*Store) GetDatacenterBySlug added in v1.3.0

func (s *Store) GetDatacenterBySlug(_ context.Context, tenantID string, slug string) (*datacenter.Datacenter, error)

GetDatacenterBySlug retrieves a datacenter by its slug, preferring the caller's tenant when both a tenant-scoped and a platform-shared DC share the same slug.

func (*Store) GetDeployment

func (s *Store) GetDeployment(_ context.Context, tenantID string, deployID id.ID) (*deploy.Deployment, error)

func (*Store) GetDomain

func (s *Store) GetDomain(_ context.Context, tenantID string, domainID id.ID) (*network.Domain, error)

func (*Store) GetDomainByHostname

func (s *Store) GetDomainByHostname(_ context.Context, hostname string) (*network.Domain, error)

func (*Store) GetLatestResourceSnapshot

func (s *Store) GetLatestResourceSnapshot(_ context.Context, tenantID string, instanceID id.ID) (*telemetry.ResourceSnapshot, error)

func (*Store) GetLatestResult

func (s *Store) GetLatestResult(_ context.Context, tenantID string, checkID id.ID) (*health.HealthResult, error)

func (*Store) GetRelease

func (s *Store) GetRelease(_ context.Context, tenantID string, releaseID id.ID) (*deploy.Release, error)

func (*Store) GetRoute

func (s *Store) GetRoute(_ context.Context, tenantID string, routeID id.ID) (*network.Route, error)

func (*Store) GetSecretByKey

func (s *Store) GetSecretByKey(_ context.Context, tenantID string, instanceID id.ID, key string) (*secrets.Secret, error)

func (*Store) GetTemplate added in v1.3.0

func (s *Store) GetTemplate(_ context.Context, tenantID string, templateID id.ID) (*template.Template, error)

GetTemplate retrieves a template by ID within a tenant.

func (*Store) GetTenant

func (s *Store) GetTenant(_ context.Context, tenantID string) (*admin.Tenant, error)

func (*Store) GetTenantByExternalID added in v1.5.1

func (s *Store) GetTenantByExternalID(_ context.Context, externalID string) (*admin.Tenant, error)

func (*Store) GetTenantBySlug

func (s *Store) GetTenantBySlug(_ context.Context, slug string) (*admin.Tenant, error)

func (*Store) GetWorkloadByID added in v1.5.1

func (s *Store) GetWorkloadByID(_ context.Context, tenantID string, workloadID id.ID) (*workload.Workload, error)

GetWorkloadByID returns the workload with the given ID when it belongs to the supplied tenant. Empty tenantID is the cross-tenant admin convention (matches instance/deploy stores).

func (*Store) GetWorkloadBySlug added in v1.5.1

func (s *Store) GetWorkloadBySlug(_ context.Context, tenantID, slug string) (*workload.Workload, error)

func (*Store) Insert

func (s *Store) Insert(_ context.Context, inst *instance.Instance) error

func (*Store) InsertAuditEntry

func (s *Store) InsertAuditEntry(_ context.Context, entry *admin.AuditEntry) error

func (*Store) InsertBootstrap added in v1.5.1

func (s *Store) InsertBootstrap(_ context.Context, bw *bootstrap.BootstrapWorkload) error

InsertBootstrap persists a new bootstrap workload row.

The in-memory store mirrors the persistent backends' shape: rows keyed by ID, with a (DatacenterID, Name) uniqueness check enforced at insert time so the reconciler's idempotency contract holds.

func (*Store) InsertCertificate

func (s *Store) InsertCertificate(_ context.Context, cert *network.Certificate) error

func (*Store) InsertCheck

func (s *Store) InsertCheck(_ context.Context, check *health.HealthCheck) error

func (*Store) InsertDatacenter added in v1.3.0

func (s *Store) InsertDatacenter(_ context.Context, dc *datacenter.Datacenter) error

InsertDatacenter persists a new datacenter.

func (*Store) InsertDeployment

func (s *Store) InsertDeployment(_ context.Context, d *deploy.Deployment) error

func (*Store) InsertDomain

func (s *Store) InsertDomain(_ context.Context, domain *network.Domain) error

func (*Store) InsertLogs

func (s *Store) InsertLogs(_ context.Context, logs []telemetry.LogEntry) error

func (*Store) InsertMetrics

func (s *Store) InsertMetrics(_ context.Context, metrics []telemetry.Metric) error

func (*Store) InsertRelease

func (s *Store) InsertRelease(_ context.Context, r *deploy.Release) error

func (*Store) InsertResourceSnapshot

func (s *Store) InsertResourceSnapshot(_ context.Context, snap *telemetry.ResourceSnapshot) error

func (*Store) InsertResult

func (s *Store) InsertResult(_ context.Context, result *health.HealthResult) error

func (*Store) InsertRoute

func (s *Store) InsertRoute(_ context.Context, route *network.Route) error

func (*Store) InsertSecret

func (s *Store) InsertSecret(_ context.Context, secret *secrets.Secret) error

func (*Store) InsertTemplate added in v1.3.0

func (s *Store) InsertTemplate(_ context.Context, t *template.Template) error

InsertTemplate persists a new workload template.

func (*Store) InsertTenant

func (s *Store) InsertTenant(_ context.Context, tenant *admin.Tenant) error

func (*Store) InsertTraces

func (s *Store) InsertTraces(_ context.Context, traces []telemetry.Trace) error

func (*Store) InsertWorkload added in v1.5.1

func (s *Store) InsertWorkload(_ context.Context, w *workload.Workload) error

InsertWorkload persists a Workload. Enforces (tenant_id, slug) uniqueness to match the convention used by datacenter/instance stores — callers can safely retry Create after a network error knowing the second attempt fails fast on slug conflict.

func (*Store) List

func (s *Store) List(_ context.Context, tenantID string, opts instance.ListOptions) (*instance.ListResult, error)

func (*Store) ListBootstraps added in v1.5.1

func (s *Store) ListBootstraps(_ context.Context, datacenterID id.ID) ([]*bootstrap.BootstrapWorkload, error)

ListBootstraps returns every bootstrap workload attached to the given datacenter. Returns an empty slice (not nil) when no rows match — easier for callers to range over.

func (*Store) ListCertificates

func (s *Store) ListCertificates(_ context.Context, tenantID string, instanceID id.ID) ([]network.Certificate, error)

func (*Store) ListChecks

func (s *Store) ListChecks(_ context.Context, tenantID string, instanceID id.ID) ([]health.HealthCheck, error)

func (*Store) ListDatacenters added in v1.3.0

func (s *Store) ListDatacenters(_ context.Context, tenantID string, opts datacenter.ListOptions) (*datacenter.ListResult, error)

ListDatacenters returns a filtered, paginated list of datacenters visible to tenantID. The result includes both tenant-owned DCs and platform-shared DCs (TenantID == "") so operator-managed regions surface in every tenant's catalog.

func (*Store) ListDeployments

func (s *Store) ListDeployments(_ context.Context, tenantID string, instanceID id.ID, opts deploy.ListOptions) (*deploy.DeployListResult, error)

func (*Store) ListDomains

func (s *Store) ListDomains(_ context.Context, tenantID string, instanceID id.ID) ([]network.Domain, error)

func (*Store) ListReleases

func (s *Store) ListReleases(_ context.Context, tenantID string, instanceID id.ID, opts deploy.ListOptions) (*deploy.ReleaseListResult, error)

func (*Store) ListResourceSnapshots

func (s *Store) ListResourceSnapshots(_ context.Context, tenantID string, instanceID id.ID, opts telemetry.TimeRange) ([]telemetry.ResourceSnapshot, error)

func (*Store) ListResults

func (s *Store) ListResults(_ context.Context, tenantID string, checkID id.ID, opts health.HistoryOptions) ([]health.HealthResult, error)

func (*Store) ListRoutes

func (s *Store) ListRoutes(_ context.Context, tenantID string, instanceID id.ID) ([]network.Route, error)

func (*Store) ListSecrets

func (s *Store) ListSecrets(_ context.Context, tenantID string, instanceID id.ID) ([]secrets.Secret, error)

func (*Store) ListTemplates added in v1.3.0

func (s *Store) ListTemplates(_ context.Context, tenantID string, opts template.ListOptions) (*template.ListResult, error)

ListTemplates returns a paginated list of templates for a tenant.

func (*Store) ListTenants

func (*Store) ListWorkloads added in v1.5.1

func (s *Store) ListWorkloads(_ context.Context, tenantID string, opts workload.ListOptions) (*workload.ListResult, error)

func (*Store) Migrate

func (s *Store) Migrate(_ context.Context) error

Migrate is a no-op for the in-memory store.

func (*Store) NextReleaseVersion

func (s *Store) NextReleaseVersion(_ context.Context, tenantID string, instanceID id.ID) (int, error)

func (*Store) Ping

func (s *Store) Ping(_ context.Context) error

Ping is a no-op for the in-memory store.

func (*Store) QueryAuditLog

func (s *Store) QueryAuditLog(_ context.Context, opts admin.AuditQuery) (*admin.AuditResult, error)

func (*Store) QueryLogs

func (s *Store) QueryLogs(_ context.Context, q telemetry.LogQuery) ([]telemetry.LogEntry, error)

func (*Store) QueryMetrics

func (s *Store) QueryMetrics(_ context.Context, q telemetry.MetricQuery) ([]telemetry.Metric, error)

func (*Store) QueryTraces

func (s *Store) QueryTraces(_ context.Context, q telemetry.TraceQuery) ([]telemetry.Trace, error)

func (*Store) Update

func (s *Store) Update(_ context.Context, inst *instance.Instance) error

func (*Store) UpdateBootstrap added in v1.5.1

func (s *Store) UpdateBootstrap(_ context.Context, bw *bootstrap.BootstrapWorkload) error

UpdateBootstrap persists changes to an existing row.

func (*Store) UpdateCertificate

func (s *Store) UpdateCertificate(_ context.Context, cert *network.Certificate) error

func (*Store) UpdateCheck

func (s *Store) UpdateCheck(_ context.Context, check *health.HealthCheck) error

func (*Store) UpdateDatacenter added in v1.3.0

func (s *Store) UpdateDatacenter(_ context.Context, dc *datacenter.Datacenter) error

UpdateDatacenter persists changes to an existing datacenter.

func (*Store) UpdateDeployment

func (s *Store) UpdateDeployment(_ context.Context, d *deploy.Deployment) error

func (*Store) UpdateDomain

func (s *Store) UpdateDomain(_ context.Context, domain *network.Domain) error

func (*Store) UpdateRoute

func (s *Store) UpdateRoute(_ context.Context, route *network.Route) error

func (*Store) UpdateSecret

func (s *Store) UpdateSecret(_ context.Context, secret *secrets.Secret) error

func (*Store) UpdateTemplate added in v1.3.0

func (s *Store) UpdateTemplate(_ context.Context, t *template.Template) error

UpdateTemplate persists changes to an existing template.

func (*Store) UpdateTenant

func (s *Store) UpdateTenant(_ context.Context, tenant *admin.Tenant) error

func (*Store) UpdateWorkload added in v1.5.1

func (s *Store) UpdateWorkload(_ context.Context, w *workload.Workload) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL