docs(security): publish production egress IP allowlist - #4325
docs(security): publish production egress IP allowlist#4325composio-zen[bot] wants to merge 4 commits into
Conversation
Co-authored-by: Zen Agent <zen@composio.dev>
|
You must have Developer access to commit code to Composio on Vercel. If you contact an administrator and receive Developer access, commit again to see your changes. Learn more: https://vercel.com/docs/accounts/team-members-and-roles/access-roles#team-level-roles |
Co-authored-by: Zen Agent <zen@composio.dev>
StatusCI: green except two failures that are not caused by this diff.
Passing: Open question for review: whether trigger webhook deliveries egress from these same four addresses. |
… Composio call path Co-authored-by: Zen Agent <zen@composio.dev>
…l egress claim Co-authored-by: Zen Agent <zen@composio.dev>
Post-PR statusCodex review: 3 iterations, one finding, not fully resolved — needs a human decision. Codex flagged the same issue every round: the section generalizes a Keyring-scoped source into a broader claim about Composio egress. Two rewrites landed in response:
Codex still objects, and it is right about the underlying gap: nobody has confirmed whether these four addresses are Composio's entire production egress or only the Keyring path. The only wording Codex would accept scopes the list to Keyring by name, which is not publishable — Keyring has no public docs page. Rewriting further cannot close a provenance gap, so I stopped at 3 iterations rather than keep tuning prose. Abhishek (@abhishek) / abir — the blocking question is one line: is this list Composio's full production egress, or Keyring-only? If it is Keyring-only, this section should probably wait. If it is platform-wide, the wording can be made more confident and CI on Two failures, neither from this diff:
Local checks ( Testing scope: docs-only diff — prose plus a regenerated PR comments: 0 review comments outstanding. |
Description
Adds a Network access section to
/docs/securitylisting four Composio production egress addresses (TCP 443), so customers who firewall a service Composio connects to can allowlist us:Source: the Keyring deployment docs (
composio-keyring.mintlify.app/deployment/overview#network-access), requested for the public docs in Slack.Also regenerates
docs/kb/semantic-index.json— the KB artifact pins a content hash over docs pages, so CI'sCheck KB semantic artifactfails without it.Open question — please resolve before merging
Is this list Composio's full production egress, or only the Keyring path? The source establishes these addresses for Keyring specifically. Codex review flagged the same overgeneralization three times, and it is a real gap that no amount of rewording closes. The section is currently worded conservatively: the scope is in the lead sentence and an explicit non-guarantee precedes the allowlisting instruction.
Related:
/docs/setting-up-triggers/subscribing-to-eventstells customers "Composio's outbound IPs are dynamic, so IP allowlists and VPN-only endpoints won't work." The new section explicitly excludes webhook delivery so the two pages agree. If webhooks in fact egress from these same four addresses, that line is stale and both pages should be fixed together.How did I test this PR
Docs-only change — prose plus a regenerated artifact. No API surface or runtime behavior changed, so there is no unit test to add and no Apollo/Thermos endpoint to exercise. The repo's real guards for this path are the link validator, the KB semantic check, and the site build.
Run from
docs/:bun run lint:links— exit 0,0 errored file, 0 errors. Confirms the new/docs/setting-up-triggers/subscribing-to-events#verifying-signaturesanchor resolves.bun run check:kb-semantic— exit 0,KB semantic artifact is current: 889 records.bun run types:check— exit 0.bun run lint— exit 0 (warnings are pre-existing, in files this PR does not touch).bun run build— exit 0.bun run test— exit 1: 508 pass, 2 fail, 1 error. Pre-existing; re-ran with the change stashed on cleannextand got the identical 508/2/1. The error isSyntaxError: Export named 'triggerFromApi' not found in module lib/toolkit-schema.ts, unrelated to this diff. CI'stestjob passes on2db137e.grype dir:docs/content/docs/security --only-fixed --fail-on medium— no vulnerabilities found.Security
Markdown plus one generated JSON file; no code and no dependency manifests.
Socket Security: Pull Request AlertsandSocket Security: Project Reportboth pass in CI. Grype reports no vulnerabilities on the changed path.Publishing egress IPs is intentional and standard practice, but the upstream Keyring page carries a caveat that customers should confirm the list with support before changing a production firewall — that caveat is carried into the new section.
Triggered by: abhishek@composio.dev | Source: slack
Session: https://zen.corp.composio.io/dashboard/#/chat/zen-a03dde53b660