Dockerfile that serves on 0.0.0.0:$PORT. The examples use FastAPI on port 8000; any stack reads the same headers.
Set up your agent
floo skills install --path .claude/skills/floo. Other agents: Agent setup.
Agent prompt
Paste into your agent. Replacediscount-approvals with your app name.
floo.app.toml
floo.app.toml
/api/agent, which accepts only an app API key holding the approvals.read scope. floo strips the key before forwarding the request. Sign-in is invite-only: nobody gets in by email domain or self-signup.
Check the role in code
The gateway sendsX-Floo-User-Role as member or admin on every signed-in request:
app/auth.py
Depends(require_admin) to the approve route. Reps get member; finance gets admin.
CLI commands
The same deploy by hand. Replaceowner/discount-approvals with your repository.
floo apps github setup needs the floo GitHub App installed on the repository’s owner first. See Quickstart steps 2 and 3.
Invite the team. App users do not use builder seats and get no access to floo itself:
/api/agent:
APPROVALS_KEY; never paste it into a prompt or commit it.
Verify
https://discount-approvals-dev.getfloo.app in a private window shows floo’s sign-in page. apps members lists each accepted invitee with their role. The curl returns the pending requests; without the header it returns 401.
Every push to main deploys to dev, which has its own database. To publish to prod, run gh release create v1 --repo <owner>/<repo>. See Environments.
Next steps
App sign-in
Identity headers, sign-out, sign-in policy, and revoking a member.
App API keys
Consumers, scopes, rate limits, request history, and revocation.
Postgres
Injected variables, pgvector, preview branches, and migrations across dev and prod.
Preview environments
Review an agent’s change on an isolated copy before it reaches the team.