Help us shape the future of Go! Take the 2026 Go Developer Survey

internal/

directory
v0.0.0-...-e3c07e6 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2026 License: Apache-2.0

Directories

Path Synopsis
Package common holds types shared across the router, queue, stream, outbox, and platform packages: messages, dispatch modes, mediation results, outbox status, configuration shapes, and warnings.
Package common holds types shared across the router, queue, stream, outbox, and platform packages: messages, dispatch modes, mediation results, outbox status, configuration shapes, and warnings.
Package envutil holds the shared environment-variable parsing helpers the per-package FromEnv constructors use.
Package envutil holds the shared environment-variable parsing helpers the per-package FromEnv constructors use.
functions
abi
Package abi is the function runner's guest calling convention, version 1 (docs/function-runner-plan.md §5): the frame layout both directions use, the request/response metadata, the host-call op codes and error codes, and the describe document a module declares its needs with.
Package abi is the function runner's guest calling convention, version 1 (docs/function-runner-plan.md §5): the frame layout both directions use, the request/response metadata, the host-call op codes and error codes, and the describe document a module declares its needs with.
budget
Package budget is the function runner's memory accounting (docs/function-runner-plan.md §7).
Package budget is the function runner's memory accounting (docs/function-runner-plan.md §7).
control
Package control is the wire contract between the platform and function runners (docs/function-runner-plan.md §8.3): the desired-state document a runner long-polls for, the heartbeat it reports back, and the emit request it makes on a function's behalf.
Package control is the wire contract between the platform and function runners (docs/function-runner-plan.md §8.3): the desired-state document a runner long-polls for, the heartbeat it reports back, and the emit request it makes on a function's behalf.
echorunner
Package echorunner is a tiny in-repo test runner that speaks the Go v1 control protocol for a made-up runtime, "echo".
Package echorunner is a tiny in-repo test runner that speaks the Go v1 control protocol for a made-up runtime, "echo".
engine
Package engine runs function modules on wazero (docs/function-runner-plan.md §6.1): one runtime per runner with a disk compilation cache, the `fc` host module every guest calls capabilities through, the load-time module check, and instances whose linear memory is charged to the runner's budget.
Package engine runs function modules on wazero (docs/function-runner-plan.md §6.1): one runtime per runner with a disk compilation cache, the `fc` host module every guest calls capabilities through, the load-time module check, and instances whose linear memory is charged to the runner's budget.
fnfixture
Package fnfixture is the raw ABI v1 guest the function runner's tests run: a Rust module (source in guest/) whose behaviour is chosen by the request path — /echo, /meta, /count, /spin, /grow?mb=N, /trap, /malformed and /call?op=N (the request body is passed to fc.call as a host-call frame).
Package fnfixture is the raw ABI v1 guest the function runner's tests run: a Rust module (source in guest/) whose behaviour is chosen by the request path — /echo, /meta, /count, /spin, /grow?mb=N, /trap, /malformed and /call?op=N (the request body is passed to fc.call as a host-call frame).
jsengine
Package jsengine embeds the function runner's shared JavaScript engine: QuickJS behind ABI v1, built from clients/fn-js-engine (see its build.sh).
Package jsengine embeds the function runner's shared JavaScript engine: QuickJS behind ABI v1, built from clients/fn-js-engine (see its build.sh).
runner
Package runner is the function runner (docs/function-runner-plan.md §6): it long-polls the platform for its pool's desired state, prepares the versions it names (download, verify, compile), routes HTTP invocations to them with per-endpoint auth and per-function permits, serves their host calls, and reports back in heartbeats.
Package runner is the function runner (docs/function-runner-plan.md §6): it long-polls the platform for its pool's desired state, prepares the versions it names (download, verify, compile), routes HTTP invocations to them with per-endpoint auth and per-function permits, serves their host calls, and reports back in heartbeats.
runtimes
Package runtimes turns a function artifact into something the engine can instantiate, for each runtime a version may declare:
Package runtimes turns a function artifact into something the engine can instantiate, for each runtime a version may declare:
Package ids holds distinct types for the platform's entity identifiers.
Package ids holds distinct types for the platform's entity identifiers.
Package logging configures structured logging via slog.
Package logging configures structured logging via slog.
Package mcp implements the FlowCatalyst MCP (Model Context Protocol) server: read-only, agent-facing access to the platform's event types, subscriptions, applications, roles, and OpenAPI specs.
Package mcp implements the FlowCatalyst MCP (Model Context Protocol) server: read-only, agent-facing access to the platform's event types, subscriptions, applications, roles, and OpenAPI specs.
Package migrate applies the embedded schema migrations to a Postgres database using github.com/pressly/goose/v3 as the runner.
Package migrate applies the embedded schema migrations to a Postgres database using github.com/pressly/goose/v3 as the runner.
Package netguard keeps outbound deliveries away from addresses that should never be a customer webhook: the machine's own loopback, cloud metadata (169.254.169.254 and its IPv6 sibling), link-local ranges, and — unless allowed — private networks such as the cluster's own pod and service addresses.
Package netguard keeps outbound deliveries away from addresses that should never be a customer webhook: the machine's own loopback, cloud metadata (169.254.169.254 and its IPv6 sibling), link-local ranges, and — unless allowed — private networks such as the cluster's own pod and service addresses.
Package oauthtoken mints and caches OAuth2 client_credentials access tokens for one platform, for the components that call the platform as a client: the MCP server, and the router fetching its configuration document.
Package oauthtoken mints and caches OAuth2 client_credentials access tokens for one platform, for the components that call the platform as a client: the MCP server, and the router fetching its configuration document.
Package outbox implements the outbox processor: it polls the consumer application's outbox table, batches by message group, and forwards to the FlowCatalyst platform API.
Package outbox implements the outbox processor: it polls the consumer application's outbox table, batches by message group, and forwards to the FlowCatalyst platform API.
mongo
Package mongo is the MongoDB-backed outbox repository.
Package mongo is the MongoDB-backed outbox repository.
postgres
Package postgres is the Postgres-backed outbox repository.
Package postgres is the Postgres-backed outbox repository.
sqlite
Package sqlite is the SQLite-backed outbox repository.
Package sqlite is the SQLite-backed outbox repository.
platform
appdocs
Package appdocs stores application-synced documentation: Markdown pages an application pushes through the SDK sync surface (POST /api/applications/{appCode}/docs/sync), read by administrators in Platform → Documentation.
Package appdocs stores application-synced documentation: Markdown pages an application pushes through the SDK sync surface (POST /api/applications/{appCode}/docs/sync), read by administrators in Platform → Documentation.
application
Package application represents a registered application (or integration) in the platform.
Package application represents a registered application (or integration) in the platform.
application/api
Package api wires the HTTP routes for the application subdomain via huma.
Package api wires the HTTP routes for the application subdomain via huma.
appusers
Package appusers is the user and invitation administration an application performs for its own users, as its own service account (F20).
Package appusers is the user and invitation administration an application performs for its own users, as its own service account (F20).
audit
Package audit holds the audit log entity and repository (read API + a direct batch-ingest Insert).
Package audit holds the audit log entity and repository (read API + a direct batch-ingest Insert).
audit/api
Package api wires the audit log read-only HTTP endpoints via huma.
Package api wires the audit log read-only HTTP endpoints via huma.
auth
Package auth houses:
Package auth houses:
auth/api
Package api wires admin HTTP routes for the auth subdomain via huma.
Package api wires admin HTTP routes for the auth subdomain via huma.
auth/authservice
Package authservice owns JWT token generation and validation for the OAuth/OIDC surface (the former fosite-backed JWT strategy was removed — see ADR-0001).
Package authservice owns JWT token generation and validation for the OAuth/OIDC surface (the former fosite-backed JWT strategy was removed — see ADR-0001).
auth/bridge
Package bridge implements the OIDC client / bridge side of auth: FlowCatalyst as an OIDC client of external IDPs (Entra, Keycloak, Google).
Package bridge implements the OIDC client / bridge side of auth: FlowCatalyst as an OIDC client of external IDPs (Entra, Keycloak, Google).
auth/clientselection
Package clientselection serves /auth/client/* — the multi-tenant client context switcher used by the SPA in embedded auth mode (list accessible clients, switch, current).
Package clientselection serves /auth/client/* — the multi-tenant client context switcher used by the SPA in embedded auth mode (list accessible clients, switch, current).
auth/grantstore
Package grantstore persists OAuth2 authorization codes and refresh tokens.
Package grantstore persists OAuth2 authorization codes and refresh tokens.
auth/login
Package login wires the SPA's session-cookie authentication surface:
Package login wires the SPA's session-cookie authentication surface:
auth/loginbackoff
Package loginbackoff provides layered brute-force protection for the password login endpoint.
Package loginbackoff provides layered brute-force protection for the password login endpoint.
auth/mfatoken
Package mfatoken mints and validates the short-lived, single-purpose tokens that carry a half-authenticated user between /auth/login and the /auth/2fa/* endpoints:
Package mfatoken mints and validates the short-lived, single-purpose tokens that carry a half-authenticated user between /auth/login and the /auth/2fa/* endpoints:
auth/oauthapi
Package oauthapi is the hand-rolled OAuth2 endpoint surface.
Package oauthapi is the hand-rolled OAuth2 endpoint surface.
auth/operations
Package operations holds the 13 auth subdomain admin use cases.
Package operations holds the 13 auth subdomain admin use cases.
auth/passwordhash
Package passwordhash is the single source of truth for FlowCatalyst's password / OAuth-client-secret hashing.
Package passwordhash is the single source of truth for FlowCatalyst's password / OAuth-client-secret hashing.
auth/passwordpolicy
Package passwordpolicy is the single password-acceptance policy for internal (password-auth) users, applied everywhere the platform sets a password on a USER principal: admin user create, the self-service change-password flow, and the password-reset confirm flow.
Package passwordpolicy is the single password-acceptance policy for internal (password-auth) users, applied everywhere the platform sets a password on a USER principal: admin user create, the self-service change-password flow, and the password-reset confirm flow.
auth/payload
Package payload backs the oauth_oidc_payloads table that holds the OIDC artifacts the provider issues: access tokens, refresh tokens, authorization codes, client_credentials sessions, etc.
Package payload backs the oauth_oidc_payloads table that holds the OIDC artifacts the provider issues: access tokens, refresh tokens, authorization codes, client_credentials sessions, etc.
auth/provider
Package provider hosts the JWT claims projection and session-cookie token helpers shared across FlowCatalyst's auth surfaces.
Package provider hosts the JWT claims projection and session-cookie token helpers shared across FlowCatalyst's auth surfaces.
auth/sessiontoken
Package sessiontoken is the platform's session-cookie JWT layer.
Package sessiontoken is the platform's session-cookie JWT layer.
auth/twofa
Package twofa holds the shared 2FA domain-policy evaluation used by both the login flow and the password-reset/invite flow, so the "does this user's domain require 2FA, and with which methods" decision lives in exactly one place.
Package twofa holds the shared 2FA domain-policy evaluation used by both the login flow and the password-reset/invite flow, so the "does this user's domain require 2FA, and with which methods" decision lives in exactly one place.
branding
Package branding resolves the configurable platform name — the brand a user sees in emails, their authenticator app (TOTP issuer), passkey prompts, and the SPA.
Package branding resolves the configurable platform name — the brand a user sees in emails, their authenticator app (TOTP issuer), passkey prompts, and the SPA.
client
Package client is the tenant / organization root in the multi-tenant model.
Package client is the tenant / organization root in the multi-tenant model.
client/api
Package api wires HTTP routes for the client (tenant) subdomain via huma.
Package api wires HTTP routes for the client (tenant) subdomain via huma.
connection
Package connection stores outbound webhook delivery targets (subscriber endpoints).
Package connection stores outbound webhook delivery targets (subscriber endpoints).
connection/api
Package api wires the HTTP routes for the connection subdomain via huma.
Package api wires the HTTP routes for the connection subdomain via huma.
cors
Package cors stores allowed CORS origins for the platform's HTTP layer.
Package cors stores allowed CORS origins for the platform's HTTP layer.
cors/api
Package api wires HTTP routes for the cors subdomain via huma.
Package api wires HTTP routes for the cors subdomain via huma.
dispatch
Package dispatch holds how the platform names and addresses the dispatch queues it advertises to the router, and how it builds the router-config document describing them.
Package dispatch holds how the platform names and addresses the dispatch queues it advertises to the router, and how it builds the router-config document describing them.
dispatchjob
Package dispatchjob holds the dispatch-job entity and repository.
Package dispatchjob holds the dispatch-job entity and repository.
dispatchjob/api
Package api wires the dispatch-job read-only HTTP endpoints via huma.
Package api wires the dispatch-job read-only HTTP endpoints via huma.
dispatchjob/operations
Package operations holds the dispatch-job human-initiated admin use cases: Cancel / Complete (terminal → terminal operator overrides on a FAILED job) and Resend (bulk reset-to-PENDING).
Package operations holds the dispatch-job human-initiated admin use cases: Cancel / Complete (terminal → terminal operator overrides on a FAILED job) and Resend (bulk reset-to-PENDING).
dispatchjob/processing
Package processing implements POST /api/dispatch/process — the internal callback the message router invokes for each queued dispatch job.
Package processing implements POST /api/dispatch/process — the internal callback the message router invokes for each queued dispatch job.
dispatchjob/settled
Package settled implements POST /api/dispatch/settled — the router→platform "settled message" hook that closes the fast-move half of T3/A-01 (BLOCK_ON_ERROR group recovery; the reaper in dispatchjob.RunReaper is the backstop for a router crash between the ACK and this call — see that package's doc comment).
Package settled implements POST /api/dispatch/settled — the router→platform "settled message" hook that closes the fast-move half of T3/A-01 (BLOCK_ON_ERROR group recovery; the reaper in dispatchjob.RunReaper is the backstop for a router crash between the ACK and this call — see that package's doc comment).
dispatchpool
Package dispatchpool encapsulates rate-limit + concurrency settings used by the message router.
Package dispatchpool encapsulates rate-limit + concurrency settings used by the message router.
dispatchpool/api
Package api wires HTTP routes for dispatch_pool via huma.
Package api wires HTTP routes for dispatch_pool via huma.
docsapi
Package docsapi serves the platform's documentation surface to administrators.
Package docsapi serves the platform's documentation surface to administrators.
emaildomainmapping
Package emaildomainmapping maps email domains to IDPs at signup; it carries optional client grants and 2FA policy applied to users who sign up via that domain.
Package emaildomainmapping maps email domains to IDPs at signup; it carries optional client grants and 2FA policy applied to users who sign up via that domain.
emaildomainmapping/api
Package api wires HTTP routes for email_domain_mapping via danielgtaylor/huma/v2.
Package api wires HTTP routes for email_domain_mapping via danielgtaylor/huma/v2.
event
Package event is the CloudEvents 1.0 envelope stored in msg_events.
Package event is the CloudEvents 1.0 envelope stored in msg_events.
event/api
Package api wires the event HTTP endpoints via huma.
Package api wires the event HTTP endpoints via huma.
eventtype
Package eventtype is the worked-example subdomain.
Package eventtype is the worked-example subdomain.
eventtype/api
Package api wires the HTTP routes for the event_type subdomain via danielgtaylor/huma/v2.
Package api wires the HTTP routes for the event_type subdomain via danielgtaylor/huma/v2.
eventtype/operations
Package operations holds the EventType use cases.
Package operations holds the EventType use cases.
function
Package function is the function-runner platform aggregate: the function itself (identity, ownership, pool/warm/limits settings) plus the child records a function owns — versions, aliases, and settings — and the runner-fleet bookkeeping (fng_runners, fng_pool_revisions).
Package function is the function-runner platform aggregate: the function itself (identity, ownership, pool/warm/limits settings) plus the child records a function owns — versions, aliases, and settings — and the runner-fleet bookkeeping (fng_runners, fng_pool_revisions).
function/api
Package api wires HTTP routes for function via huma.
Package api wires HTTP routes for function via huma.
function/artifact
Package artifact is the function-runner artifact store (docs/function-runner-plan.md §8.4): content-addressed by sha256, with a file:// implementation (fc-dev default) and an s3:// implementation (production).
Package artifact is the function-runner artifact store (docs/function-runner-plan.md §8.4): content-addressed by sha256, with a file:// implementation (fc-dev default) and an s3:// implementation (production).
function/control
Package control is the platform's side of the function runner's control plane (docs/function-runner-plan.md §8.3): the desired-state document a runner long-polls, its heartbeat, artifact downloads, and event emission on a function's behalf.
Package control is the platform's side of the function runner's control plane (docs/function-runner-plan.md §8.3): the desired-state document a runner long-polls, its heartbeat, artifact downloads, and event emission on a function's behalf.
function/operations
alias.go is work package 4's alias endpoints plus work package 8's promote wiring (plan §4, §8.2, §8.5): PUT points a named alias at a READY version; DELETE removes it.
alias.go is work package 4's alias endpoints plus work package 8's promote wiring (plan §4, §8.2, §8.5): PUT points a named alias at a READY version; DELETE removes it.
functiondomain
Package functiondomain is the function-runner public-routes domain-claim aggregate (docs/function-runner-plan.md §8, "public routes"): a claimed hostname ZONE, owned by a client (or the platform, when nil), that a function's route hostname must be covered by.
Package functiondomain is the function-runner public-routes domain-claim aggregate (docs/function-runner-plan.md §8, "public routes"): a claimed hostname ZONE, owned by a client (or the platform, when nil), that a function's route hostname must be covered by.
functiondomain/api
Package api wires HTTP routes for functiondomain via huma.
Package api wires HTTP routes for functiondomain via huma.
identityprovider
Package identityprovider stores OIDC IDP configuration (Entra, Keycloak, Google, ...) and the platform-internal "INTERNAL" identity provider for password auth.
Package identityprovider stores OIDC IDP configuration (Entra, Keycloak, Google, ...) and the platform-internal "INTERNAL" identity provider for password auth.
identityprovider/api
Package api wires the HTTP routes for the identity_provider subdomain via danielgtaylor/huma/v2.
Package api wires the HTTP routes for the identity_provider subdomain via danielgtaylor/huma/v2.
idp
Package idp holds provider-specific OIDC integration glue (Keycloak, Entra, Google, generic).
Package idp holds provider-specific OIDC integration glue (Keycloak, Entra, Google, generic).
ingestion
Package ingestion stores ingestions: the definitions of how data from outside (HTTP push, SFTP, S3, queues, polled tables and APIs, runtime extensions) becomes dispatch jobs.
Package ingestion stores ingestions: the definitions of how data from outside (HTTP push, SFTP, S3, queues, polled tables and APIs, runtime extensions) becomes dispatch jobs.
ingestion/api
Package api wires the HTTP routes for the ingestion subdomain via huma.
Package api wires the HTTP routes for the ingestion subdomain via huma.
ingestion/runtimeapi
Package runtimeapi wires the routes an ingestion runtime calls (docs/ingestion-design.md section 7): poll, report, state, job creation and secrets, under /api/ingestion-runtime/v1, as the runtime's service account holding platform:ingestion:runtime:operate.
Package runtimeapi wires the routes an ingestion runtime calls (docs/ingestion-design.md section 7): poll, report, state, job creation and secrets, under /api/ingestion-runtime/v1, as the runtime's service account holding platform:ingestion:runtime:operate.
loginattempt
Package loginattempt tracks user-login and service-account-token outcomes for backoff / rate-limiting and audit.
Package loginattempt tracks user-login and service-account-token outcomes for backoff / rate-limiting and audit.
loginattempt/api
Package api wires the HTTP routes for the login-attempt subdomain via huma.
Package api wires the HTTP routes for the login-attempt subdomain via huma.
mfa
Package mfa is the data layer for two-factor authentication of internal users: enrolled factors (TOTP / email PIN), single-use recovery codes, pending email-PIN challenges, and remembered ("trusted") devices.
Package mfa is the data layer for two-factor authentication of internal users: enrolled factors (TOTP / email PIN), single-use recovery codes, pending email-PIN challenges, and remembered ("trusted") devices.
notify
Package notify sends best-effort security-notification emails — "your password changed", "a new passkey was registered", "2FA was reset", etc.
Package notify sends best-effort security-notification emails — "your password changed", "a new passkey was registered", "2FA was reset", etc.
openapispecs
Package openapispecs is the per-application OpenAPI document store.
Package openapispecs is the per-application OpenAPI document store.
openapispecs/operations
Package operations holds the OpenAPI-spec use cases.
Package operations holds the OpenAPI-spec use cases.
passwordreset
Package passwordreset stores short-lived single-use reset tokens.
Package passwordreset stores short-lived single-use reset tokens.
passwordreset/api
Package api serves the unauthenticated /auth/password-reset/* flow: request → (email link) → validate → confirm.
Package api serves the unauthenticated /auth/password-reset/* flow: request → (email link) → validate → confirm.
platformconfig
Package platformconfig stores system-wide settings (one row per application:section:property) and a per-role access grant table.
Package platformconfig stores system-wide settings (one row per application:section:property) and a per-role access grant table.
platformconfig/api
Package api wires HTTP routes for platform_config via huma.
Package api wires HTTP routes for platform_config via huma.
portalauth
Package portalauth is the portal plane's front-channel auth surface (docs/portal-identity-plan.md Phase 2.5 v2): GET /portal/authorize, POST /portal/auth/check-domain, POST /portal/auth/login.
Package portalauth is the portal plane's front-channel auth surface (docs/portal-identity-plan.md Phase 2.5 v2): GET /portal/authorize, POST /portal/auth/check-domain, POST /portal/auth/login.
portalidentity
Package portalidentity is the portal identity plane (docs/portal-identity-plan.md Phase 2.5 v2): portal end-users as a SEPARATE population from iam_principals — one identity per (client, email) context, platform-implemented (password machinery, reset tokens, OIDC bridge reuse) but with initiation endpoints independent of the employee auth surface.
Package portalidentity is the portal identity plane (docs/portal-identity-plan.md Phase 2.5 v2): portal end-users as a SEPARATE population from iam_principals — one identity per (client, email) context, platform-implemented (password machinery, reset tokens, OIDC bridge reuse) but with initiation endpoints independent of the employee auth surface.
portalidentity/api
Package api serves /api/portal-users and /api/portal-apps — the admin surface of the portal identity plane (docs/portal-identity-plan.md Phase 2.5 v2).
Package api serves /api/portal-users and /api/portal-apps — the admin surface of the portal identity plane (docs/portal-identity-plan.md Phase 2.5 v2).
principal
Package principal is the unified user/service-account aggregate.
Package principal is the unified user/service-account aggregate.
principal/api
Package api wires the HTTP routes for the principal subdomain via huma.
Package api wires the HTTP routes for the principal subdomain via huma.
process
Package process stores free-form workflow documentation (typically Mermaid diagrams) scoped to {application, subdomain, process-name}.
Package process stores free-form workflow documentation (typically Mermaid diagrams) scoped to {application, subdomain, process-name}.
process/api
Package api wires the HTTP routes for the process subdomain via huma.
Package api wires the HTTP routes for the process subdomain via huma.
publicapi
Package publicapi serves the small set of endpoints that must be reachable without an authenticated session:
Package publicapi serves the small set of endpoints that must be reachable without an authenticated session:
resetapproval
Package resetapproval is the lost-device password-reset approval queue (Phase 8 / docs/auth-hardening-plan.md).
Package resetapproval is the lost-device password-reset approval queue (Phase 8 / docs/auth-hardening-plan.md).
resetapproval/api
Package api serves the lost-device password-reset approval queue (Phase 8 / docs/auth-hardening-plan.md): a client-administrator lists pending requests for their client(s) and approves/denies them.
Package api serves the lost-device password-reset approval queue (Phase 8 / docs/auth-hardening-plan.md): a client-administrator lists pending requests for their client(s) and approves/denies them.
role
Package role defines RBAC role shapes with permission sets (incl.
Package role defines RBAC role shapes with permission sets (incl.
role/api
Package api wires the HTTP routes for the role subdomain via danielgtaylor/huma/v2.
Package api wires the HTTP routes for the role subdomain via danielgtaylor/huma/v2.
scheduledjob
Package scheduledjob holds the cron-driven job definitions.
Package scheduledjob holds the cron-driven job definitions.
scheduledjob/api
Package api wires HTTP routes for scheduled_job via huma.
Package api wires HTTP routes for scheduled_job via huma.
scheduledjob/operations
Package operations holds all 7 scheduled_job admin use cases plus fire_now, and the bulk SDK sync (sync.go).
Package operations holds all 7 scheduled_job admin use cases plus fire_now, and the bulk SDK sync (sync.go).
scheduledjob/scheduler
Package scheduler is the scheduled-job cron + dispatch engine for ScheduledJob aggregates.
Package scheduler is the scheduled-job cron + dispatch engine for ScheduledJob aggregates.
scheduler
Package scheduler is the dispatch-job scheduler: polls PENDING dispatch jobs, groups by message_group, applies pause/block filters, and publishes to the message queue (SQS in prod, in-process queue in dev) for the router to consume.
Package scheduler is the dispatch-job scheduler: polls PENDING dispatch jobs, groups by message_group, applies pause/block filters, and publishes to the message queue (SQS in prod, in-process queue in dev) for the router to consume.
sdksync
Package sdksync wires the SDK self-registration ("sync") routes, scoped under /api/applications/{appCode}.
Package sdksync wires the SDK self-registration ("sync") routes, scoped under /api/applications/{appCode}.
seed
Package seed installs the built-in roles, the platform application, and the platform event-types catalog.
Package seed installs the built-in roles, the platform application, and the platform event-types catalog.
serviceaccount
Package serviceaccount implements machine-to-machine principals with webhook credentials and roles.
Package serviceaccount implements machine-to-machine principals with webhook credentials and roles.
serviceaccount/api
Package api wires the HTTP routes for the service_account subdomain via huma.
Package api wires the HTTP routes for the service_account subdomain via huma.
shared/apicommon
Package apicommon holds reusable HTTP response shapes.
Package apicommon holds reusable HTTP response shapes.
shared/apiroute
Package apiroute collapses the standard huma route registration ceremony into one line per route.
Package apiroute collapses the standard huma route registration ceremony into one line per route.
shared/auth
Package auth provides the authenticated-request context and the permission-check helpers used by every write handler.
Package auth provides the authenticated-request context and the permission-check helpers used by every write handler.
shared/bff
Package bff hosts the /bff/* endpoints — frontend-only, session-auth, response shapes tuned to screens.
Package bff hosts the /bff/* endpoints — frontend-only, session-auth, response shapes tuned to screens.
shared/database
Package database provides the pgxpool factory.
Package database provides the pgxpool factory.
shared/dispatchqueue
Package dispatchqueue holds the naming and priority rules shared by the dispatch scheduler (which publishes each claimed job to a queue) and the router-config document the platform serves (which advertises those same queues).
Package dispatchqueue holds the naming and priority rules shared by the dispatch scheduler (which publishes each claimed job to a queue) and the router-config document the platform serves (which advertises those same queues).
shared/email
Package email sends transactional emails (password reset, …) over SMTP.
Package email sends transactional emails (password reset, …) over SMTP.
shared/encryption
Package encryption implements field-level AES-256-GCM encryption with FLOWCATALYST_APP_KEY rotation support, plus a keyed-hash form for secrets that are only ever verified (never resent or re-signed by the platform).
Package encryption implements field-level AES-256-GCM encryption with FLOWCATALYST_APP_KEY rotation support, plus a keyed-hash form for secrets that are only ever verified (never resent or re-signed by the platform).
shared/httpcompat
Package httpcompat is the integration layer between danielgtaylor/huma/v2 and FlowCatalyst's existing wire conventions.
Package httpcompat is the integration layer between danielgtaylor/huma/v2 and FlowCatalyst's existing wire conventions.
shared/httperror
Package httperror maps internal errors to HTTP responses with the platform's canonical JSON envelope shape:
Package httperror maps internal errors to HTTP responses with the platform's canonical JSON envelope shape:
shared/jsontime
Package jsontime provides a time wrapper with fixed-precision microsecond ISO-8601 JSON serialisation.
Package jsontime provides a time wrapper with fixed-precision microsecond ISO-8601 JSON serialisation.
shared/me
Package me serves /api/me — the canonical "who am I" lookup returned to agents, SDKs, and the dashboard.
Package me serves /api/me — the canonical "who am I" lookup returned to agents, SDKs, and the dashboard.
shared/middleware
Package middleware provides the platform's chi/net/http middleware stack.
Package middleware provides the platform's chi/net/http middleware stack.
shared/platformsink
Package platformsink implements usecasepgx.Sink for the platform itself.
Package platformsink implements usecasepgx.Sink for the platform itself.
shared/ratelimit
Package ratelimit provides the distributed Store and the in-memory Governor.
Package ratelimit provides the distributed Store and the in-memory Governor.
shared/repocommon
Package repocommon holds shared repository-layer helpers: the ErrNoRows→nil single-row convention and the positional-argument filter builder used by the hand-rolled dynamic list queries (see docs/sqlc.md for why those stay hand-written).
Package repocommon holds shared repository-layer helpers: the ErrNoRows→nil single-row convention and the positional-argument filter builder used by the hand-rolled dynamic list queries (see docs/sqlc.md for why those stay hand-written).
shared/sdk
dispatch_job_create.go hosts POST /api/dispatch-jobs — the singular SDK create.
dispatch_job_create.go hosts POST /api/dispatch-jobs — the singular SDK create.
shared/syncdiff
Package syncdiff holds the value comparisons the definition syncs use to tell a row they would rewrite with different content from one they would rewrite with the same content (F30): an unchanged row is neither saved nor counted nor audited.
Package syncdiff holds the value comparisons the definition syncs use to tell a row they would rewrite with different content from one they would rewrite with the same content (F30): an unchanged row is neither saved nor counted nor audited.
shared/validate
Package validate holds the shared operations-layer input checks.
Package validate holds the shared operations-layer input checks.
shared/versioncache
Package versioncache answers "has this principal (or a role it holds) changed since a given moment?" cheaply enough to check on every request.
Package versioncache answers "has this principal (or a role it holds) changed since a given moment?" cheaply enough to check on every request.
subscription
Package subscription binds event types to delivery targets (connections / endpoints).
Package subscription binds event types to delivery targets (connections / endpoints).
subscription/api
Package api wires HTTP routes for the subscription subdomain via huma.
Package api wires HTTP routes for the subscription subdomain via huma.
webauthn
Package webauthn implements passkey (WebAuthn) credentials and the registration/authentication ceremonies.
Package webauthn implements passkey (WebAuthn) credentials and the registration/authentication ceremonies.
webauthn/api
Package api wires the WebAuthn HTTP routes under /auth/webauthn/* via huma.
Package api wires the WebAuthn HTTP routes under /auth/webauthn/* via huma.
webauthn/webauthntest
Package webauthntest is a software WebAuthn authenticator for tests: it builds the registration (attestation "none") and assertion payloads a browser would send, so the ceremony paths can be exercised against the real go-webauthn verifier without a browser.
Package webauthntest is a software WebAuthn authenticator for tests: it builds the registration (attestation "none") and assertion payloads a browser would send, so the ceremony paths can be exercised against the real go-webauthn verifier without a browser.
Package queue provides a multi-backend message queue abstraction: a Consumer interface, a Publisher interface, and per-backend implementations registered at runtime.
Package queue provides a multi-backend message queue abstraction: a Consumer interface, a Publisher interface, and per-backend implementations registered at runtime.
nats
Package nats is the NATS JetStream queue backend.
Package nats is the NATS JetStream queue backend.
postgres
Package postgres is the Postgres-backed queue backend.
Package postgres is the Postgres-backed queue backend.
sqs
Package sqs is the AWS SQS-backed queue backend.
Package sqs is the AWS SQS-backed queue backend.
Package router is the FlowCatalyst message router (fc-router).
Package router is the FlowCatalyst message router (fc-router).
api
Package api wires the router's HTTP surface using huma — the same OpenAPI library the platform uses, so the swagger surface is shared.
Package api wires the router's HTTP surface using huma — the same OpenAPI library the platform uses, so the swagger surface is shared.
Package runtimetune adjusts Go runtime settings once at start-up from the container's cgroup limits and the roles this process runs.
Package runtimetune adjusts Go runtime settings once at start-up from the container's cgroup limits and the roles this process runs.
Package schemacodegen is a pure-Go port of the SPA's JSON Schema code generators (frontend/packages/schema-codegen), its syntax highlighter (frontend/src/utils/schema-highlight.ts) and its schema zip export (frontend/src/utils/schema-export.ts), so the server-rendered UI can show the event-type schema viewer without JavaScript.
Package schemacodegen is a pure-Go port of the SPA's JSON Schema code generators (frontend/packages/schema-codegen), its syntax highlighter (frontend/src/utils/schema-highlight.ts) and its schema zip export (frontend/src/utils/schema-export.ts), so the server-rendered UI can show the event-type schema viewer without JavaScript.
Package secrets implements a pluggable secrets provider registry.
Package secrets implements a pluggable secrets provider registry.
sqlc
dbq
Package standby implements Redis-backed leader election.
Package standby implements Redis-backed leader election.
Package stream implements the CQRS projection processors that move rows from write tables (msg_events, msg_dispatch_jobs) into their denormalized read counterparts, plus the event fan-out that matches subscriptions and emits dispatch jobs.
Package stream implements the CQRS projection processors that move rows from write tables (msg_events, msg_dispatch_jobs) into their denormalized read counterparts, plus the event fan-out that matches subscriptions and emits dispatch jobs.
Package tsid is the FlowCatalyst platform's typed-entity overlay on top of the SDK's Crockford Base32 TSID primitives (pkg/fcsdk/tsid).
Package tsid is the FlowCatalyst platform's typed-entity overlay on top of the SDK's Crockford Base32 TSID primitives (pkg/fcsdk/tsid).
ui
Package ui mounts the server-rendered UI under /ui: templ components from the framework's UI kit (internal/ui/kit), Datastar for interaction (internal/ui/ds), served next to the Vue SPA and switched over area by area (only with the owner's approval; until then the SPA stays the default).
Package ui mounts the server-rendered UI under /ui: templ components from the framework's UI kit (internal/ui/kit), Datastar for interaction (internal/ui/ds), served next to the Vue SPA and switched over area by area (only with the owner's approval; until then the SPA stays the default).
assets
Package assets embeds and serves the UI's static files: the kit stylesheet (built from the framework's ui-kit by scripts/ui-kit-sync.sh), the Lucide icon sprite, the pinned datastar.js and the licence notices.
Package assets embeds and serves the UI's static files: the kit stylesheet (built from the framework's ui-kit by scripts/ui-kit-sync.sh), the Lucide icon sprite, the pinned datastar.js and the licence notices.
compress
Package compress is response compression for /ui: Brotli or gzip, chosen from Accept-Encoding, for the server-rendered pages (text/html) and the Datastar streams (text/event-stream).
Package compress is response compression for /ui: Brotli or gzip, chosen from Accept-Encoding, for the server-rendered pages (text/html) and the Datastar streams (text/event-stream).
ds
Package ds is the platform's thin wrapper over the official Datastar Go SDK (github.com/starfederation/datastar-go, pinned in go.mod).
Package ds is the platform's thin wrapper over the official Datastar Go SDK (github.com/starfederation/datastar-go, pinned in go.mod).
guard
Package guard holds the request guards of the server-rendered UI (/ui): cross-site request forgery protection, the session requirement with HTML-vs-Datastar negotiation, the role-less profile gate and the security headers.
Package guard holds the request guards of the server-rendered UI (/ui): cross-site request forgery protection, the session requirement with HTML-vs-Datastar negotiation, the role-less profile gate and the security headers.
htmlnorm
Package htmlnorm turns an HTML fragment into a canonical form so two renderings of the same markup compare equal regardless of formatting.
Package htmlnorm turns an HTML fragment into a canonical form so two renderings of the same markup compare equal regardless of formatting.
kit
templ: version: v0.3.1020
templ: version: v0.3.1020
md
Package md renders Markdown to sanitised HTML on the server (the docs pages, help text).
Package md renders Markdown to sanitised HTML on the server (the docs pages, help text).
pages
templ: version: v0.3.1020
templ: version: v0.3.1020
shell
templ: version: v0.3.1020
templ: version: v0.3.1020

Jump to

Keyboard shortcuts

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