Skip to content

docs+fix: privacy policy, SECURITY.md hardening, globalThis.fetch - #45

Merged
johnxie merged 3 commits into
mainfrom
docs/security-and-privacy
Jun 5, 2026
Merged

docs+fix: privacy policy, SECURITY.md hardening, globalThis.fetch#45
johnxie merged 3 commits into
mainfrom
docs/security-and-privacy

Conversation

@johnxie

@johnxie johnxie commented Jun 5, 2026

Copy link
Copy Markdown
Member

What & why

Three small trust/security wins (one is a Claude Connectors Directory prerequisite):

  1. Privacy Policy — the README had none (a hard Directory requirement). Adds a Privacy & Security section linking the Taskade Privacy Policy + SECURITY.md.
  2. SECURITY.md hardening — adds private vulnerability reporting (GitHub advisories) + a ~3-day ack SLA, a never-commit-secrets section with a pre-commit grep, and a privacy pointer. Keeps the existing token/transport notes.
  3. window['fetch']globalThis.fetch in runtime.tsglobalThis is the standard global (Node 20+ and browsers), and it clears the 2 'critical' findings in the SafeSkill scan (bracket-notation false positives).

Zero-regression

  • runtime.ts: 1-line change; globalThis.fetch is equivalent to the previous reference on the server's Node 20+ target. tools.generated.ts regenerated → exactly 1 line changed (the inlined runtime fetch line); 57 tools intact.
  • Docs are additive. yarn lint clean.

Stacked on

@johnxie
johnxie requested a review from Copilot June 5, 2026 11:22
@changeset-bot

changeset-bot Bot commented Jun 5, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 1411900

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR improves repository trust/security posture by adding privacy/security documentation and removing bracket-notation fetch access in the OpenAPI runtime to avoid scanner false positives and better support standard runtimes.

Changes:

  • Add a Privacy & Security section to README.md linking to Taskade’s Privacy Policy and SECURITY.md.
  • Harden SECURITY.md with private reporting guidance, an acknowledgement SLA, and “never commit secrets” guidance.
  • Replace window['fetch'] with globalThis.fetch in the OpenAPI runtime (and regenerated server tools output).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
SECURITY.md Expands vulnerability reporting and secret-handling guidance; adds privacy pointer.
README.md Adds a Privacy & Security section describing token usage and linking to policies.
packages/server/src/tools.generated.ts Regenerated: switches runtime fetch fallback to globalThis.fetch.
packages/openapi-codegen/src/runtime.ts Updates runtime fetch fallback to globalThis.fetch.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread SECURITY.md Outdated
.mcpregistry_* # MCP registry auth tokens
```

These patterns are covered by `.gitignore` and `packages/server/.npmignore`. Before committing, sanity-check your staged changes:

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.

Comment thread SECURITY.md Outdated
Comment on lines +23 to +25
- The stdio transport (default for Claude Desktop / Cursor / VS Code) does not expose tokens over the network.
- Use HTTPS/TLS for any HTTP-based transport in production.
- Avoid passing tokens in URL query parameters — they can be logged by proxies and web servers. Prefer the `Authorization` header or environment variables.
Comment thread SECURITY.md Outdated
.mcpregistry_* # MCP registry auth tokens
```

`.env*` files are gitignored (except `.env.example`) and excluded from the npm package; the other patterns above are **not** auto-ignored, so sanity-check your staged changes before committing:
Comment thread SECURITY.md Outdated
Comment on lines +51 to +52
The MCP server sends requests only to the Taskade public API (`https://www.taskade.com/api/v1`)
using the token you provide; it does not transmit your data to any third party.
Comment thread README.md Outdated

## Privacy & Security

Your Taskade API token authorizes the MCP server to call the Taskade public API on your behalf. The server talks **only** to `https://www.taskade.com/api/v1` and sends your data to no third party.
@johnxie

johnxie commented Jun 5, 2026

Copy link
Copy Markdown
Member Author

✅ Validated → fixed → ready to merge

Copilot finding Verdict Action
.gitignore doesn't cover .env.* (only .env/.env.test) VALID Added .env.* + !.env.example (verified: .env.local ignored, .env.example not).
Transport says "prefer Authorization header" but HTTP/SSE uses access_token query param VALID Reworded to acknowledge the query-param reality and recommend stdio.
"other patterns not auto-ignored" is misleading — .mcpregistry_* is ignored VALID Clarified .env* and .mcpregistry_* are ignored; only key/credential patterns are not.
"does not transmit your data to any third party" is too absolute given URL-logged token VALID Scoped to "no other third-party services" + added the HTTP/SSE URL-token caveat (SECURITY.md + README).
window['fetch'] (the original SafeSkill flag) fixed earlier globalThis.fetch (1-line; regenerated).

QA: git check-ignore confirms negation; yarn lint clean; generated diff = 1 line (fetch). Confidence: high · zero regression. Merging (stacked on #44).

johnxie added 3 commits June 5, 2026 05:01
- runtime.ts: window['fetch'] -> globalThis.fetch (standard global on Node 20+
  and browsers; also clears the SafeSkill bracket-notation false positive).
  tools.generated.ts regenerated (single inlined-runtime line changed).
- SECURITY.md: add private vulnerability reporting + disclosure SLA, a
  never-commit-secrets section with a pre-commit grep, and a Privacy pointer.
- README: add a Privacy & Security section linking the Taskade Privacy Policy
  (Claude Connectors Directory requirement) and SECURITY.md.
Addresses Copilot review: .gitignore covered .env/.env.test but not .env.*
(.env.local, .env.production, ...). Add .env.* with a !.env.example negation,
and reword SECURITY.md to only claim what's truly auto-ignored (.env*), framing
key/credential patterns as a pre-commit check.
…ty wording

Addresses Copilot review:
- Transport: acknowledge HTTP/SSE currently passes the token as an access_token
  query param (may be logged); recommend stdio instead of implying a header is used.
- Never-commit: clarify .env* AND .mcpregistry_* are gitignored (only the
  key/credential patterns are not auto-ignored).
- Privacy (SECURITY.md + README): scope the claim to 'no other third-party
  services' and note the HTTP/SSE URL-token logging caveat.
@johnxie
johnxie force-pushed the docs/security-and-privacy branch from 39e953a to 1411900 Compare June 5, 2026 12:01
@johnxie
johnxie changed the base branch from feat/tool-annotations to main June 5, 2026 12:01
@johnxie
johnxie merged commit 2679522 into main Jun 5, 2026
@johnxie
johnxie deleted the docs/security-and-privacy branch June 5, 2026 12:02
@johnxie johnxie mentioned this pull request Jun 9, 2026
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.

2 participants