diff --git a/docs/argus-hub.md b/docs/argus-hub.md index f5716ebc..73c2aef0 100644 --- a/docs/argus-hub.md +++ b/docs/argus-hub.md @@ -106,9 +106,10 @@ when Hub starts, it generates a key for the Default organization and prints it t Only use `HUB_INSECURE_COOKIE_HOSTS` for hostnames reachable through a private network. Never list a hostname that is reachable from the public internet. -To rotate a key, disable or remove the old key in the Hub database, then restart Hub. If no enabled -key remains, Hub generates a new one on startup. A disabled key is rejected before Hub reads the -upload body. +To rotate a key, delete the old key's row from the Hub database, then restart Hub. Hub only +generates a new key when the `api_keys` table is empty, so disabling a key with `is_enabled = 0` +does not trigger this: rotation requires removing the row outright, not just disabling it. A +disabled key is rejected before Hub reads the upload body. ## Run Hub continuously @@ -193,8 +194,7 @@ for the complete plist, including log paths and restart behavior. ## Use the dashboard -Open the Hub URL in a browser. The dashboard uses the same views as `argus serve`, with a user -dimension added: +Open the Hub URL in a browser. The dashboard groups organization-wide usage into these views:
@@ -205,15 +205,14 @@ dimension added: | View | What you can see | |---|---| | Activity | Usage and cost for the whole organization or one person | -| Sessions | Sessions filtered to the whole organization or one person | -| Projects | Project activity across the organization or for one person | +| Tasks | Extracted tasks, including outcomes, frustration and interrupted rates, and top failure signals | | Tools | Tool and MCP server usage across the organization or for one person | -| Health | Health signals for the selected scope | -| Users | Per-user sessions, tokens, estimated cost and last-sync time | +| Team | Per-user sessions, tokens, estimated cost and last-sync time | +| Export | Download the full dataset as a Snowflake-ready zip | -The user picker appears after at least one client syncs. Leave it on **All users** for an -organization-wide view, or choose one person to scope the views. The Users table can be sorted by -any column. +The user/group picker appears after at least one client syncs. Leave it on **All** for an +organization-wide view, or choose one person or group to scope Activity, Tasks and Tools. The +Team table can be sorted by any column, and clicking a row opens that person's own activity view. ## Query Hub from an agent @@ -229,9 +228,11 @@ HTTPS without a subprocess or a session. | `query_tool_usage` | Which tools and MCP servers people use | | `query_users` | User IDs, display names, emails, last-sync time, sessions, tokens and cost | -The first four query tools accept `since`, `until`, `project`, `source` and `user` filters. The -`source` filter accepts `claude`, `codex`, `gemini` or `cowork`. `query_users` takes no arguments -and can help you find a `userId` before scoping another query. +The first four query tools accept `since`, `until`, `project`, `source`, `user` and `group` +filters. The `source` filter accepts `claude`, `codex`, `gemini` or `cowork`. The `group` filter +takes a groupId, or `__none__` for users with no group assigned. `query_users` accepts an +optional `group` filter (matching a groupId or groupName) and can help you find a `userId` before +scoping another query. Authenticate with the Hub admin password: