Admin guide
Everything an admin does that doesn't fit in the Settings UI. Read the linked sections as needed; this is the “runbook for the humans” counterpart to the operational runbook (which lives in the repo under docs/runbooks/).
First-day setup
- Bootstrap an admin. The very first sign-in needs either a configured
VINTEKH_ADMIN_GROUP_IDSEntra group OR theVINTEKH_BOOTSTRAP_ADMIN_EMAIL=escape hatch set to your email. Once you've signed in once, unset the bootstrap env var and configure the group ID via redeploy. - Configure RBAC groups. Decide which Entra groups map to each role and set
VINTEKH_ADMIN_GROUP_IDS,VINTEKH_ENGINEER_GROUP_IDS,VINTEKH_VIEWER_GROUP_IDSas comma-separated lists. Confirm at /admin/users. - Connect your first cloud. Go to Sources and connect Azure (Reader Service Principal) or Wiz (device-code). Both are no-admin paths.
- Tune MAU. If you're running customer-facing signup, visit /admin/mau-config and set the effective cap. Default 45,000 leaves a 10% margin under the Microsoft 50K free tier.
Day-2 operations
- Promote / demote a user. /admin/users → select role from the inline dropdown. You cannot demote yourself; ask another admin.
- Issue an API key for SCIM or programmatic read. Settings → API keys. Pick scope:
scimfor IdP provisioning,readfor SIEM pulls,*for admin scripts. The plaintext is shown ONCE. - Audit search. /admin/audit-log. Filter by actor email, tenant, or event kind.
- Auditor delivery. /admin/soc2-posture — this is your buyer-security-questionnaire one-pager.
Incident response
- Acknowledge: post in #incidents Slack and create a status entry.
- Visit /status — confirm which dependency is degraded.
- Worker outage: check
Jobtable for stuck rows (status="claimed" older than the worker timeout). Reclaim by settingclaimedBy=NULL+status="pending". - DB outage: app shell still serves; reads return 500. Use the BYOK key only when the DB is back — we cannot resolve tenants without it.
- Post-incident: write a 5-why in
docs/postmortems/and link the AuditEvent rows that capture the relevant actions.
Rotating credentials
- Source credentials (Azure SP, Wiz token) — rotate at the source, then go to Sources → the source → “Update credentials”.
- API keys: Settings → API keys → revoke. SCIM clients will start failing within minutes — reissue and re-paste.
- Bootstrap admin email: unset post-pilot. Long-lived bootstrap is a credential-leak smell.
- Data key (
VINTEKH_DATA_KEY_BASE64) — generate withopenssl rand -base64 32and rotate via redeploy. Old ciphertext under the previous key won't decrypt; the BYOK upgrade lands key-id support that survives rotation.
Off-boarding a user
Best practice: deprovision at your IdP. If SCIM is wired, the user is tombstoned automatically. Manual fallback at /admin/users — we don't delete; we soft-deactivate. Audit trail is preserved.
Browse docs
- Help home
- Getting started
- How VinTekh works
- Read-only model
- Connect a source
- Azure Reader SP
- AWS cross-account role
- GCP Workload Identity
- External ID & MAU
- SCIM 2.0 provisioning
- Investigate a finding
- Recommendations
- Service coverage
- Platform capabilities
- Troubleshooting
- Glossary
- REST API
- Admin guide
- Release notes
- Support