GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||
GeezerVison is showing github.com — feat(api-keys): read-only API keys and expiry at creation by waleedlatif1 · Pull Request #9855 · simstudioai/sim Conversation
Collaborator
Summary
Rollout: turn Type of Change
Testing
Checklist
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Personal and workspace API keys gain an access level (full access or read only) and an expiry picked when the key is created (30 days, 90 days, 1 year, or never; bounded server-side to one day through one year). A read-only key is granted the api:read scope: the operation funnel refuses it any operation api:read does not cover, including operations that declare no scope, with a 403 READ_ONLY_API_KEY refusal rather than an OAuth insufficient_scope challenge. Surfaces that authorize outside the funnel refuse it too: v1 refuses every non-GET except knowledge search, the legacy execute route refuses it, and a workflow MCP server refuses tools/call. An expired key now answers 401 "API key has expired" on v2, v1, and hybrid auth. /api/v2/meta reports the credential's scopes. Migration 0455 adds api_key.access (enum api_key_access, NOT NULL DEFAULT 'write'), so existing keys and the deployed app keep full access. Write keys serialize without the field and older serialized principals parse as write, so queued runs survive a mixed-version deploy. …, share key principal builder - Create modal defaults Expires to Never; docs say so and note read-only keys keep search chat - Client key list defaults a missing access to write during deploy rollout - apiKeyPrincipal builds the key principal once for v1, hybrid, and workflow route auth - Auth result carries expired: true instead of callers matching the message text - Integration fixture uses valid table names; v2 create answers 201 - Serialized-principal test uses the wire shape; migration snapshot formatted …docs - api-key-read-only flag (global, fallback API_KEY_READ_ONLY) gates creating read keys: the server answers 400 and the create modal hides Access while it is off. Enforcement of existing read keys is never gated, since older pods would serve them as full access - Reserve the mothership-delegation: key-name prefix so delegation minting can never adopt a user's key - Expiry is checked after every other key gate, so a foreign or banned key reports invalid - Workflow MCP serve and MCP discover answer an expired key with API key has expired - Share DAY_MS from the api-keys contract; the year bound's day of slack is for clock skew - Docs: per-surface refusal shapes, what read keys can still spend, and where the expiry message appears - Integration: flag-off and reserved-name refusals, v1 search asserts 200
|
There was an error while loading. Please reload this page.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
[High impact] The PR appears safe to merge with the documented rollout restriction. SummaryAdds read-only API keys and optional expiration at creation.
No new actionable issues were found. The three previous unnumbered findings are addressed in the current code.
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
All reported issues were addressed
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cubic-dev-ai review this PR |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
All reported issues were addressed across 195 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
…meta scopes - The account settings layout resolves api-key-read-only and wraps its sections in FeatureFlagsProvider, as the workspace and organization layouts do, so personal API key settings no longer throw from the create modal's flag read - The /api/v2/meta scopes description says read-only keys are also refused every operation that declares no API scope; OpenAPI regenerated
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cubic-dev-ai review this PR |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
No issues found across 202 files
Confidence score: 5/5
Note: This PR contains a large number of files. cubic selects up to 200 of the highest-priority eligible files for this review, so some files may not have been reviewed.
Turn on auto-fix | Re-trigger cubic
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cubic-dev-ai review this PR |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
No issues found across 202 files
Confidence score: 5/5
Note: This PR contains a large number of files. cubic selects up to 200 of the highest-priority eligible files for this review, so some files may not have been reviewed.
Turn on auto-fix | Re-trigger cubic
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Renumber the personal-organization migrations 0455-0459 to 0456-0460 after staging's 0455_api_key_access, rechaining their snapshots and journal. Port read-only API keys and creation-time expiry (#9855) into the Platform: the create-key modal offers access (behind api-key-read-only) and expiry, the deploy dialog and MCP server detail issue full-access keys only, and the keys list shows a Read only tag and expiry. The flag is seeded through the organization surface. Legacy layouts and settings modified on staging stay deleted.
c5cec7db
Deployed
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.