mrcharles 4699cd5070 scripts: per-app SSO first-login scripts (gitea/redmine/discourse)
Each script: full OIDC webflow per app (gitea /user/oauth2/cloudron,
redmine /oauth?oauth_provider=1 GET-form, discourse /auth/oidc with
CSRF + confirm-page token), TOTP from vault seed, session verify.
Ran fleet-wide 2026-09-09: accounts created for all 32 org identities;
gitea tokens + redmine/discourse api keys minted via admin levers and
stored per identity in the vault.
https://projects.knownelement.com/issues/942
2026-09-09 14:38:28 -05:00

Agent Identity Provisioning

Playwright-based automation for provisioning AI agent identities across the TSYS Group stack: Cloudron enrollment (with 2FA), SSO login, API key generation, and Bitwarden credential storage.

Overview

Each AI agent (VP TechOps, VP SecOps, etc.) gets:

  1. A dedicated Cloudron user (identity root — SSO provisions everywhere)
  2. TOTP 2FA enrolled and stored in Bitwarden
  3. API keys generated in Gitea, Discourse, Redmine (stored in Bitwarden)
  4. All credentials owned by the agent, sourced via bw-run.sh (no ~/.creds/ files)

See ~/Q3/agent-identity-bootstrap.md for the full architecture.

Usage

# 1. Create the manifest from the example
cp agents.yaml.example agents.yaml
# Edit: add Cloudron invite links for each agent

# 2. Set BW credentials
export BW_CLIENTID="..."
export BW_CLIENTSECRET="..."

# 3. Build and run
docker compose up --build

# Or run a single agent
docker compose run --rm provision --agent vp-techops

Manifest format

See agents.yaml.example. Each agent defines:

  • Cloudron invite link
  • Display name
  • Priority (Q3 vs Q4)
  • System scopes (Redmine projects, Gitea orgs, Discourse categories)
S
Description
Playwright-based automation for provisioning AI agent identities (Cloudron enrollment, SSO login, API key generation, Bitwarden storage)
Readme
523 KiB
Languages
Python 79.5%
Shell 19.1%
Makefile 0.8%
Dockerfile 0.6%