Platform

Platform

Permissions

HOW TO SET UP PERMISSIONS: 1. Register your app → POST /api/v1/apps/register (get app_id) 2. Create a group → POST /api/v1/groups with app_id 3. Add members → POST /api/v1/groups/{id}/members 4. Set permissions → PUT /api/v1/groups/{id}/permissions 5. Your app sends X-App-Id header on every EDM call → enforcement kicks in PERMISSION → ROUTE MAPPING: people:read → GET /api/v1/people/persons people:write → POST/PATCH/DELETE /api/v1/people/persons contracts:read → GET /api/v1/contracts/contracts contracts:write → POST/PATCH/DELETE /api/v1/contracts/contracts projects:read → GET /api/v1/projects/projects projects:write → POST/PATCH/DELETE /api/v1/projects/projects helpdesk:read → GET /api/v1/helpdesk/tickets helpdesk:write → POST/PATCH/DELETE /api/v1/helpdesk/tickets

Endpoints

Runs live against the backend
  • GET/api/v1/permissionsList permission catalog — all domains × operations (edm.people.read, edm.contracts.write, etc.)
  • GET/api/v1/groups/{group_id}/permissionsGet group permissions — which domains this group can read/write
  • PUT/api/v1/groups/{group_id}/permissionsSET group permissions — grant {domain: [read|write]}. e.g. {people: [read, write]} unlocks GET+POST+PATCH+DELETE on /api/v1/people/persons
  • DELETE/api/v1/groups/{group_id}/permissionsRemove all permissions from a group (revoke everything)
  • GET/api/v1/users/{user_id}/permissionsGet user effective permissions — merged from ALL groups the user belongs to
  • GET/api/v1/apps/{app_id}/permissionsList app-level permission grants (e.g. edm.people.read, edm.people.write)
  • POST/api/v1/apps/{app_id}/permissionsGrant an app-level permission (e.g. edm.people.read). App-wide, not per-user.
  • DELETE/api/v1/apps/{app_id}/permissions/{permission}Revoke an app-level permission
  • GET/api/v1/apps/{app_id}/permissions/{permission}/checkCheck if app has a specific permission → returns {granted: true/false}

Calls go through the portal proxy with your admin session. SSE (run / generate) endpoints return their final payload here; live streaming lands next.