Change type
Planned — normal review → merge
Risk / impact
Medium
Security impact assessed?
No — no security impact
Details — description & full context
TurboSign fields accept an optional per-field required flag (boolean, default true). false lets the signer leave the field blank and still finish. The API rejects required: false on signature and initial fields, a non-boolean required, and a recipient whose only editable fields are optional or read-only.
Two SDKs could not send required: false:
- Go:
Required bool with omitempty dropped false. Now *bool (turbodocx.BoolPtr(false)).
- PHP:
bool $required = false was only sent when true. Now ?bool $required = null, sent when not null.
JS/TS, Python, Ruby and Java already passed false through; each gains a test proving it. Every language's test sends true, false and unset and asserts true, false and no key.
Component / area
TurboSign field model (all six SDKs)
Testing & validation
Rollback plan
Revert the PR. No server-side impact; the API default (required) is unchanged.
Breaking change for consumers?
Yes — note the version bump + migration/upgrade impact below
Go: Field.Required changes from bool to *bool. Code that set Required: true must use turbodocx.BoolPtr(true) or drop it (omitted means required). Ship in a minor bump with a release note.
PHP: an explicit required: false that used to be silently dropped is now sent, so on a signature or initial field it now returns a 400.
Reviewer / approver
No response
Change type
Planned — normal review → merge
Risk / impact
Medium
Security impact assessed?
No — no security impact
Details — description & full context
TurboSign fields accept an optional per-field
requiredflag (boolean, default true).falselets the signer leave the field blank and still finish. The API rejectsrequired: falseon signature and initial fields, a non-booleanrequired, and a recipient whose only editable fields are optional or read-only.Two SDKs could not send
required: false:Required boolwithomitemptydroppedfalse. Now*bool(turbodocx.BoolPtr(false)).bool $required = falsewas only sent when true. Now?bool $required = null, sent when not null.JS/TS, Python, Ruby and Java already passed
falsethrough; each gains a test proving it. Every language's test sendstrue,falseand unset and assertstrue,falseand no key.Component / area
TurboSign field model (all six SDKs)
Testing & validation
Rollback plan
Revert the PR. No server-side impact; the API default (required) is unchanged.
Breaking change for consumers?
Yes — note the version bump + migration/upgrade impact below
Go:
Field.Requiredchanges fromboolto*bool. Code that setRequired: truemust useturbodocx.BoolPtr(true)or drop it (omitted means required). Ship in a minor bump with a release note.PHP: an explicit
required: falsethat used to be silently dropped is now sent, so on a signature or initial field it now returns a 400.Reviewer / approver
No response