Skip to content

Scopes

Scopes attach to routes in the permission system. They link a route to a resource and operation to define what data entity and action type the route represents.

How It Works

A scope is a named tag attached to a route (e.g. users:search). When a permission references a scope, the ACL check only grants access if the URL segment following the resource name matches one of the scope's route names — letting a role be restricted to specific sub-paths of a route instead of the whole route.

Create scopes after routes are in place.

Search Scopes

POST /gatelin/scopes/search
Content-Type: application/json
Authorization: Bearer <access_token>

{
  "pagination": true,
  "first": 0,
  "limit": 10,
  "sortField": "id",
  "sortOrder": "ASC",
  "filters": {
    "routeId": {
      "value": 5,
      "matchMode": "equals"
    }
  }
}

Get Scope History

GET /gatelin/scopes/:id/history
Authorization: Bearer <access_token>

Create Scope

POST /gatelin/scopes
Content-Type: application/json
Authorization: Bearer <access_token>

{
  "rows": [
    {
      "routeId": 5,
      "name": "users:search"
    }
  ]
}

Response (201 Created)

Scope Fields

FieldDescription
routeIdID of the associated route
nameScope name (e.g. users:search)
coreWhether this scope is a core system scope (read-only)

Update Scope

PUT /gatelin/scopes
Content-Type: application/json
Authorization: Bearer <access_token>

{
  "rows": [
    {
      "id": 1,
      "name": "users:search:v2"
    }
  ]
}

Response (200 OK)

Archive Scopes

POST /gatelin/scopes/archive
Content-Type: application/json
Authorization: Bearer <access_token>

{
  "rows": [
    { "id": 1 },
    { "id": 2 },
    { "id": 3 }
  ]
}

Response (204 No Content)

Published and maintained by ALTEN