Skip to content

Contain import report artifacts - #864

Merged
chubes4 merged 4 commits into
mainfrom
security/issue-856-static-site-importer
Aug 7, 2026
Merged

Contain import report artifacts#864
chubes4 merged 4 commits into
mainfrom
security/issue-856-static-site-importer

Conversation

@chubes4

@chubes4 chubes4 commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • remove caller-selected report filesystem paths from REST and Ability schemas; remote Ability calls that include report receive a structured rejection
  • retain --report as an explicit WP-CLI-only output seam, with importer-owned validation reports retaining their existing internal destination
  • preflight and recheck the report plus validation/finding sidecars: existing targets, missing parents, traversal segments, and symlinked components are rejected before atomic writes

Compatibility

  • REST and Ability callers must consume the response-embedded import report and diagnostics rather than passing report
  • CLI --report remains supported, but now requires a new target in an existing physical directory; the sibling sidecars must also be absent

Tests

  • npm test (51 selected checks passed, 0 failed)
  • PHP syntax sweep: for file in static-site-importer.php includes/*.php; do php -l "$file"; done
  • Added regression coverage for remote schema/Ability rejection, CLI seam routing, existing targets and sidecars, missing parents, traversal, and symlinks

Fixes #856

AI assistance disclosure: OpenAI GPT-5.6 Sol via OpenCode was used to inspect the report-output contract, implement the containment boundary, and add regression tests. Chris Huber remains responsible for every line.

chubes4 added 4 commits August 6, 2026 14:12
AI assistance: OpenAI GPT-5.6 Sol via OpenCode resolved the report-destination and client-script policy overlap and ran focused security tests. Chris Huber remains responsible for every line.
AI assistance: OpenAI GPT-5.6 Sol via OpenCode verified the landed ZIP boundary merges cleanly with report containment. Chris Huber remains responsible for every line.
AI assistance: OpenAI GPT-5.6 Sol via OpenCode integrated the upstream Playground test repair before final report-containment verification. Chris Huber remains responsible for every line.
@chubes4
chubes4 merged commit 9a360e6 into main Aug 7, 2026
1 of 3 checks passed
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.

Contain report artifacts within importer-owned storage

1 participant