Auth & teams

Auth is on by default but stays out of your way until you want it: the gateway is open until you create the first admin account, then it locks.

The three states

StateDashboard / APIProxy
Open (no users yet)Reachable; shows a “create admin” promptWorks with /p/<project>
Locked (≥1 user)Requires login (session cookie)Requires a project gateway key
Disabled (--no-auth)Fully openFully open

Create the admin

Open the dashboard and use the “Create admin account” prompt, or from the CLI:

bash
npx ai-command-center user add --username aditya --password '…'   # first = admin
npx ai-command-center user list

Teams & who sees what

Assign a project to a team in Settings → Projects, and put users on teams in Settings → Users.

Project gateway keys (the proxy under auth)

Once locked, each project gets its own key. The key both authenticates the request and assigns it to that project - so the URL carries the key instead of the project name:

bash
# base URL becomes /k/<gateway-key>/… instead of /p/<project>/…
export OPENAI_BASE_URL="http://localhost:4321/k/aicc_9f3.../openai/v1"
# or send it as a header:  x-aicc-key: aicc_9f3...

The SDKs read AICC_KEY automatically, or take a key option:

python
aicc.init(project="invoice-bot", key="aicc_9f3...")   # or set AICC_KEY

Rotate or revoke a key any time in Settings → Projects (apps using the old key stop working).

Auth today is username/password with signed HttpOnly session cookies (scrypt-hashed passwords, all dependency-free). There is no SSO/OAuth yet - see Security for the hardening path before external multi-tenant use.