mirror of
https://github.com/openai/codex.git
synced 2026-10-25 18:28:38 +00:00
## Why App-server clients can report whether Amazon Bedrock is using AWS-managed credentials or a Codex-managed API key, but they do not have a matching API for creating the managed login. This PR defines that experimental wire contract independently from its implementation. Managed Bedrock API keys are already a primary `CodexAuth` mode. The API therefore describes a normal Codex login that replaces the current stored auth rather than introducing provider-scoped credential storage. ## What changed - Add the experimental `amazonBedrock` variant to `account/login/start`. - Accept an API key and AWS region and return a matching discriminated response. - Gate the request behind the app-server `experimentalApi` capability. - Regenerate the JSON and TypeScript protocol schemas. - Document the login contract, notifications, primary-auth replacement semantics, restart boundary, and non-transactional durable writes. ## Impact This PR defines the API shape but does not implement login behavior. The next PR adds validation, persistence through the existing Codex auth lifecycle, provider selection, and notifications. ## Validation - `just test -p codex-app-server-protocol` ## Stack 1. **#31327 Managed Bedrock experimental API** — base: `main` 2. #31326 Managed Bedrock login — base: `codex/managed-bedrock-api` 3. #31325 Managed Bedrock logout — base: `codex/managed-bedrock-login-v2`
109 lines
2.5 KiB
JSON
Generated
109 lines
2.5 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"apiKey"
|
|
],
|
|
"title": "ApiKeyv2::LoginAccountResponseType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "ApiKeyv2::LoginAccountResponse",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"authUrl": {
|
|
"description": "URL the client should open in a browser to initiate the OAuth flow.",
|
|
"type": "string"
|
|
},
|
|
"loginId": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"chatgpt"
|
|
],
|
|
"title": "Chatgptv2::LoginAccountResponseType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"authUrl",
|
|
"loginId",
|
|
"type"
|
|
],
|
|
"title": "Chatgptv2::LoginAccountResponse",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"loginId": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"chatgptDeviceCode"
|
|
],
|
|
"title": "ChatgptDeviceCodev2::LoginAccountResponseType",
|
|
"type": "string"
|
|
},
|
|
"userCode": {
|
|
"description": "One-time code the user must enter after signing in.",
|
|
"type": "string"
|
|
},
|
|
"verificationUrl": {
|
|
"description": "URL the client should open in a browser to complete device code authorization.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"loginId",
|
|
"type",
|
|
"userCode",
|
|
"verificationUrl"
|
|
],
|
|
"title": "ChatgptDeviceCodev2::LoginAccountResponse",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"chatgptAuthTokens"
|
|
],
|
|
"title": "ChatgptAuthTokensv2::LoginAccountResponseType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "ChatgptAuthTokensv2::LoginAccountResponse",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"amazonBedrock"
|
|
],
|
|
"title": "AmazonBedrockv2::LoginAccountResponseType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "AmazonBedrockv2::LoginAccountResponse",
|
|
"type": "object"
|
|
}
|
|
],
|
|
"title": "LoginAccountResponse"
|
|
} |