M4.7 module quiz
Ten questions. 80% to pass (8 of 10). Open book, unlimited retakes.
Answers are collapsed under each question. Answer first, then check.
Q1
Dashboards in ZopNight are:
A. Organisation-scoped and org-shared, with a single org-wide default
B. Per-user, with every user holding their own separate default
C. Per-team, with the lead choosing the default
D. Per-role, so Admins and Viewers differ
Show answer
Correct: A. There is no per-user dashboard ownership in v1. Deleting the default is blocked in the UI until you reassign it; a delete through the API or MCP clears the pointer, and the next read falls back to the All Widgets preset.
Q2
The four presets are:
A. Daily, Weekly, Monthly and Annual views
B. Executive, Engineering, FinOps, All Widgets
C. Admin, Editor, Viewer and Custom
D. Cost, Usage, Governance, Security
Show answer
Correct: B. They are served from memory rather than persisted, so a new org needs no seeding and its default falls back to All Widgets until one is set.
Q3
Attempting to edit or delete a preset returns:
A. 403 Forbidden, with no body
B. 404 Not Found
C. 409 Conflict
D. 405 Method Not Allowed
Show answer
Correct: D. Presets are immutable. Admins clone to customise, which is why the clone path exists as a first-class action rather than a workaround.
Q4
A widget whose required policy the viewer lacks:
A. Is hidden, and the grid reflows around it
B. Renders a “no permission” placeholder
C. Blocks the whole dashboard from loading
D. Shows empty data, rendering as zeros
Show answer
Correct: B. Placeholder rather than hide is deliberate: a reflowing grid makes two users’ screenshots of “the same dashboard” incomparable.
Q5
A single widget throwing an error:
A. Unmounts the whole dashboard and shows a single error
B. Retries indefinitely until the query succeeds
C. Falls back to a placeholder via a per-slot error boundary
D. Removes itself from the saved layout entirely
Show answer
Correct: C. Per-widget error containment is a separate mechanism from per-widget RBAC, and both exist so one failure does not take the page with it.
Q6
Widget size tokens are:
A. Free-form pixel dimensions set per widget
B. Wide, Standard and Compact, mapping to fixed grid slots
C. Small, medium, large and extra-large fixed presets
D. Determined by the content the widget renders
Show answer
Correct: B. Fixed slots rather than free-form resize in v1, which is what keeps a shared org dashboard coherent across screen sizes.
Q7
Per-org dashboard limits exist on:
A. Dashboards, widgets per dashboard, per-widget config size and total layout size
B. Dashboards per org only
C. Widgets per dashboard only
D. Nothing at all; every one of those limits is deliberately unbounded by design
Show answer
Correct: A. All four surface as clean errors with stable codes rather than silent truncation, which matters because a truncated layout is a corrupted one.
Q8
The org-wide default dashboard pointer is stored:
A. In the dashboards table
B. In the frontend local store
C. In the org settings store
D. Per user, on their profile
Show answer
Correct: C. Its cleanup on dashboard deletion is owned by the settings owner rather than by the dashboard package, so the cross-table cleanup has a single owner.
Q9
Deleting an organisation:
A. Leaves its dashboards orphaned and unreachable
B. Blocks the deletion for as long as any dashboards still exist
C. Exports the dashboards before removing the org
D. Soft-deletes every dashboard it owns and clears the default pointer
Show answer
Correct: D. Tenant cascade. An orphaned dashboard row referencing a deleted org is the kind of residue that surfaces years later as an unexplained record.
Q10
Setting the org default requires which policy?
A. organisation:update
B. dashboard:create
C. dashboard:update
D. report:update
Show answer
Correct: C. Both the PUT and PATCH paths map to it, so the default-dashboard mutation is authorised by the dashboard policy rather than by an organisation one.
What’s next
Back to Dashboards as governance.