Skip to content

add a context signing helper - #125

Merged
bpapillon merged 1 commit into
mainfrom
chris/sch-7984-schematic-java-add-a-context-signing-helper
Oct 30, 2026
Merged

bpapillon merged 1 commit into
mainfrom
chris/sch-7984-schematic-java-add-a-context-signing-helper

Conversation

@cbrady

@cbrady cbrady commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Adds ContextSignature.sign, which a customer's backend calls to sign the company and user a browser SDK sends with a publishable key, for environments that require context signatures. It returns the X-Schematic-Context-Sig value the JS SDK's getContextSignature expects. A signature lasts 10 minutes by default; options().lifetimeSeconds(...) accepts up to the API's one-hour maximum, and issuedAt(...) sets the start time. It matches the Go and Node helpers (SchematicHQ/schematic-go#263, SchematicHQ/schematic-node#216).

The JSON is built by hand rather than with Jackson, which sorts keys by UTF-16 code unit and escapes differently from the API. Keys sort by code point, U+2028 and U+2029 are escaped, and lone surrogates become U+FFFD as the API reads them. It sticks to Java 8 APIs to match the build target.

The tests run the shared vectors from the API (SchematicHQ/schematic-api#9729), copied into src/test/resources/contextsig/. Merge after #9729, and refresh the copy if the vectors change there.

@cbrady
cbrady marked this pull request as ready for review October 30, 2026 15:17
@cbrady
cbrady requested a review from a team as a code owner October 30, 2026 15:17
@bpapillon
bpapillon merged commit 6e9c0a3 into main Oct 30, 2026
5 checks passed
@bpapillon
bpapillon deleted the chris/sch-7984-schematic-java-add-a-context-signing-helper branch October 30, 2026 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants