Skip to content

CI and headless use

Set these and fft runs entirely from the environment — it touches neither the config file nor the keychain:

Variable
FFT_BASE_URLhttps://<tenant>.api.fulfillmenttools.com
FFT_FIREBASE_API_KEYthe Firebase Web API key
FFT_USERNAME or FFT_EMAILthe username, or the full synthetic email
FFT_PASSWORD
FFT_PROJECT_IDneeded to derive the email from FFT_USERNAME
FFT_ENVlikewise
FFT_READ_ONLYoptional; refuse every request that would change the tenant — see Read-only projects
yaml
- run: fft facility list -o json | jq '.[].name'
  env:
    FFT_BASE_URL: ${{ secrets.FFT_BASE_URL }}
    FFT_FIREBASE_API_KEY: ${{ secrets.FFT_FIREBASE_API_KEY }}
    FFT_USERNAME: ${{ secrets.FFT_USERNAME }}
    FFT_PASSWORD: ${{ secrets.FFT_PASSWORD }}
    FFT_PROJECT_ID: ${{ vars.FFT_PROJECT_ID }}
    FFT_ENV: ${{ vars.FFT_ENV }}

Every global flag has an environment variable too: --output is FFT_OUTPUT, --project is FFT_PROJECT, and so on.

An independent open-source project — not affiliated with, endorsed by, or supported by fulfillmenttools.