security(tls): require exact trust scalar values - #214
Conversation
📝 WalkthroughWalkthroughTLS 설정의 경로, CA 데이터, 개인 키 비밀번호에 정확한 내장 타입 검사를 적용했습니다. ChangesTLS 스칼라 무결성
Estimated code review effort: 3 (Moderate) | ~20 minutes Mergeability Score: 🔵 Low · up to The change narrows accepted TLS scalar inputs and preserves trusted callback-based secret retrieval. The implementation is otherwise ready, but the required CHANGELOG update documenting the security-boundary and caller-impact change remains before merge. Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 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 |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/research/tls-configuration.md`:
- Around line 43-61: Update CHANGELOG.md to document the TLS scalar
security-boundary changes reflected by the surrounding documentation: accepted
and normalized types for trust paths, ca_data, and direct private-key passwords;
rejection of subclasses; copying exact bytearray passwords; and the resulting
caller migration impact. Mark this changelog entry as the remaining release
acceptance task.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: bea3fddb-6c5d-4936-b76e-4ffd28805df0
📒 Files selected for processing (3)
docs/research/tls-configuration.mdsrc/egressweave/tls.pytests/test_tls_configuration_scalar_integrity.py
Purpose
Progress #213 by repairing the retained TLS trust, identity, and direct private-key-password scalar boundary on protected
main@7faf7a3b8a47980113982914000e724ab6a6cda5.The exact outer
TLSConfigurationtype is already protected-main behavior. This bounded follow-up prevents path text, inline CA material, and direct non-callback password values from carrying built-in-subclass behavior into frozen declarative state. The zero-argument password callback remains an explicit trusted integration point.Test-first lineage
Path, trust, and CA scalars
d523c640703cd322f45fb52ce58652b6d2fccfec: hostilestrip()/__len__()behavior reproduced in hosted CI;1442fdb89b8b931992bc92d84f6ae9dcfba43801: exact built-in scalar boundary applied.Direct private-key-password scalars
00f75595571d8be2445da146d78dd17cffd301f6: hostile text/bytes retention and bytearray conversion reproduced;d3be1c0bb7ae11d2c8095b7730e5164a4c414920: exact direct-password scalar boundary and immutable bytearray copy applied;6ecc1b2e2caa1af5293a28a5d07a5eddda6f0327records the boundary in the TLS research/operator contract.Current exact identity
main@7faf7a3b8a47980113982914000e724ab6a6cda5;0bfc22b48e7e7b13e32d2b3795a17c3c19c8c576;CHANGELOG.mdonly.The current tree:
os.fspath()exactly once and accepts only an exact built-instrresult;ca_datato be exact built-instrorbytesbefore inspection or retention;str,bytes, orbytearray, copying an exact bytearray to immutable bytes;pathlib.Path, private trust, mTLS, TLS 1.3 default, explicit TLS 1.2 compatibility, hostname/certificate verification, exact outer configuration type, and public builders;Review repair
CodeRabbit's current finding requiring an
[Unreleased]entry for the TLS scalar security boundary was revalidated against the current tree. The former same-path defer to #212 is no longer an active-writer constraint: #212 is Draft and itsCHANGELOG.mdbranch has not moved since 2026-08-13.The current head now records the accepted/normalized trust-path,
ca_data, and direct private-key-password values, built-in-subclass rejection, immutablebytearraycopy, and caller migration path in the root changelog. The corresponding review threadPRRT_kwDOTVyu-86Yx2nPis resolved. A post-write diff audit confirmed that the onlyCHANGELOG.mddelta is this six-line security entry; unrelated historical text is preserved.Fresh governance and evidence state
The active organization ruleset
18156473currently requires one qualifying approval, dismisses stale reviews on push, requires review-thread resolution, and requires the central Close Empty PR, OpenCode, PR Review Merge Scheduler, Security Scan, Strix, SAST Semgrep, and Noema workflows. OrganizationAdmin bypass exists technically but is not an accepted merge path.The exact current head was created by the bounded changelog repair, so predecessor-head CI/security/review evidence does not transfer. New exact-head CI, Security Scan, and SAST Semgrep runs have materialized and are currently queued; queued evidence is non-passing.
The prior exact-head Security Scan also exposed a separate organization-owned supply-chain evidence defect: the wrapper could succeed while the immutable Dependency Review action was skipped. Central
.github#897currently owns the fail-closed repair and is an active writer lane, so this repository does not duplicate or race that control-plane work. A fresh Security Scan must execute the real pinned Dependency Review action successfully before this PR can leave Draft.Design-system applicability
Fresh repository search finds no Storybook implementation or Figma reference in EgressWeave. This PR is a provider-neutral Python transport/security library boundary with no buyer-facing UI flow, so no Figma/Storybook artifact is fabricated for this change.
Remaining acceptance
Keep Draft until these conditions are satisfied.
Summary by CodeRabbit
개선 사항
bytearray비밀번호는 안전하게 불변 값으로 복사해 보관합니다.문서
테스트