| credentials | [{"id":"miro-access-token","kind":"bearer","required":true,"secret_ref":{"source":"store","id":"MIRO_ACCESS_TOKEN"},"scope":"api.miro.com/v2 boards:read boards:write","how_to_obtain":"Create a Miro OAuth app or access token with the narrowest needed board scopes. Set `MIRO_ACCESS_TOKEN` through browser admin at the active `/admin/secrets` route; if browser admin is unavailable, use `/secret set MIRO_ACCESS_TOKEN \"<token>\"` in browser `/chat` or TUI; local console fallback: `hybridclaw secret set MIRO_ACCESS_TOKEN \"<token>\"`."},{"id":"miro-discovery-access-token","kind":"bearer","required":false,"secret_ref":{"source":"store","id":"MIRO_DISCOVERY_ACCESS_TOKEN"},"scope":"api.miro.com/v2 boards:export","how_to_obtain":"Enterprise admins can enable eDiscovery in Miro Enterprise Integrations. Set `MIRO_DISCOVERY_ACCESS_TOKEN` through browser admin at the active `/admin/secrets` route; if browser admin is unavailable, use `/secret set MIRO_DISCOVERY_ACCESS_TOKEN \"<token>\"` in browser `/chat` or TUI; local console fallback: `hybridclaw secret set MIRO_DISCOVERY_ACCESS_TOKEN \"<token>\"`."},{"id":"miro-oauth-client-id","kind":"oauth","required":false,"secret_ref":{"source":"store","id":"MIRO_CLIENT_ID"},"scope":"https://miro.com/oauth/authorize","how_to_obtain":"Create a Miro app. Set `MIRO_CLIENT_ID` through browser admin at the active `/admin/secrets` route; if browser admin is unavailable, use `/secret set MIRO_CLIENT_ID \"<client-id>\"` in browser `/chat` or TUI; local console fallback: `hybridclaw secret set MIRO_CLIENT_ID \"<client-id>\"`. Do this before token exchange."},{"id":"miro-oauth-client-secret","kind":"oauth","required":false,"secret_ref":{"source":"store","id":"MIRO_CLIENT_SECRET"},"scope":"https://api.miro.com/v1/oauth/token","how_to_obtain":"Set the Miro app client secret as `MIRO_CLIENT_SECRET` through browser admin at the active `/admin/secrets` route; if browser admin is unavailable, use `/secret set MIRO_CLIENT_SECRET \"<client-secret>\"` in browser `/chat` or TUI; local console fallback: `hybridclaw secret set MIRO_CLIENT_SECRET \"<client-secret>\"`. Never paste it into prompts or helper arguments."},{"id":"miro-oauth-code","kind":"oauth","required":false,"secret_ref":{"source":"store","id":"MIRO_OAUTH_CODE"},"scope":"one-time OAuth authorization code","how_to_obtain":"After approving the Miro authorize URL, set the one-time code as `MIRO_OAUTH_CODE` through browser admin at the active `/admin/secrets` route; if browser admin is unavailable, use `/secret set MIRO_OAUTH_CODE \"<code>\"` in browser `/chat` or TUI; local console fallback: `hybridclaw secret set MIRO_OAUTH_CODE \"<code>\"`. Exchange it immediately."},{"id":"miro-refresh-token","kind":"oauth","required":false,"secret_ref":{"source":"store","id":"MIRO_REFRESH_TOKEN"},"scope":"https://api.miro.com/v1/oauth/token refresh_token","how_to_obtain":"The helper captures this from Miro OAuth token responses with `captureResponseFields`; do not set it manually unless recovering a known stored token."}] |
| metadata | {"hybridclaw":{"category":"productivity","short_description":"Miro board discovery, item reads, guarded board writes, and Enterprise board exports.","tags":["miro","whiteboard","boards","sticky-notes","diagrams","export"],"related_roadmap":["R21.102"],"issue":1040,"stakes_tiers":{"green":"[Truncated]","amber":"[Truncated]","red":"[Truncated]"},"escalation":{"writes":"confirm-each","route":"f14"},"cost_measurement":{"system":"UsageTotals","sub_limit_key":"miro"}}} |