Skip to main content
An organisation is the top of the Fjall hierarchy. Deploying one provisions a multi-account AWS Organizations structure, organisational units, and the governance baseline your applications build on.

Prerequisites

1. Create the organisation

Run the following at the root of your project:

2. Answer the prompts

The interactive flow asks for, in order:
Use a monitored inbox for the account email. With centralised root access enabled (the default), member accounts hold no root credentials, and AWS root password recovery — the “Allow password recovery” privileged task — delivers its reset link to this address.
After the review-and-confirm step, the CLI generates the organisation structure and runs npm install.
Creating an organisation does not deploy anything to AWS or open a browser. OIDC trust is established separately by fjall connect. The flow is create, then connect, then deploy.
Organisation CLI prompts Figure: Creating your organisation via the Fjall CLI.

3. Review the infrastructure file

Fjall generates the organisation definition at fjall/organisation/infrastructure.ts.
By default, Fjall generates five accounts (Production, Staging, Development, Platform, and Business Continuity), each mapped to its organisational unit. Edit infrastructure.ts to change this layout before deploying.
Fjall infrastructure config Figure: The generated organisation infrastructure file.

4. Deploy the organisation

Fjall resolves the AWS account from your active deployment target. Profiles are derived automatically from your organisation config, so there is no manual profile step. Use fjall target list to see the derived targets and fjall target set <name> to choose the active one. Deploying organisation cascades into the platform and account deploys by default. Pass --no-cascade to deploy the organisation alone.

Success output

A successful deployment produces output similar to:

Non-interactive mode

Pass options to skip the prompts:
The interactive governance labels map to --security values: Monitored = foundation, Regulated = compliance, Enforced = hardened. Essentials applies no preset.
The non-interactive flow has no --account-name option. The root account name follows the organisation name unless overridden in infrastructure.ts.

Next Steps

Understanding Profiles

See how Fjall derives AWS profiles and deployment targets from your organisation config

Connect AWS

Establish OIDC trust between Fjall and your AWS account

Deploy an Application

Deploy your first application into the organisation