Developers

Authentication and roles

The API uses HTTP Basic authentication. Always put TLS in front of it; plain HTTP is for local demos only.

Credentials#

curl -su "instructor:demo" https://aarcv.example.mil/api/sorties

Accounts come from two places: users managed in the app by an administrator (Administration → Users, or POST /api/ops/users), and the AARCV_USERS environment variable (name:password:role,...). Passwords are stored as PBKDF2-SHA256 hashes with 200,000 iterations.

Role checks#

Each route enforces one of three kinds of check, shown in the Access badge on every API reference entry:

BadgeMeaning
signed-in userAny account. Product access still passes the release rules.
role: instructor or higherRank check. Instructor and administrator pass; maintainers, ML engineers and security officers sit at viewer rank for debrief routes.
permission: modelsNamed permission. See the table below.
PermissionRoles
fleetmaintainer, admin
maintenancemaintainer, instructor, ml_engineer, admin
modelsml_engineer, admin
aircrewinstructor, admin
securitysecurity_officer, admin
redactinstructor, security_officer, admin
users, configadmin

Errors#

StatusWhen
401Missing or wrong credentials.
403Role or permission check failed, or a release rule denied a product. The body names the rule.
404Unknown sortie or product.
409The request conflicts with security policy, for example an upload that would exceed the network ceiling.
422Validation error; the body lists the fields.

Audit#

Every upload, review, release decision, export, denial and administrative change is written to the hash-chained audit log with the acting account.

Was this page helpful?