fix(clearfolio): require explicit artifact origin trust - #501
Closed
seonghobae wants to merge 5 commits into
Closed
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
seonghobae
marked this pull request as ready for review
August 15, 2026 06:00
seonghobae
marked this pull request as draft
August 15, 2026 07:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Superseded by #504
#498 advanced from
28cff4ad079e72da417d5830ca90de799b7483adto4f017140c1ab375e4f302bf2094a64e7b290d14bafter this child branch was cut. The reconciled replacement #504 is a true descendant of the exact live #498 head and preserves this PR's full child behavior. Exact comparison from this heade4d2f5f02294fe3e337e075ee05ad2afc2889aa6to replacement head15950464256d7c6759ee328437b66e2617b671bcchanges only #498's later rejected-provider-body repair and its regression test; comparing live #498 to #504 is ahead-only with exactly the six child-scope files. This PR is closed to remove the stale-stack duplicate; no unique child work is discarded.Buyer/security goal
Issue #489 allowed an arbitrary cross-origin HTTPS artifact URL returned by Clearfolio to become a ScopeWeave redirect target. This stacked slice establishes an exact-origin trust policy so same-origin artifacts remain the default and explicitly reviewed HTTPS artifact origins can be added without weakening URL-component validation.
Current implementation
Current head
e4d2f5f02294fe3e337e075ee05ad2afc2889aa6is stacked directly on #498 head28cff4ad079e72da417d5830ca90de799b7483ad.The branch contains the regression contract and production fix:
CLEARFOLIO_ARTIFACT_ORIGINSentries are parsed as exact HTTPS origins only;clearfolio_artifact_origins_invalidbefore artifact-link provider transport;URL.originvalues rather than prefix matching;artifactTokenvalues may continue through the Clearfolio viewer, while approved cross-origin tokens stay bound to the returned approved origin and are never transplanted;CHANGELOG.mdanddocs/doctoring/clearfolio-artifact-origin-trust.mdrecord the buyer/operator boundary, rollback, and APA 7 references.The slice preserves #493/#498 invariants: explicit development-only mock behavior, validated provider configuration, non-redirecting bounded provider calls, bounded streamed JSON, validated document/job inputs, sanitized failures, and tenant-scoped HMAC claims.
Current exact-head evidence
On unchanged head
e4d2f5f0, the repository-native workflows that run on this stacked base are terminal success: Server Tests, Dependency Review, and OSV Scanner. The first implementation head exposed one intentional contract collision in the legacy Clearfolio downstream test: it still expected arbitrarycdn.exampleredirects without authorization. That failure was repaired by configuring the explicit artifact-origin allowlist around those compatibility assertions; the rerun is green. Cloud E2E on the failed predecessor run was already green, and no predecessor result is promoted to current-head evidence.There are currently no review threads or formal review submissions on this exact head. Base-filtered security/SAST/fuzz workflows that do not run against this feature branch are not counted as passing; after the parent stack reaches protected
develop, this semantic delta must be reconciled and those protected-base gates rerun.Dependency
This PR is intentionally stacked on #498, which is stacked on #493. It must not integrate before those parent slices. Once the parents reach protected
develop, retarget/reconcile this bounded semantic delta against the resulting live base and require the full exact-head protected CI/security/SAST/dependency/coverage/review policy before merge.Refs #489