Appearance
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;| Key | Default | Used by |
|---|---|---|
AUTHORITY_ROOT | FLOWPAD-AUTHORITY | The authority root the page binds to. |
CATALOG_MOUNT | system.catalog | The mount-id portion of the catalog target. |
CATALOG_TARGET | FLOWPAD-AUTHORITY/system.catalog | Default value for _targetMount (i.e., $TARGET). |
FLOWPAD_ROOT | FLOWPAD-ROOT | The 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 defaultsURL 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
| Parameter | Overrides |
|---|---|
?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.catalogHost-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):
| Attribute | Read by |
|---|---|
data-runtime-root | ExecutionStatus (status pane) |
data-authority-root | ExecutionStatus, FlowpadAppShell |
data-platform-root | ExecutionStatus |
data-target-source | ExecutionStatus |
data-target-kind | ExecutionStatus |
data-requested-root | ExecutionStatus |
data-target-unavailable-reason | ExecutionStatus |
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 msThere 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.