Skip to content

Settings

Five tabs. Everything saves at once and applies immediately to schedules, builds and notifications — there is no restart step.

General

Settings, general tab

FieldNotes
Site nameShown in the header and in notification subjects.
Public URLUsed to build links in notifications. Set it, or notification links go nowhere.
Time zoneCron expressions are evaluated in this zone, not UTC and not the browser's.
Interface languageTraditional Chinese, English or Japanese. See Localization.
DatabaseSQLite by default, relative to the API content root. Override with ConnectionStrings:Walis, and name the engine with Database__Provider (sqlite, postgresql, mysql, sqlserver). Anything but SQLite can be shared by several nodes — see High availability.

Build

Settings, build tab

FieldNotes
Concurrent build limitSlots on the local runner.
Default timeoutApplied to jobs that do not set their own.
Retention (days)Shared by build records, artifacts and audit entries.
Default working directoryStarting point for new jobs.
Default shellThe shell each step runs in.

Isolate builds

On by default, and macOS only. There, each step is wrapped in sandbox-exec and cannot read or write the Walis data directory or any path in Extra denied paths. On Windows and Linux the setting has no effect — those platforms rely on Allowed working directories and environment scrubbing instead.

Paths are resolved segment by segment through symlinks before the rules are written. This matters more than it sounds: on macOS /tmp and /var/folders are symlinks partway along, and a rule written against the unresolved path silently does nothing.

Allowed working directories

One per line; empty means unrestricted. When the list is non-empty, a job whose working directory is not inside it fails immediately rather than running somewhere unintended.

Artifacts and workspace

  • Keep build artifacts — copies the job's artifact paths out after a successful build, up to 200 files / 64 MB, downloadable from the log window.
  • Clean workspace before each build — deletes directory contents only. Disk roots, home directories and suspiciously shallow paths are refused outright. Cleaning happens before the cache is restored.

Backup

Settings, backup tab

See Backup and restore.

Security

Settings, security tab

FieldNotes
Require sign-inOff by default. Create an administrator account first — and the last account cannot be deleted.
Require OTP for all accountsAccounts not yet enrolled can still sign in, but cannot disable OTP afterwards.
Record audit logJobs, builds, runners, variables, settings, notifications, translations.
Mask secrets in build outputOn by default. Off prints secret values into retained logs.
Allowed CORS originsOne per line, effective on save. Defaults to 127.0.0.1:11124 and localhost:11124.
Webhook secretOnce set, push requests must carry X-Hub-Signature-256, X-Gitlab-Token or X-Walis-Token.
Push webhook URLThe address to paste into GitHub or GitLab. Copy button beside it.

Audit

Settings, audit tab

The audit trail, when recording is on. Swept by the same Retention (days) value as builds — so shortening retention to tidy up build history also shortens how far back you can investigate.

Portability

Export writes every job and custom action as JSON, deliberately excluding identifiers, statistics and timestamps — those describe this machine, not the configuration.

Import matches by name. With overwrite false, an existing name is skipped; with it true, the job is updated in place and keeps its identifier and build history.

Action flows are objects in the export file rather than escaped strings, so the diff is reviewable.

Released under the MIT License.