manage_api_key
Register, revoke, or list API keys for multi-user access, with role-based permissions and optional expiry; admin only. Plaintext keys are hashed before storage.
Instructions
Manage API keys for multi-user access (admin only).
action: "register" | "revoke" | "list" raw_key: the plaintext API key (register/revoke). Never stored; only its SHA-256 hash is persisted. user_id: human-readable owner label (register/list filter). role: "reader" | "member" | "writer" | "admin" (register only, default "reader"). 'member' (lab-open plan) requires user_uuid — it is how the key's private 90-personal// area is derived (see visibility.py). user_uuid: canonical UUID from EP lab-access (register only). Required for role='member'; optional for other roles. expires_days: if > 0, the key expires that many days from now (register only). 0 (default) means no expiry, same as every key before this.
Returns a plain-text summary of the operation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | reader | |
| action | Yes | ||
| raw_key | No | ||
| user_id | No | ||
| user_uuid | No | ||
| expires_days | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |