API RBAC
This document defines canonical EdgeletAPI v1 endpoint-to-RBAC mapping. All mappings are deny-by-default: if a route is not explicitly mapped, authorization must fail.
Canonical HTTP Method to Verb Mapping
GET->getPOST->createPATCH/PUT->updateDELETE->delete
Evaluator alias policy is canonical + alias tolerant:
patch/putare accepted asupdate.
Endpoint to Resource Mapping
-
Endpoint:
GET /v1/system/status- Resource:
system/status - Verb:
get - Scope examples:
system:localadmin:*(local admin token)- serviceaccount rule including
system/status+get
- Resource:
-
Endpoint:
GET /v1/system/info- Resource:
system/info - Verb:
get - Scope examples:
- local admin
- serviceaccount with
system/info:get
- Resource:
-
Endpoint:
GET /v1/system/version- Resource:
system/version - Verb:
get
- Resource:
-
Endpoint:
POST /v1/system/provision- Resource:
system/provision - Verb:
create
- Resource:
-
Endpoint:
DELETE /v1/system/provision- Resource:
system/provision - Verb:
delete
- Resource:
-
Endpoint:
POST /v1/system/reload- Resource:
system/reload - Verb:
create
- Resource:
-
Endpoint:
POST /v1/system/prune- Resource:
system/prune - Verb:
create - Compatibility note: top-level
edgelet pruneis removed; useedgelet system pruneoredgelet image prune.
- Resource:
-
Endpoint:
GET /v1/images- Resource:
images - Verb:
get
- Resource:
-
Endpoint:
POST /v1/images:pull- Resource:
images/pull - Verb:
create
- Resource:
-
Endpoint:
GET /v1/images:pull/{operationId}- Resource:
images/pull/status - Verb:
get
- Resource:
-
Endpoint:
POST /v1/images:load- Resource:
images/load - Verb:
create
- Resource:
-
Endpoint:
POST /v1/images:prune- Resource:
images/prune - Verb:
create
- Resource:
-
Endpoint:
POST /v1/images:remove- Resource:
images/remove - Verb:
create
- Resource:
-
Endpoint:
GET /v1/models- Resource:
models - Verb:
get
- Resource:
-
Endpoint:
GET /v1/models/{name}- Resource:
models - Verb:
get - ResourceName:
{name}
- Resource:
-
Endpoint:
DELETE /v1/models/{name}- Resource:
models - Verb:
delete - ResourceName:
{name}
- Resource:
-
Endpoint:
POST /v1/models:pull- Resource:
models/pull - Verb:
create
- Resource:
-
Endpoint:
GET /v1/models:pull/{operationId}- Resource:
models/pull/status - Verb:
get
- Resource:
-
Endpoint:
POST /v1/models:prune- Resource:
models/prune - Verb:
create
- Resource:
-
Endpoint:
GET /v1/knowledge- Resource:
knowledge - Verb:
get
- Resource:
-
Endpoint:
GET /v1/knowledge/{name}- Resource:
knowledge - Verb:
get - ResourceName:
{name}
- Resource:
-
Endpoint:
DELETE /v1/knowledge/{name}- Resource:
knowledge - Verb:
delete - ResourceName:
{name}
- Resource:
-
Endpoint:
POST /v1/knowledge:pull- Resource:
knowledge/pull - Verb:
create
- Resource:
-
Endpoint:
GET /v1/knowledge:pull/{operationId}- Resource:
knowledge/pull/status - Verb:
get
- Resource:
-
Endpoint:
POST /v1/knowledge:prune- Resource:
knowledge/prune - Verb:
create
- Resource:
-
Endpoint:
GET /v1/volumes- Resource:
volumes - Verb:
get
- Resource:
-
Endpoint:
GET /v1/volumes/shared/{name}- Resource:
volumes - Verb:
get - ResourceName:
{name}
- Resource:
-
Endpoint:
DELETE /v1/volumes/{uuid}- Resource:
volumes - Verb:
delete - ResourceName:
{uuid} - Scope: private persistent VOLUME only
- Resource:
-
Endpoint:
DELETE /v1/volumes/shared/{name}- Resource:
volumes - Verb:
delete - ResourceName:
{name} - Scope: shared persistent VOLUME only
- Resource:
-
Endpoint:
POST /v1/volumes:prune- Resource:
volumes/prune - Verb:
create
- Resource:
-
Endpoint:
GET /v1/system/gps- Resource:
system/gps - Verb:
get
- Resource:
-
Endpoint:
POST /v1/system/gps- Resource:
system/gps - Verb:
create
- Resource:
-
Endpoint:
GET /v1/system/config- Resource:
system/config - Verb:
get
- Resource:
-
Endpoint:
PATCH /v1/system/config- Resource:
system/config - Verb:
update
- Resource:
-
Endpoint:
POST /v1/system/controller/cert- Resource:
system/controller/cert - Verb:
update
- Resource:
-
Endpoint:
POST /v1/system/config/switch- Resource:
system/config/switch - Verb:
update
- Resource:
-
Endpoint:
GET /v1/microservices/config- Resource:
microservices/config/self - Verb:
get - Identity binding: server resolves caller UUID from JWT claim
iofog.org.microservice.uuid
- Resource:
-
Endpoint:
GET /v1/microservices/control(WSS upgrade)- Resource:
microservices/control/self - Verb:
get - Identity binding: server resolves caller UUID from JWT claim
iofog.org.microservice.uuid
- Resource:
-
Endpoint:
GET /v1/ms- Resource:
microservices - Verb:
get
- Resource:
-
Endpoint:
GET /v1/ms/{id}- Resource:
microservices - Verb:
get - ResourceName:
{id}
- Resource:
-
Endpoint:
DELETE /v1/ms/{id}- Resource:
microservices - Verb:
delete - ResourceName:
{id}
- Resource:
-
Endpoint:
POST /v1/ms/{id}/start- Resource:
microservices - Verb:
create - ResourceName:
{id}
- Resource:
-
Endpoint:
POST /v1/ms/{id}/stop- Resource:
microservices - Verb:
create - ResourceName:
{id}
- Resource:
-
Endpoint:
POST /v1/ms/{id}/restart- Resource:
microservices - Verb:
create - ResourceName:
{id}
- Resource:
-
Endpoint:
POST /v1/ms/{id}/kill- Resource:
microservices - Verb:
create - ResourceName:
{id}
- Resource:
-
Endpoint:
GET /v1/ms/{id}/logs- Resource:
microservices - Verb:
get - ResourceName:
{id}
- Resource:
-
Endpoint:
GET /v1/ms/{id}/logs:stream(WSS upgrade)- Resource:
microservices - Verb:
get - ResourceName:
{id}
- Resource:
-
Endpoint:
POST /v1/ms/{id}/exec/sessions- Resource:
microservices - Verb:
create - ResourceName:
{id}
- Resource:
-
Endpoint:
GET /v1/ms/{id}/exec/sessions/{sessionId}- Resource:
microservices - Verb:
get - ResourceName:
{id}
- Resource:
-
Endpoint:
DELETE /v1/ms/{id}/exec/sessions/{sessionId}- Resource:
microservices - Verb:
delete - ResourceName:
{id}
- Resource:
-
Endpoint:
GET /v1/ms/{id}/exec/sessions/{sessionId}:attach(WSS upgrade)- Resource:
microservices - Verb:
get - ResourceName:
{id}
- Resource:
-
Endpoint:
POST /v1/deploy/microservices:apply- Resource:
deploy/microservices - Verb:
create
- Resource:
-
Endpoint:
GET /v1/deploy/microservices:apply/{operationId}- Resource:
deploy/microservices/apply/status - Verb:
get
- Resource:
-
Endpoint:
POST /v1/deploy/microservices:validate- Resource:
deploy/microservices - Verb:
create
- Resource:
-
Endpoint:
GET /v1/deploy/microservices- Resource:
deploy/microservices - Verb:
get
- Resource:
-
Endpoint:
GET /v1/deploy/microservices/{id}- Resource:
deploy/microservices - Verb:
get
- Resource:
-
Endpoint:
DELETE /v1/deploy/microservices/{id}- Resource:
deploy/microservices - Verb:
delete
- Resource:
-
Endpoint:
POST /v1/deploy/registries:apply- Resource:
deploy/registries - Verb:
create
- Resource:
-
Endpoint:
POST /v1/deploy/registries:validate- Resource:
deploy/registries - Verb:
create
- Resource:
-
Endpoint:
GET /v1/deploy/registries- Resource:
deploy/registries - Verb:
get
- Resource:
-
Endpoint:
GET /v1/deploy/registries/{id}- Resource:
deploy/registries - Verb:
get
- Resource:
-
Endpoint:
DELETE /v1/deploy/registries/{id}- Resource:
deploy/registries - Verb:
delete
- Resource:
-
Endpoint:
POST /v1/deploy/models:apply- Resource:
deploy/models - Verb:
create
- Resource:
-
Endpoint:
POST /v1/deploy/models:validate- Resource:
deploy/models - Verb:
create
- Resource:
-
Endpoint:
POST /v1/deploy/knowledge:apply- Resource:
deploy/knowledge - Verb:
create
- Resource:
-
Endpoint:
POST /v1/deploy/knowledge:validate- Resource:
deploy/knowledge - Verb:
create
- Resource:
-
Endpoint:
POST /v1/deploy/runtimeclasses:apply- Resource:
deploy/runtimeclasses - Verb:
create
- Resource:
-
Endpoint:
GET /v1/deploy/runtimeclasses:apply/{operationId}- Resource:
deploy/runtimeclasses/apply/status - Verb:
get
- Resource:
-
Endpoint:
POST /v1/deploy/runtimeclasses:validate- Resource:
deploy/runtimeclasses - Verb:
create
- Resource:
-
Endpoint:
GET /v1/deploy/runtimeclasses- Resource:
deploy/runtimeclasses - Verb:
get
- Resource:
-
Endpoint:
GET /v1/deploy/runtimeclasses/{name}- Resource:
deploy/runtimeclasses - Verb:
get
- Resource:
-
Endpoint:
DELETE /v1/deploy/runtimeclasses/{name}- Resource:
deploy/runtimeclasses - Verb:
delete
- Resource:
-
Endpoint:
GET /v1/deploy/runtimeclasses:delete/{operationId}- Resource:
deploy/runtimeclasses/delete/status - Verb:
get
- Resource:
-
Endpoint:
GET /v1/auth/whoami- Resource:
auth/whoami - Verb:
get
- Resource:
-
Endpoint:
GET /v1/auth/tokens- Resource:
auth/tokens - Verb:
get
- Resource:
-
Endpoint:
POST /v1/auth/tokens/revoke- Resource:
auth/tokens - Verb:
create
- Resource: