算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
miro-install-auth【设计与创意】Design and implement a production Miro REST authorization flow with least-privilege scopes, tenant-bound storage, token rotation, and an approval-gated installation handoff. Use when installing or repairing Miro authorization. Trigger with "set up Miro OAuth".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: miro-install-auth description: "Design and implement a production Miro REST authorization flow with least-privilege scopes, tenant-bound storage, token rotation, and an approval-gated installation handoff. Use when installing or repairing Miro authorization. Trigger with "set up Miro OAuth"." argument-hint: "[app-environment] [required-capabilities]" allowed-tools: Read, Glob, Grep, WebFetch, Write, Edit version: 1.9.0 author: Jeremy Longshore jeremy@intentsolutions.io license: MIT tags:
Establish an auditable authorization boundary before any board operation. Prefer expiring-token apps and prove tenant context without exposing credentials; use the evidence produced here to make the next decision explicit and reviewable.
Use Read, Glob, and Grep to inspect the repository, configuration names, adapters, tests, and evidence. Use WebFetch only for current official Miro documentation. Use Write or Edit after confirming the requested mode, target environment, tenant, board, and approval boundary. These declared tools do not call authenticated Miro APIs or deployment CLIs; implement client, configuration, and test changes, then return exact operator commands or an approval-gated handoff for live execution.
https://miro.com/oauth/authorize and exchange uses https://api.miro.com/v1/oauth/token.https://api.miro.com/v2; OAuth endpoints remain v1 and are not deprecated by the REST v2 migration.For REST work, use OAuth 2.0 Authorization Code with the narrowest Miro scopes. Bind each encrypted token record to its user, application, authorized team, and granted scopes. Never print access tokens, refresh tokens, client secrets, authorization codes, or board content.
state value and an exact registered redirect URI.Do not add scopes, register a new redirect origin, create a production app, or authorize a different team without the application and data owners' approval. Pause when the responsible owner or exact target is uncertain.
Return app/environment identity, redirect-URI match, approved scopes, token mode, context result, refresh/revocation evidence, and remaining risks. State what was not inspected or changed so the receipt cannot overclaim coverage.
| Condition | Response |
|---|---|
| OAuth callback has an error or state mismatch | Reject it; do not exchange the code, and restart from a clean session. |
| Token exchange returns 400 | Check one-time code use, exact redirect URI, app identity, and server clock. |
| Context resolves to the wrong team | Quarantine the token and require an intentional reinstall. |
| Refresh races or returns invalid grant | Serialize rotation per installation and recover through reauthorization if the stored pair is stale. |
The example is a redacted operator receipt; identifiers are hashes or bounded labels, not board content or credentials.
environment=staging; scopes=boards:read; expiring=yes; context=matched; refresh-rotation=passed; write-access=disabled