Directories
¶
| Path | Synopsis |
|---|---|
|
Package auth is the auth client tier: it selects an organization/identity provider backend — Auth0 today (auth0/), an in-memory stub (stub/) for dev/test — by Kind and returns the interfaces.UserProvider contract (OrgProvider plus user provisioning), so switching auth providers is a config change, not a caller edit.
|
Package auth is the auth client tier: it selects an organization/identity provider backend — Auth0 today (auth0/), an in-memory stub (stub/) for dev/test — by Kind and returns the interfaces.UserProvider contract (OrgProvider plus user provisioning), so switching auth providers is a config change, not a caller edit. |
|
auth0
Package auth0 is the Auth0 Management API backend of the clients/auth tier: it reads the tenant's organizations and an organization's members (iterating every page, skipping malformed records) and writes organizations (create/update/delete), every call behind a circuit breaker.
|
Package auth0 is the Auth0 Management API backend of the clients/auth tier: it reads the tenant's organizations and an organization's members (iterating every page, skipping malformed records) and writes organizations (create/update/delete), every call behind a circuit breaker. |
|
stub
Package stub is the in-memory backend of the clients/auth tier: it satisfies interfaces.UserProvider (OrgProvider + user provisioning) with process-local state, so a service (or test) can run the organization/member, invitation, and user-provisioning flows without a real auth provider.
|
Package stub is the in-memory backend of the clients/auth tier: it satisfies interfaces.UserProvider (OrgProvider + user provisioning) with process-local state, so a service (or test) can run the organization/member, invitation, and user-provisioning flows without a real auth provider. |
|
Package cache provides a builder for ByteCache implementations with multiple backends.
|
Package cache provides a builder for ByteCache implementations with multiple backends. |
|
decorators
Package decorators provides cache decorators for cross-cutting concerns.
|
Package decorators provides cache decorators for cross-cutting concerns. |
|
redis
Package redis provides a Redis-backed cache implementation with singleflight support.
|
Package redis provides a Redis-backed cache implementation with singleflight support. |
|
Package connector builds ConnectorSources for the connector family (→ pkg): S3 now, a future GDrive/Salesforce kind added as a new case + sibling package (charter One Idea; the foundation/logger NewFromConfig pattern).
|
Package connector builds ConnectorSources for the connector family (→ pkg): S3 now, a future GDrive/Salesforce kind added as a new case + sibling package (charter One Idea; the foundation/logger NewFromConfig pattern). |
|
decorators
Package decorators wraps a connector ConnectorSource with the shared client observability stack (metrics/tracing/logging).
|
Package decorators wraps a connector ConnectorSource with the shared client observability stack (metrics/tracing/logging). |
|
s3
Package s3 implements the S3 ConnectorSource for the connector family: a "test connection" probe that lists a bounded page under a connector's bucket/prefix using the connector's OWN credentials, over the shared StorageClient (INJECTED — this package never imports pkg/go/clients/storage, so there is no lateral same-layer import).
|
Package s3 implements the S3 ConnectorSource for the connector family: a "test connection" probe that lists a bounded page under a connector's bucket/prefix using the connector's OWN credentials, over the shared StorageClient (INJECTED — this package never imports pkg/go/clients/storage, so there is no lateral same-layer import). |
|
Package database is the database client tier: it selects a SQL connection-pool backend — PostgreSQL today (postgres/) — by Kind and returns the interfaces.DatabasePool contract, so switching database engines is a config change, not a caller edit.
|
Package database is the database client tier: it selects a SQL connection-pool backend — PostgreSQL today (postgres/) — by Kind and returns the interfaces.DatabasePool contract, so switching database engines is a config change, not a caller edit. |
|
postgres
Package postgres is the PostgreSQL backend of the database client tier: a lifecycle-managed *sql.DB pool (Client) plus ORM-independent pool utilities — a boot-time reachability probe (Ping) and a Prometheus pool-stats collector.
|
Package postgres is the PostgreSQL backend of the database client tier: a lifecycle-managed *sql.DB pool (Client) plus ORM-independent pool utilities — a boot-time reachability probe (Ping) and a Prometheus pool-stats collector. |
|
Package decorators provides the shared client-boundary resilience stack: one reusable builder that composes, from outermost to innermost,
|
Package decorators provides the shared client-boundary resilience stack: one reusable builder that composes, from outermost to innermost, |
|
Package interceptorcore holds the framework-agnostic resilience decisions shared by the gRPC and Connect interceptor stacks.
|
Package interceptorcore holds the framework-agnostic resilience decisions shared by the gRPC and Connect interceptor stacks. |
|
Package jobs provides a factory for background job queue implementations with multiple backends.
|
Package jobs provides a factory for background job queue implementations with multiple backends. |
|
connectorsync
Package connectorsync is the shared River job contract for connector syncs It is the enqueue/dequeue seam between the API (which inserts a sync on TriggerSync / the poll backstop) and the dedicated connector-sync worker (which drains it) — an infrastructure envelope carrying only a connector id, so both apps import it downward from pkg without a lateral app→app dependency.
|
Package connectorsync is the shared River job contract for connector syncs It is the enqueue/dequeue seam between the API (which inserts a sync on TriggerSync / the poll backstop) and the dedicated connector-sync worker (which drains it) — an infrastructure envelope carrying only a connector id, so both apps import it downward from pkg without a lateral app→app dependency. |
|
decorators
Package decorators composes the charter §6.3 Job decorator stack around a scheduled job function: LeaderElection → RateLimit → Retry → Timeout → Tracing → Metrics → Logging → Job.
|
Package decorators composes the charter §6.3 Job decorator stack around a scheduled job function: LeaderElection → RateLimit → Retry → Timeout → Tracing → Metrics → Logging → Job. |
|
river
Package river provides River-based job queue integration.
|
Package river provides River-based job queue integration. |
|
Package lock builds a config-selected core/interfaces.Locker — a DistributedLock (keyed, token-fenced, best-effort) plus Hold, the managed acquire-with-watchdog helper the single-active-query guard (Epic 6) depends on.
|
Package lock builds a config-selected core/interfaces.Locker — a DistributedLock (keyed, token-fenced, best-effort) plus Hold, the managed acquire-with-watchdog helper the single-active-query guard (Epic 6) depends on. |
|
decorators
Package decorators composes cross-cutting concerns — resilience (retry, circuit-breaker, timeout) and observability (logging, metrics, tracing) — around any core/interfaces.DistributedLock, without touching the backend.
|
Package decorators composes cross-cutting concerns — resilience (retry, circuit-breaker, timeout) and observability (logging, metrics, tracing) — around any core/interfaces.DistributedLock, without touching the backend. |
|
local
Package local provides an in-process DistributedLock backend for single-pod deployments (dev / replica=1), where cross-process coordination is unnecessary.
|
Package local provides an in-process DistributedLock backend for single-pod deployments (dev / replica=1), where cross-process coordination is unnecessary. |
|
redis
Package redis provides a cross-pod DistributedLock backend over Redis, for multi-replica deployments (staging/prod).
|
Package redis provides a cross-pod DistributedLock backend over Redis, for multi-replica deployments (staging/prod). |
|
Package messaging provides a factory for message publisher and subscriber implementations with multiple backends.
|
Package messaging provides a factory for message publisher and subscriber implementations with multiple backends. |
|
decorators
Package decorators wraps the messaging MessagePublisher and MessageHandler with cross-cutting concerns.
|
Package decorators wraps the messaging MessagePublisher and MessageHandler with cross-cutting concerns. |
|
memory
Package memory provides an in-process messaging backend for no-infra builds and tests.
|
Package memory provides an in-process messaging backend for no-infra builds and tests. |
|
redis
Package redis provides a Redis Pub/Sub messaging integration (publisher + subscriber) implementing the core MessagePublisher / MessageConsumer contracts over PUBLISH / SUBSCRIBE / PSUBSCRIBE.
|
Package redis provides a Redis Pub/Sub messaging integration (publisher + subscriber) implementing the core MessagePublisher / MessageConsumer contracts over PUBLISH / SUBSCRIBE / PSUBSCRIBE. |
|
sqs
Package sqs provides an AWS-SDK-backed SQS messaging integration (publisher + subscriber) usable against real AWS SQS and against ElasticMQ for local dev.
|
Package sqs provides an AWS-SDK-backed SQS messaging integration (publisher + subscriber) usable against real AWS SQS and against ElasticMQ for local dev. |
|
Package replaybuffer selects and builds a ReplayBuffer backend from configuration and wraps it in the resilience + observability decorator stack, mirroring clients/lock.
|
Package replaybuffer selects and builds a ReplayBuffer backend from configuration and wraps it in the resilience + observability decorator stack, mirroring clients/lock. |
|
decorators
Package decorators composes cross-cutting concerns — a per-op timeout and the observability trio (logging, metrics, tracing) — around any core/interfaces.ReplayBuffer, without touching the backend.
|
Package decorators composes cross-cutting concerns — a per-op timeout and the observability trio (logging, metrics, tracing) — around any core/interfaces.ReplayBuffer, without touching the backend. |
|
memory
Package memory provides an in-process ReplayBuffer backend for single-pod deployments (dev / replica=1), where a reconnect lands on the same pod so cross-pod sharing is unnecessary.
|
Package memory provides an in-process ReplayBuffer backend for single-pod deployments (dev / replica=1), where a reconnect lands on the same pod so cross-pod sharing is unnecessary. |
|
redis
Package redis provides a cross-pod ReplayBuffer backend over Redis, for multi-replica deployments (staging/prod) where a reconnect may land on a different pod than the one that buffered the tail.
|
Package redis provides a cross-pod ReplayBuffer backend over Redis, for multi-replica deployments (staging/prod) where a reconnect may land on a different pod than the one that buffered the tail. |
|
Package rpc is the RPC client tier: it selects an RPC transport backend — gRPC today (grpc/) — by Kind and returns the RPCClient contract, so switching RPC frameworks is a config change, not a caller edit.
|
Package rpc is the RPC client tier: it selects an RPC transport backend — gRPC today (grpc/) — by Kind and returns the RPCClient contract, so switching RPC frameworks is a config change, not a caller edit. |
|
grpc
Package grpc provides gRPC server and client factories for the platform.
|
Package grpc provides gRPC server and client factories for the platform. |
|
grpc/interceptors
Package interceptors provides gRPC unary interceptors for cross-cutting concerns including observability, resilience, and request lifecycle management.
|
Package interceptors provides gRPC unary interceptors for cross-cutting concerns including observability, resilience, and request lifecycle management. |
|
Package secrets is the credential-source client tier: it selects a secret backend — an environment variable (env/), a git-ignored local file (file/), or AWS Secrets Manager (awssm/) — by Kind and returns the interfaces.Source contract, so switching where a credential is read is a configuration change, not a caller edit.
|
Package secrets is the credential-source client tier: it selects a secret backend — an environment variable (env/), a git-ignored local file (file/), or AWS Secrets Manager (awssm/) — by Kind and returns the interfaces.Source contract, so switching where a credential is read is a configuration change, not a caller edit. |
|
awssm
Package awssm implements the AWS Secrets Manager credential Source: it reads a credential from a Secrets Manager secret (a JSON object) named by a caller-supplied Ref→location mapping, extracting the configured JSON field.
|
Package awssm implements the AWS Secrets Manager credential Source: it reads a credential from a Secrets Manager secret (a JSON object) named by a caller-supplied Ref→location mapping, extracting the configured JSON field. |
|
env
Package env implements the environment-variable credential Source: it resolves a Ref to a configured environment variable name and reads its value via os.Getenv.
|
Package env implements the environment-variable credential Source: it resolves a Ref to a configured environment variable name and reads its value via os.Getenv. |
|
file
Package file implements the file-backed credential Source: it reads and writes credentials in a git-ignored local file (a dotenv-style KEY=value store) named by a caller-supplied Ref→location mapping.
|
Package file implements the file-backed credential Source: it reads and writes credentials in a git-ignored local file (a dotenv-style KEY=value store) named by a caller-supplied Ref→location mapping. |
|
Package storage provides the StorageClient factory.
|
Package storage provides the StorageClient factory. |
|
decorators
Package decorators wraps a base StorageClient with the shared client-boundary resilience stack (pkg/go/clients/decorators): Bulkhead → Retry → CircuitBreaker → Timeout → Tracing → Metrics → Logging.
|
Package decorators wraps a base StorageClient with the shared client-boundary resilience stack (pkg/go/clients/decorators): Bulkhead → Retry → CircuitBreaker → Timeout → Tracing → Metrics → Logging. |
|
memory
Package memory provides an in-memory StorageClient backend for no-infra builds and tests.
|
Package memory provides an in-memory StorageClient backend for no-infra builds and tests. |
|
s3
Package s3 implements the StorageClient against S3-compatible object stores (AWS S3 and MinIO), selected by configuration.
|
Package s3 implements the StorageClient against S3-compatible object stores (AWS S3 and MinIO), selected by configuration. |
|
Package transport is the server-transport client tier: it selects an HTTP/RPC server backend — Connect over net/http today (connect/) — by Kind and returns the interfaces.ServerTransport contract, so switching server frameworks is a config change, not a caller edit.
|
Package transport is the server-transport client tier: it selects an HTTP/RPC server backend — Connect over net/http today (connect/) — by Kind and returns the interfaces.ServerTransport contract, so switching server frameworks is a config change, not a caller edit. |
|
connect
Package connect provides a Connect/gRPC server factory that mounts proto-generated handlers on a standard net/http.ServeMux.
|
Package connect provides a Connect/gRPC server factory that mounts proto-generated handlers on a standard net/http.ServeMux. |
|
connect/interceptors
Package interceptors provides Connect RPC interceptors for cross-cutting concerns.
|
Package interceptors provides Connect RPC interceptors for cross-cutting concerns. |
Click to show internal directories.
Click to hide internal directories.