Documentation · v1.0.0

Operate Fission Accountant

Everything here happens inside your own infrastructure.

Quick start with Docker Compose

cp .env.example .env
# set SOC2_ENCRYPTION_KEY and the collector credentials
docker compose up -d --build

# services: web (8080), worker, postgres, redis, minio
# open http://localhost:8080 and create the first administrator

The migrate service runs migrations before web and worker start, so a fresh volume and an upgrade follow the same path.

Deploy on Railway

# 1. create a project from this repository
railway init && railway up

# 2. add the Postgres plugin, then set variables
DATABASE_URL=${{Postgres.DATABASE_URL}}
SOC2_ENCRYPTION_KEY=<openssl rand -hex 32>
FISSION_APP_MODE=product        # or "site" for the marketing site

# 3. optional second service for the worker
start command: fission-accountant worker

Railway injects PORT; both the product app and the marketing site bind to it automatically. Migrations run on boot.

Connect evidence sources

ProviderConfiguration JSONCredentials JSON
github{"organization": "your-org"}{"token": "github_pat_..."}
aws{"region": "us-east-1"}Uses the container's role or environment credentials
gcp{"project_id": "my-project"}{"service_account": "<json>"}
google_workspace{"admin_email": "admin@example.com"}{"service_account": "<json>"}

Credentials are encrypted with SOC2_ENCRYPTION_KEY before they are written to the database and are decrypted only by the worker process.

CLI reference

fission-accountant collect --github-org acme --skip-aws
fission-accountant collect --gcp-project my-project \
  --gcp-service-account-file ./gcp.json     # Pro
fission-accountant verify                    # check the hash chain
fission-accountant export --output evidence.zip
fission-accountant license                   # show the effective edition
fission-accountant init-db                   # migrate and seed the catalog
fission-accountant worker                    # durable worker and scheduler
fission-accountant serve                     # web application

Use --fail-on-findings in CI to exit non-zero once a snapshot has been retained.

Licensing

A Pro license is an Ed25519-signed JSON document. Install it from the dashboard License page, or mount it and set FISSION_LICENSE_FILE. Verification is offline, so an air-gapped install works unchanged. The license covers major version 1.0.0 perpetually; your collected evidence stays readable in every edition.

Auditor access

Create a scoped token under Auditor access with a label, validity period, and optional observation window. The auditor opens /auditor on your deployment, pastes the token, reviews control status, and downloads the evidence package. Only the token hash is stored, and revocation is immediate.

Trust boundary

A private Git repository or a local ledger is tamper-evident, not immutable: an administrator can rewrite history. For retention an auditor can evaluate independently, publish snapshots to an S3 bucket that had Object Lock enabled at creation and use COMPLIANCE retention covering the observation window.

Fission Accountant collects technical evidence. It does not certify SOC 2 compliance and does not replace an auditor's scope, judgment, policy review, or control testing.