Skip to content

security: clarify extension capabilities and allowlists (#397) - #462

Merged
codeforester merged 3 commits into
mainfrom
security/397-20261023-extension-capability-boundary
Oct 24, 2026
Merged

codeforester merged 3 commits into
mainfrom
security/397-20261023-extension-capability-boundary

Conversation

@codeforester

Copy link
Copy Markdown
Contributor

Summary

Closes #397.

  • Document ExtensionDescriptor.capabilities as informational inventory metadata, not authorization or sandboxing.
  • Require canonical group:name or dist:distribution allowlist entries; reject ambiguous bare names.
  • Preserve exact entry-point identity checks and add regression coverage for the tightened trust boundary.
  • Update the extension and threat-model documentation.

This deliberately demotes capability extras rather than pretending that in-process Python extensions are sandboxed. Consumers that need a policy can inspect the descriptor before loading it.

Validation

  • UV_CACHE_DIR=/private/tmp/base-cli-uv-cache uv run --extra dev --extra typer pytest -q
  • UV_CACHE_DIR=/private/tmp/base-cli-uv-cache uv run --extra quality ./tests/full_validate.sh --gate style
  • UV_CACHE_DIR=/private/tmp/base-cli-uv-cache uv run --extra dev --extra typer --extra quality ./tests/full_validate.sh --gate contracts
  • git diff --check

Comment thread lib/python/base_cli/extensions.py
Comment thread lib/python/base_cli/extensions.py
@codeforester
codeforester merged commit ca1c074 into main Oct 24, 2026
140 of 141 checks passed
@codeforester
codeforester deleted the security/397-20261023-extension-capability-boundary branch October 24, 2026 13:19
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.

security: extension capabilities are declared but never enforced

1 participant