Surface the acting API client in audit/activity data (CLI + API) — API-created assets all attribute to the workspace service account #9
mattpalmer-persefoni
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
We're building recipes through the
wkCLI (and Claude Code driving it) and gave each developer their own Developer API client, for independent revocation and project/environment scoping. We realize the core fix here may be a platform change rather than awktooling change, but we're surfacing it in Labs because it directly affects being able to attribute who did what when working through thewktools. While verifying attribution we found that three surfaces disagree about "who performed an action":wk workspace audit-logandGET /api/activity_logsuser= workspace service account;detailshas onlyip_address+user_agent; no api_client field at allSo the platform clearly knows which API client acted — the UI Activity feed shows it — but that identity isn't available anywhere automation or governance can consume it.
Two asks
1. CLI (small fidelity fix):
wk workspace audit-log --jsondrops theresourceandworkspaceobjects thatGET /api/activity_logsactually returns — its output only keepsid / event_type / timestamp / user / details. Please pass those through so the CLI output matches the API response.2. API / platform (the real one): expose the acting API client (id + name) in
/api/activity_logs(the UI already resolves it), and ideally reflect it in recipe version history — so per-developer API clients yield per-developer traceability outside the UI.Reproduction
wk recipes import <file> --folder <id>)./api/activity_logsuserare identical (the workspace service account) for both — only the UI Activity feed tells the two clients apart.Why it matters
Issuing one API client per developer is a security best practice, but today there's no machine-readable way to attribute a CLI/API-built recipe to the person (or client) that created it. Surfacing the acting client in the API — and on the asset — would close that gap.
All reactions