feat(analytics): allow every staff role to view dashboard - #498
Closed
compaii wants to merge 1 commit into
Closed
Conversation
Signed-off-by: CompAII <compaii@altermundi.net>
Contributor
|
Closing this implementation path after the resumed #474 completion audit. The epic contract requires dashboard access to remain limited to The four current staff members already have explicit active |
This was referenced Sep 3, 2026
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.
1|## Summary
2|
3|- make Analytics view-only access the default for every authenticated Live staff role
4|- preserve export access for Admin and active
EXPORTERgrants only5|- keep revoked exporter grants at the baseline view-only permission
6|- update analytics architecture, governance, and operations documentation
7|
8|## Verification
9|
10|-
npx vitest run src/lib/__tests__/analytics-access.test.ts --reporter=verbose11| - RED before implementation: 4 expected authorization failures
12| - GREEN after implementation: 6/6 passed
13|-
npm test: 1116 passed, 25 skipped14|-
npx tsc --noEmit: passed15|-
npm run lint: passed16|-
npm run build: passed17|- independent security/logic review: passed with no findings on
dde9031e6859d7453206c5cdb757ca74596e662d18|
19|## Security boundary
20|
21|This does not expand CSV export privileges.
ANALYTICS_VIEWERcontinues to receive403 export_forbiddenfor CSV requests; onlyADMINand an activeEXPORTERgrant can export.22|
23|## Deployment note
24|
25|Current production staff received explicit
VIEWERgrants as the supported immediate path. No merge or deploy should proceed while repository gates are red.26|
27|The exact PR head currently reproduces two pre-existing
releaseblockers unrelated to this five-file diff:28|
29|1.
lint-and-build: the production dependency audit rejectsfast-uriandmysql2advisories. The same dependency baseline is present onrelease; this PR changes no dependency files.30|2.
analytics:services/analytics/test/postgres.test.mjs:229fails inquality run records canonical integrity and storage samples(false !== true). The identical test and assertion failed in PR #493 before this branch existed. A single rerun reproduced it.31|
32|Passing GitHub checks on this head:
test,e2e, andfrozen-audio-paths.33|