| 253 | // :4000 app frontend, :3000 Console frontend. Env vars let |
| 254 | // scripts/local-oauth override if your layout differs. |
| 255 | function getLocalOauthConfig(): OauthConfig { |
| 256 | const api = |
| 257 | process.env.CLAUDE_LOCAL_OAUTH_API_BASE?.replace(/\/$/, '') ?? |
| 258 | 'http://localhost:8000' |
| 259 | const apps = |
| 260 | process.env.CLAUDE_LOCAL_OAUTH_APPS_BASE?.replace(/\/$/, '') ?? |
| 261 | 'http://localhost:4000' |
| 262 | const consoleBase = |
| 263 | process.env.CLAUDE_LOCAL_OAUTH_CONSOLE_BASE?.replace(/\/$/, '') ?? |
| 264 | 'http://localhost:3000' |
| 265 | return { |
| 266 | BASE_API_URL: api, |
| 267 | CONSOLE_AUTHORIZE_URL: `${consoleBase}/oauth/authorize`, |
| 268 | CLAUDE_AI_AUTHORIZE_URL: `${apps}/oauth/authorize`, |
| 269 | CLAUDE_AI_ORIGIN: apps, |
| 270 | TOKEN_URL: `${api}/oauth/token`, |
| 271 | API_KEY_URL: `${api}/api/oauth/ncode/create_api_key`, |
| 272 | ROLES_URL: `${api}/api/oauth/ncode/roles`, |
| 273 | CONSOLE_SUCCESS_URL: `${api}/oauth/code/success?app=noumena-code`, |
| 274 | CLAUDEAI_SUCCESS_URL: `${api}/oauth/code/success?app=noumena-code`, |
| 275 | MANUAL_REDIRECT_URL: `${api}/oauth/code/callback`, |
| 276 | CLIENT_ID: '22422756-60c9-4084-8eb7-27705fd5cf9a', |
| 277 | OAUTH_FILE_SUFFIX: '-local-oauth', |
| 278 | MCP_PROXY_URL: 'http://localhost:8205', |
| 279 | MCP_PROXY_PATH: '/v1/toolbox/shttp/mcp/{server_id}', |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | // Allowed base URLs for CLAUDE_CODE_CUSTOM_OAUTH_URL override. |
| 284 | // Only FedStart/PubSec deployments are permitted to prevent OAuth tokens |