fix(clearfolio): fail closed on production configuration - #493
fix(clearfolio): fail closed on production configuration#493seonghobae wants to merge 31 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughClearfolio 설정 검증과 개발 모드 제한을 추가했습니다. 프로덕션 요청은 검증된 HTTPS origin과 HMAC secret을 사용합니다. redirect 추적을 차단하고, artifact 링크는 동일 origin·무자격 증명·무fragment 조건을 충족해야 합니다. 관련 문서와 테스트도 갱신했습니다. ChangesClearfolio 보안 경계
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: 🔵 Low · up to This change makes unconfigured production Clearfolio operations fail closed and blocks unsafe provider redirects and artifact links. Repository checks are passing and no actionable defect remains in the documentation, but an independent approval for the exact current head is still required before merge. Sequence Diagram(s)sequenceDiagram
participant Scopeweave
participant Clearfolio
participant ArtifactViewer
Scopeweave->>Clearfolio: submit job with signed tenant claims
Clearfolio-->>Scopeweave: job status and signed artifact URL
Scopeweave->>Scopeweave: validate origin, credentials, and fragment
Scopeweave->>ArtifactViewer: open same-origin viewer URL with artifact token
Scopeweave-->>Scopeweave: reject redirects and invalid artifact URLs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
|
@opencode-agent review Please submit an independent formal review for exact current head |
|
@coderabbitai review |
|
Pull request was converted to draft
|
@opencode-agent |
|
@opencode-agent Retry independent review for exact current head |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
@opencode-agent Review-only request for exact current head |
|
@coderabbitai review Please review exact current head |
|
|
Rebuild the child from the current #493 parent tree, preserve only the bounded provider transport/JSON response slice, and retain protected adaptive-orchestrator attribution changes without widening the stack.
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
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 |
|
@opencode-agent review Review-only request for exact current head |
Buyer and security impact
Refs #489. ScopeWeave no longer treats an absent Clearfolio integration as a successful production conversion service. The in-memory adapter is explicit development behavior; production conversion/viewing fails closed when the provider boundary is not configured, without disabling the planner. Tenant-signed provider calls refuse redirects, and browser artifact authority remains confined to the configured Clearfolio origin until a separately reviewed cross-origin allowlist exists.
Exact current state
develop@2c328875e00e86537df3e965170be80532571cad;78f8b557cd2b9cab238af72304f0ed42e1557759;fix/clearfolio-production-configuration;5c7914b7cbdd91ea7062c9b2b372a83e0281afd9;78f8b557...preserves this bounded Clearfolio root slice while reconciling the protected Playwright 1.62.1 dependency update from currentdevelop.Protected changes inherited from
developare not claimed as Clearfolio feature work. Any head/base/review movement invalidates revision-sensitive evidence until freshly revalidated.Configuration, redirect, and artifact authority contract
SCOPEWEAVE_DEV=1and no provider URL is configured;clearfolio_not_configuredand expose no mock artifact route;[::1];CLEARFOLIO_HMAC_SECRETis required with a provider and must contain at least 32 non-whitespace characters;redirect: "error", so tenant HMAC headers are not replayed onto provider-supplied redirects;artifactTokenis translated into the trusted viewer route without transplanting it to another origin; andReview-driven repairs retained on the current head
Cursor review found three valid predecessor defects: default redirect following could replay tenant HMAC headers, token-free foreign artifact links could become an attachment-view open redirect, and a unit assertion encoded that unsafe foreign redirect behavior. Test-first commit
b8ebe96fbb7254638eab372ad4ee09bac78fa637changed the provider-contract regression before production repair; production commit32e44e4820eba722e59febe84c7f37d7a20930b0applied the bounded fix.Fresh current review-thread inventory contains those three Cursor threads only. All are resolved after source/tests changed; two remain current-and-resolved and one is outdated-and-resolved. No unresolved inline review thread remains. The current submitted reviews are Cursor COMMENTED predecessor evidence and a Devin COMMENTED no-issues result; neither is a qualifying independent formal approval of exact head
78f8b557....Current repository evidence
All six pull-request workflows associated with exact contributor head
78f8b557cd2b9cab238af72304f0ed42e1557759are terminal GitHub-success:32400078219;32400078258;32400078276;32400079352;32400078217; and32400078266.Server Testsis useful behavioral evidence, but not exact-contributor-head merge authority under the current repository control.unit-and-apijob96525887797explicitly fetched and checked outrefs/pull/493/mergeand loggedHEAD is now at 5c7914b Merge 78f8b557... into 2c328875...rather than executing immutable contributor head78f8b557.... Its broad unit/API suite, including Clearfolio production-configuration and provider-link regressions, passed, as didcloud-e2ejob96525888114;npm cireported zero vulnerabilities. The result remains synthetic-merge behavioral evidence until #523's repository exact-head checkout/coverage control is protected-shipped and this then-current branch is freshly re-evidenced.Centrally reusable SAST/Security exact-head evidence remains separately owner-controlled by
ContextualWisdomLab/.github#1222; a central green status is not promoted to contributor-head authority while that control defect remains open. No predecessor, synthetic-only, status-only, author-only, or model-only result transfers into merge authority.Stack responsibility
This PR is the Clearfolio #489 root slice. Child #498 and later Clearfolio descendants must be reconciled semantically against exact current parent
78f8b557cd2b9cab238af72304f0ed42e1557759before integration; historical parent SHAs in child PR bodies are not authority. Preserve unique child provider-boundary, artifact-origin, readiness, and operator-surface work rather than copying or parallelizing the root boundary.Standards and traceability
docs/doctoring/clearfolio-production-configuration.mdrecords the trust boundary, redirect prohibition, same-origin artifact authority, explicit future-allowlist boundary, rollback, executable regressions, and APA 7 references to the WHATWG URL Standard, OWASP SSRF Prevention guidance, and NIST SSDF 1.1.Merge gate
Do not merge or enable auto-merge until the unchanged exact head remains reconciled to the freshly resolved protected base, #523's repository exact-head evidence control and the applicable central reusable exact-head security/SAST repair are protected-shipped, every applicable repository and organization CI/browser/owned-coverage/docstring/CodeQL/SAST/security/dependency/supply-chain/package/SBOM/provenance/recovery/required-review gate is substantively terminal-passing on the exact contributor revision, valid unresolved findings are zero, and a genuine qualifying independent current-head/last-push approval exists under live protection/rulesets.
Pending, queued, skipped-required, cancelled, absent, neutral-required, failed, stale, predecessor, synthetic-only, status-only, author-only, model-only, rate-limited, or infrastructure-only evidence is non-authorizing.