Skip to main content

Access control reference

This page lists access patterns, the access-control lists (ACLs) for resource objects, special objects, and selected Core APIs. For objects and subjects, see Authentication and access control; for the rules behind the tables, see Authorization rules and spaces and Public and private access.

Authorization rule notation​

DIAL authorization is expressed as a rule granting a set of subjects a set of actions on a set of objects:

(object: {set-of-objects}, subject: {set-of-subjects}, action: {actions})

This notation is a documentation convention, not the internal storage format. The tokens below appear throughout the rules.

TokenMeaning
public:*Any object in the public space.
private:subject_id:*Any object in the private space of the subject identified by subject_id.
private:subject_id:app_id:*Any object in the application app_id subfolder of a subject's private space.
private:app_id:*Any object in the application's own private space.
subject: *Any subject.
role:adminAny subject in the DIAL Administrators role.
subject_idA unique identifier of a single user or API key.

Default rules​

RuleEffect
(object: public:*, subject: *, action: read)Read-only access to public objects for everyone.
(object: public:*, subject: role:admin, action: *)Full access to public objects for DIAL Administrators.
(object: private:subject_id:*, subject: subject_id, action: *)Full access to a subject's own private objects.

Access patterns​

SpaceAccess patternDescription
Public spacePublic objectsRead-only access to public objects without restrictions. For executable objects such as applications, routes, or toolsets, this also includes execute and call permissions.
Public spaceRestricted objectsRead-only access to objects with matching rules.
Public spaceAdmin accessFull read/write access to any object in the public space; management of DIAL Core configuration files; approval and rejection of publication requests.
Private spaceOwn objectsFull read/write access to any object in the subject's own private space; submission of publication requests; creation of sharing links.
Private spaceOwn objects per applicationFull access to any object in an application-specific subfolder within the subject's own private space.
Private spaceApplication objectsFull access to any object in the application's own private space.
Private spaceShared objectsAccess to a shared object at the level defined in the sharing link: read, read/write, and optionally re-share.

ACLs for objects​

The columns are the four subject categories. Per-request key permissions do not apply to administrators.

The tables describe the default model for these subjects. A configured global reader has additional read access to public and private resources. Request-attached files also grant applications access for the request lifetime; see Per-request keys.

ObjectDIAL AdministratorUser without roleUser / API key with role(s)Per-request key
Models — managed as DIAL Core configuration entitiesPublic space: Admin access. Private space: N/APublic space: Public objects. Private space: N/APublic space: Public objects, Restricted objects. Private space: N/APublic space: Public objects, Restricted objects. Private space: N/A
ApplicationsPublic space: Admin access. Private space: Own objects, Shared objectsPublic space: Public objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects per application, Application objects
ToolsetsPublic space: Admin access. Private space: Own objects, Shared objectsPublic space: Public objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects per application, Application objects
Routes — managed as DIAL Core configuration entitiesPublic space: Admin access. Private space: N/APublic space: Public objects. Private space: N/APublic space: Public objects, Restricted objects. Private space: N/APublic space: Public objects, Restricted objects. Private space: N/A
FilesPublic space: Admin access. Private space: Own objects, Shared objectsPublic space: Public objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects per application, Application objects
PromptsPublic space: Admin access. Private space: Own objects, Shared objectsPublic space: Public objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects per application, Application objects
ConversationsPublic space: Admin access. Private space: Own objects, Shared objectsPublic space: Public objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects, Shared objectsPublic space: Public objects, Restricted objects. Private space: Own objects per application, Application objects

ACLs for special objects​

Special objects are part of DIAL's authorization system and belong to neither the public nor the private space. A + denotes access; a - denotes no access. Administrators manage platform-defined entities through the preview Configuration API or DIAL Admin. File-defined entities are changed in the configuration files. The API does not return stored key secrets.

ObjectDIAL AdministratorUser without roleUser / API key with role(s)Per-request key
Keys — configuration entities. A caller authenticated by an API key can call /v1/user/info to obtain limited information about that caller; this does not grant access to key configuration.+---
Roles — configuration entities; management requires administrator access.+---
Core APIDIAL AdministratorUser without roleUser / API key with role(s)Per-request key
Get user info++++
Reload DIAL Core config+---

Further reading​