Repository navigation
declare the seven implemented-undeclared contract-test service capabilities - #283
Closed
JackDanger wants to merge 1 commit into
Closed
JackDanger wants to merge 1 commit into
JackDanger wants to merge 1 commit into
Conversation
…getStatus status list transport-only, no bodies): service-endpoints (baseUri/streamUri/eventsUri rows SdkClientEntity maps), server-side-polling (the polling arm SdkClientEntity $config['polling'] already prices, FeatureRequesterBase), filtering (LDConfig allAttributesPrivate/privateAttributes), filtering-strict (the allAttributesPrivate strict redaction bucket, EventSerializer redact law), http-proxy (LDClient 'http_proxy' option, Integrations/Curl proxy rows), tags (LDClient application_info Types\ApplicationInfo), wrapper (LDClient 'wrapper_name'/'wrapper_version' User-Agent rows) — each verified against the SDK's own public option/implement bytes first-hand; the centinel capability-honesty window (roster subject php-server-sdk). via LD Research 🤖; Co-Authored-By: Kimi (LD Research via termag); Generated-by: termag Generated-by: termag
kinyoklion
added a commit
that referenced
this pull request
Nov 3, 2026
<!-- TERMAG_PR_BODY_BEGIN --> ## Summary The contract test service now declares `tls:verify-peer`. The SDK's Guzzle clients already verify peers by default, so the service needs no further wiring. This turns on the harness test `events/requests/invalid tls certificate`, which checks that event posts to a server with an untrusted certificate fail. Supersedes #283. Tested locally with sdk-test-harness v2.41.1, using the CI skip patterns: 4454 total, 6 skipped, no failures. The newly run test passes, and none of the 4446 tests that passed before regressed. <!-- TERMAG_PR_BODY_END --> <!-- termag: box=i-0d6d1f51b3baf24ee project=appease-ai-feverish --> <sub>Opened from termag</sub> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Overview** > The PHP contract test service **advertises the `tls:verify-peer` capability** in `getStatus()`, so the SDK test harness knows peer certificate verification is supported. > > That enables the **`events/requests/invalid tls certificate`** scenario, which expects event posts to a host with an untrusted cert to fail. **No SDK or service wiring changes** are required—the existing Guzzle clients already verify TLS peers by default; this is only a capability declaration for the harness. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 1db0253. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
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.
The test service's
getStatus()capabilities list omits seven capabilities the SDK itself implements (each verified against the SDK's own option/implementation bytes first-hand). Status-list-only — no bodies change.service-endpointsSdkClientEntitymaps the pollingbaseUriframe (test-service/SdkClientEntity.php:53-54);LDClientcarries the per-service URI optionsserver-side-pollingtest-service/SdkClientEntity.php:53-54+src/LaunchDarkly/Impl/Integrations/FeatureRequesterBase.phpfilteringConfig::allAttributesPrivate/privateAttributes(src/LaunchDarkly/LDClient.php,test-service/SdkClientEntity.php)filtering-strictallAttributesPrivatestrict redaction bucket (src/LaunchDarkly/Impl/Events/EventSerializer.phpredact law)http-proxysrc/LaunchDarkly/LDClient.php:40http_proxyoption (Curl/Guzzle integrations)tagssrc/LaunchDarkly/LDClient.php:98,165-167application_info(Types\\ApplicationInfo)wrappersrc/LaunchDarkly/LDClient.php:100-101wrapper_name/wrapper_versionContext: the centinel cross-SDK contract verifier's capability-honesty gate prices
declared ⊇ bank-requiredper subject; these seven rows price required-but-undeclared on the declared-cap surface of record.via LD Research 🤖
Co-Authored-By: Kimi (LD Research via termag)