oxidecomputer / oxidecomputer/console
Tracking: Audit log follow-ups
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 228
- Forks
- 22
- Avg merge
- 19h 42m
- Merged PRs (30d)
- 32
Description
Loose ends from #2860, roughly in priority order. We don't have to do all these, just want to track them.
-
Scroll performance in Firefox and Safari. If you scroll the list fast enough you get a black space until the new rows render. The main cause is per-cell text measurement for the middle-truncated ID cells. Fixing
:checked ~ *selection theme selector restyling siblings in Firefox didn't seem to improve things. In progress. -
Refetch current time range. Polling is gone and the time range isn't in the URL, so the only way to refetch the current range is a full reload, which also resets the range to the default preset. Smallest fix is a
RefreshButtonthat invalidatesauditLogListlike the other system pages. Putting the current range in the URL would work by allowing normal refresh to cover this. -
Silo and actor names in the list view. The detail pane resolves them now. Not obvious how to fit them in the table. Entries for deleted ones have to show "Not found" (or raw ID) until the names are stored in the log entry itself (https://github.com/oxidecomputer/omicron/issues/8814).
-
Combined component for Listbox + DatePicker/DateRangePicker. See https://github.com/oxidecomputer/console/pull/2860#discussion_r3509122941
-
Empty state could use some "Design"
-
Replace hand-rolled JSON viewer with Shiki highlighting. Would also benefit alert detail and metrics explorer.
-
tooltipPlacementprop onTruncate. The silo ID tooltip in the detail pane opens to the left (even though user ID opens up) becausetautoPlacementpicks the biggest gap, and the column is on the right side of the table. -
Preset listbox → menu or buttons. The listbox implies a statefulness that doesn't exist: with polling gone,
Last 3 hoursandCustommean the same thing once the same range is in the picker. Something menu-like, or buttons like the OxQL examples in https://github.com/oxidecomputer/console/pull/3312#discussion_r3815582249. The picker is shared with silo utilization, system utilization, and instance metrics, so this touches all four pages. -
Mock only: the MSW
auditLogListhandler ignoressortBy, so dev server rows aren't in descending time order. Real API sorts server-side. -
UTC timestamp tooltip on the time cell. There's a TODO for it already. Optional.
-
Sticky header slides under the top bar on the Vercel preview. Low priority, only reproduces on the preview.
https://github.com/user-attachments/assets/2254ffde-ce76-4d76-aca2-59ec735438f5
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with app/pages/system/AuditLog.tsx and select one unchecked follow-up, since this issue combines independent performance, UI, data, and mock-server tasks. Read the linked discussion or referenced TODO for the chosen item, then define its scope and completion criteria before changing code; the issue does not identify one shared test or a single definition of done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100