Roles
Map users and groups to roles, and set what each role may do.
The roles attribute
The top-level roles list of config.yaml:
| Attribute | Comments |
|---|---|
| roles array | Roles
The roles provide RBAC. Each role has a name and 1 or more groups (local, ldap or entraid). The
When options are not set, the admin role will have all options. The Examples: 1) Roles |
The default role
Every signed-in user has the default role, so a form with roles: [default] is open to everyone who can sign in. There is no anonymous access: nobody gets this role without signing in.
The role holds no groups and no users, since it already applies to everyone. Its options are everyone’s defaults, as described under Role options below. config.yaml must have an admin and a default role, and the roles page shows both as Required.
default was called public before 7.0.0, and the old name keeps working:
- In a form,
roles: [public]still matches every user, so forms in your repositories need no change. - In
config.yaml, a role calledpublicis renameddefaultin the file when the config loads. Only the name changes, a backup of the config is taken first, and a config kept in a repository then has a change to push. - In a ytt template, the template is not rewritten: the config it produces is renamed, and a warning in the log asks you to rename the role in the template too. Version 8 refuses a
publicrole there.
A config with both a default and a public role is refused, because they are the same role.
Role object
Each entry of the roles list:
A role allows RBAC. Each role has 1 or more groups (local or ldap). Except the default role (public its old name), which has no groups.
The default and admin roles are mandatory.
| Attribute | Comments |
|---|---|
| name string / required / unique | The name of the role
The name of a role has to be unique. The |
| groups array / required | Groups
A list of groups. They must be in the format of A Microsoft Entra ID group can be named by its object id,
|
| users array / required added in version 4.0.10 | User
A list of local or ldap users. They must be in the format of |
| credentials array added in version 7.0.0 | The credentials this role may use
Limits the credentials a user of this role may use: those a job passes to a playbook or a template (the form’s A user none of whose roles lists credentials may use every credential, as before. Once one of their roles lists them, they may use what any of the roles that list them allows. The |
| secretStores array added in version 7.0.0 | The secret stores this role may read inline
Limits the secret stores a user of this role may read through an inline reference ( |
| runners array added in version 7.0.0 | The runners this role may run jobs on
Limits the runners a job of a user of this role may run on: the form’s |
| options object added in version 5.0.8 | Role options
Since version 5.0.8 you can add specific role options. The options are used to enable or disable certain features for a role.
When options are not set, the admin role will have all options. |
| Examples | |
| 1) Roles | |
Role options
The options of a role switch features on or off for its members. From 7.3.0 the role’s page shows them in four groups, each option with an (i) that says what it gives, the same text the Permissions view of the profile shows:
| Option | Allows the user to | Default |
|---|---|---|
| Settings | ||
showSettings | See and change every settings page; the server log and backups have their own options | Admins only |
showAppearanceSettings | Change the appearance settings, without the other settings (from 7.3.0) | Off |
showConnectionsSettings | Manage the connections settings (credentials, runners and more), without the other settings (from 7.3.0) | Off |
showLogs | See the server log | Admins only |
showAuditLog | See the audit log, without the other settings (from 7.3.0) | Admins only |
allowBackupOps | Back up and restore the database | Admins only |
| Designer | ||
showDesigner | See and use the designer | Admins only |
allowFormDesign | Edit the forms config in the designer: categories, constants and forms. Without it, read-only (from 7.3.0) | On |
designAllForms | Show and edit every form in the designer. Without it, only the forms of the user’s roles (from 7.5.0) | On |
allowPlaybookDesign | Edit the playbooks in the designer: save, create, remove and push them. Without it, read-only | On |
designAllPlaybooks | Show and edit every playbook in the designer. Without it, only the ones the user’s forms use or no form uses yet (from 7.5.0) | On |
allowWorkflowDesign | Edit the workflows in the designer: save, create, remove and push them. Without it, read-only | On |
designAllWorkflows | Show and edit every workflow in the designer. Without it, only the ones the user’s forms use or no form uses yet (from 7.5.0) | On |
allowInventoryDesign | Edit the inventories in the designer: save, create, remove and push them. Without it, read-only | On |
allowVarsFileDesign | Edit the vars files in the designer: save, create, remove and push them. Without it, read-only | On |
| Jobs | ||
showJobs | See the jobs page | On |
showAllJobLogs | See the jobs of every user, not only their own | Admins only |
manageAllJobs | Abort, delete and relaunch the jobs of every user; deleting and relaunching also need the two options below (from 7.3.0) | Admins only |
showExtravars | See the extravars of a form and of a job | On |
showDebugButtons | See the debug buttons on a form | On |
showArtifacts | See a job’s artifacts: what an AWX job returns, or what a playbook gathered with set_stats | On |
allowVerboseMode | Run jobs in verbose mode | On |
allowJobRelaunch | Relaunch a job with the form data of an earlier run | Admins only |
allowJobDeletion | Delete jobs: their own, or every user’s with manageAllJobs. Without it, the job history stays whole (from 7.3.0) | On |
allowScheduledJobs | Create and manage recurring and one-time schedules, on the Schedules page (see the warning below) | Admins only |
allowPlannedJobs | Plan a job to run once at a set time (Run later) | On |
allowStoredJobs | Store the data of a form and load it again later | On |
| Access and integrations | ||
allowLogin | Sign in to AnsibleForms | On |
allowChat | Use the chat assistant, when it is enabled | On |
allowMcp | Use the MCP server from an AI agent, when it is enabled | The role’s allowChat |
allowFileUploads | Upload files through a form’s file fields (from 7.3.0) | On |
allowApiTokens | Make API tokens for scripts, up to the longest lifetime the instance allows (from 7.3.0) | Off |
extendedTokenExpiration | Also make API tokens that never expire; it needs allowApiTokens | Off |
Some options include others, and the role’s page shows the included ones on and greyed out:
showSettingsgivesshowAppearanceSettings,showConnectionsSettingsandshowAuditLogtoo.manageAllJobsgivesshowAllJobLogstoo, as acting on every user’s jobs means seeing them.- The design options only matter with
showDesigner, andextendedTokenExpirationonly withallowApiTokens.
Up to 7.2.0, showAllJobLogs also let a user abort and delete the jobs it showed; from 7.3.0 that takes manageAllJobs. A role from before 7.3.0 with extendedTokenExpiration and without allowApiTokens gets allowApiTokens, so it keeps its tokens.
designAllForms, designAllPlaybooks and designAllWorkflows are always on for admins, and what the designer shows a user without them is described in Limited designers.
Admins only means on for users who hold the admin role, and off for everyone else. When a user matches several roles, the options are combined as follows:
- Between the user’s roles, an option is on only when every role that sets it agrees: an explicit
falsewins. - The
defaultrole fills in the options that none of the user’s other roles set, so it can hold defaults for everyone. - Options set nowhere take the default from the table.
showExtraVars, with a capital V, is accepted as another spelling of showExtravars; when either spelling is false, the option is off.
Treat
allowScheduledJobsas an admin-level option. Schedules are not owned by the user who created them: every user with the option sees and can change all schedules. A schedule also runs with admin rights, for any form, whatever the creator’s own access. Grant it only to roles you would trust as admins.
allowLogin: falseon thedefaultrole locks out every user whose other roles do not setallowLogin: true, including the admins. Grant it back on the roles that must sign in before you save.