-
-
Notifications
You must be signed in to change notification settings - Fork 0
Permissions Helper
Jim Daley edited this page Jul 2, 2026
·
1 revision
Permissions Helper maps Forsetti actions and Jamf endpoints to required Jamf Pro privileges. It is designed to give administrators a readable permission matrix before they attempt an operation, and to help diagnose 403 API failures when a role is incomplete.
flowchart TD
Module["PermissionsMatrixModule"] --> Loader["PermissionsMatrixResourceLoader"]
Module --> Verifier["PermissionsMatrixRuntimeVerifier"]
Module --> VM["PermissionsMatrixViewModel"]
Loader --> Resource["jamf_dashboard_permissions_matrix.v4.module_resource.json"]
Resource --> Document["PermissionsMatrixDocument"]
VM --> Views["PermissionsMatrixView"]
Views --> Catalog["Privilege catalog"]
Views --> EndpointCatalog["Endpoint catalog"]
Views --> CommandExplorer["Command/action explorer"]
Views --> Graph["Permission graph diagram"]
Verifier --> Gateway["JamfAPIGateway"]
Gateway --> Jamf["Jamf Pro auth/privilege endpoint"]
VM --> Diagnostics["DiagnosticsReporting"]
sequenceDiagram
participant User as Admin
participant View as Permissions Helper
participant Loader as Resource Loader
participant VM as ViewModel
participant Verifier as Runtime Verifier
participant Jamf as Jamf Pro
participant Diag as Diagnostics
User->>View: open Permissions Helper
View->>Loader: load bundled matrix
Loader-->>View: actions, endpoints, privileges
User->>View: search command or privilege
View->>VM: filter actions
VM-->>View: matching action cards
User->>View: run token privilege check
View->>Verifier: fetch current token privileges
Verifier->>Jamf: authenticated auth/privilege request
Jamf-->>Verifier: privilege list
Verifier->>Diag: verification diagnostics
Verifier-->>View: available/missing privilege state
| Responsibility | Detail |
|---|---|
| Action lookup | Operators can search by command/action display name. |
| Module filtering | Searches can be scoped to one module. |
| Privilege matching | Searches by privilege name surface actions requiring that privilege. |
| Requirement flattening | Heterogeneous requirement modes are flattened for display and testability. |
| Endpoint mapping | Actions can show API endpoint requirements. |
| Runtime verification | Current token privileges can be checked against expected privileges. |
| Visual explanation | Graph and matrix views show relationship between modules, commands, endpoints, and privileges. |
flowchart LR
Module["Forsetti module"] --> Action["Action or command"]
Action --> Endpoint["Jamf API endpoint"]
Action --> HardReq["Hard-required privileges"]
Action --> OptionalReq["Conditional or optional privileges"]
Endpoint --> Gate["Endpoint gate privilege"]
Gate --> Role["Jamf API role"]
HardReq --> Role
OptionalReq --> Role
Role --> Token["Current token privileges"]
Support actions that queue MDM commands require both:
- An endpoint-level gate for viewing MDM command information through the Jamf Pro API.
- A per-command privilege, such as a restart, device information, erase, or mobile-device-specific command privilege.
flowchart TD
Action["Support action: queue MDM command"] --> Gate["View MDM command information in Jamf Pro API"]
Action --> CommandSpecific["Per-command privilege"]
Gate --> TokenCheck["Token privilege check"]
CommandSpecific --> TokenCheck
TokenCheck -->|all present| Ready["Action ready"]
TokenCheck -->|missing privilege| Blocked["Action blocked or degraded"]
Blocked --> Guidance["Show missing privilege guidance"]
| Path | Role |
|---|---|
ForsettiApp/Modules/PermissionsMatrix/PermissionsMatrixModule.swift |
Composition root. |
ForsettiApp/Modules/PermissionsMatrix/Resources/jamf_dashboard_permissions_matrix.v4.module_resource.json |
Bundled offline matrix. |
ForsettiApp/Modules/PermissionsMatrix/Services/PermissionsMatrixResourceLoader.swift |
Resource loading and decoding. |
ForsettiApp/Modules/PermissionsMatrix/Services/PermissionsMatrixRuntimeVerifier.swift |
Runtime token privilege verification. |
ForsettiApp/Modules/PermissionsMatrix/Models |
Matrix, graph, hierarchy, and layout models. |
ForsettiApp/Modules/PermissionsMatrix/Views |
Matrix, catalog, command explorer, graph, and verification views. |
ForsettiTests/PermissionsMatrixTests.swift |
Matrix decode, search, flattening, and required-command tests. |
Forsetti Jamf Pro documentation. Keep module IDs, build commands, and security behavior aligned with the repository source before changing this wiki.