Skip to main content

Workspaces

A workspace owns projects, their runs, its own credentials, its members and its policy. Nothing crosses between two of them.

Every install starts with one​

The FlowWright hub: a greeting, a continue-where-you-left-off card, recent runs, and the list of your workspaces.The FlowWright hub: a greeting, a continue-where-you-left-off card, recent runs, and the list of your workspaces.
The hub: recent runs across every workspace you belong to, and a card per workspace.

The first time a server opens its database it creates a workspace called Default, and every project, run and user that already existed is moved onto it. Existing accounts get a workspace role derived from their instance role — an admin becomes a workspace_admin, a member a workspace_member, everyone else a workspace_viewer.

If you never make a second workspace you will never see the machinery: with one workspace, signing in takes you straight into it and the hub never appears.

Creating another​

Only an instance admin can create a workspace, and the creator becomes its first workspace admin — otherwise the workspace would exist with nobody able to administer it.

A workspace created on an open server has no members

With FW_AUTH=disabled there is no identity to grant, so the new workspace starts empty. That's fine on a laptop and a trap anywhere else — one more reason not to run an open server where anyone can reach it.

The hub at /home lists what you can reach, with the ones you've pinned first. It only grows a search box past six workspaces.

Policy​

Four limits, set under a workspace's Settings by anyone with manageSettings. Each is optional, and each does something narrower than its name suggests:

SettingEmpty meansWhat it actually does
Max concurrent runsunlimitedDefers, never rejects: a run over the cap stays queued until one finishes
Retentioninstance defaultOverrides the instance retention window for this workspace's runs
Worker labelsunrestrictedA ceiling on what a project here may require — checked when the project is saved, not when it runs
Artifact quotaunlimitedSkips artifact collection once exceeded; the run still executes and existing artifacts are kept

Two of these are worth reading twice. A workspace at its concurrency cap looks like a workspace with a stuck queue — the runs are waiting, not failing. And a workspace over its artifact quota produces green runs with nothing collected, which is quiet unless you're looking for it.

The label ceiling is the one that fails loudly: saving a project that requires a label the workspace doesn't allow is rejected with the offending labels named.

What the overview measures​

The workspace overview's headline numbers have specific definitions, and one of them is not what you'd guess:

  • Success rate is over a 7-day window and counts only decided runs — successes divided by successes plus failures. Queued, running, cancelled and skipped runs are in neither half, and the figure is blank rather than zero when nothing has been decided.
  • Runs is a separate 24-hour count.
  • Average and p95 duration are over the same 7-day window.

A project's own health rail is computed differently, from that project's recent runs, so the two can disagree. Trust the workspace number for the workspace.

Archiving​

Archiving keeps a workspace fully readable and freezes everything else: no new projects, no runs triggered, cancelled or retried, no credential, member, settings or integration changes. The data stays, and so does the audit trail.

Un-archiving is deliberately not frozen — a workspace admin can always reverse it.

Un-archive on its own, then rename

A single request that un-archives and changes a setting is rejected. Touching any setting requires manageSettings, which is false while the workspace is still archived. Un-archive first, then edit.