Conversation
There was a problem hiding this comment.
Pull request overview
Adds an OpenSpec change set describing a new, configurable security policy for outbound HTTP(S) fetches and local file:// access, with secure defaults and explicit opt-ins to reduce SSRF and unsafe local file traversal risks across fetch and scrape entry points.
Changes:
- Introduces a proposal and design for shared outbound network + local file access policy enforcement (
scraper.security). - Adds specification scenarios for blocking/allowing network targets, file-root containment, hidden paths, symlink handling, and archive workflows.
- Provides an implementation task breakdown covering config/schema, shared policy helpers, traversal hardening, tests, and documentation updates.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| openspec/changes/add-fetch-access-controls/proposal.md | Rationale and high-level scope for configurable fetch/scrape access controls. |
| openspec/changes/add-fetch-access-controls/design.md | Design decisions and trade-offs for a shared access policy across network and file workflows. |
| openspec/changes/add-fetch-access-controls/tasks.md | Concrete implementation plan and verification checklist. |
| openspec/changes/add-fetch-access-controls/specs/outbound-access-control/spec.md | Requirements/scenarios for outbound network and local file access policy behavior. |
| openspec/changes/add-fetch-access-controls/specs/configuration/spec.md | Requirements/scenarios for config/env override behavior and new scraper.security defaults. |
| openspec/changes/add-fetch-access-controls/.openspec.yaml | Registers the change under the spec-driven OpenSpec schema. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
OpenSpec review for Overall: the core model is sound for the main scenario of allowing public internet access while denying local/private network access by default, with selective internal exceptions via host/CIDR allowlists. That scenario is possible and is covered by the current proposal/design/spec. Main findings
Direct answers to the intended scenarios
Counterintuitive behaviors worth documenting
Recommended changes
Net: the main access-control story is good, but the spec should more clearly cover browser/render-time secondary requests and tighten a few policy semantics before implementation. |
20c674e to
414c1e0
Compare
Apply shared network and file access policy across HTTP, browser, and local scraping flows with secure defaults and explicit allowlists. Document the new security model and add focused config, policy, and browser coverage for the fetch access controls change.
Summary
Verification
vitestortscbecausevitest/configandvite/clientresolution is broken here