Repository navigation
docs: the minimal API key permissions for each feature - #339
Merged
Merged
Conversation
README gets an "API key permissions" section: the simple choices (VIEWER for read-only, ADMIN for everything), a table of the resource and action each screen and action needs for a least-privilege key, where the key and its permissions are set, what the server answers when a permission is missing, and the API versions (4.30.0 for every screen, 4.35.0 for network speed; API versions, not Unraid OS versions). Each row says whether it was verified live or read from the Unraid API source. The website's setup part gets a short version that links to the README. Refs #316 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Container restart is a stop followed by a start, so the footnote no longer promises a one-step restart. The VIEWER wording now names the notification exception on servers before API 4.37.4. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A temporary key (VIEWER plus DOCKER:UPDATE_ANY) was tried on a real Unraid 7.4.0 server: VIEWER reads every screen, container actions need DOCKER:UPDATE_ANY; for VM and notification actions only the refusal was seen. A key without a role could not be created with the command line tool, so the recipe is now VIEWER plus explicit permissions. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
3 tasks
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
nofuturekid
temporarily deployed
to
github-pages
November 13, 2026 17:13 — with
GitHub Actions
Inactive
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
README.md: new section "API key permissions" (anchor#api-key-permissions). It says in plain words which key NOVA needs: VIEWER for read-only, ADMIN for everything, or VIEWER plus only the wantedUPDATE_ANY/DELETE_ANYpermissions for least privilege. A table lists the resource and action per feature and marks each row as Live (run against a real server, Unraid 7.4.0 / API 4.37.11) or Source (read from the Unraid API source at 4.37.11, not tried with a key that holds only that permission), with footnotes. It also covers where the key and its permissions are set, what the server answers when a permission is missing ("Forbidden resource"; a later version will hide controls the key cannot use, no date given), and the API versions (4.30.0 for every screen, 4.35.0 for network speed; API versions, not Unraid OS versions). Step 2 of Getting started links to it.site/index.html: a short "Which API key" part in the setup section, with the same three choices, linking to the README table. It uses the existing classes, so light and dark themes are unchanged and nothing new is loaded.Why
Users should be able to create a least-privilege key instead of an ADMIN key (#316).
Deliberately left out
docs/privacy/POLICY.md: its statements about the API key are still correct.DOCKER:UPDATE_ANYwas run live, the other permissions in the example were not tried.Checks
Docs-only; no Gradle, docker or local-ci. Changed paths do not match the build-affecting filter in
ci.yml. External links return 200. The added HTML is balanced.Live results (2026-11-13, Unraid 7.4.0, API 4.37.11, temporary key deleted afterwards)
DOCKER:UPDATE_ANY(refused without it, accepted past the permission check with it);mereports the role plus the explicit permissions.VMS:UPDATE_ANY), archive and mark notifications (NOTIFICATIONS:UPDATE_ANY), delete notifications (NOTIFICATIONS:DELETE_ANY): a key without the permission is refused; sufficiency is from the source.ARRAY:UPDATE_ANY), update all containers (not testable without acting on a server).Refs #316 (stays open: the Add server sheet link comes with a later pull request; rows verified only from source are marked as such)
🤖 Generated with Claude Code