Files
Musthaq Ahamad 27ed0c9bd6 security(core): sensitive path blocklist + beforeFileUpload hook (patch) (#3262)
## Summary

Security-hardening for automatic file upload in `@composio/core` (patch
release per changeset).

### Changes
- **Default denylist** for local paths before auto-upload /
`files.upload`: blocks common credential directories (e.g. `.ssh`,
`.aws`) and credential-like filenames (e.g. `.env`, default SSH private
keys). Resolves symlinks when the path exists.
- **Config:** `sensitiveFileUploadProtection`,
`fileUploadPathDenySegments` on `Composio`.
- **`beforeFileUpload`** hook (e.g. with `composio.tools.get` /
`tools.execute`): rewrite path, return `false` to abort, or throw.
- **Errors:** `ComposioSensitiveFilePathBlockedError`,
`ComposioFileUploadAbortedError`; file modifier errors exported from
`@composio/core` errors entry.
- **Changeset:** patch bump for `@composio/core`.

### Notes
- URLs and `File` blobs are not subject to the path denylist
(unchanged).
- Opt out of path checks only if required:
`sensitiveFileUploadProtection: false`.

### Tests
- `pnpm test` in `ts/packages/core` (799 tests) passed locally before
commit.

Made with [Cursor](https://cursor.com)
2026-04-23 18:42:16 +05:30
..
2025-09-27 13:35:40 +05:30
2025-07-03 18:07:01 -07:00

SDK Documentation Generator

Generates MDX reference docs from Python source using griffe.

Usage

cd python
uv run --with griffe python scripts/generate-docs.py

How it works

  1. griffe extracts docstrings from composio/**/*.py → structured data
  2. generate-docs.py transforms data → MDX files
  3. Output written to docs/content/reference/sdk-reference/python/

Configuration

  • Expected classes: EXPECTED_CLASSES dict maps class name → Composio property
  • Modules to search: CLASS_MODULES list
  • Decorators: DECORATORS_TO_DOCUMENT list

CI

.github/workflows/generate-sdk-docs.yml triggers on changes to python/composio/** and opens a PR with updated docs.