Skip to main content

Roles & permissions

Eight roles over 77 permission codes - who can do what, and how the console decides what to show you.

How access works​

Every endpoint in Conflux is gated by one or more permission codes. A role is nothing more than the set of codes it grants. There are 77 codes across 22 groups, and 8 roles.

  • The code is the unit. deployment.prod means “may deploy to a production environment”, and it means exactly that on the API and in the UI alike.
  • Any-of, not all-of. A route that lists two codes admits a caller holding either one.
  • The backend is the authority. Hiding a button is a courtesy; the endpoint behind it re-checks the permission on every call.
  • Changes take effect immediately. Changing a user’s role revokes their sessions, so the new grants apply on their next request rather than at their next login.

The console asks the server what to show​

The left-hand navigation is not a static list in the frontend. The server walks the navigation tree, keeps only the entries whose permissions the caller actually holds, drops any section that ends up empty, and returns what remains:

GET /api/rbac/my-sidebar
{ "code": 200, "status": true, "data": { "sidebar": [
{ "section": "Overview", "items": [ … ] },
{ "section": "API Gateway", "items": [ … ] }
] } }

So a role is never shown a link to a page it would be refused - and if you add a permission to a role, the affected users’ navigation grows without a frontend release.

The eight roles​

Modelled on how API platforms actually split duties.

RoleCodesOwnsCannot
Super Admin77The platform. Every organization, plus tenant creation and deletion.Nothing - this is the full catalogue.
Organization Administrator75Everything inside one tenant, including users, roles and settings.Create or delete organizations (org.create, org.delete).
API Developer37Proxies, revisions, routes, policy attachment, products, specifications. Deploys and rolls back.Production deploys, traffic shifting, approving their own promotions, users, audit, billing.
Operations Engineer38The whole deployment surface - production, traffic weights, rollback - plus fleet, alerts, incidents and SLA.Authoring proxies or policies, approving lifecycle moves, billing, user administration.
Security Administrator42The policy library, credential lifecycle, subscription approval, lifecycle approval and the audit trail.Deploying anything, editing proxies, managing users or settings.
Business Analyst26All analytics and reports, SLA reporting, and the commercial surface - rate plans and billing.Any gateway, governance, audit or user change. Read-only everywhere else.
Auditor29Read-only visibility across configuration, governance and the full audit trail, including CSV export.Any write at all, anywhere. Not a single create, update or delete code.
API Consumer12Their own apps and credentials, subscription requests, the catalog and their usage.Everything on the producer side - proxies, policies, deployments, other developers’ apps.
Reading the numbers

The count is how many of the 77 codes the role holds - not how important it is. The Auditor’s 29 codes are all *.view; the API Developer’s 37 include creates and deletes across six modules.

What each role actually sees​

The navigation each role receives from the server, by default:

RoleNavigation sections
Super Admin / AdminOverview · API Gateway · Publish · Operate · Govern · Monetize · Administration (all)
API DeveloperOverview (no Reports) · API Gateway · Publish · Operate (Monitoring, Incidents, Fleet) · Govern (Lifecycle, Approvals, Standards)
Operations EngineerOverview · API Gateway (read) · Operate (all) · Govern (Lifecycle) · Administration (Integrations, Settings)
Security AdministratorOverview · Policies · Publish · Operate · Govern (all, incl. Audit) · Administration (Users, Roles)
Business AnalystOverview · API Gateway (read) · Publish · Operate · Govern (no Audit) · Monetize · Administration (read)
AuditorEverything the Analyst sees, plus Audit Trail, Users and Roles - all read-only
API ConsumerOverview · Publish (Products, Apps, Subscriptions, Portal) · Monetize (read)
Try it yourself

Sign in as an Auditor and open any list - every “New”, “Edit” and “Delete” button is simply absent. Then sign in with an API Consumer account and navigate manually to /proxies: the guard redirects to /access-denied before the page renders, and the API would refuse it regardless.

The permission catalogue​

All 77 codes, grouped. The console’s Roles & permissions screen renders this same catalogue as an editable matrix.

GroupCodes
Dashboard (1)dashboard.view
Organization (4)org.view · org.create · org.update · org.delete
Environment (5)env.view · env.create · env.update · env.delete · envgroup.manage
Proxy (6)proxy.view · proxy.create · proxy.update · proxy.delete · proxy.revision.create · proxy.export
Policy (5)policy.view · policy.create · policy.update · policy.delete · policy.attach
Target (2)target.view · target.manage
Deployment (5)deployment.view · deployment.create · deployment.prod · deployment.rollback · deployment.traffic
Product (4)product.view · product.create · product.update · product.delete
Developer (2)developer.view · developer.manage
App (6)app.view.self · app.view · app.create · app.update · app.delete · app.credential.manage
Subscription (3)subscription.view · subscription.request · subscription.approve
Portal (3)portal.view · portal.manage · spec.manage
Analytics (4)analytics.view · analytics.export · report.view · report.manage
Monitoring (7)monitoring.view · alert.manage · incident.view · incident.manage · gateway.view · gateway.manage · sla.manage
Governance (4)governance.view · lifecycle.transition · lifecycle.approve · standard.manage
Monetization (3)monetization.view · rateplan.manage · billing.view
Integration (2)integration.view · integration.manage
Audit (2)audit.view · audit.export
User (4)user.view · user.create · user.update · user.delete
RBAC (2)role.view · role.manage
Settings (3)settings.view · settings.manage · notification.view

Guardrails that outrank permissions​

A few rules the server enforces even when your role technically allows the action. These exist so that no single account can quietly remove the checks on itself:

RuleWhy
You cannot approve a lifecycle change you requestedTwo-person approval. Holding lifecycle.approve does not let you wave your own work through.
A production deploy needs an approved APIBoth deployment.prod and a lifecycle stage of approved, published or versioned.
The last Super Admin cannot be demoted or deletedOtherwise a tenant could be left with nobody able to administer it.
A blocking governance finding stops promotionReview → approved is refused until the standard passes or is explicitly waived, with a reason.
Nothing can write to the audit trailThere is no update or delete endpoint. Read and export only, for anyone, at any role.
Credentials never appear in a list responseSecrets are stripped on serialisation. Revealing one is a separate, individually audited endpoint requiring app.credential.manage.

Custom roles​

The eight roles are system roles: they come built in, and their grants are the defaults described above. You can edit those grants, and you can create additional roles, from Administration → Roles & permissions.

  • Toggling a permission in the matrix takes effect for everyone holding that role, immediately.
  • A new role starts empty - grant it the view codes for the areas it needs before assigning anyone to it.
  • Cache note: grants are cached per role in the API process and invalidated on change, so there is no “wait for it to propagate” step.

Need a hand?

Talk to an Odoo expert

Get help with setup, custom integrations and upgrades from Odoo 17 to Odoo 20 - straight from the team that builds every SDLC Corp product.

Contact support

Official documentation for SDLC Corp connectors, Odoo modules and SaaS apps.