Skip to content

feat: restrict which plugin marketplaces Codex can use#21458

Open
viyatb-oai wants to merge 2 commits intocodex/viyatb/managed-skill-requirementsfrom
codex/viyatb/managed-plugin-core-requirements
Open

feat: restrict which plugin marketplaces Codex can use#21458
viyatb-oai wants to merge 2 commits intocodex/viyatb/managed-skill-requirementsfrom
codex/viyatb/managed-plugin-core-requirements

Conversation

@viyatb-oai
Copy link
Copy Markdown
Collaborator

@viyatb-oai viyatb-oai commented May 7, 2026

Why

Plugin marketplace requirements need to make disallowed marketplaces inert in the core plugin manager, not merely hide them at one UI edge. Existing config, remote sync state, or cached plugin outcomes should not keep a disallowed marketplace effective after policy changes.

What changed

  • Filter configured plugins and marketplace listings by the managed allowlist.
  • Reject local plugin reads and installs from disallowed marketplaces.
  • Include marketplace requirements in the plugin cache key.
  • Skip remote curated sync when that marketplace is no longer approved.
  • Restrict configured marketplace upgrades to approved marketplaces.

Example config.toml

With the managed requirements stack applied, an approved marketplace can still appear in user config.toml like this:

[features]
plugins = true

[marketplaces.approved-marketplace]
source_type = "git"
source = "https://github.com/example/approved-marketplace.git"

There is intentionally no user-writable allowed_sources key in config.toml; skill-source restrictions are enforced only from managed requirements.

Verification

  • Added regression coverage for disallowed marketplace loading, reads, installs, and cache separation in codex-rs/core-plugins/src/manager_tests.rs.
  • Added coverage that remote curated sync is skipped when openai-curated is disallowed.

Stack

Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

let result = plugins_manager
.install_plugin(request)

P1 Badge Call the config-aware installer from plugin/install

The new allowlist check lives in install_plugin_for_config, but the app-server plugin/install path still calls install_plugin, which resolves and installs without consulting PluginsConfigInput. A user can pass a marketplacePath for a marketplace hidden by managed requirements and still install it, bypassing the allowlist this change is meant to enforce.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@viyatb-oai viyatb-oai force-pushed the codex/viyatb/managed-skill-requirements branch from 3213007 to 3b863e0 Compare May 7, 2026 02:07
@viyatb-oai viyatb-oai force-pushed the codex/viyatb/managed-plugin-core-requirements branch from 8c02e63 to 9a5c49d Compare May 7, 2026 02:07
@viyatb-oai viyatb-oai force-pushed the codex/viyatb/managed-skill-requirements branch from 3b863e0 to 46d9b7f Compare May 7, 2026 02:20
@viyatb-oai viyatb-oai requested a review from a team as a code owner May 7, 2026 02:20
@viyatb-oai viyatb-oai force-pushed the codex/viyatb/managed-plugin-core-requirements branch from 9a5c49d to c251553 Compare May 7, 2026 02:20
@viyatb-oai viyatb-oai changed the title feat: enforce managed plugin allowlists feat: restrict which plugin marketplaces Codex can use May 7, 2026
Co-authored-by: Codex noreply@openai.com
@viyatb-oai viyatb-oai force-pushed the codex/viyatb/managed-skill-requirements branch from 46d9b7f to 5e4c73c Compare May 7, 2026 02:36
@viyatb-oai viyatb-oai force-pushed the codex/viyatb/managed-plugin-core-requirements branch from c251553 to 641f65a Compare May 7, 2026 02:36
Co-authored-by: Codex noreply@openai.com
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