services

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package services holds the platform service pattern (ADR-0019): the single KindService reconciler (the Dispatcher) that routes each Service to the TypeHandler registered for its spec.type, plus the shared status write-back. A service type (KV, blob, secrets, …) contributes a TypeHandler — never its own Service reconciler — so they never collide on the gvk (ADR-0015 is one-reconciler-per-gvk). The facades live in per-type subpackages (internal/services/kv, …).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BindingCache added in v0.3.0

type BindingCache[V comparable] struct {
	// contains filtered or unexported fields
}

BindingCache is the TTL cache the per-type binding resolvers (kv, blob) keep of resolved bindings, keyed by (namespace, function, alias). Only resolved bindings are put: a miss is never cached, so default-deny stays live (ADR-0073).

func NewBindingCache added in v0.3.0

func NewBindingCache[V comparable](ttl time.Duration) *BindingCache[V]

NewBindingCache builds a BindingCache whose entries live for ttl.

func (*BindingCache[V]) Get added in v0.3.0

func (c *BindingCache[V]) Get(ns v1.NamespaceName, fn v1.ObjectName, alias string) (V, bool)

Get returns the live binding cached for (ns, fn, alias), dropping an expired one.

func (*BindingCache[V]) Len added in v0.3.0

func (c *BindingCache[V]) Len() int

Len is the number of entries held, expired ones included until a Get or a sweep drops them.

func (*BindingCache[V]) Put added in v0.3.0

func (c *BindingCache[V]) Put(ns v1.NamespaceName, fn v1.ObjectName, alias string, v V)

Put caches v for (ns, fn, alias) for the cache's ttl.

type Dispatcher

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

Dispatcher is the single controller.Reconciler for KindService: it routes by spec.type.

func NewDispatcher

func NewDispatcher(st store.Store, logger *slog.Logger, handlers ...TypeHandler) (*Dispatcher, error)

NewDispatcher builds the Service dispatcher. Register it once on the engine for KindService. Handlers are keyed by their Type(); an unregistered type is a no-op.

func (*Dispatcher) Reconcile

func (d *Dispatcher) Reconcile(ctx context.Context, req controller.Request) (controller.Result, error)

Reconcile reads the Service, routes it to its type's handler (no-op if unregistered), then writes Status.Phase=Ready on success (idempotent — the ADR-0015 contract).

type TypeHandler

type TypeHandler interface {
	Type() v1.ServiceType
	Reconcile(ctx context.Context, svc *v1.Service) (controller.Result, error)
}

TypeHandler is the per-service-type reconcile logic. It provisions the instance / binding for one Service of its Type; the Dispatcher does the shared status write-back.

Directories

Path Synopsis
Package backup runs an app owner's backups (ADR-0222, F111): the BackupSchedule reconciler takes each cron slot and keeps the schedule's status and RPO alert, the Backup reconciler runs one copy with the platform's rights and deletes the record at its expireTime, and the Restore reconciler loads a Backup's members into empty stores or in place.
Package backup runs an app owner's backups (ADR-0222, F111): the BackupSchedule reconciler takes each cron slot and keeps the schedule's status and RPO alert, the Backup reconciler runs one copy with the platform's rights and deletes the record at its expireTime, and the Restore reconciler loads a Backup's members into empty stores or in place.
Package blob is the blob storage service: the function-facing, binding-gated Facade (ADR-0127) over the blob.Bucket substrate, plus the blob services.TypeHandler the Service dispatcher routes type:blob to.
Package blob is the blob storage service: the function-facing, binding-gated Facade (ADR-0127) over the blob.Bucket substrate, plus the blob services.TypeHandler the Service dispatcher routes type:blob to.
Package catalog is the CatalogService reconciler (ADR-0086 as reworked by ADR-0087, F48/F57): the ADR-0019 controller half of the DuckLake/DuckDB/Quack add-on provider.
Package catalog is the CatalogService reconciler (ADR-0086 as reworked by ADR-0087, F48/F57): the ADR-0019 controller half of the DuckLake/DuckDB/Quack add-on provider.
Package identity is the controller for KindIdentity (ADR-0135, FEAT-0008/F100): a user-assigned managed identity whose reconciler issues a revocable SigV4 credential — a stable access key (IdentityAccessKey) plus a generated, rotatable secret written to an owned Secret.
Package identity is the controller for KindIdentity (ADR-0135, FEAT-0008/F100): a user-assigned managed identity whose reconciler issues a revocable SigV4 credential — a stable access key (IdentityAccessKey) plus a generated, rotatable secret written to an owned Secret.
Package kv is the KV service (ADR-0019/0072/0073): the function-facing Facade (binding-gated, <ns>/<store>/<table>/<key> prefixed, results prefix-stripped) over the kvstore.KV port, plus the KV services.TypeHandler the Service dispatcher routes type:kv to, and the KindKVStore reconciler.
Package kv is the KV service (ADR-0019/0072/0073): the function-facing Facade (binding-gated, <ns>/<store>/<table>/<key> prefixed, results prefix-stripped) over the kvstore.KV port, plus the KV services.TypeHandler the Service dispatcher routes type:kv to, and the KindKVStore reconciler.
Package roles wires the ADR-0136 RolesAssignment model to the Cedar PDP: a store-backed WriterLister that feeds the generalized single-writer forbid's `writers` set, and a compile helper that turns RolesAssignments into the synthetic read/query/invoke permits the PolicySource aggregates.
Package roles wires the ADR-0136 RolesAssignment model to the Cedar PDP: a store-backed WriterLister that feeds the generalized single-writer forbid's `writers` set, and a compile helper that turns RolesAssignments into the synthetic read/query/invoke permits the PolicySource aggregates.
sql
Package sql is the SQL provider (ADR-0232, FEAT-0011): the SQLDatabase reconciler, which deploys one rqlite engine per database through the add-on runtime with durable storage (ADR-0231), the engine password, the in-process registry of Ready engines, and the engine client.
Package sql is the SQL provider (ADR-0232, FEAT-0011): the SQLDatabase reconciler, which deploys one rqlite engine per database through the add-on runtime with durable storage (ADR-0231), the engine password, the in-process registry of Ready engines, and the engine client.
engineargs
Package engineargs builds the rqlited command line and auth file for a SQL database's engine (ADR-0232 Decision 4), shared by the container entrypoint (cmd/funcd-rqlite) and the funcdctl dev engine (ADR-0237 Decision 2) so the two cannot drift.
Package engineargs builds the rqlited command line and auth file for a SQL database's engine (ADR-0232 Decision 4), shared by the container entrypoint (cmd/funcd-rqlite) and the funcdctl dev engine (ADR-0237 Decision 2) so the two cannot drift.

Jump to

Keyboard shortcuts

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