Secure API key management and OAuth best practices for Linear. Use when setting up authentication securely, implementing OAuth flows, or hardening Linear integrations. Trigger with phrases like...
Apply least privilege and fail-closed verification across every credential, workspace boundary, inbound event, and diagnostic path.
Use Read, Glob, and Grep to inspect code, configuration, and evidence. Use WebFetch only for current first-party Linear documentation and package metadata. Use Write or Edit only for requested implementation with known target files. Never write credentials, customer content, unrestricted environment output, or unredacted GraphQL variables.
Use a personal API key only for owner-controlled scripts, OAuth with PKCE for user-delegated applications, or an enabled client-credentials grant for approved automation. Personal keys use Authorization: <API_KEY>; OAuth tokens use Authorization: Bearer <ACCESS_TOKEN>. Store credentials server-side in an approved secret manager.
Treat app approval, team access, scope changes, credential creation, rotation, revocation, and production access as owner-approved actions.
Do not create, reveal, rotate, or revoke credentials; authorize an OAuth app; change scopes or team access; create, mutate, archive, or delete workspace data; configure or re-enable webhooks; import or export data; change roles, SCIM, or audit streaming; transmit diagnostics; change paid entitlements; or perform another production mutation without explicit approval from the accountable owner. Keep diagnosis read-only unless implementation was requested.
Return the workspace and team scope, auth mode without credential value, files and contracts inspected, exact operation names, evidence collected, validation result, sensitive fields redacted, remaining risk, accountable owner, approval state, and rollback or next action.
| Condition | Response |
|---|---|
| Token exposed | Revoke or rotate the affected credential, scrub retained copies, and audit access. |
| Signature invalid | Reject before parsing business data and preserve only redacted delivery metadata. |
| OAuth state mismatch | Abort the flow; do not exchange the code. |
| Scope too broad | Reduce scopes/team access and reauthorize through the approved change path. |
Use a compact handoff that makes scope, mutation authority, and verification evidence reviewable.
Input:
auth=oauth-pkce; scopes=read,write; teams=approved-subset; raw-body=true
Expected handoff:
threat-model=updated; secrets=server-side; replay-control=delivery-id+timestamp