IT / Admin team playbook
You run the platform. This playbook covers the admin dashboard, provisioning access, wiring integrations, the gated flags that unlock writes, diagnostics, the REST API, and the security model everyone else depends on.
What you can do
Section titled “What you can do”- Manage sites, projects, tokens and users in the admin dashboard.
- Connect OAuth integrations (Google, Meta, GitHub) per user.
- Flip the per-site gated flags that unlock publishing and external writes.
- Diagnose a site end-to-end.
- Expose the same capabilities to custom apps over the REST API.
- Understand and enforce the security guardrails.
Admin dashboard
Section titled “Admin dashboard”Everything is at /admin (master-token login). Key screens:
| Screen | What you do there |
|---|---|
| Sites | Create/edit sites: platform, base URL, credentials, integration IDs, and the gated flags (in the Danger zone). |
| Projects | Group sites under a client; grant users at the project level. |
| Tokens | Mint /mcp tokens: scope to sites, set max_risk, skip_write_confirm, allowed tools. Plaintext shown once. |
| Users | Create Worker users, force first-login password change, and connect Google / Meta / GitHub per user. |
| Audit log | Who ran what, when, and the result (ok / denied / error) — including admin actions. |
Provisioning access (the usual flow)
Section titled “Provisioning access (the usual flow)”- Create the user (they set a password on first login).
- Grant them the project(s) or site(s) they work on.
- Mint a token scoped to those sites with an appropriate
max_risk(0 = read-only, 1 = drafts, 2 = external writes, 3 = publish). - For analytics/CRM: have the user connect the integration (Google / Meta / GitHub) and set the integration IDs on the site.
The gated flags (default OFF)
Section titled “The gated flags (default OFF)”These live per-site and only a super-admin sets them. This is how you unlock the higher-risk actions after the safe default.
| Flag | Unlocks |
|---|---|
allow_publish | publish_post / publish_page (T3) |
allow_seo_on_published | set_seo_meta / set_seo_schema on live posts |
allow_main_branch_push | Astro writes to the primary branch (else preview branch) |
allow_full_repo_write | Astro writes outside the whitelist + bulk_write_astro_files |
allow_gohighlevel_write | GoHighLevel create/update/send (money-movement still blocked) |
allow_drive_write | drive_save_audit |
allow_querymind_write | querymind_create_content_job / querymind_rerun_job |
Core tools
Section titled “Core tools”| Feature | Tools |
|---|---|
| Diagnose a site | diagnose_site, ping_site |
| List / inspect | list_projects, list_sites, get_site |
| Astro scaffolding | init_astro_project, bulk_write_astro_files, write_astro_file, check_astro_deploy, reset_astro_preview_branch |
REST API
Section titled “REST API”For custom apps that don’t speak MCP/JSON-RPC, /api/v1 wraps the same auth,
scope, audit and dispatch path with a flatter shape:
curl -H "Authorization: Bearer $TOKEN" \ https://<worker>/api/v1/tools # list toolscurl -H "Authorization: Bearer $TOKEN" \ https://<worker>/api/v1/sites # list sitescurl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"site_id":"acme-blog"}' \ https://<worker>/api/v1/tools/list_draftsAn OpenAPI 3.0 spec is at /api/v1/openapi.json. See
REST API.
Diagnostics
Section titled “Diagnostics”Run diagnose_site on "acme-site" and tell me what's broken — REST reachability,Elementor, RankMath bridge, GitHub app, and (for GHL sites) Drive + Clarity.diagnose_site branches by platform and reports every integration’s health plus
the super-admin gate states.
Security model (enforce these)
Section titled “Security model (enforce these)”Gotchas
Section titled “Gotchas”- Deploy to Cloudflare and Master token & users.
- Tokens & scoping — the full risk-tier model.
- Error codes — decode any
E_*a teammate reports.