Members & organizations
Master and User accounts with permissions per organization.
Accounts and invitations
Masters manage Members, organizations and membership. Invitation links expire after 48 hours, are single-use and can be revoked. Recipients set their own password; there is no public signup. Changes to roles, status or memberships invalidate existing sessions. The last active Master cannot be disabled or demoted.
Permission presets are editable
| Preset | Starting permissions |
|---|---|
| Viewer | Project visibility, logs, audit |
| Operator | Viewer + source sync, deploy and rollback |
| Maintainer | All organization permissions, including environment and credential management |
These are presets, not account roles. A User can have different grants in different organizations. env.read and env.write are independent. Existing memberships do not automatically acquire newly added credential permissions. Global host tools, mail, database queries, Portal updates and organization/member management remain Master-only.
Enforcement and recovery
The server checks current persisted permissions; hiding a UI control is not the only check. Manual deployment jobs recheck authorization before execution and activation. For forgotten host access, use the shipped recovery command over SSH. It prints a new password once and invalidates sessions; keep it private.
sudo dashboard-portal --reset-pwd