Directories
¶
| Path | Synopsis |
|---|---|
|
bench
|
|
|
function-runtimes/wazerobench
command
Command wazerobench measures function artifacts on the platform's real function engine (internal/functions/engine, wazero) through the same runtimes.Loader the runner uses: a "wasm" artifact is compiled as is, a "js" artifact is a bundled script loaded into the shared QuickJS engine.
|
Command wazerobench measures function artifacts on the platform's real function engine (internal/functions/engine, wazero) through the same runtimes.Loader the runner uses: a "wasm" artifact is compiled as is, a "js" artifact is a bundled script loaded into the shared QuickJS engine. |
|
function-runtimes/wazerobench/loopcfg
command
Command loopcfg isolates what wazero's CloseOnContextDone (the runner's deadline mechanism, engine.New) costs each guest: every workload, single thread, with the setting on (what the runner does) and off.
|
Command loopcfg isolates what wazero's CloseOnContextDone (the runner's deadline mechanism, engine.New) costs each guest: every workload, single thread, with the setting on (what the runner does) and off. |
|
cmd
|
|
|
decrypt-check
command
Throwaway diagnostic: verify FLOWCATALYST_APP_KEY can decrypt a ciphertext (e.g.
|
Throwaway diagnostic: verify FLOWCATALYST_APP_KEY can decrypt a ciphertext (e.g. |
|
fc-server
command
Command fc-server is the FlowCatalyst unified production server.
|
Command fc-server is the FlowCatalyst unified production server. |
|
fcdev
command
Command fcdev is the FlowCatalyst developer monolith — a single binary that runs every subsystem against an embedded Postgres so engineers can iterate without Docker.
|
Command fcdev is the FlowCatalyst developer monolith — a single binary that runs every subsystem against an embedded Postgres so engineers can iterate without Docker. |
|
fcrunner-echo
command
Command fcrunner-echo is the in-repo echo test runner (internal/functions/ echorunner): a Go v1 control-protocol client for the made-up runtime "echo".
|
Command fcrunner-echo is the in-repo echo test runner (internal/functions/ echorunner): a Go v1 control-protocol client for the made-up runtime "echo". |
|
Package docs embeds the platform's PUBLISHED Markdown documentation — the curated set under published/ — so the running binary serves it to administrators (Platform → Documentation in the SPA, via /api/docs) and the pages always match the running build.
|
Package docs embeds the platform's PUBLISHED Markdown documentation — the curated set under published/ — so the running binary serves it to administrators (Platform → Documentation in the SPA, via /api/docs) and the pages always match the running build. |
|
Package frontend embeds the built Vue SPA (frontend/dist) into the Go binary and exposes it as an http.Handler.
|
Package frontend embeds the built Vue SPA (frontend/dist) into the Go binary and exposes it as an http.Handler. |
|
internal
|
|
|
common
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. |
|
envutil
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. |
|
functions/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). |
|
functions/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. |
|
functions/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". |
|
functions/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. |
|
functions/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). |
|
functions/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). |
|
functions/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. |
|
functions/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: |
|
ids
Package ids holds distinct types for the platform's entity identifiers.
|
Package ids holds distinct types for the platform's entity identifiers. |
|
logging
Package logging configures structured logging via slog.
|
Package logging configures structured logging via slog. |
|
mcp
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. |
|
migrate
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. |
|
netguard
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. |
|
oauthtoken
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. |
|
outbox
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. |
|
outbox/mongo
Package mongo is the MongoDB-backed outbox repository.
|
Package mongo is the MongoDB-backed outbox repository. |
|
outbox/postgres
Package postgres is the Postgres-backed outbox repository.
|
Package postgres is the Postgres-backed outbox repository. |
|
outbox/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. |
|
platform/application
Package application represents a registered application (or integration) in the platform.
|
Package application represents a registered application (or integration) in the platform. |
|
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. |
|
platform/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). |
|
platform/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). |
|
platform/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. |
|
platform/auth
Package auth houses:
|
Package auth houses: |
|
platform/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. |
|
platform/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). |
|
platform/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). |
|
platform/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). |
|
platform/auth/grantstore
Package grantstore persists OAuth2 authorization codes and refresh tokens.
|
Package grantstore persists OAuth2 authorization codes and refresh tokens. |
|
platform/auth/login
Package login wires the SPA's session-cookie authentication surface:
|
Package login wires the SPA's session-cookie authentication surface: |
|
platform/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. |
|
platform/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: |
|
platform/auth/oauthapi
Package oauthapi is the hand-rolled OAuth2 endpoint surface.
|
Package oauthapi is the hand-rolled OAuth2 endpoint surface. |
|
platform/auth/operations
Package operations holds the 13 auth subdomain admin use cases.
|
Package operations holds the 13 auth subdomain admin use cases. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/auth/sessiontoken
Package sessiontoken is the platform's session-cookie JWT layer.
|
Package sessiontoken is the platform's session-cookie JWT layer. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/connection
Package connection stores outbound webhook delivery targets (subscriber endpoints).
|
Package connection stores outbound webhook delivery targets (subscriber endpoints). |
|
platform/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. |
|
platform/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. |
|
platform/cors/api
Package api wires HTTP routes for the cors subdomain via huma.
|
Package api wires HTTP routes for the cors subdomain via huma. |
|
platform/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. |
|
platform/dispatchjob
Package dispatchjob holds the dispatch-job entity and repository.
|
Package dispatchjob holds the dispatch-job entity and repository. |
|
platform/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. |
|
platform/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). |
|
platform/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. |
|
platform/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). |
|
platform/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. |
|
platform/dispatchpool/api
Package api wires HTTP routes for dispatch_pool via huma.
|
Package api wires HTTP routes for dispatch_pool via huma. |
|
platform/docsapi
Package docsapi serves the platform's documentation surface to administrators.
|
Package docsapi serves the platform's documentation surface to administrators. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/event/api
Package api wires the event HTTP endpoints via huma.
|
Package api wires the event HTTP endpoints via huma. |
|
platform/eventtype
Package eventtype is the worked-example subdomain.
|
Package eventtype is the worked-example subdomain. |
|
platform/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. |
|
platform/eventtype/operations
Package operations holds the EventType use cases.
|
Package operations holds the EventType use cases. |
|
platform/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). |
|
platform/function/api
Package api wires HTTP routes for function via huma.
|
Package api wires HTTP routes for function via huma. |
|
platform/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). |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/functiondomain/api
Package api wires HTTP routes for functiondomain via huma.
|
Package api wires HTTP routes for functiondomain via huma. |
|
platform/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. |
|
platform/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. |
|
platform/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). |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/openapispecs
Package openapispecs is the per-application OpenAPI document store.
|
Package openapispecs is the per-application OpenAPI document store. |
|
platform/openapispecs/operations
Package operations holds the OpenAPI-spec use cases.
|
Package operations holds the OpenAPI-spec use cases. |
|
platform/passwordreset
Package passwordreset stores short-lived single-use reset tokens.
|
Package passwordreset stores short-lived single-use reset tokens. |
|
platform/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. |
|
platform/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. |
|
platform/platformconfig/api
Package api wires HTTP routes for platform_config via huma.
|
Package api wires HTTP routes for platform_config via huma. |
|
platform/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. |
|
platform/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. |
|
platform/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). |
|
platform/principal
Package principal is the unified user/service-account aggregate.
|
Package principal is the unified user/service-account aggregate. |
|
platform/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. |
|
platform/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}. |
|
platform/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. |
|
platform/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: |
|
platform/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). |
|
platform/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. |
|
platform/role
Package role defines RBAC role shapes with permission sets (incl.
|
Package role defines RBAC role shapes with permission sets (incl. |
|
platform/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. |
|
platform/scheduledjob
Package scheduledjob holds the cron-driven job definitions.
|
Package scheduledjob holds the cron-driven job definitions. |
|
platform/scheduledjob/api
Package api wires HTTP routes for scheduled_job via huma.
|
Package api wires HTTP routes for scheduled_job via huma. |
|
platform/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). |
|
platform/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. |
|
platform/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. |
|
platform/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}. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/shared/apicommon
Package apicommon holds reusable HTTP response shapes.
|
Package apicommon holds reusable HTTP response shapes. |
|
platform/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. |
|
platform/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. |
|
platform/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. |
|
platform/shared/database
Package database provides the pgxpool factory.
|
Package database provides the pgxpool factory. |
|
platform/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). |
|
platform/shared/email
Package email sends transactional emails (password reset, …) over SMTP.
|
Package email sends transactional emails (password reset, …) over SMTP. |
|
platform/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). |
|
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. |
|
platform/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: |
|
platform/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. |
|
platform/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. |
|
platform/shared/middleware
Package middleware provides the platform's chi/net/http middleware stack.
|
Package middleware provides the platform's chi/net/http middleware stack. |
|
platform/shared/platformsink
Package platformsink implements usecasepgx.Sink for the platform itself.
|
Package platformsink implements usecasepgx.Sink for the platform itself. |
|
platform/shared/ratelimit
Package ratelimit provides the distributed Store and the in-memory Governor.
|
Package ratelimit provides the distributed Store and the in-memory Governor. |
|
platform/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). |
|
platform/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. |
|
platform/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. |
|
platform/shared/validate
Package validate holds the shared operations-layer input checks.
|
Package validate holds the shared operations-layer input checks. |
|
platform/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. |
|
platform/subscription
Package subscription binds event types to delivery targets (connections / endpoints).
|
Package subscription binds event types to delivery targets (connections / endpoints). |
|
platform/subscription/api
Package api wires HTTP routes for the subscription subdomain via huma.
|
Package api wires HTTP routes for the subscription subdomain via huma. |
|
platform/webauthn
Package webauthn implements passkey (WebAuthn) credentials and the registration/authentication ceremonies.
|
Package webauthn implements passkey (WebAuthn) credentials and the registration/authentication ceremonies. |
|
platform/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. |
|
platform/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. |
|
queue
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. |
|
queue/nats
Package nats is the NATS JetStream queue backend.
|
Package nats is the NATS JetStream queue backend. |
|
queue/postgres
Package postgres is the Postgres-backed queue backend.
|
Package postgres is the Postgres-backed queue backend. |
|
queue/sqs
Package sqs is the AWS SQS-backed queue backend.
|
Package sqs is the AWS SQS-backed queue backend. |
|
router
Package router is the FlowCatalyst message router (fc-router).
|
Package router is the FlowCatalyst message router (fc-router). |
|
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. |
|
runtimetune
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. |
|
schemacodegen
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. |
|
secrets
Package secrets implements a pluggable secrets provider registry.
|
Package secrets implements a pluggable secrets provider registry. |
|
standby
Package standby implements Redis-backed leader election.
|
Package standby implements Redis-backed leader election. |
|
stream
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. |
|
tsid
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). |
|
ui/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. |
|
ui/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). |
|
ui/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). |
|
ui/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. |
|
ui/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. |
|
ui/kit
templ: version: v0.3.1020
|
templ: version: v0.3.1020 |
|
ui/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). |
|
ui/pages
templ: version: v0.3.1020
|
templ: version: v0.3.1020 |
|
ui/shell
templ: version: v0.3.1020
|
templ: version: v0.3.1020 |
|
tools
|
|
|
analyzer/idconv
command
Command idconv runs the idconv analyzer as a standalone tool.
|
Command idconv runs the idconv analyzer as a standalone tool. |
|
analyzer/idconv/analyzer
Package analyzer implements the idconv analyzer.
|
Package analyzer implements the idconv analyzer. |
|
analyzer/uowseal
command
Command uowseal runs the uowseal analyzer as a standalone tool.
|
Command uowseal runs the uowseal analyzer as a standalone tool. |
|
analyzer/uowseal/analyzer
Package analyzer implements the uowseal go vet analyzer.
|
Package analyzer implements the uowseal go vet analyzer. |
|
dump-spec
command
dump-spec emits the platform's huma-generated OpenAPI spec to stdout without booting a database.
|
dump-spec emits the platform's huma-generated OpenAPI spec to stdout without booting a database. |
Click to show internal directories.
Click to hide internal directories.