User Roles & Permissions Explained

RUAL does not use fixed roles — access is composed from per-user permission settings, scopes, and optional user groups. Learn how the pieces map to administrators, developers, API users, and visitors.

The Access Model

If you come from a system with fixed roles like "admin" or "editor", RUAL works differently: there are no predefined roles. Instead, what a user can do is composed from three layers on their user document:

  • Permissions and settings — named switches such as Staging Developer or is_root_user that control what the account may do in RUAL Studio and through cluster APIs.
  • Scopes — values in the custom_scopes array that grant access to specific pages and APIs built on the cluster.
  • User groups — reusable bundles of scopes, assigned through the groups_guid array, that act like role templates.

Mapped to the classic role mental model:

  • Cluster administrators hold the Cluster Admin permission and the is_root_user setting. In the All users list they are marked with a * (star) and possess full access to all resources within the cluster.
  • Developers hold blueprint permissions — Wildcard Scope to create new resources, plus Staging Developer or Production Developer depending on how far they may go.
  • API-only users have an account but never open RUAL Studio. They authenticate through the login APIs and their scopes decide which pages and APIs they can call.
  • Visitors have no account at all. They only reach content in the *public scope; anything scoped differently redirects them to the login or forbidden page.

Permission Levels Guide

These are the permissions and settings you will assign most often. The full list of fifteen permissions is documented in User Access Management.

Permission / Setting What It Allows Typical Holder
Cluster Admin Complete access to all resources within the cluster. Cluster owners — grant to a select few.
is_root_user Marks the account as cluster administrator, with extra security measures against login attacks, password forget requests, and sign-in. Cluster administrators.
Wildcard Scope Comprehensive access to any custom API and custom page created in RUAL; essential for creating new resources. Developers.
Staging Developer View, modify, and simulate blueprints in development. Junior developers.
Production Developer View, modify, and deploy blueprints to production. Senior developers.
Blueprints: Production Run Controls the Run: Production feature in play mode — executing the non-deployed blueprint against production data. Developers debugging live behavior.
Manage User Permissions (setting_manage_users) Manage other users' permissions and the allow_login_as_user setting. Without it, you cannot modify accounts with higher permissions. Administrators.
allow_login_as_user Allows the account to be signed in as, using the user signin-as function in blueprints. Cannot be enabled for is_root_user accounts. Support impersonation targets — off by default.

Finer-grained blueprint permissions — Blueprints: All Access, Blueprints: Activate Blueprints, Blueprints: Remove Blueprints, and Blueprints: Deploy Blueprints — let you tune exactly how far each developer may go. Cluster APIs use the same model with scope values such as setting_manage_users and setting_edit_blueprints.

A user detail page with its permissions and settings

RUAL Studio Access vs API Access

There are two distinct ways to work with a cluster, controlled separately:

Access type Used for Authenticated by
RUAL Studio access Building blueprints, managing users, storage, and deployment through the browser. Username and password authorized for RUAL Studio Access.
API access Calling cluster APIs from custom frontends, scripts, or external services. An access_token obtained through the login APIs.

API tokens are valid for 14 days and extended automatically while actively used. Pass a token as an Authorization: Bearer header, as x-authtoken or x-token, as a cookie named access_token, or in the URL as ?access_token=. See Getting Access for the onboarding flow and Cluster APIs for the authentication reference.

For API access, the custom_scopes array on the user document is decisive: every page and API you build is protected by scopes, and a token only reaches the endpoints its user's scopes cover. An account with the scopes below can call pages and APIs scoped view_customers or create_orders, and nothing else:

User with Custom Scopes
{
  "custom_scopes": [
    "view_customers",
    "create_orders"
  ],
  "username": "jane.doe"
}

User Groups as Role Templates

User groups are the closest thing RUAL has to roles. A group is a document in the usergroups database with a name and a scope array. Assign a user to a group by adding the group's guid to the groups_guid array on the user document — from then on, the user receives every scope in that group. A user can belong to multiple groups and receives all unique scopes from all of them, plus any individual scopes in their own custom_scopes.

Model your groups after the kinds of users your cluster serves:

Group Example Scopes Purpose
Developers Wildcard Scope, Staging Developer, Blueprints: Activate Blueprints Team members who build and maintain blueprints.
Customers view_orders, create_tickets End users who sign in to your app and reach its scoped pages and APIs.
Support view_customers, view_tickets, create_notes Staff who help customers without seeing everything.

Visitors need no group — without an account they only see *public content. A user assigned to two groups looks like this:

User with Multiple Groups
{
  "custom_scopes": [],
  "groups_guid": [
    "94ad734891564818888bea7e2519aedd",
    "1c5bfaf8fb034f8498d204c5072b554e"
  ],
  "username": "jane.doe"
}
The Authentication Groups page listing the cluster's user groups

Setting Up Team Member Access

  1. Sign in to RUAL Studio with an administrator account and open the All users section from the left-side menu.
  2. Create the user with a username and password, and share the cluster URL and credentials privately.
  3. Assign the permissions the work requires — for a developer, start with Staging Developer and add more only when needed.
  4. Add any individual scopes to custom_scopes, or better: assign the user to a group via groups_guid so permissions follow the role, not the person.
  5. Have the user sign in and complete first-time setup, including two-factor authentication when your cluster requires it.
The All users list in RUAL Studio, with star-marked administrators

Security Best Practices

  • Least privilege: grant only the scopes and permissions a user needs, preferably through user groups instead of individual scopes.
  • Protect root accounts: is_root_user accounts get extra protection against login attacks and password forget requests — keep them few, and never enable allow_login_as_user for them (RUAL prevents this).
  • Guard system settings: the Manage System Settings permission controls who can view and change system settings; access to secured system settings is logged.
  • Review the audit log: sensitive actions such as removing blueprints and changing permissions are recorded — review the log regularly.
  • Use two-factor authentication: users manage their active sessions and multi-factor options on the default security page.
Login-As-User with Caution The allow_login_as_user setting lets an administrator sign in as that user from blueprints — powerful for support, easy to abuse. Only users with setting_manage_users can configure it, it cannot be set on is_root_user accounts, and you should enable it only where impersonation is truly needed.

RUAL also blocks mass multi-authentication attempts from the same IP address and repeated unsuccessful attempts against the same account by default.

Next Steps

Getting Access Obtain cluster credentials, sign in for the first time, and set up API tokens. User Access Management The full permission list, user group examples, and account settings reference. Remote Access Control Scope your pages and APIs: public and logged-in scopes, rate limiting, and throttling.