PermissionSet resource defines a collection of permissions that can be granted to one or more Identity resources. Permission sets allow you to centrally manage authorization rules and reuse them across multiple identities.
Basic Configuration
Permission sets are defined under the top-levelauth: configuration:
Required Fields
| Field | Type | Description |
|---|---|---|
permissions | string | The permission level to grant. Currently only "full" is supported |
Permission Levels
Full Permissions
Currently, Edge Server supports a single permission level:full permission level grants complete access to:
- All HTTP API endpoints
- All data plane operations
- All database operations on Edge Server
Future versions of Edge Server may introduce more granular permission levels to support fine-grained access control (e.g., read-only permissions, per-database permissions, or per-endpoint permissions).
Complete Examples
Basic Permission Set with Identity
Shared Permission Set for Multiple Identities
A common pattern is to define one permission set and reuse it across multiple identities:Complete Configuration with HTTP Server
Using Permission Sets
Referencing in Identities
Permission sets are referenced by their key name in thepermissions array of identities:
Multiple Permission Sets
You can define multiple permission sets for organizational purposes, even if they currently all grantfull permissions:
Authorization Flow
When an authenticated request arrives at an Edge Server HTTP API:- Authentication: The API key from the request is validated against configured identities
- Permission Lookup: The identity’s
permissionsarray is used to locate the associated permission sets - Authorization Check: The permission set’s
permissionsvalue determines what operations are allowed - Request Processing: If authorized, the request proceeds; otherwise, an authorization error is returned
Future Enhancements
Future versions of Edge Server may introduce additional permission levels such as:- Read-only: Allow read operations but deny writes
- Per-database: Grant access to specific databases only
- Per-endpoint: Allow access to specific API endpoints
- Custom permissions: Define custom permission rules using a policy language
Best Practices
- Semantic naming: Use descriptive names for permission sets that reflect their intended purpose (e.g.,
admin_permissions,read_only_permissions,service_account_permissions) - Reuse permission sets: Define permission sets once and reference them from multiple identities to maintain consistency
- Prepare for granularity: Organize permission sets by role or function now, even if they all grant
fullpermissions, to make future permission refinements easier - Document intent: Add comments in your YAML configuration to explain the intended use of each permission set
Important Notes
- Current Limitation: Only
"full"permissions are currently supported. Attempting to use other values will result in a configuration error - Key Name Reference: Identities reference permission sets by their YAML key name in the
permission_setssection - Validation: Edge Server validates that all identities reference valid permission sets at startup
- No Dynamic Updates: Changes to permission sets require Edge Server restart to take effect