Skip to main content

Organization and roles

Seeding accounts​

Dashboard accounts are created from the environment on startup:

MATILDA_DASHBOARD_OWNER_EMAILS=you@example.com
MATILDA_DASHBOARD_ADMIN_EMAILS=teammate@example.com,other@example.com
MATILDA_DASHBOARD_TEAM_NAME=The M Team
MATILDA_DASHBOARD_SEED_PASSWORD=change-me-on-first-login
MATILDA_DASHBOARD_SECRET=<long-random-string>

On every boot Matilda creates any listed account that does not exist yet, applying the seed password on creation only. An existing account holding a lower role is raised to its configured role. The default team is created and the admins are filed on it.

Nothing is ever demoted, removed, or re-passworded from configuration. The only exception is the demo account, whose password is re-synced from the environment on every boot.

MATILDA_DASHBOARD_EMAILS, the older name for the owner list, is still honored with a warning.

The three roles​

Roles are fixed and enforced on the server for every write route. The policy lives in one table in matilda/roles.py. The UI only hides what a request would refuse.

PermissionViewerAdminOwner
See every page and all data, ask the portfolio assistant✓✓✓
Tasks, routines, contractors, lead sync and delete✓✓
Organization name, teams, add or edit or remove admins and viewers✓✓
Tune integrations and run connectivity tests✓✓
API keys, passwords, the webhook token✓
Worker devices✓
Grant or edit the Owner role✓
Switch the demo login on or off✓

Guardrails​

  • Nobody can change their own role or remove themselves.
  • Admins cannot touch an Owner.
  • The last Owner cannot be demoted or removed.
  • Admins see whether a secret is set, never its value. Viewers see only Connected or Not connected.
  • A settings save that touches a secret is refused wholesale for non-Owners.

The organization page​

The organization block at the bottom of the sidebar opens /dashboard/organization. Every role can view it. It shows the organization name, the teams you belong to, and who is on each team.

Owners and Admins also get their controls here:

  • Rename the organization
  • Create, rename, and delete teams, and move people on and off them
  • Add members, assign roles, reset passwords, and remove accounts
  • Switch the demo login on or off (Owners)
  • Recent activity, the audit log of every administrative change, who made it, and which settings keys changed, never their values

A person can be on any number of teams. Access is never scoped by team. Every operator sees the whole book. Teams are an organizational label.

Adding a member​

  1. On the organization page, click Add member.
  2. Enter their email, a name, a role, and a temporary password.
  3. They sign in at /dashboard/login and are asked to set a new password before anything else loads.

Resetting a password​

Owners and Admins can reset any account they are allowed to manage from the members table. The user is prompted to choose a new password at their next sign-in. Each operator changes their own password on their profile.