Activity drill-down is always empty — /api/v1/activity returns [] although the audit log records the events #673

Closed
opened 2026-09-23 03:06:24 +00:00 by Cordy · 1 comment
Owner

Found by the #656 QA pass (v0.6.247, both dogfoods).

Matrix row: §3 Details pane — "Activity drill-down | Open Activity | Recent events for the file".

Steps

  1. files.c0rdyceps.ch as nikola-test, _qa: upload qa-large-110MB.bin, create qa-sheet.xlsx, and save it twice in Collabora.
  2. Select either file → pane → Activity. The pane shows "No activity yet".
  3. The UI calls GET /api/v1/activity?path=/home/_qa/qa-sheet.xlsx&limit=50200 {"items":[]}. The unfiltered GET /api/v1/activity?limit=5 is also {"items":[]}, and so is the folder /home/_qa.
  4. GET /api/v1/admin/audit?limit=3 in the same session does list the events: write /home/nikola-test/_qa/qa-sheet.xlsx at 02:58:37Z, read …/qa-word.docx, etc.
  5. files-bao: /api/v1/activity?limit=5 is also {"items":[]}.

Expected: recent events for the file (upload, edits).
Seen: nothing ever appears. Hypothesis, not verified: the activity query filters by the UI's virtual path (/home/_qa/…), while audit events are stored under the storage path (/home/nikola-test/_qa/…). That is the same /home namespace seam as #662. Even so, the unfiltered call being empty suggests the feed is also user-scoped or source-filtered in a way that drops these events.

Side note: trying the storage-form path (/home/nikola-test/_qa/qa-sheet.xlsx) or the relative form returns 404 not found: file does not exist, so only the virtual form resolves.

Screenshot: activity-empty.jpg

Found by the #656 QA pass (v0.6.247, both dogfoods). **Matrix row:** §3 Details pane — "Activity drill-down | Open Activity | Recent events for the file". **Steps** 1. files.c0rdyceps.ch as nikola-test, `_qa`: upload `qa-large-110MB.bin`, create `qa-sheet.xlsx`, and save it twice in Collabora. 2. Select either file → pane → Activity. The pane shows "No activity yet". 3. The UI calls `GET /api/v1/activity?path=/home/_qa/qa-sheet.xlsx&limit=50` → `200 {"items":[]}`. The unfiltered `GET /api/v1/activity?limit=5` is also `{"items":[]}`, and so is the folder `/home/_qa`. 4. `GET /api/v1/admin/audit?limit=3` in the same session **does** list the events: `write /home/nikola-test/_qa/qa-sheet.xlsx` at 02:58:37Z, `read …/qa-word.docx`, etc. 5. files-bao: `/api/v1/activity?limit=5` is also `{"items":[]}`. **Expected:** recent events for the file (upload, edits). **Seen:** nothing ever appears. Hypothesis, not verified: the activity query filters by the UI's virtual path (`/home/_qa/…`), while audit events are stored under the storage path (`/home/nikola-test/_qa/…`). That is the same `/home` namespace seam as #662. Even so, the unfiltered call being empty suggests the feed is also user-scoped or source-filtered in a way that drops these events. Side note: trying the storage-form path (`/home/nikola-test/_qa/qa-sheet.xlsx`) or the relative form returns `404 not found: file does not exist`, so only the virtual form resolves. **Screenshot:** `activity-empty.jpg`
Author
Owner

Supporting evidence from the bao audit log (Query tab, 03:28Z). The two path namespaces are mixed inside the audit log itself:

  • office-open /home/_qa/qa-word.docx (virtual)
  • write /home/nikola-test/_qa/qa-word.docx (storage)
  • read /home/nikola-test/_qa/qa-word.docx (storage)
  • sharer1's events use /shared/nikola-test/qa-drop.txt

A per-file activity query can only match one of these forms, which fits the always-empty drill-down. Screenshot: 656-audit-query-bao.jpg.

Supporting evidence from the bao audit log (Query tab, 03:28Z). The two path namespaces are mixed *inside the audit log itself*: - `office-open /home/_qa/qa-word.docx` (virtual) - `write /home/nikola-test/_qa/qa-word.docx` (storage) - `read /home/nikola-test/_qa/qa-word.docx` (storage) - sharer1's events use `/shared/nikola-test/qa-drop.txt` A per-file activity query can only match one of these forms, which fits the always-empty drill-down. Screenshot: `656-audit-query-bao.jpg`.
Cordy referenced this issue from a commit 2026-09-23 20:35:47 +00:00
Cordy closed this issue 2026-09-23 20:52:09 +00:00
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#673
No description provided.