Buyer-visible TLS policy-integrity boundary
TLSConfiguration is an immutable reviewed TLS policy value. Accepting a subclass and then dynamically dispatching create_ssl_context() allowed subclass-controlled behavior to replace the reviewed certificate/hostname-verification path. This is a trusted configuration-integrity boundary, not a Python-sandbox claim.
Protected-main implementation
The source repair is IMPLEMENTED ON PROTECTED MAIN.
Fresh lineage:
Protected behavior rejects every non-exact TLSConfiguration before subclass-controlled create_ssl_context() dispatch. Exact values and None remain supported; private trust roots, mTLS, deferred key-password handling, hostname/certificate verification, explicit TLS 1.2 compatibility, destination/DNS/proxy/request/response policy and public builders remain unchanged.
Historical PRs #112/#148/#157 are evidence only and remain superseded by the integrated #172 lineage. Historical #172 predecessor heads/checks/reviews likewise do not replace protected-main truth.
Remaining evidence debt
The product-code boundary is integrated, but organization-owned supply-chain evidence remains non-passing:
- read-only central PR
ContextualWisdomLab/.github#897 is still open / mergeable / unmerged at exact head 59505c1d89eb7ea816e921b6da38079c736608c2;
- its purpose is to make unavailable Dependency Review fail closed rather than wrapper-green/skipped;
.github is read-only from the EgressWeave writer, so no local substitute, weaker gate, duplicate workflow, credential invention, or clean-head churn is acceptable;
- after an accepted central repair reaches protected central
main, require a fresh protected EgressWeave consumer candidate whose actual immutable-pinned Dependency review action executes and succeeds.
Acceptance criteria
Non-goals
No raw SSLContext injection API, no removal of private CA/mTLS/TLS 1.2/deferred-password support, no destination/DNS/proxy/request/response/credential/release/persistence change, no Python-sandbox claim, and no EgressWeave-local replacement for organization-owned required workflows.
Buyer-visible TLS policy-integrity boundary
TLSConfigurationis an immutable reviewed TLS policy value. Accepting a subclass and then dynamically dispatchingcreate_ssl_context()allowed subclass-controlled behavior to replace the reviewed certificate/hostname-verification path. This is a trusted configuration-integrity boundary, not a Python-sandbox claim.Protected-main implementation
The source repair is IMPLEMENTED ON PROTECTED MAIN.
Fresh lineage:
main:5e299de0117bd6bfd89f984acec3098565c34005;security: reconstruct exact TLS boundary on current protected main) is merged;3114545b1566e027c362b40c7ee2e190697eea86;db3b0c5cef2c24addf806c4f19afa45069533d41;Protected behavior rejects every non-exact
TLSConfigurationbefore subclass-controlledcreate_ssl_context()dispatch. Exact values andNoneremain supported; private trust roots, mTLS, deferred key-password handling, hostname/certificate verification, explicit TLS 1.2 compatibility, destination/DNS/proxy/request/response policy and public builders remain unchanged.Historical PRs #112/#148/#157 are evidence only and remain superseded by the integrated #172 lineage. Historical #172 predecessor heads/checks/reviews likewise do not replace protected-main truth.
Remaining evidence debt
The product-code boundary is integrated, but organization-owned supply-chain evidence remains non-passing:
ContextualWisdomLab/.github#897is still open / mergeable / unmerged at exact head59505c1d89eb7ea816e921b6da38079c736608c2;.githubis read-only from the EgressWeave writer, so no local substitute, weaker gate, duplicate workflow, credential invention, or clean-head churn is acceptable;main, require a fresh protected EgressWeave consumer candidate whose actual immutable-pinnedDependency reviewaction executes and succeeds.Acceptance criteria
TLSConfigurationbefore subclass-controlled dispatch.Noneand exact factory-created configuration values.CERT_REQUIRED, private trust roots, mTLS and fresh-context-per-transport behavior.main.Dependency reviewaction executes and succeeds; wrapper-green/skipped/predecessor evidence is non-passing.Non-goals
No raw
SSLContextinjection API, no removal of private CA/mTLS/TLS 1.2/deferred-password support, no destination/DNS/proxy/request/response/credential/release/persistence change, no Python-sandbox claim, and no EgressWeave-local replacement for organization-owned required workflows.