test: add X.509 end-to-end verification - #941
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Castiron custom code✅ No new custom-code files detected. 53 mixed files remain; 0 existing customizations changed. Compared 53 existing customizations unchanged
13 more in the full report. A changed generated baseline means this report cannot reliably identify which handwritten lines changed. Inspect the custom-code diffDownload the exact patch produced by this run (requires repository access): gh run download 33031710813 --repo openai/openai-java \
--name castiron-custom-code-33031710813-1 --dir /tmp/castiron-custom-code-33031710813-1
git apply --stat /tmp/castiron-custom-code-33031710813-1/custom-code.patch
cat /tmp/castiron-custom-code-33031710813-1/custom-code.patchOr reproduce it from an SDK checkout containing the vendored reporter: git fetch --no-tags origin 35324bf54adf68ea1853f7684bdbdf29c9fd329c 14a1524a0e70270ca966bdb6f5da8439157483d7
python3 scripts/castiron/custom_code_report.py report \
--base 35324bf54adf68ea1853f7684bdbdf29c9fd329c \
--head 14a1524a0e70270ca966bdb6f5da8439157483d7 --fetch --require-head-hash --public \
--out /tmp/castiron-custom-code-14a1524a0e70
cat /tmp/castiron-custom-code-14a1524a0e70/custom-code.patchThis is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR. |
HAYDEN-OAI
left a comment
There was a problem hiding this comment.
The end-to-end TLS verification and default-deny live gate look solid, but the protected credential-bearing workflow bypasses the repository's established Gradle cache trust boundary. Please isolate its Gradle User Home before exposing the enrolled client certificate and private-key credentials.
HAYDEN-OAI
left a comment
There was a problem hiding this comment.
Re-reviewed the protected live-verification workflow and confirmed the previous credential-boundary finding is fully addressed. The workflow creates a unique private per-run Gradle User Home, rejects preexisting paths and symlinks, disables shared Gradle caching before any protected credentials are attached, and matches the established release isolation policy. The manual main-only environment gate, fixed-origin issuer/API mTLS checks, certificate alias selection, sensitive-data redaction, and deterministic transport verification remain intact. Approved.
Summary
X509TransportTestwith deterministic loopback TLS coverage for one fixed client alias on both exact authorities, SNI, hostname and trust failures, bearer separation, raw issuer wire bytes, cleanup, and sanitized diagnosticsGET /v1/modelsverification that reads credentials only from environment variables and proves client-alias selection independently on both TLS handshakesThis validates the existing raw
X509Transportcontract. It does not add production authentication, public API, generated service, provider-specific, Realtime, Castiron, retry, refresh, cache, or lifecycle behavior.Verification
./gradlew :openai-java-client-okhttp:test./scripts/lint./scripts/build --no-configuration-cache./scripts/detect-breaking-changes origin/mainpython3 -m unittest discover -s scripts/castiron -p 'test_custom_code*.py'git diff --checkLive verification status
NOT RUN locally: the required enrolled certificate and protected environment values were intentionally unavailable. The workflow remains manual, main-only, and gated by the
x509-live-smokeenvironment; a skipped live test is not reported as production evidence.Canonical context: