Appearance
Default settings
What Sulu does out of the box — every knob below is configurable, but this is the behaviour you get on a fresh project, workspace, or install.
Per-project settings
| Setting | Default | Where to change |
|---|---|---|
| Test case creation on import | Match only — an automated result whose id matches no existing test case is stored unbound instead of auto-creating a case; unbound results surface through Promote on the launch. Switch to Auto-create to restore automatic case creation. | Project Settings → General |
| Test case organisation | Folders (the alternative is attribute trees built from custom fields) | Project Settings → General |
| Default access for workspace members | Off — workspace members need an explicit role (direct, group, or invitation) to access the project | Project Settings → General |
| Launch auto-close policy | Auto-close finished launches after 1 hour; interrupt-and-close launches stuck in progress after 1 hour | Project Settings → General |
Workspace & role defaults
| Setting | Default |
|---|---|
| Role of a workspace invitee | Member (consumes a seat) |
| Project creator's role | Owner of the project |
| Workspace creator's role | Owner of the workspace |
| Guest invitees | Always project-scoped Viewer; consume no seat |
| Invitation lifetime | 24 hours, then the link expires (invitations can be re-sent) |
| API tokens | Never expire and carry no scopes — a token acts with its owner's permissions everywhere the owner has access. Revoke from Profile → API keys. |
See the permissions model for what each role can do.
Reporting & import limits
| Setting | Default | Env var (self-hosted) |
|---|---|---|
| Max size per uploaded report file | 50 MB | SULU_IMPORT_MAX_FILE_MB |
| Max files per imported launch | 20 000 | SULU_IMPORT_MAX_FILES_PER_LAUNCH |
suluctl watch console shipping | On — the run's stdout/stderr stream into the launch's Logs panel, capped at ~50 MB / 200k lines per run. Disable with SULU_SHIP_CONSOLE=false. | — (suluctl-side) |
Retention
| Data | Default retention | Env var (self-hosted) |
|---|---|---|
| Trash (soft-deleted test cases, launches, projects, …) | 90 days, then purged permanently | SULU_TRASH_RETENTION_DAYS |
| Test result logs | 180 days | SULU_LOG_RETENTION_DAYS |
| Unlinked import attachments (uploaded but referenced by no result) | 7 days | SULU_IMPORT_UNLINKED_RETENTION_DAYS |
Self-hosted feature flags
| Flag | Effective default | Notes |
|---|---|---|
SULU_INGEST_ASYNC_ENABLED | true in the shipped deployment configs (Compose env template, production Compose, Helm ingest.asyncEnabled) | The bare application default is false, but every standard install path ships it enabled — assume the async V2 ingest surface is on unless you turned it off. |
SULU_SCENARIO_SYNC_ENABLED | true | After an automated run finishes, syncs the reported scenario back into automation-sourced test cases. |
Helm
The Helm chart exposes the async-ingest flag as ingest.asyncEnabled. The import size/retention knobs above are not chart values — set them as extra environment variables on the backend workload.