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.