internal/

directory
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

Directories

Path Synopsis
Package activator implements scale-to-zero (ADR-0016): an in-process data-path component backing a gateway route's upstream.
Package activator implements scale-to-zero (ADR-0016): an in-process data-path component backing a gateway route's upstream.
storescaler
Package storescaler is the V1 store-backed activator.Scaler driver (ADR-0016): it records a function's scale intent as its partitioned status Phase — the wake edge Idle→Deploying for replicas>=1, the reclaim edge Ready/Degraded/empty→Idle for replicas==0 (activator.Reclaimable, ADR-0169, ADR-0185) — via store.Update.
Package storescaler is the V1 store-backed activator.Scaler driver (ADR-0016): it records a function's scale intent as its partitioned status Phase — the wake edge Idle→Deploying for replicas>=1, the reclaim edge Ready/Degraded/empty→Idle for replicas==0 (activator.Reclaimable, ADR-0169, ADR-0185) — via store.Update.
app
Package app is the App kind's server side (ADR-0199, F113): the app-parts admission, which admits each declared part as a direct write of it would be admitted, and the App reconciler, which writes the parts, reports one status and prunes what a new spec drops.
Package app is the App kind's server side (ADR-0199, F113): the app-parts admission, which admits each declared part as a direct write of it would be admitted, and the App reconciler, which writes the parts, reports one status and prunes what a new spec drops.
template
Package template renders an App template on the client (ADR-0217): a directory of App spec fragments plus a values schema becomes one typed, checked App.
Package template renders an App template on the client (ADR-0217): a directory of App spec fragments plus a values schema becomes one typed, checked App.
Package artifact is OCI artifact distribution (ADR-0031): how a function source bundle reaches the platform.
Package artifact is OCI artifact distribution (ADR-0031): how a function source bundle reaches the platform.
Package auth is the authorization kernel (ADR-0018): the Authorizer port (PDP) every enforcement point (PEP) calls, plus the typed principal/verb/decision model.
Package auth is the authorization kernel (ADR-0018): the Authorizer port (PDP) every enforcement point (PEP) calls, plus the typed principal/verb/decision model.
authcontract
Package authcontract is the shared conformance suite for the auth.Authorizer port (ADR-0018): Run asserts the default-deny namespace-RBAC guarantee against any driver — admin spans namespaces + cluster-scoped kinds, developer writes only in its namespaces, viewer is read-only and never reads a Secret, and an unknown principal is denied.
Package authcontract is the shared conformance suite for the auth.Authorizer port (ADR-0018): Run asserts the default-deny namespace-RBAC guarantee against any driver — admin spans namespaces + cluster-scoped kinds, developer writes only in its namespaces, viewer is read-only and never reads a Secret, and an unknown principal is denied.
cedar
Package cedar is the cedar-go authorization driver (ADR-0074) behind the auth.Authorizer port (ADR-0018): it answers per-object, fine-grained data-plane decisions (KV first) that the coarse RBAC driver cannot express.
Package cedar is the cedar-go authorization driver (ADR-0074) behind the auth.Authorizer port (ADR-0018): it answers per-object, fine-grained data-plane decisions (KV first) that the coarse RBAC driver cannot express.
rbac
Package rbac is the built-in namespace-scoped RBAC Authorizer driver (ADR-0018): admin / developer / viewer roles, default-deny.
Package rbac is the built-in namespace-scoped RBAC Authorizer driver (ADR-0018): admin / developer / viewer roles, default-deny.
Package backup is the platform backup format and target (ADR-0203): a generation's layout and manifest on an S3-compatible store or a directory, fencing against a second writer, and a retention ladder that needs a credential which only puts and lists.
Package backup is the platform backup format and target (ADR-0203): a generation's layout and manifest on an S3-compatible store or a directory, fencing against a second writer, and a retention ladder that needs a credential which only puts and lists.
blobmirror
Package blobmirror mirrors the local blob store to the platform backup target (ADR-0208 Decision 4): each run freezes the store into a hard-link image, uploads the objects whose id the current epoch lacks, then an index and a manifest, written last; nothing on the target is ever read, overwritten or deleted.
Package blobmirror mirrors the local blob store to the platform backup target (ADR-0208 Decision 4): each run freezes the store into a hard-link image, uploads the objects whose id the current epoch lacks, then an index and a manifest, written last; nothing on the target is ever read, overwritten or deleted.
envelope
Package envelope seals a backup generation to operator-held age recipients and names the keys it needs (ADR-0204 Decisions 1-3, 5): the box writes what it cannot read.
Package envelope seals a backup generation to operator-held age recipients and names the keys it needs (ADR-0204 Decisions 1-3, 5): the box writes what it cannot read.
escrow
Package escrow holds the restore key rules over the operator's escrow set (ADR-0204 Decisions 4, 5): the secrets key and the master secret a generation names, matched by content fingerprint, and the credentials a new master changes.
Package escrow holds the restore key rules over the operator's escrow set (ADR-0204 Decisions 4, 5): the secrets key and the master secret a generation names, matched by content fingerprint, and the credentials a new master changes.
plan
Package plan turns recovery objectives into backup settings (ADR-0223): Derive maps them to keys, Apply splices the keys into a file's bytes, CheckConfig runs the daemon's loader on the result and CheckRTO bounds the recovery time.
Package plan turns recovery objectives into backup settings (ADR-0223): Derive maps them to keys, Apply splices the keys into a file's bytes, CheckConfig runs the daemon's loader on the result and CheckRTO bounds the recovery time.
runner
Package runner runs the platform backup (ADR-0205): one run at a time, on a cadence anchored on the newest complete ladder generation; a status read from the target's listing; the funcd.backup metrics; and the rpoRisk alert on the newest verified generation.
Package runner runs the platform backup (ADR-0205): one run at a time, on a cadence anchored on the newest complete ladder generation; a status read from the target's listing; the funcd.backup metrics; and the rpoRisk alert on the newest verified generation.
verify
Package verify checks a platform backup generation off the box and pins it under gen/verified/ (ADR-0205 Decision 6): the parts against the manifest, a full decrypt with the operator's identities, the framing and key order, and with an escrow set the keys the generation names.
Package verify checks a platform backup generation off the box and pins it under gen/verified/ (ADR-0205 Decision 6): the parts against the manifest, a full decrypt with the operator's identities, the framing and key order, and with an escrow set the keys the generation names.
workload
Package workload is an app owner's backup (ADR-0222): the members a BackupSchedule's scope names, one full copy of them under <target>/<ns>/<backup>-<uid>/ (Decision 4) and the reads a Restore makes of it.
Package workload is an app owner's backup (ADR-0222): the members a BackupSchedule's scope names, one full copy of them under <target>/<ns>/<backup>-<uid>/ (Decision 4) and the reads a Restore makes of it.
Package blob is the storage-layer port (ADR-0007): opaque byte objects behind the blob.Bucket port.
Package blob is the storage-layer port (ADR-0007): opaque byte objects behind the blob.Bucket port.
blobcontract
Package blobcontract is the shared conformance suite for the blob.Bucket port (ADR-0007).
Package blobcontract is the shared conformance suite for the blob.Bucket port (ADR-0007).
gocloud
Package gocloud is the gocloud.dev/blob driver for the blob.Bucket port (ADR-0007): memory / file / S3 by URL, all pure-Go (no cgo).
Package gocloud is the gocloud.dev/blob driver for the blob.Bucket port (ADR-0007): memory / file / S3 by URL, all pure-Go (no cgo).
s3gateway
Package s3gateway is the funcd S3-protocol frontend over the blob.Bucket substrate (ADR-0080), with in-platform identity via funcd-managed per-principal SigV4 keypairs resolved by an in-process versitygw auth.IAMService (ADR-0085).
Package s3gateway is the funcd S3-protocol frontend over the blob.Bucket substrate (ADR-0080), with in-platform identity via funcd-managed per-principal SigV4 keypairs resolved by an in-process versitygw auth.IAMService (ADR-0085).
bus
Package bus is the messaging port (ADR-0008): core pub/sub plus durable JetStream streams/consumers, behind the bus.Bus port.
Package bus is the messaging port (ADR-0008): core pub/sub plus durable JetStream streams/consumers, behind the bus.Bus port.
buscontract
Package buscontract is the shared conformance suite for the bus.Bus port (ADR-0008).
Package buscontract is the shared conformance suite for the bus.Bus port (ADR-0008).
nats
Package nats is the embedded-NATS driver for the bus.Bus port (ADR-0008): an in-process nats-server with JetStream (memory or file storage), all pure-Go (no cgo).
Package nats is the embedded-NATS driver for the bus.Bus port (ADR-0008): an in-process nats-server with JetStream (memory or file storage), all pure-Go (no cgo).
catalog
gateway
Package gateway is the funcd catalog PEP proxy over the Quack/DuckLake serving path (ADR-0137, FEAT-0008/F102).
Package gateway is the funcd catalog PEP proxy over the Quack/DuckLake serving path (ADR-0137, FEAT-0008/F102).
Package contract enforces the funcd contract type profile (ADR-0058): the bounded, language-agnostic subset of JSON Schema 2020-12 that a function's I/O contract may use — "the def" (the discipline JTD and WIT apply).
Package contract enforces the funcd contract type profile (ADR-0058): the bounded, language-agnostic subset of JSON Schema 2020-12 that a function's I/O contract may use — "the def" (the discipline JTD and WIT apply).
Package controller is the one general reconcile engine (ADR-0015): a store-watch informer feeds a rate-limited, deduplicating workqueue that worker goroutines drain by calling each kind's registered Reconciler — with exponential-backoff retry, RequeueAfter, status write-back (the reconciler's), and clean shutdown.
Package controller is the one general reconcile engine (ADR-0015): a store-watch informer feeds a rate-limited, deduplicating workqueue that worker goroutines drain by calling each kind's registered Reconciler — with exponential-backoff retry, RequeueAfter, status write-back (the reconciler's), and clean shutdown.
Package controlplane owns the huma API registration, typed operations, the Handlers seam, and the api/fault → huma problem+json error bridge (ADR-0005).
Package controlplane owns the huma API registration, typed operations, the Handlers seam, and the api/fault → huma problem+json error bridge (ADR-0005).
admission
Package admission is the control-plane admission framework (ADR-0063): a two-phase pipeline (mutate-all → validate-all) of single-purpose Admissions run on every resource write, after authz and before the store.
Package admission is the control-plane admission framework (ADR-0063): a two-phase pipeline (mutate-all → validate-all) of single-purpose Admissions run on every resource write, after authz and before the store.
cmd/specgen command
Command specgen writes the huma-generated OpenAPI 3.1 spec to the committed path.
Command specgen writes the huma-generated OpenAPI 3.1 spec to the committed path.
middleware
Package middleware holds the control-plane API server's net/http middleware (ADR-0018).
Package middleware holds the control-plane API server's net/http middleware (ADR-0018).
Package dataplane is the function-invocation data plane (ADR-0033): the HTTP handler that serves function traffic, separate from the control-plane API (ADR-0028).
Package dataplane is the function-invocation data plane (ADR-0033): the HTTP handler that serves function traffic, separate from the control-plane API (ADR-0028).
edge
authn
Package authn is the edge authentication PEP (ADR-0113, F77): for a data-plane request whose target has an `authenticated` stance, it extracts a bearer token, resolves it to a connection-scoped Identity (never client-asserted), and DELEGATES the allow/deny decision to the existing auth.Authorizer (RBAC namespace-scope in V1; fine-grained Cedar edge policy in V2).
Package authn is the edge authentication PEP (ADR-0113, F77): for a data-plane request whose target has an `authenticated` stance, it extracts a bearer token, resolves it to a connection-scoped Identity (never client-asserted), and DELEGATES the allow/deny decision to the existing auth.Authorizer (RBAC namespace-scope in V1; fine-grained Cedar edge policy in V2).
limit
Package limit is the ingress protection of the data plane (ADR-0112, F75): it refuses abusive traffic before the activator can wake a scaled-to-zero sandbox.
Package limit is the ingress protection of the data plane (ADR-0112, F75): it refuses abusive traffic before the activator can wake a scaled-to-zero sandbox.
observ
Package observ is the edge observability middleware (ADR-0114, F76): RED metrics (request rate / errors / duration by function+status) off the OTel meter, an edge span that mints or adopts a W3C traceparent so the downstream invocation span parents under it (the ingress hop joins the one-run-one-trace waterfall, ADR-0101/0102), and a structured access log correlated by X-Request-Id.
Package observ is the edge observability middleware (ADR-0114, F76): RED metrics (request rate / errors / duration by function+status) off the OTel meter, an edge span that mints or adopts a W3C traceparent so the downstream invocation span parents under it (the ingress hop joins the one-run-one-trace waterfall, ADR-0101/0102), and a structured access log correlated by X-Request-Id.
router
Package router is the edge request matcher (ADR-0110, F79): it compiles the Ready Route set into a host/path/method table and resolves a public data-plane request to a target (namespace, function).
Package router is the edge request matcher (ADR-0110, F79): it compiles the Ready Route set into a host/path/method table and resolves a public data-plane request to a target (namespace, function).
shape
Package shape is the edge shaping middleware (ADR-0114, F78): CORS (preflight + ACAO), response header inject/strip, and gzip compression that SKIPS streaming (text/event-stream) and upgrades (Connection: Upgrade / 101) and FORWARDS http.Flusher + http.Hijacker so SSE/WebSocket pass through unbroken.
Package shape is the edge shaping middleware (ADR-0114, F78): CORS (preflight + ACAO), response header inject/strip, and gzip compression that SKIPS streaming (text/event-stream) and upgrades (Connection: Upgrade / 101) and FORWARDS http.Flusher + http.Hijacker so SSE/WebSocket pass through unbroken.
static
Package static is the edge static-asset handler (ADR-0120, F82): it serves a Bucket-prefix static site directly through the FEAT-0006 edge — index resolution, content-types, a weak (ModTime,Size) ETag + conditional GET (304), HTTP Range (206), an optional SPA fallback, and a pinned three-tier Cache-Control — with no function code and no activator hop.
Package static is the edge static-asset handler (ADR-0120, F82): it serves a Bucket-prefix static site directly through the FEAT-0006 edge — index resolution, content-types, a weak (ModTime,Size) ETag + conditional GET (304), HTTP Range (206), an optional SPA fallback, and a pinned three-tier Cache-Control — with no function code and no activator hop.
tls
Package edgetls is the TLS termination provider port (ADR-0111, F74): it builds the *tls.Config funcd attaches to its own http.Servers (no listener handover — the caller drives ServeTLS).
Package edgetls is the TLS termination provider port (ADR-0111, F74): it builds the *tls.Config funcd attaches to its own http.Servers (no listener handover — the caller drives ServeTLS).
tls/acme
Package acme is the certmagic-backed ACME TLS driver (ADR-0111, F74): automatic public certificates via an ACME CA (Let's Encrypt by default; a test directory URL for Pebble).
Package acme is the certmagic-backed ACME TLS driver (ADR-0111, F74): automatic public certificates via an ACME CA (Let's Encrypt by default; a test directory URL for Pebble).
tls/static
Package static is the stdlib TLS driver (ADR-0111, F74): it builds a *tls.Config from a static certificate — either operator-PROVIDED (tls.LoadX509KeyPair) or SELF-SIGNED (one multi-SAN cert this package generates with crypto/x509 and persists under the storage dir).
Package static is the stdlib TLS driver (ADR-0111, F74): it builds a *tls.Config from a static certificate — either operator-PROVIDED (tls.LoadX509KeyPair) or SELF-SIGNED (one multi-SAN cert this package generates with crypto/x509 and persists under the storage dir).
Package envresolve is the single config+secret env-resolver shared by the Function reconciler and the provider framework (ADR-0093, relocating ADR-0092's helper to a neutral leaf).
Package envresolve is the single config+secret env-resolver shared by the Function reconciler and the provider framework (ADR-0093, relocating ADR-0092's helper to a neutral leaf).
Package eventing implements funcd eventing (ADR-0023, reshaped by ADR-0108): a typed CloudEvents v1.0 envelope, an EventSource reconciler that registers a `timer:` source's NAMED events, and — on each firing — PUBLISHES a named CloudEvent onto a Publisher seam (the in-process Fanout) the F69 Sensor subscribes to.
Package eventing implements funcd eventing (ADR-0023, reshaped by ADR-0108): a typed CloudEvents v1.0 envelope, an EventSource reconciler that registers a `timer:` source's NAMED events, and — on each firing — PUBLISHES a named CloudEvent onto a Publisher seam (the in-process Fanout) the F69 Sensor subscribes to.
deadletter
Package deadletter is the eventing dead-letter queue PORT (ADR-0118, F85): the durable park for a Sensor action-delivery that failed past the bounded retry cap, or that was parked before its attempts ran out (ADR-0156: the Sensor's queue was full, the Sensor changed, or the daemon shut down).
Package deadletter is the eventing dead-letter queue PORT (ADR-0118, F85): the durable park for a Sensor action-delivery that failed past the bounded retry cap, or that was parked before its attempts ran out (ADR-0156: the Sensor's queue was full, the Sensor changed, or the daemon shut down).
deadletter/badger
Package badger is the dead-letter-queue deadletter driver (ADR-0118), backed by Badger v4 in its own instance (never the metastore), which the event store shares with the blob seen lists (ADR-0201, NewOnDB).
Package badger is the dead-letter-queue deadletter driver (ADR-0118), backed by Badger v4 in its own instance (never the metastore), which the event store shares with the blob seen lists (ADR-0201, NewOnDB).
deadletter/memory
Package memory is the in-memory deadletter.Store driver (ADR-0118): a small pure-Go map with no files, for cross-platform tests and the InMemory preset.
Package memory is the in-memory deadletter.Store driver (ADR-0118): a small pure-Go map with no files, for cross-platform tests and the InMemory preset.
eventstore
Package eventstore is eventing's one durable store (ADR-0201): one Badger instance holding the Sensor's dead letters under dl/<ns>/<ulid> (ADR-0118), the BlobWatcher's seen lists under seen/ (ADR-0157) and the SQL change feed's watermarks under cdc/ (ADR-0235), each tenant iterating only its own prefix.
Package eventstore is eventing's one durable store (ADR-0201): one Badger instance holding the Sensor's dead letters under dl/<ns>/<ulid> (ADR-0118), the BlobWatcher's seen lists under seen/ (ADR-0157) and the SQL change feed's watermarks under cdc/ (ADR-0235), each tenant iterating only its own prefix.
Package expr is the funcd reference engine (ADR-0095): one typed `${{ … }}` expression grammar shared across the platform.
Package expr is the funcd reference engine (ADR-0095): one typed `${{ … }}` expression grammar shared across the platform.
Package funclog captures function telemetry over a freeze-safe side channel and persists it OTel-native through the blob.Bucket port (ADR-0081).
Package funclog captures function telemetry over a freeze-safe side channel and persists it OTel-native through the blob.Bucket port (ADR-0081).
compact
Package compact folds the funclog "raw" raw OTLP-JSON-Lines objects (ADR-0081) into columnar Parquet "compacted", time-windowed and Hive-partitioned, through the blob.Bucket port (ADR-0007).
Package compact folds the funclog "raw" raw OTLP-JSON-Lines objects (ADR-0081) into columnar Parquet "compacted", time-windowed and Hive-partitioned, through the blob.Bucket port (ADR-0007).
logread
Package logread is the thin pure-Go function-log reader (ADR-0084): it merges the compacted Parquet (ADR-0083) with the recent raw OTLP-JSONL tail (ADR-0081) over the blob.Bucket port, filters by time/severity/limit, and returns a tenant's function logs time-ordered.
Package logread is the thin pure-Go function-log reader (ADR-0084): it merges the compacted Parquet (ADR-0083) with the recent raw OTLP-JSONL tail (ADR-0081) over the blob.Bucket port, filters by time/severity/limit, and returns a tenant's function logs time-ordered.
Package function is the Function lifecycle reconciler (ADR-0020): the one controller.Reconciler for KindFunction.
Package function is the Function lifecycle reconciler (ADR-0020): the one controller.Reconciler for KindFunction.
Package gateway is the ingress / API gateway port (ADR-0012): program routes declaratively and serve them as an http.Handler that reverse-proxies a matched public path to a function's worker upstream.
Package gateway is the ingress / API gateway port (ADR-0012): program routes declaratively and serve them as an http.Handler that reverse-proxies a matched public path to a function's worker upstream.
embedded
Package embedded implements the gateway.Gateway port with net/http/httputil — a hand-written reverse proxy behind a longest-prefix router (ADR-0012).
Package embedded implements the gateway.Gateway port with net/http/httputil — a hand-written reverse proxy behind a longest-prefix router (ADR-0012).
gatewaycontract
Package gatewaycontract is the shared conformance suite for the gateway.Gateway port (ADR-0012).
Package gatewaycontract is the shared conformance suite for the gateway.Gateway port (ADR-0012).
Package gc is the owner garbage collector (ADR-0170): it deletes every object whose controller OwnerReference names an owner that no longer exists, or exists under another UID.
Package gc is the owner garbage collector (ADR-0170): it deletes every object whose controller OwnerReference names an owner that no longer exists, or exists under another UID.
Package health is the platform's built-in health (ADR-0215): the storage prober, which reads a sentinel key of the KV engine and the blob store on a period and keeps each result in memory, and the dependency checker the worker-node local API answers GET /health/dependencies with.
Package health is the platform's built-in health (ADR-0215): the storage prober, which reads a sentinel key of the KV engine and the blob store on a period and keeps each result in memory, and the dependency checker the worker-node local API answers GET /health/dependencies with.
Package kvstore is the key/value substrate port (ADR-0019): get/put/delete/list over opaque string keys and []byte values.
Package kvstore is the key/value substrate port (ADR-0019): get/put/delete/list over opaque string keys and []byte values.
badger
Package badger is the durable kvstore.KV driver (ADR-0066): a pure-Go Badger instance (separate from the metastore's, ADR-0065) with a single-writer group-commit gateway and per-store DropPrefix teardown.
Package badger is the durable kvstore.KV driver (ADR-0066): a pure-Go Badger instance (separate from the metastore's, ADR-0065) with a single-writer group-commit gateway and per-store DropPrefix teardown.
kvstorecontract
Package kvstorecontract is the shared conformance suite for the kvstore.KV port (ADR-0019): Run asserts put/get/overwrite/delete/list/missing-key against any driver.
Package kvstorecontract is the shared conformance suite for the kvstore.KV port (ADR-0019): Run asserts put/get/overwrite/delete/list/missing-key against any driver.
memory
Package memory is the in-memory kvstore.KV driver (ADR-0019): a mutex-guarded map, for dev/e2e/tests.
Package memory is the in-memory kvstore.KV driver (ADR-0019): a mutex-guarded map, for dev/e2e/tests.
Package network is the worker network-isolation substrate (ADR-0115, FEAT-0007/F80): the L3/L4 egress policy layer.
Package network is the worker network-isolation substrate (ADR-0115, FEAT-0007/F80): the L3/L4 egress policy layer.
egress
Package egress is the transparent egress PEP (ADR-0117, FEAT-0007/F81): the enforcement point F80's nftables substrate REDIRECTs remaining external worker TCP into.
Package egress is the transparent egress PEP (ADR-0117, FEAT-0007/F81): the enforcement point F80's nftables substrate REDIRECTs remaining external worker TCP into.
platform
clock
Package clock is the canonical injected-dependency example (ADR-0002).
Package clock is the canonical injected-dependency example (ADR-0002).
config
Package config is the funcd daemon config — funcdconfig.yaml (ADR-0061, ADR-0062).
Package config is the funcd daemon config — funcdconfig.yaml (ADR-0061, ADR-0062).
hold
Package hold is the platform-wide hold (ADR-0206 Decision 6): <storage.dataDir>/.hold exists iff the platform is held, every side-effect runner asks the Gate before it acts, and only the release deletes the marker.
Package hold is the platform-wide hold (ADR-0206 Decision 6): <storage.dataDir>/.hold exists iff the platform is held, every side-effect runner asks the Gate before it acts, and only the release deletes the marker.
httpx
Package httpx gives each HTTP caller a transport of its own.
Package httpx gives each HTTP caller a transport of its own.
lintfixture
Package lintfixture holds a known-bad lint fixture for scenario: platform-leaf-rule-fires (ADR-0027), gated behind the `lintfixture` build tag — see tests/lint-fixtures/lintrules_test.go.
Package lintfixture holds a known-bad lint fixture for scenario: platform-leaf-rule-fires (ADR-0027), gated behind the `lintfixture` build tag — see tests/lint-fixtures/lintrules_test.go.
observability
Package observability builds the funcd platform's root logger (ADR-0009).
Package observability builds the funcd platform's root logger (ADR-0009).
stopsignal
Package stopsignal names the signals that stop a funcd process, such as the daemon or `funcdctl dev`, gracefully.
Package stopsignal names the signals that stop a funcd process, such as the daemon or `funcdctl dev`, gracefully.
units
Package units parses byte sizes in the binary-suffix grammar a Function's memory hint and funcdctl backup plan's --size and --speed share (ADR-0223): an integer with an optional Ki, Mi, Gi or Ti suffix.
Package units parses byte sizes in the binary-suffix grammar a Function's memory hint and funcdctl backup plan's --size and --speed share (ADR-0223): an integer with an optional Ki, Mi, Gi or Ti suffix.
version
Package version exposes funcd's build identity.
Package version exposes funcd's build identity.
Package pooling is the pure worker-pooling placement policy (ADR-0046): it maps a function to either a solo worker (its own process, the default) or a shared pool worker keyed by (namespace, runtime, worker-id).
Package pooling is the pure worker-pooling placement policy (ADR-0046): it maps a function to either a solo worker (its own process, the default) or a shared pool worker keyed by (namespace, runtime, worker-id).
Package provider holds the platform provider catalog (ADR-0082) and the add-on-provider management runtime (ADR-0087, FEAT-0003/F57).
Package provider holds the platform provider catalog (ADR-0082) and the add-on-provider management runtime (ADR-0087, FEAT-0003/F57).
Package restore reads the platform backup generations of ADR-0203 back (ADR-0206): it lists them as a lineage, resolves a restore point, restores one offline into empty directories and leaves the platform held, and inspects one into memory engines.
Package restore reads the platform backup generations of ADR-0203 back (ADR-0206): it lists them as a lineage, resolves a restore point, restores one offline into empty directories and leaves the platform held, and inspects one into memory engines.
Package revhold reads which step Function revisions open workflow runs hold (ADR-0190 Decision 7): the status.pins of every WorkflowRun in a namespace that is not terminal and not cancelled.
Package revhold reads which step Function revisions open workflow runs hold (ADR-0190 Decision 7): the status.pins of every WorkflowRun in a namespace that is not terminal and not cancelled.
Package route reconciles the Route resource (ADR-0110, F79): it validates each Route's backends, Sets every backend-valid Route on the edge aggregator, which applies the claim rules (HostRequired, ReservedPath, RouteConflict) across every edge source (ADR-0176), and sets Ready/NotReady from the aggregator's verdicts.
Package route reconciles the Route resource (ADR-0110, F79): it validates each Route's backends, Sets every backend-valid Route on the edge aggregator, which applies the claim rules (HostRequired, ReservedPath, RouteConflict) across every edge source (ADR-0176), and sets Ready/NotReady from the aggregator's verdicts.
Package runtime is the function worker port (ADR-0011): create, start, stop, observe, and harvest logs from a worker instance (one replica of a function).
Package runtime is the function worker port (ADR-0011): create, start, stop, observe, and harvest logs from a worker instance (one replica of a function).
containerd
Package containerd implements the runtime.Runtime port over containerd + runc on Linux (ADR-0011): pull a curated runtime image, run it as a runc container with conservative OCI defaults (no added caps, no_new_privileges, optional limits), attach a per-worker netns with default-deny lateral (go-cni bridge + firewall), and read each task's stdout and stderr through FIFOs (ADR-0168).
Package containerd implements the runtime.Runtime port over containerd + runc on Linux (ADR-0011): pull a curated runtime image, run it as a runc container with conservative OCI defaults (no added caps, no_new_privileges, optional limits), attach a per-worker netns with default-deny lateral (go-cni bridge + firewall), and read each task's stdout and stderr through FIFOs (ADR-0168).
ctrmanager
Package ctrmanager brings up the container runtime funcd will drive (ADR-0054).
Package ctrmanager brings up the container runtime funcd will drive (ADR-0054).
embedimg
Package embedimg carries funcd's curated runtime images baked into the binary (ADR-0054).
Package embedimg carries funcd's curated runtime images baked into the binary (ADR-0054).
process
Package process implements the runtime.Runtime port by supervising functions as plain OS child processes (ADR-0011).
Package process implements the runtime.Runtime port by supervising functions as plain OS child processes (ADR-0011).
procreg
Package procreg is the saved worker registry (ADR-0167): the process driver and the dev catalog engine record every process they start, so the next open reaps what a crashed run left behind.
Package procreg is the saved worker registry (ADR-0167): the process driver and the dev catalog engine record every process they start, so the next open reaps what a crashed run left behind.
provision
Package provision is funcd's TEMPORARY container-runtime self-provisioning (ADR-0056): `funcd install` downloads the pinned, SHA-256-verified static binaries the managed-containerd path needs — crun (the OCI runtime the runc-v2 shim execs), containerd (+ its runc-v2 shim + ctr), and the CNI plugins — laying crun/containerd into funcd's bin dir and the CNI plugins into /opt/cni/bin.
Package provision is funcd's TEMPORARY container-runtime self-provisioning (ADR-0056): `funcd install` downloads the pinned, SHA-256-verified static binaries the managed-containerd path needs — crun (the OCI runtime the runc-v2 shim execs), containerd (+ its runc-v2 shim + ctr), and the CNI plugins — laying crun/containerd into funcd's bin dir and the CNI plugins into /opt/cni/bin.
runtimecontract
Package runtimecontract is the shared conformance suite for the runtime.Runtime port (ADR-0011).
Package runtimecontract is the shared conformance suite for the runtime.Runtime port (ADR-0011).
workerpipe
Package workerpipe (ADR-0168): funcd's end of a worker's raw stdout and stderr, read as written into a bounded queue for funclog and a bounded tail.
Package workerpipe (ADR-0168): funcd's end of a worker's raw stdout and stderr, read as written into a bounded queue for funclog and a bounded tail.
Package safemode counts funcd's unclean starts in <storage.dataDir>/safemode.json and turns a crash loop into a held start, then a stop that names the operator's restore (ADR-0207 Decisions 3 to 5).
Package safemode counts funcd's unclean starts in <storage.dataDir>/safemode.json and turns a crash loop into a held start, then a stop that names the operator's restore (ADR-0207 Decisions 3 to 5).
Package scheduler is the placement port (ADR-0017): the control-plane decision of which worker/node runs a function replica.
Package scheduler is the placement port (ADR-0017): the control-plane decision of which worker/node runs a function replica.
schedulercontract
Package schedulercontract is the shared conformance suite for the scheduler.Scheduler port (ADR-0017, ADR-0145): Run asserts the port guarantee against any driver — a valid request yields a non-empty Placement.WorkerNode and no error, unless it lists artifact platforms none of which the driver's node runs.
Package schedulercontract is the shared conformance suite for the scheduler.Scheduler port (ADR-0017, ADR-0145): Run asserts the port guarantee against any driver — a valid request yields a non-empty Placement.WorkerNode and no error, unless it lists artifact platforms none of which the driver's node runs.
singlenode
Package singlenode is the single-node scheduler driver (ADR-0017): it places every function replica on one configured local worker — deterministic, and total except for an artifact built for other platforms than the node's (ADR-0145).
Package singlenode is the single-node scheduler driver (ADR-0017): it places every function replica on one configured local worker — deterministic, and total except for an artifact built for other platforms than the node's (ADR-0145).
Package secrets is the secrets delivery resolver (ADR-0022): it reads a function's bound Secret resources (auto-decrypted by the store's at-rest encryptor) and returns their data as an env-var map for worker injection — PDP-authorized (the secrets PEP).
Package secrets is the secrets delivery resolver (ADR-0022): it reads a function's bound Secret resources (auto-decrypted by the store's at-rest encryptor) and returns their data as an env-var map for worker injection — PDP-authorized (the secrets PEP).
aesgcm
Package aesgcm is the V1 at-rest secrets encryptor (ADR-0022): an AES-256-GCM store.Encryptor that fills the ADR-0006 seam.
Package aesgcm is the V1 at-rest secrets encryptor (ADR-0022): an AES-256-GCM store.Encryptor that fills the ADR-0006 seam.
Package sensor implements the F69 Sensor (ADR-0109): the reusable event→action binder.
Package sensor implements the F69 Sensor (ADR-0109): the reusable event→action binder.
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.
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.
backup
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.
blob
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.
catalog
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.
identity
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.
kv
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.
roles
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.
sql/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.
Package site reconciles the Site resource (ADR-0139, F103): it resolves the site bundle's digest once per spec generation, materializes the bundle under a digest-scoped Bucket prefix (index written last, so its presence means complete), materializes the owned Bucket + Route, and publishes a status DERIVED from the owned Route — the durable record of what is served.
Package site reconciles the Site resource (ADR-0139, F103): it resolves the site bundle's digest once per spec generation, materializes the bundle under a digest-scoped Bucket prefix (index written last, so its presence means complete), materializes the owned Bucket + Route, and publishes a status DERIVED from the owned Route — the durable record of what is served.
Package snapshot is the platform-store snapshot seam (ADR-0202): each platform store (the event store, the metastore, the run state) reads its whole content in one read transaction as a Source, and an empty store of the same port fills from such a stream as a Loader.
Package snapshot is the platform-store snapshot seam (ADR-0202): each platform store (the event store, the metastore, the run state) reads its whole content in one read transaction as a Source, and an empty store of the same port fills from such a stream as a Loader.
badger
Package badger snapshots and loads a whole Badger instance for the platform stores built on one (ADR-0202), the metastore engine and the run state, so each reads in one transaction alike.
Package badger snapshots and loads a whole Badger instance for the platform stores built on one (ADR-0202), the metastore engine and the run state, so each reads in one transaction alike.
snapshotcontract
Package snapshotcontract is the shared conformance suite for snapshot.Source and snapshot.Loader (ADR-0202): every platform store runs it, on disk and in memory, so each one snapshots in one read and loads back alike.
Package snapshotcontract is the shared conformance suite for snapshot.Source and snapshot.Loader (ADR-0202): every platform store runs it, on disk and in memory, so each one snapshots in one read and loads back alike.
Package store is the metastore / database-layer port (ADR-0006): a generic, watchable, versioned record store over ADR-0003 v1alpha1.Object values.
Package store is the metastore / database-layer port (ADR-0006): a generic, watchable, versioned record store over ADR-0003 v1alpha1.Object values.
badger
Package badger is the pure-Go store.Engine (ADR-0065): a Badger v4 LSM at a local directory, superseding ADR-0006's slatedb/cgo engine and restoring funcd's pure-Go static binary.
Package badger is the pure-Go store.Engine (ADR-0065): a Badger v4 LSM at a local directory, superseding ADR-0006's slatedb/cgo engine and restoring funcd's pure-Go static binary.
memory
Package memory is the pure-Go, cgo-free store.Engine: a process-local map guarded by a RWMutex.
Package memory is the pure-Go, cgo-free store.Engine: a process-local map guarded by a RWMutex.
storecontract
Package storecontract is the shared conformance suite for the store port (ADR-0006).
Package storecontract is the shared conformance suite for the store port (ADR-0006).
testkit
bench
Package bench is the funcd benchmark & sustainability harness (ADR-0040): it embeds the platform, drives the public data plane, and samples process memory to answer whether the platform is sustainable on the target box (RAM-bound, scale-to-zero).
Package bench is the funcd benchmark & sustainability harness (ADR-0040): it embeds the platform, drives the public data plane, and samples process memory to answer whether the platform is sustainable on the target box (RAM-bound, scale-to-zero).
fakesql
Package fakesql is a test stand-in for a rqlite engine (ADR-0233): one table todos(id, title, done), basic auth as user funcd, /db/query on a read-only connection and /db/execute?transaction all or nothing, in rqlite's array format.
Package fakesql is a test stand-in for a rqlite engine (ADR-0233): one table todos(id, title, done), basic auth as user funcd, /db/query on a read-only connection and /db/execute?transaction all or nothing, in rqlite's array format.
freeport
Package freeport gives a test a free loopback TCP port that no :0 bind is ever given, for a test that frees a port and binds it again (#758): another test process's :0 bind can take an ephemeral port in between.
Package freeport gives a test a free loopback TCP port that no :0 bind is ever given, for a test that frees a port and binds it again (#758): another test process's :0 bind can take an ephemeral port in between.
langmod
Package langmod locates the repos funcd pins as Go modules (ADR-0141): a pinned module's root, for the committed example builds and the example Apps of funcd-functions, and the embedded Node and Python shims written to a temp dir, for the tests that exec them.
Package langmod locates the repos funcd pins as Go modules (ADR-0141): a pinned module's root, for the committed example builds and the example Apps of funcd-functions, and the embedded Node and Python shims written to a temp dir, for the tests that exec them.
loadgen
Package loadgen is a small, stdlib-only client-side HTTP load generator (ADR-0053).
Package loadgen is a small, stdlib-only client-side HTTP load generator (ADR-0053).
poll
Package poll checks a test condition over time in the caller's goroutine (#950).
Package poll checks a test condition over time in the caller's goroutine (#950).
realshim
Package realshim brings the real Node shim up under a function.Reconciler for the node-gated tests (ADR-0030 node lane).
Package realshim brings the real Node shim up under a function.Reconciler for the node-gated tests (ADR-0030 node lane).
s3stub
Package s3stub is an S3 endpoint for tests (ADR-0203, ADR-0208): path-style object PUT, GET, HEAD, DELETE and CopyObject, ListObjectsV2 and ListObjectVersions over an in-memory bucket stamped by a manual clock, with the bucket's versioning and Object Lock answers set by the test.
Package s3stub is an S3 endpoint for tests (ADR-0203, ADR-0208): path-style object PUT, GET, HEAD, DELETE and CopyObject, ListObjectsV2 and ListObjectVersions over an in-memory bucket stamped by a manual clock, with the bucket's versioning and Object Lock answers set by the test.
sendbuf
Package sendbuf fixes the kernel send buffer of a test server's connections.
Package sendbuf fixes the kernel send buffer of a test server's connections.
stallregistry
Package stallregistry serves an OCI registry that accepts every request and stops answering it (#697).
Package stallregistry serves an OCI registry that accepts every request and stops answering it (#697).
wsupstream
Package wsupstream is the one WebSocket test upstream (ADR-0181): an httptest server over x/net/websocket that records each request's ContentLength and serves the query parameter mode.
Package wsupstream is the one WebSocket test upstream (ADR-0181): an httptest server over x/net/websocket that records each request's ContentLength and serves the query parameter mode.
Package upgrade is `funcd upgrade` (ADR-0207 Decision 1): the installed binary checks the new one, stops the unit, writes a pre-upgrade generation of the three stores that it can restore itself, swaps the binary keeping <self>.previous, records the upgrade for safe mode and starts the unit again.
Package upgrade is `funcd upgrade` (ADR-0207 Decision 1): the installed binary checks the new one, stops the unit, writes a pre-upgrade generation of the three stores that it can restore itself, swaps the binary keeping <self>.previous, records the upgrade for safe mode and starts the unit again.
workernode
local
Package local is the per-sandbox worker-node local API (ADR-0064): an HTTP-over-UDS surface the runtime shim calls for the synchronous fn-to-fn invoke verb (context.invoke).
Package local is the per-sandbox worker-node local API (ADR-0064): an HTTP-over-UDS surface the runtime shim calls for the synchronous fn-to-fn invoke verb (context.invoke).
Package workflow implements the funcd workflow engine core (ADR-0094, FEAT-0005/F64): the state-machine orchestrator that drives a WorkflowRun over its steps.
Package workflow implements the funcd workflow engine core (ADR-0094, FEAT-0005/F64): the state-machine orchestrator that drives a WorkflowRun over its steps.
runstate
Package runstate is the durable-run-state PORT for the workflow engine (ADR-0094).
Package runstate is the durable-run-state PORT for the workflow engine (ADR-0094).
runstate/badger
Package badger is the run-state runstate driver (ADR-0094), backed by Badger v4.
Package badger is the run-state runstate driver (ADR-0094), backed by Badger v4.

Jump to

Keyboard shortcuts

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