Skip to content

Configuration defaults

projects/matrix-3/packages/flowpad/src/config/defaults.ts is the single source of truth for FlowPad's defaults. The file is short — five constants — but those five values flow through the entire page.

The defaults object

ts
// projects/matrix-3/packages/flowpad/src/config/defaults.ts:12-23
export const FLOWPAD_DEFAULTS = {
  AUTHORITY_ROOT: 'FLOWPAD-AUTHORITY',
  CATALOG_MOUNT: 'system.catalog',
  CATALOG_TARGET: 'FLOWPAD-AUTHORITY/system.catalog',
  FLOWPAD_ROOT: 'FLOWPAD-ROOT',
  BACKBONE_URL: '',
} as const;
KeyDefaultUsed by
AUTHORITY_ROOTFLOWPAD-AUTHORITYThe authority root the page binds to.
CATALOG_MOUNTsystem.catalogThe mount-id portion of the catalog target.
CATALOG_TARGETFLOWPAD-AUTHORITY/system.catalogDefault value for _targetMount (i.e., $TARGET).
FLOWPAD_ROOTFLOWPAD-ROOTThe runtime root the FlowPad page itself runs as.
BACKBONE_URL''Default backbone broker URL. Empty = use whatever transport the bootstrap chose.

Resolution priority

The header comment in the same file sets the rule:

Root resolution priority:
  1. URL params: ?catalog=X, ?authorityRoot=X, ?root=X, ?backbone=X
  2. HTML attributes on <matrix-dsl-host>
  3. These product defaults

URL parameters always win. Host-element attributes are the second-best source. Hard defaults are the fallback. There is no environment variable, cookie, or local-storage override.

URL parameters

ParameterOverrides
?authorityRoot=FLOWPAD_DEFAULTS.AUTHORITY_ROOT
?root=FLOWPAD_DEFAULTS.FLOWPAD_ROOT
?catalog=FLOWPAD_DEFAULTS.CATALOG_TARGET
?backbone=FLOWPAD_DEFAULTS.BACKBONE_URL

Example (development against a Nimbletec authority):

http://127.0.0.1:3100/apps/flowpad/?authorityRoot=COM.NIMBLETEC.RICHARD-SANTOMAURO&catalog=COM.NIMBLETEC.RICHARD-SANTOMAURO/system.catalog

Host-element attributes

<matrix-dsl-host> carries data attributes that mirror URL params one-for-one and are read by the page bootstrap. ExecutionStatus also reads them directly to render the topology tag (projects/matrix-3/packages/flowpad/src/components/ExecutionStatus.ts:31-76):

AttributeRead by
data-runtime-rootExecutionStatus (status pane)
data-authority-rootExecutionStatus, FlowpadAppShell
data-platform-rootExecutionStatus
data-target-sourceExecutionStatus
data-target-kindExecutionStatus
data-requested-rootExecutionStatus
data-target-unavailable-reasonExecutionStatus

Project-catalog roots

projectCatalog.ts:148-154 sets the bundled-projects root:

ts
const DEFAULT_PROJECT_ROOT: ProjectCatalogRootConfig = {
  id: 'flowpad-projects',
  label: 'FlowPad Projects',
  baseUrl: new URL('./projects/', FLOWPAD_BASE_URL_STR).toString(),
  projectIds: ['database', 'federation', 'lisp', 'security', 'serialization', 'vlm'],
  source: 'bundled',
};

FLOWPAD_BASE_URL_STR is window.location.href.replace(/[^/]*$/, '') — i.e., wherever the page is served from. So the bundled projects always load from <page-base>/projects/<id>/manifest.json.

loadProjectCatalog accepts additional roots — matrix (the package authority's system.catalog) and user (a user-supplied URL serving the same manifest contract) — to surface external packages and examples without rebuilding FlowPad. Today nothing in the page bootstrap wires matrix or user roots; the surface is there for future expansion.

Per-stage execution timeouts

These are NOT in defaults.ts — they are inline constants in FlowpadApp._executeRemoteCall (FlowpadApp.ts:336-340):

cross-root mount (contains '/'):    30000 ms
mount contains 'vlm':               10000 ms
otherwise:                          5000 ms

There is no current way to override these per call. If you need a different policy, fork the package or open an issue requesting a parameter.

Theme tokens

Theme tokens are NOT configuration in the static sense — they are applied at runtime through bus ops (flowpad-page $tokens op consumed by <mx-theme>). See Settings and addressing for the canned theme examples in dsl/examples.ts and the full list of supported token names.

What is NOT configurable

The following are deliberate fixed product surfaces — changing them requires forking the package:

  • The five built-in examples (FlowpadApp._examples).
  • The eleven services + five VLM bootstrap nodes mounted by onBootstrap.
  • The four result viewer kinds (Data, Table, Tree, Error).
  • The two editor modes (Flow DSL and LISP/Scheme).
  • The permissions.fsPolicy: 'none' setting.

See also

Source: projects/matrix-3/packages/flowpad/src/config/defaults.ts. The resolution-priority rule lives in the same file's header comment.