Skip to content

fix(security): pin CI inputs and minimize documentation telemetry - #488

Merged
dodeja merged 4 commits into
fix/security-boundaries-20261022from
fix/security-workflows-20261022
Oct 23, 2026
Merged

dodeja merged 4 commits into
fix/security-boundaries-20261022from
fix/security-workflows-20261022

Conversation

@dodeja

@dodeja dodeja commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Why

Pull-request validation should not hold a repository-write credential. Release inputs and review dependencies should remain fixed data. Documentation navigation analytics should not retain private URL components.

What changed

  • Pin action commits and the review marketplace, validate release tags through environment variables, and isolate Postman validation from trusted main publication.
  • Minimize Segment page/referrer metadata, including the alternate referrer shape added by the SDK.
  • Add security regressions and the offline synthetic-fixture gate to the root test command.

Scope

  • Contains CI, documentation telemetry, and verification changes on top of the core security fixes.
  • Native repository rules, npm publisher settings, and deployment are outside this change.

Blast Radius

Postman publication remains main-only and uses the exact triggering commit. Segment keeps routes and referring origins but removes queries, fragments, referrer paths, and campaign metadata.

Verification

  • The full seven-step verifier passes on the exact combined source tree.
  • Eight security checks and four fixture checks pass, including actual shell tag handling and the loaded analytics middleware.
  • Independent source review passed after correcting alternate referrer handling. Claude Opus accepted the correction.

This PR is stacked on #487.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

RetriggerView in GreptileConfidence Score: 4/5

The PR appears safe to merge, with non-blocking improvements to release skipping and analytics test coverage.

Fix All in CodexFindings

  1. P2 Unrelated publish runs fail ▶
  2. P2 Sent events are not checked ▶
Fix with agent prompt
### Issue 1
.github/workflows/publish_typescript_cli.yml:26-28
Both publish workflows run for every published release, but each new tag check rejects the other package’s tags. Publishing `sdk-v-v0.6.0` now fails the CLI workflow before its existing skip check; a CLI release likewise fails the SDK workflow. The intended package can still publish, but the unrelated workflow turns red.

Skip releases for the other package before validating the selected package’s tag.

### Issue 2
tools/security/analytics.test.mjs:64-69
This test calls the queued middleware directly with a hand-built event. Its script stub never loads Segment, so it cannot catch private fields that Segment adds after this callback or restores before sending. The checks can pass without proving that sent events exclude private navigation data.

Add a test using the loaded SDK and inspect the outgoing event for the initial page and a route change. Keep these unit checks for the helper behavior.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

This PR pins workflow inputs, separates Postman validation from publication, and reduces documentation analytics metadata.

  • CI jobs now use fixed action commits and a pinned review marketplace.
  • Postman checks stay read-only until a main push publishes the collection.
  • SDK and CLI releases check tags before using them to publish.
  • Documentation analytics keeps page paths and referrer origins, not private URL details.
  • The root test command now runs security and fixture checks.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Pull request] --> B[Validate Postman collection]
  C[Push to main] --> B
  B --> D{Main push?}
  D -->|No| E[Stop with read-only access]
  D -->|Yes| F[Check out triggering commit]
  F --> G[Regenerate and test]
  G --> H[Commit and push with write access]
Loading

Reviews (1) · Last reviewed commit: "fix: minimize alternate analytics referr..." · Reviewed by Greptile

@vercel

vercel Bot commented Oct 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
api Ready Ready Preview Oct 23, 2026 4:34am UTC

Request Review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-23T04:34:46.862254Z 8544547 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added the risk-shadow:high Shadow-only risk signal: high label Oct 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Shadow risk calibration

Signal Result Authority
Path classifier risk:high Deterministic advisory policy
heuristic fallback risk-shadow:high Shadow only

Calibration result: agreement.

Shadow risk never blocks or enables merge. Keep it in observation mode until roughly 50 pull requests have human-reviewed labels, then calibrate before considering any policy use.

Comment thread .github/workflows/publish_typescript_cli.yml
Comment thread tools/security/analytics.test.mjs
@github-actions github-actions Bot added the risk:unknown Advisory evidence unavailable or changed; no merge permission label Oct 23, 2026
@dodeja
dodeja merged commit 17716ad into fix/security-boundaries-20261022 Oct 23, 2026
15 checks passed
@dodeja
dodeja deleted the fix/security-workflows-20261022 branch October 23, 2026 04:42
dodeja added a commit that referenced this pull request Oct 25, 2026
* fix: validate identity before paid documentation search

* fix: contain OAuth helper errors and stale session work

* docs: restrict OAuth helper metadata proxy access

* fix: honor SDK cancellation through response consumption

* fix: encode CLI terminal text and protect config writes

* test: cover SDK error response body deadlines

* fix: replace live captures with offline synthetic fixtures

* docs: describe offline synthetic fixture generation

* fix: minimize documentation navigation analytics

* fix: ignore environment credential variants

* fix: pin review inputs and isolate release credentials

* chore: clarify SDK lifecycle and pin Postman source identity

* fix: minimize alternate analytics referrer metadata

* test: reproduce OAuth refresh overwriting a new login

* fix: invalidate stale refreshes when OAuth login completes

* test: align MCP route expectations with synthetic fixtures

* fix: validate identity before paid documentation search

* fix: contain OAuth helper errors and stale session work

* docs: restrict OAuth helper metadata proxy access

* fix: honor SDK cancellation through response consumption

* fix: encode CLI terminal text and protect config writes

* test: cover SDK error response body deadlines

* fix: replace live captures with offline synthetic fixtures

* docs: describe offline synthetic fixture generation

* fix: ignore environment credential variants

* test: reproduce OAuth refresh overwriting a new login

* fix: invalidate stale refreshes when OAuth login completes

* test: align MCP route expectations with synthetic fixtures

* chore: remove SDK lifecycle narration

* fix(ci): pin new Node 26 compatibility actions

* fix(security): pin CI inputs and minimize documentation telemetry (#488)

* fix: minimize documentation navigation analytics

* fix: pin review inputs and isolate release credentials

* chore: clarify SDK lifecycle and pin Postman source identity

* fix: minimize alternate analytics referrer metadata

* test: reproduce cross-package release workflow failure

* fix: skip unrelated package release workflows before checkout

* fix: align SDK trade intelligence fixtures with response schema

* fix: match CLI container fixtures to command output

* test: inspect loaded analytics SDK transport payloads

* fix(docs): preserve the initial analytics page URL

This branch was successfully deployed

1 active deployment
Preview — 85445470 Deployed Oct 23, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:unknown Advisory evidence unavailable or changed; no merge permission risk-shadow:high Shadow-only risk signal: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant