Skip to content

Commit d638fd8

Browse files
fix(tests,docs): AL29 hardcoded count + README screenshot drift
Two pre-GA cleanup fixes surfaced after the visual_regression fix landed (commit d6c74c6) and unmasked previously-latent failures downstream in the e2e-full pipeline. 1. tests/e2e/test_admin_limits.cjs (AL29): - The test hardcoded `if (inputs !== 11)` for the .wl-admin-limit-input count. Builds 666-668 (2026-05-20, commits d81bf2e/12469f9/c53552e) added `row_reorder` + `column_reorder` admin caps to the UI's `fields` array per the DECISION_LOG.md 2026-05-20 row, taking the legitimate count to 13. AL29 was never updated; the failure was hidden by visual_regression failing earlier in the workflow. - Replaced the hardcoded count check with a presence-of-keys assertion over the 13 known keys, plus a `>= 11` floor on total inputs. This is robust against future admin-cap additions while still failing loud if a known key disappears. Matches the broader "test the OUTCOME, not the mechanism" rule (CLAUDE.md). 2. README.md + docs/SPLUNKBASE_LAUNCH_KIT.md + docs/PUBLIC_FILE_INVENTORY.md: - README embedded 4 legacy May-6 screenshots while the new SPLUNKBASE_LISTING_DRAFT.md specified 5 fresh build-669 captures (May-24). Disjoint filename sets, different UI states. - Migrated README to the 5 fresh build-669 set. Updated SPLUNKBASE_LAUNCH_KIT.md §3.4 to match. Refactored PUBLIC_FILE_INVENTORY.md to split active vs historical sets so the 4 legacy PNGs remain on disk as PRE_PUBLIC_AUDIT.md §Phase F audit evidence (F-L11 grounding) without confusing readers about which set is current. Doc-drift hook PASS (37 docs checked against build 669).
1 parent 56425b0 commit d638fd8

4 files changed

Lines changed: 72 additions & 21 deletions

File tree

README.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,25 @@ without touching raw CSV files, Splunk configs, or the filesystem.
4545

4646
## Screenshots
4747

48-
**Main Dashboard** — Inline editing with change tracking, search, pagination, and bulk operations
48+
**Whitelist Manager Dashboard** — Inline editing with change tracking, search, pagination, and bulk operations
4949

50-
![Main Dashboard](docs/screenshots/01-main-dashboard.png)
50+
![Whitelist Manager Dashboard](docs/screenshots/01-whitelist-manager-dashboard.png)
5151

52-
**Inline Editing**Click any cell to edit. Modified cells are highlighted for review before saving.
52+
**Control PanelApproval Queue** — Admin queue showing pending dual-approval and analyst-approval requests, with approve/reject actions
5353

54-
![Inline Editing](docs/screenshots/02-inline-editing.png)
54+
![Control Panel Approval Queue](docs/screenshots/02-control-panel-approval-queue.png)
5555

56-
**Audit Trail**Complete audit dashboard with summary stats, filters, and approval tracking
56+
**Audit Trail Dashboard**Summary stats, action filters, approval tracking, and out-of-band recovery panel
5757

58-
![Audit Trail](docs/screenshots/03-audit-trail.png)
58+
![Audit Trail Dashboard](docs/screenshots/03-audit-trail-dashboard.png)
5959

60-
**Control Panel**Admin-only dashboard for approval queue, analyst usage, and limit configuration
60+
**Inline CSV Editing**Click any cell to edit. Modified cells highlight for review before saving; per-row Comment column captures the analyst's rationale.
6161

62-
![Control Panel](docs/screenshots/04-control-panel.png)
62+
![Inline CSV Editing](docs/screenshots/04-inline-csv-editing.png)
63+
64+
**Control Panel — Activity** — Per-analyst usage counters with tier-aware caps, reset schedules, and lockdown-state visibility
65+
66+
![Control Panel Activity](docs/screenshots/05-control-panel-activity.png)
6367

6468
## Features
6569

docs/PUBLIC_FILE_INVENTORY.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -289,12 +289,28 @@ Everything here is built into the MkDocs site at `https://relativisticjet.github
289289

290290
### Screenshots
291291

292+
**Active set (build 669, captured 2026-05-24)** — referenced by
293+
`README.md`, `docs/SPLUNKBASE_LISTING_DRAFT.md`, and
294+
`docs/SPLUNKBASE_LAUNCH_KIT.md`:
295+
292296
| File | Purpose | Public? | Up-to-date? |
293297
|---|---|---|---|
294-
| `docs/screenshots/01-main-dashboard.png` | Splash on the docs site + repo README. | Repo-only | Yes |
295-
| `docs/screenshots/02-inline-editing.png` | DR130 editing view. | Repo-only | Yes (per F-L11 re-evaluation) |
296-
| `docs/screenshots/03-audit-trail.png` | Audit Trail dashboard. | Repo-only | Yes (per F-L11 re-evaluation) |
297-
| `docs/screenshots/04-control-panel.png` | Control Panel Approval Queue. | Repo-only | Yes |
298+
| `docs/screenshots/01-whitelist-manager-dashboard.png` | Splash on docs site + repo README. | Repo-only | Yes (build 669, 2026-05-24) |
299+
| `docs/screenshots/02-control-panel-approval-queue.png` | Admin Approval Queue tab. | Repo-only | Yes (build 669, 2026-05-24) |
300+
| `docs/screenshots/03-audit-trail-dashboard.png` | Audit Trail dashboard. | Repo-only | Yes (build 669, 2026-05-24) |
301+
| `docs/screenshots/04-inline-csv-editing.png` | DR130 inline CSV editing view. | Repo-only | Yes (build 669, 2026-05-24) |
302+
| `docs/screenshots/05-control-panel-activity.png` | Per-analyst usage counters + tier-aware caps. | Repo-only | Yes (build 669, 2026-05-24) |
303+
304+
**Historical set (build ~640, captured 2026-05-06)** — retained as
305+
audit evidence for `docs/PRE_PUBLIC_AUDIT.md` §Phase F (F-L11
306+
visual-review log). No longer referenced by user-facing docs:
307+
308+
| File | Original purpose | Status |
309+
|---|---|---|
310+
| `docs/screenshots/01-main-dashboard.png` | README splash (build ~640). | Superseded by `01-whitelist-manager-dashboard.png`; retained for PRE_PUBLIC_AUDIT F-L11 grounding. |
311+
| `docs/screenshots/02-inline-editing.png` | DR130 editing view (build ~640). | Superseded by `04-inline-csv-editing.png`; retained for PRE_PUBLIC_AUDIT F-L11 grounding. |
312+
| `docs/screenshots/03-audit-trail.png` | Audit Trail (build ~640). | Superseded by `03-audit-trail-dashboard.png`; retained for PRE_PUBLIC_AUDIT F-L11 grounding. |
313+
| `docs/screenshots/04-control-panel.png` | Control Panel Approval Queue (build ~640). | Superseded by `02-control-panel-approval-queue.png`; retained for PRE_PUBLIC_AUDIT F-L11 grounding. |
298314

299315
---
300316

docs/SPLUNKBASE_LAUNCH_KIT.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,11 +237,14 @@ NOT INCLUDED
237237

238238
- **App archive**: `dist/wl_manager-1.0.0.spl` (built via
239239
`scripts/package.sh` at GA tag time)
240-
- **Screenshots**: already in repo at `docs/screenshots/`:
241-
- `01-main-dashboard.png`
242-
- `02-inline-editing.png`
243-
- `03-audit-trail.png`
244-
- `04-control-panel.png`
240+
- **Screenshots**: already in repo at `docs/screenshots/` (fresh
241+
build-669 captures from 2026-05-24; matches the 5 referenced in
242+
`docs/SPLUNKBASE_LISTING_DRAFT.md` §8):
243+
- `01-whitelist-manager-dashboard.png`
244+
- `02-control-panel-approval-queue.png`
245+
- `03-audit-trail-dashboard.png`
246+
- `04-inline-csv-editing.png`
247+
- `05-control-panel-activity.png`
245248
- **Icon**: already in repo at `static/appIcon.png` and
246249
`appserver/static/appIcon.png` (per the launcher-icon-path quirk
247250
documented in SPLUNK_QUIRKS.md)

tests/e2e/test_admin_limits.cjs

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -556,12 +556,40 @@ async function setAdminLimits(page, limits, retries) {
556556
if (await tab.count() === 0) throw new Error("Admin Limits tab not found for superadmin");
557557
});
558558

559-
await H.test("AL29 Admin Limits tab shows all 11 limit inputs", async () => {
559+
await H.test("AL29 Admin Limits tab renders all configured limit inputs", async () => {
560+
// The UI renders one `<input class="wl-admin-limit-input">` per
561+
// key in the `fields` array (appserver/static/control_panel.js).
562+
// The original 11 keys (csv_save..usage_reset) are guaranteed;
563+
// build 666 (2026-05-20) added row_reorder + column_reorder admin
564+
// caps per the DECISION_LOG.md 2026-05-20 row. Assert (a) every
565+
// known key has an input AND (b) the count is at least 11 — this
566+
// tolerates future additions of new admin caps without churning
567+
// a hardcoded integer, but still fails if a key disappears.
560568
await superPage.click('[data-tab="admin-limits"]');
561569
await superPage.waitForTimeout(2000);
562-
const inputs = await superPage.locator(".wl-admin-limit-input").count();
563-
if (inputs !== 11) {
564-
throw new Error("Expected 11 limit inputs, found " + inputs);
570+
const requiredKeys = [
571+
"csv_save", "csv_revert", "rule_creation", "csv_creation",
572+
"rule_deletion", "csv_deletion", "approval_count",
573+
"limit_changes", "trash_restore", "trash_purge", "usage_reset",
574+
// Build-666 reorder caps (DECISION_LOG.md 2026-05-20)
575+
"row_reorder", "column_reorder",
576+
];
577+
for (const key of requiredKeys) {
578+
const found = await superPage.locator(
579+
`.wl-admin-limit-input[data-key="${key}"]`
580+
).count();
581+
if (found !== 1) {
582+
throw new Error(
583+
"Missing admin limit input for key: " + key +
584+
" (found " + found + ")"
585+
);
586+
}
587+
}
588+
const totalInputs = await superPage.locator(".wl-admin-limit-input").count();
589+
if (totalInputs < 11) {
590+
throw new Error(
591+
"Expected >= 11 limit inputs, found " + totalInputs
592+
);
565593
}
566594
});
567595

0 commit comments

Comments
 (0)