Skip to main content
Complete these first:

Introduction

User access in a Fjall organisation is declared in code. The identityCentre block of fjall/organisation/infrastructure.ts describes your users, groups, permission sets, and memberships; fjall deploy organisation makes AWS IAM Identity Center match the declaration. There are no imperative user commands that write to AWS behind your back — every access change is a reviewable diff in your infrastructure file.
You can edit the block by hand, or use the fjall user verbs — safe file editors that produce the same diff:

Choosing an identity source

The source field declares who owns user objects. Pick the row that matches your organisation: Your IdP owns user creation and deletion; the config declares only group memberships. Fjall resolves each email against the identity store at deploy time.
For Google Workspace, the guided runbook connects SAML + SCIM end to end:
If an email hasn’t synced from your IdP yet, the deploy fails with a prescriptive IDC_* error — see the error ladder in the CLI reference. When a user is deleted and recreated in your IdP, run fjall user rebind and redeploy to re-bind memberships to the new identity.

fjall-managed

Fjall creates and manages the user objects. Declare each user with their memberships:
Every membership email must have a matching users entry — the deploy fails at synth time otherwise. Users receive an AWS invitation email and set up MFA on first sign-in.

external-manual

SAML without SCIM: AWS requires user objects whose usernames mirror your IdP NameIDs. Declare them like fjall-managed users; memberships for emails not declared in users fall back to a store lookup.

Groups, permission sets, and memberships

Every organisation deploys with three default groups: Beyond the defaults, the config declares custom groups and permission sets:
Key permission-set fields:
  • accounts — which ACCOUNTS-map names the set is assigned to (default: all workload accounts). includeManagementAccount: true is the only route to the management account.
  • sessionDuration — ISO 8601, between PT1H and PT12H.
  • managedPolicies / customerManagedPolicies / inlinePolicy / permissionsBoundary — the policy surface, mirroring AWS permission sets.
  • A permission set named after a default group merges over that default’s spec; defaultPermissionSets: false suppresses the three built-ins.
Everything is validated at synth time — unknown group references, case-variant duplicates, past-expiry members, and malformed session durations fail the deploy before any CloudFormation runs.

Day-to-day access changes

Use the CLI verbs to edit the declaration, then deploy:
After each successful write the CLI offers to run the organisation deploy for you — identity-only deploys typically take 2–5 minutes. Audit any time with:

Verify provisioned users (external mode)

After connecting an IdP:
  1. Log in to the AWS Console
  2. In the top-left search bar, type IAM Identity Center and click the first result
IAM Identity Center
  1. Navigate to Users in the left navigation pane
Users Sidebar
  1. You should see your users listed
    • Check that Status is Enabled
    • Check that Created by shows SCIM
SCIM Enabled Or from the terminal: fjall user list --live shows in-store / not-synced per declared email.

Next Steps

User CLI Reference

Full fjall user verb reference and error ladder.

Understanding Profiles

See how profiles map to AWS accounts.

Deploy Organisation

Deploy your AWS organisation.

Agent Tokens

Issue scoped API tokens for CI/CD and automation.