oxidecomputer / oxidecomputer/console

Tracking: Audit log follow-ups

Open
#3,363 0 comments 0 reactions 0 assignees View on GitHub

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 RefreshButton that invalidates auditLogList like 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"

    Image
  • Replace hand-rolled JSON viewer with Shiki highlighting. Would also benefit alert detail and metrics explorer.

  • tooltipPlacement prop on Truncate. The silo ID tooltip in the detail pane opens to the left (even though user ID opens up) becauset autoPlacement picks 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 hours and Custom mean 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 auditLogList handler ignores sortBy, 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.

    https://github.com/oxidecomputer/console/blob/c927f2f5f958f7c16c1a19724edef0cf0770f39f/app/pages/system/AuditLog.tsx#L401

  • 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.