Conversation
…ts in all languages Generated test projects make HTTPS calls in two places: the local Appium proxy and direct Kobiton REST calls (device lookup, app download URL, OTP). Previously only some proxies disabled TLS verification, while the direct REST clients always validated certs — so generated projects failed against Standalone servers using self-signed certificates. Add a single opt-in env flag, KOBITON_TRUST_ALL_CERTS=true, wired into both the proxy and every REST client, consistently across Python, Node.js, Java, and C#. Default keeps TLS validation on. Update each README with macOS/Linux and Windows (PowerShell) invocation examples. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
|
Reviewed as a TLS-bypass change (risk: trusting too much, or an insecure default). Read all four clients + the untouched call sites.
🟢 Merge. |
d4rkwinz
approved these changes
Jun 15, 2026
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.
Problem
Test projects produced by the generator fail to run against a Kobiton Standalone server using a self-signed SSL certificate — specifically on the direct Kobiton REST calls (device lookup
GET /v1/devices, app download URLGET /v1/app/versions/{id}/downloadUrl, OTP/v1/otp/*), not the Appium/WebDriver traffic.A generated project makes HTTPS calls in two places:
Before this change, TLS handling was inconsistent — only some proxies disabled verification, and the direct REST clients always validated certs:
verify=False→ OKrequests, noverify=→ rejectssecure:false→ OKaxios, no httpsAgent → rejectsOkHttpClient→ rejectsnew OkHttpClient()→ rejectsHttpClient→ rejectsnew HttpClient()→ rejectsFix
Introduce one opt-in env flag,
KOBITON_TRUST_ALL_CERTS=true, read consistently in every language and wired into both the proxy and all REST clients. Default keeps TLS validation on (secure by default); set the flag only for standalone self-signed servers.config.py;proxy_server.py,test_base.py, andotp_service.pyall passverify=not Config.TRUST_ALL_CERTS; warning suppression centralized.Config.TRUST_ALL_CERTSfrom env;base.jssets a permissiveaxios.defaults.httpsAgent;proxy.jsgatessecureon the flag.Config.TRUST_ALL_CERTS+Config.createHttpClientBuilder()trust-allOkHttpClient.Builder; used byProxyServer,TestBase(2 sites),OtpService.Config.TrustAllCerts+Config.CreateHttpClient()with a permissiveHttpClientHandler; used byProxyServer,TestBase(3 sites),OtpService.-Djavax.net.ssl.trustStoreType=KeychainStore,NODE_TLS_REJECT_UNAUTHORIZED=0) with the unified flag, documented for macOS/Linux and Windows (PowerShell).The env-var read is cross-platform; only the shell syntax to set it differs (documented per OS).
Testing notes
KOBITON_TRUST_ALL_CERTS=trueagainst a self-signed Standalone: device lookup, app download, OTP, and the Appium proxy all connect.https://server URLs;http://standalone URLs are unaffected.Jira: https://kobiton.atlassian.net/browse/KOB-53650
🤖 Generated with Claude Code