Skip to content

1. Workspace Setup ​

The Workspace Setup wizard runs when you select option 1 from the SWAO main menu. It initialises your engagement folder and writes a .swao.yml configuration file in one guided flow.

What the wizard configures ​

StepWhat it does
WorkspaceEngagement name, client code, owner, and directory; creates the engagement folder structure
LLM providerConfigures the AI provider: Anthropic, OpenAI, Amazon Bedrock Gateway, Ollama
CredentialsStores API keys and vault references via swao credential set
LZ targetsOptional: pick landing zone catalogue providers, then per provider one or more geographies (for example europe, shown with its default region) or region ids. Writes assessment.landing_zone.targets to the workspace .swao.yml; every application run then fits these targets. Press S to skip
Health checkRuns the pre-flight probes once
Claude Desktop, PlaywrightOptional integrations: MCP server configuration and the browser for dynamic analysis
Test codeHow assessments treat test code: analyse all code (default), analyse all code and mark test-code findings, or exclude test code. Writes assessment.test_code.mode to the workspace .swao.yml. Press Esc to keep the current setting

New workspaces contain four demo frameworks. Further community frameworks are copied into the workspace with swao framework install <ID> and chosen per app when you run an assessment.

Workspace Setup wizard in the terminal interface at step 1 of 7, asking for the workspace directoryThe Workspace Setup wizard at step 1 (Init). The progress dots show the remaining steps. Captured with an earlier SWAO version; the current wizard also offers the LZ targets step.

CLI equivalent ​

bash
swao init my-engagement --name app-crm-01
swao credential set anthropic-api-key <your-api-key>
swao framework install GDPR
swao regime-select --app app-crm-01 --regimes GDPR
# LZ targets: pass them per run, or set assessment.landing_zone.targets in .swao.yml
swao assess --app app-crm-01 --lz-cat-targets azure:europe,stackit:eu01

An app .swao.yml and --lz-cat-targets override the workspace targets. A geography resolves to its default region at run time; the application run records requested, resolved and skipped targets in run-status.json, and a skipped target marks the run as partial. The text report (swao report) lists them under Landing Zone Catalogue Fit.

Test code ​

By default SWAO analyses test code like production code. Mixed code bases can keep test code out of the findings:

yaml
assessment:
  exclude_test_code: true      # short form; false (default) analyses everything
  # or the extended form:
  test_code:
    mode: tag                  # include (default) | tag | exclude
    extra_patterns: ["systemtest/**", "**/e2e/**"]
    keep_patterns: []
  • include: everything is analysed; results are unchanged.
  • tag: everything is analysed; findings that rest only on test code are marked test_code and lowered one severity step (the original severity is kept).
  • exclude: test files are not read. The secret scan still covers them: a password in test code stays a finding, marked as test code.

Test code is recognised by built-in rules (src/test/, test/, tests/, __tests__/, systemtest/, e2e/, mock/, *.test.ts, *.spec.js, *Test.java, *IT.java, *ITest.java, ...) and by the test folders declared in pom.xml, Gradle source sets and vitest / jest configuration. keep_patterns wins over every rule. An app .swao.yml overrides the workspace setting. The publication's Assessment Scope shows the mode, the test-file count and the marked findings.

After setup ​

Run a Health Check to verify that all pre-flight probes pass before starting an assessment.

See also: How it works