This page is the command reference. For the full integration guide (plugin
examples for GitHub Actions and Buildkite, AWS credential options, and exit
codes), see CI/CD Integration.
Overview
Thefjall ci family covers everything a pipeline needs, from scaffolding the
workflow file to running the deploy.
Pipelines authenticate with a CI deploy token (prefix
fjall_dk_), stored
as the FJALL_API_KEY secret.
Subcommands
Set up a pipeline
setup resolves the CI provider, the repository, the application and the
deployment target, checks that the target’s AWS account is connected to your
organisation, then writes the plugin-form workflow file for GitHub Actions or
Buildkite and prints the web-app URL where the deploy token is minted.
setup never holds a deploy token. Without --plan it writes the workflow
file (refusing to overwrite an existing one unless --force is passed) and
prints the next step: mint the token in the web app (Settings → CI/CD
Tokens), store it as the CI secret, then run fjall ci verify. With
--plan it prints the resolved provider, application, workflow path and
deploy target, then the fully rendered workflow YAML, and writes nothing.
--plan also skips the existing-file check, so it never errors on a workflow
that is already there.Verify readiness
verify dry-runs the auth handshake before your first pipeline run and prints
four checks. Every failing check carries a directional fix.
Warnings do not fail verification. Any
fail row sets exit code 1.
Check token readiness
status counts the organisation’s CI deploy tokens and reports Ready: yes
when at least one is active. Expired and revoked counts print alongside, so a
pipeline that started failing on auth shows its cause in one line.
Manage tokens
list prints one row per deploy token: name, token prefix, status
(active, expired or revoked) and the resolved constraint summary. It
warns separately about two states worth acting on. An unconstrained active
token can deploy in every application, environment and AWS account in the
organisation. A token with malformed constraints deploys as if
unconstrained, because enforcement ignores what it cannot parse. Re-mint either
one with constraints in the web app.
list and revoke work with any authenticated credential. There is no
create subcommand: minting is session-only, so the constraints (application,
environment, connected account) and the expiry are chosen in the web-app mint
dialog.
fjall ci token manages CI deploy tokens, which mint short-lived AWS
credentials for a pipeline. fjall token manages personal and agent API
tokens, which authenticate a human or an agent to the Fjall API. They are
separate surfaces. See fjall token.Run a deploy from CI
fjall ci run <deploy|destroy|build> <target> [service] is the single CI entry
point, the same command both official plugins invoke. It forces non-interactive
output, skips confirmation prompts, and rejects flags that do not apply to the
verb you are running. Passing --skip-build to a destroy is an error,
not a silent no-op.
Target resolution is explicit or it fails. ci run never falls back to an
active target or to the application’s server-side account registration, so a
committed activeTarget or another machine’s local state can never re-aim a
pipeline.
On
ci run deploy, --environment does two jobs: it selects the account
above, and it selects the .env.<stage> Docker build-arg tier for the build.
ci run deploy and ci run destroy queue behind a held deployment slot for up
to 20 minutes, polling every 30 seconds. That covers a sibling application
deploy without burning the build. A long organisation cascade can still exhaust
the budget, and the block message says how long it waited.
The positional
<target> is an application name. Tier operations are
noun-verb and have their own commands: fjall org deploy, fjall platform deploy, fjall account deploy. Passing a tier word to ci run is rejected.2 plan-pending and 4
destruction-gate), and provider examples live in
CI/CD Integration → Raw CLI Usage.
Next Steps
CI/CD Integration
Full pipeline guide: plugins, tokens, AWS credentials, exit codes.
Engine Compatibility
How
cli-version keeps the CI-installed CLI aligned with your constructs.fjall token
Personal and agent API tokens, distinct from CI deploy tokens.
Destructive Changes
What exit code 4 means and how to clear the destruction gate in CI.