ObjectOS
ConfigurePermissions

Permission Sets

Grant application, object, field, and system permissions.

Permission Sets

Permission sets are the primary way to grant capabilities. They can be assigned directly to users or indirectly through roles.

What permission sets control

Permission typeExamples
Application accessUser can open CRM or Console
Object permissionsCreate, read, update, delete records
Field permissionsRead or update selected fields
System permissionsAccess Console, run reports, export data
Integration permissionsUse API keys, webhooks, or admin actions

Object permissions

Object permissions answer:

Can this user perform this operation on this object at all?

Permission set grants use these flag names (as enforced by the security plugin's permission evaluator):

FlagMeaning
allowReadRead records allowed by record access rules
allowCreateCreate records
allowEditUpdate records allowed by record access rules
allowDeleteDelete records allowed by record access rules
viewAllRecordsRead every record for the object, bypassing record access
modifyAllRecordsUpdate or delete every record for the object, bypassing record access; implies viewAllRecords for reads

Record access still matters unless viewAllRecords or modifyAllRecords bypasses the normal row-level boundary. Reserve those flags for administrative permission sets — they are effectively a tenant-wide super-user grant for that object.

System permissions

System permissions are for platform actions such as:

  • Console access;
  • manage users;
  • manage roles and permission sets;
  • run reports;
  • export reports;
  • manage integrations;
  • view audit logs.

Keep system permissions separate from business object permissions so administrators can audit them easily.

Start with a few named permission sets:

Permission setPurpose
Basic UserLogin and access the main application
Setup AdministratorManage users, roles, settings, and diagnostics
Report ViewerView reports and dashboards
Integration OperatorManage webhooks/API keys
Support UserRead/update support objects

Then add domain-specific sets for the customer's application.

Field security (appendix)

Permission sets also carry field-level grants. Even when a user can read a record, individual fields can be hidden or made read-only.

Two modes

ModeEffect
HiddenField is stripped from API responses and Console views entirely
Read-onlyField is returned but writes are rejected

Where it's enforced

The same evaluator that checks object permissions applies field rules on every path — REST, ObjectQL, generated Console forms, exports. There is no "back door" through a lower-level API.

Typical patterns

Use caseRecommendation
HR data on sys_user (salary, SSN)Hide for everyone except an HR permission set
External system identifiersRead-only for support, writable for integration operators
Internal cost vs. customer price on productHide cost from sales, surface to finance
Notes field with PHIHide unless permission set includes the relevant clinical role

Authoring guidance

  • Default to hide rather than read-only when the field carries sensitive data — read-only still leaks the value into responses and logs.
  • Bundle field rules into permission sets that match a real role (HR Manager, Finance Read-only) instead of inventing one set per field — easier to audit.
  • For compliance use cases, pair field security with audit log retention so you can answer "who saw this row?" after the fact.

On this page