Contents

Dynamic role / permission management bounded context.

Locations

LayerPath
Domaininternal/domain/rbac/
Applicationinternal/application/authz/start withservice.go
HTTPinternal/adapters/http/handler/rbac_handler.go
GoUIinternal/adapters/goui/controller_rbac_notifications.go
Persistenceadapters/persistence/postgres/role_repository.go
Wiringwire_authz.go; wire_http.go, wire_goui.go

Application

FileRole
service.goFacade: permission/role CRUD, role-permission assignment
resolver.goResolver — session permission check (in-memory TTL cache)
dto.goPermissionInfo, RoleInfo

Resolver caches in process memory for single-process deployment; shared invalidation needed for multiple instances (not yet implemented).

HTTP surfaces

Registration: server.go/api/v1/rbac/... (permission: rbac:manage)

MethodPathHandler
GET/POST/rbac/permissionsList / Create permission
PATCH/rbac/permissions/:nameUpdate permission
GET/POST/rbac/rolesList / Create role
GET/PATCH/DELETE/rbac/roles/:nameGet / Update / Delete role
PUT/rbac/roles/:name/permissionsSetPermissions

Panel surfaces

PathScreen
/dashboard/rbac/rolesroles
/dashboard/rbac/roles/newrole-new
/dashboard/rbac/roles/:namerole-show
/dashboard/rbac/permissionspermissions

Related