Repository navigation
docs(sdks): fix Java pin, PHP getenv config, readonly claim, JS .env; add send-without-emails section - #229
Merged
Conversation
Contributor
Author
Review round 1: what was found and fixedAn independent review compiled or ran each new language tab against the current SDKs and compared the Typed Classes section with the real constructors. It also probed the Found and fixed
Confirmed correct
Re-verified after the fixThe build passes with the same 9 pre-existing broken anchors, and the TurboSign page has no 0.7.0 left. 🤖 Generated with Claude Code |
Contributor
Author
Review round 2: what was found and fixedA second independent review ran all five new tabs word for word against the API, and confirmed:
It also ran every PHP config snippet under Found and fixed
Confirmed correct
🤖 Generated with Claude Code |
amitsharma-turbodocx
force-pushed
the
fix/220-sdk-pages-accuracy
branch
from
October 21, 2026 09:12
a44db60 to
c07151f
Compare
….env; add send-without-emails section - java.md: 0.7.0 -> 0.8.0 (Maven, Gradle Kotlin, Gradle Groovy). - PHP snippets on php, turbosign, deliverable, webhooks, partner-php, quote and index pages: $_ENV[...] -> getenv(...). $_ENV is empty under the default variables_order = "GPCS". - "readonly classes" is a PHP 8.2 feature; the SDK needs ^8.1 and uses readonly properties. Typed Classes section: Field::$required is ?bool = null (null = required), and Recipient lists phone / externalId / identityVerification. - javascript.md .env adds TURBODOCX_SENDER_EMAIL (required) and TURBODOCX_SENDER_NAME. - turbosign.md: new "Send without emails and sign in your app" section (sendEmail false + createSigningUrl) for JS, Python, PHP, Go and Java, with the Enable identity verification prerequisite. Closes #220 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, getenv ?: null
- Bump the remaining 0.7.0 Java pins (turbosign, index, deliverable, quote, webhooks,
partner-java). The new Java tab needs 0.8.0 (sendEmail / createSigningUrl).
- The signing URL in the new section is the reusable signing link for passcode /
no-verification signers; only external_idv / override URLs are single-use.
- TurboSign page JS .env adds TURBODOCX_SENDER_EMAIL / TURBODOCX_SENDER_NAME.
- getenv(...) ?: null for nullable config args, so an unset variable is null (not
false) under declare(strict_types=1).
- "readonly properties" on the deliverable and partner-php pages too.
- Webhook PHP verification sample: getenv('WEBHOOK_SECRET') instead of $_ENV.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…P tab import - TurboWebhooks::configureFromCredentials() and PartnerClientConfig take non-nullable strings: `?: null` turned an unset variable into a TypeError. Use `?: ''`, which gives the SDK's clear AuthenticationException (matches fromEnvironment()). Same for the webhook receiver's secret, so an unset secret fails closed (401) instead of a TypeError (500) under strict_types. - The new PHP tab now imports TurboDocx\TurboSign like every other PHP tab. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-emails (#220) - Java pins 0.8.0 -> 0.9.0 (the published version since 2026-10-20) on every SDK page. - Send without emails: a Ruby tab; say the opt-out also covers the initial CC email, later signers' turn emails and scheduled reminders; recipients is always present on the JS response in 0.9.0, so no non-null assertion. - PHP Typed Classes: Recipient's signingOrder is optional when the recipient has a role, and role is new in 0.9.0. - Go webhook verification: 0.9.0 treats ToleranceSeconds 0 as the 300s default and rejects every delivery on a negative value; -1 no longer disables the timestamp check. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
amitsharma-turbodocx
force-pushed
the
fix/220-sdk-pages-accuracy
branch
from
October 21, 2026 11:45
c07151f to
6be3463
Compare
This branch was successfully deployed
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.
Closes #220
What was wrong (all five claims confirmed on
develop)java.mdpinned 0.7.0 in Maven, Gradle Kotlin and Gradle Groovy. The published version is 0.8.0.php.mdread config from$_ENV, which is empty on a stockphp.ini(variables_order = "GPCS"), so configure throws on missing credentials.^8.1. The SDK actually uses readonly properties (8.1) and neverreadonly class.javascript.md.envexample left outTURBODOCX_SENDER_EMAIL, which TurboSign requires.turbosign.mdnever showedsendEmail: false+createSigningUrlin any language tab.Fix
java.md,turbosign.md,index.md,deliverable.md,quote.md,webhooks.md,partner-java.md. The new Java tab needs 0.8.0.$_ENV[...]->getenv(...) ?: nullfor nullable config arguments, so an unset variable isnull, notfalse, underdeclare(strict_types=1).PartnerClientConfigandTurboWebhooks::configureFromCredentials()take non-nullable strings, so those usegetenv(...) ?: ''instead (matchingfromEnvironment()), which turns an unset variable into the SDK's own clearAuthenticationException. The webhook receiver's secret uses?: ''too, so an unset secret fails closed with a 401. The webhook PHP verification sample (static/scripts/webhooks/verification/php.php) readsgetenv('WEBHOOK_SECRET')too. Besidesphp.md, the same bug was onturbosign,deliverable,webhooks,partner-php,quoteand the SDK index page, so those are fixed too. No snippet underdocs/used$_ENV[...] ?? default; the one in the static webhook sample was rewritten togetenv(...) ?:(that would have needed a different fix, becausegetenv()returnsfalse, notnull).php.md,turbosign.md,deliverable.mdandpartner-php.md. The Typed Classes section (anchor#readonly-classeskept, so existing links still work) now matches the real constructors:Field::$requiredis?bool = null, where null means required. The page showedbool $required = false, which reads as "optional by default".Recipientnow listsphone,externalIdandidentityVerification.javascript.mdand the JS tab of the TurboSign page's Environment Variables:.envaddsTURBODOCX_SENDER_EMAIL(required) andTURBODOCX_SENDER_NAME(optional).turbosign.md: new section Send without emails and sign in your app (#send-without-emails), right after "Prepare for signing". It says the URL is the signer's reusable signing link for passcode / no-verification signers (single-use only forexternal_idv/override). It has JS, Python, PHP, Go and Java tabs, aninfoadmonition for the Enable identity verification prerequisite (linking to the setup guide), and a pointer to the Embedded Signing guide for framing.Verification
sendEmailfalse and printed a real signing URL:tsc --strict, then run.go vet+ run.javac+ run against the 0.8.0 jar.develop. Three are on pages this PR edits (deliverable.md,partner-php.md), but they point at anchors that are missing ondeveloptoo, and the edited lines don't touch them.sendEmail+createSigningUrl..envshowsTURBODOCX_SENDER_EMAIL=.$_ENVand no "readonly classes".🤖 Generated with Claude Code
Update (2026-10-21): rebased on current
develop(after #227, which brought the Ruby SDK tabs back), and6be3463brings the PR up to the 0.9.0 SDKs, released 2026-10-20:sendEmail/createSigningUrland the constructors the new Java tab uses).send_signature(..., sendEmail: false)+create_signing_url(document_id, recipient_id:)); one line on what else the opt-out covers (initial CC email, later signers' turn emails, scheduled reminders);result.recipients[0].idwithout!, sincerecipientsis always present in 0.9.0.Recipientnow shows?int $signingOrder = nulland the new?string $role, as in 0.9.0.ToleranceSeconds: 0as the 300s default and rejects every delivery on a negative value, so the old "-1disables the timestamp check" advice is replaced.Every snippet in the new section was checked against the 0.9.0 sources for all six SDKs, and the PHP config snippets against each config class's constructor types.