Skip to content

[codex] Expose managed config requirements through app-server - #28413

Closed
abhinav-oai wants to merge 2 commits into
abhinav/requirements-shell-policyfrom
abhinav/requirements-app-server-api
Closed

abhinav-oai wants to merge 2 commits into
abhinav/requirements-shell-policyfrom
abhinav/requirements-app-server-api

Conversation

@abhinav-oai

@abhinav-oai abhinav-oai commented Jun 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Extends the app-server config APIs to expose the managed settings implemented by the preceding PRs and prevents app-server config writes from mutating managed paths.

configRequirements/read returns authentication, storage, telemetry, shell environment, feedback, and Windows private-desktop requirements. config/read also reports the configured credential-store mode.

This PR contains the associated JSON and TypeScript schema regeneration.

Why

Runtime enforcement does not require an API change, but clients need a safe view of the policies affecting effective configuration and a structured explanation when a write targets managed state. Keeping projection, write protection, and generated artifacts at the top of the stack isolates the mechanically large schema diff from the behavioral reviews below it.

API semantics

configRequirements/read adds:

  • allowedLoginMethods
  • allowedChatgptWorkspaces
  • cliAuthCredentialsStore
  • chatgptBaseUrl
  • sqliteHome
  • logDir
  • modelCatalogJson
  • checkForUpdateOnStartup
  • otel
  • allowLoginShell
  • shellEnvironmentPolicy
  • feedback
  • windowsSandboxPrivateDesktop

Additional behavior:

  • OTEL exporter structure, header names, and TLS settings are preserved; header values are returned as <redacted>.
  • Shell requirements use typed pattern-to-action filters and do not expose the removed profile-loading field.
  • Nested feedback and Windows requirements are projected without changing runtime semantics.
  • config/read returns credential-store mode as a typed value.
  • Writes to a path managed by current or legacy requirements fail before persistence with configRequirementReadonly.
  • Feature writes are rejected only when they target a specifically pinned feature; neighboring feature toggles remain writable.
  • Key-path upserts retain the full path when merging so structured shell-environment reconciliation still runs.
  • Existing requirement fields and normalization remain unchanged.

Generated artifacts

  • Combined app-server JSON schema bundles
  • Individual v2 response and error schemas
  • TypeScript v2 types and exports
  • Synchronized checked-in core config schema

Stack

PRs: #28411 → #28409 → #28410 → #28412 → #28414 → #28413

Position PR Branch
1 Keyed shell filters abhinav/requirements-shell-rules
2 Exact managed values abhinav/requirements-exact-values
3 Managed auth/bootstrap abhinav/requirements-auth-bootstrap
4 Managed OTEL abhinav/requirements-otel
5 Managed shell policy abhinav/requirements-shell-policy
6 App-server API/schemas — this PR abhinav/requirements-app-server-api

@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-shell-policy branch from 86598c5 to e18d756 Compare June 16, 2026 00:16
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-app-server-api branch 2 times, most recently from b3fd225 to a8bf74f Compare June 16, 2026 05:34
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-shell-policy branch from e18d756 to a2021d4 Compare June 16, 2026 05:34
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-app-server-api branch from a8bf74f to b3fd225 Compare June 16, 2026 05:40
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-shell-policy branch 2 times, most recently from e18d756 to de3f19d Compare June 16, 2026 07:23
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-app-server-api branch from b3fd225 to c7dab2b Compare June 16, 2026 07:23
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-shell-policy branch from de3f19d to 7e027e5 Compare June 16, 2026 07:36
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-app-server-api branch from c7dab2b to 5c9a99d Compare June 16, 2026 07:36
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-shell-policy branch from 7e027e5 to 9799062 Compare June 16, 2026 07:40
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-app-server-api branch from 5c9a99d to 989e84e Compare June 16, 2026 07:40
@abhinav-oai
abhinav-oai force-pushed the abhinav/requirements-app-server-api branch from 989e84e to 415928b Compare June 16, 2026 08:00
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Closing this pull request because it has had no updates for more than 14 days. If you plan to continue working on it, feel free to reopen or open a new PR.

@github-actions github-actions Bot closed this Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant