Skip to content

release: 6.39.0#138

Merged
stainless-app[bot] merged 9 commits intomasterfrom
release-please--branches--master--changes--next
Apr 1, 2026
Merged

release: 6.39.0#138
stainless-app[bot] merged 9 commits intomasterfrom
release-please--branches--master--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app bot commented Mar 31, 2026

Automated Release PR

6.39.0 (2026-03-31)

Full Changelog: v6.38.1...v6.39.0

Features

  • lib: add ED25519 webhook verification to telnyx-lib (0d90c34)

Bug Fixes

  • apply ktfmt formatting (8e480c7)
  • format code to pass ktfmt lint (d543ec1)

Refactors

  • webhooks: delegate WebhookServiceImpl ED25519 verification to telnyx-lib (d69f3c7)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

stainless-app bot and others added 9 commits March 27, 2026 19:55
Move ED25519 webhook signature verification to telnyx-lib/ module
to ensure it persists across Stainless code generation runs.

The generated WebhookServiceImpl.kt has 'File generated' header and
could be overwritten on the next codegen, losing the ED25519 logic.

New files in telnyx-lib/ (preserved across codegen):
- WebhookVerification.kt: Standalone ED25519 verification
- WebhookVerificationTest.kt: Unit tests for verification logic

Features:
- ED25519 signature verification using Java's native crypto
- Headers: telnyx-signature-ed25519, telnyx-timestamp
- 5-minute timestamp tolerance for replay attack prevention
- Supports both Map<String, String> and SDK Headers type
- Detailed error messages via WebhookVerificationException

Usage:
  import com.telnyx.sdk.lib.WebhookVerification

  WebhookVerification.verify(payload, headers, publicKey)

Follows custom code guidelines from sdk-knowledge.md.
…to telnyx-lib

Remove duplicate ED25519 verification code from generated WebhookServiceImpl.kt
and delegate to the custom WebhookVerification class in telnyx-lib.

Changes:
- WebhookServiceImpl now imports and delegates to WebhookVerification.verify()
- Removed all duplicate ED25519 crypto code (150+ lines)
- Added telnyx-lib dependency to telnyx-core
- Removed telnyx-core dependency from telnyx-lib (broke circular dependency)
- Removed Headers-based overload from WebhookVerification (not needed)
- WebhookServiceImpl converts Headers to Map before calling verification

Benefits:
- ED25519 logic is now in telnyx-lib (protected from codegen overwrites)
- Generated code is now minimal and delegates to custom lib
- No code duplication between generated and custom code
- Tests pass for both telnyx-lib and telnyx-core

Tested:
- ./gradlew :telnyx-lib:build :telnyx-core:build (success)
- All tests pass
feat(lib): add ED25519 webhook verification to telnyx-lib
@stainless-app stainless-app bot merged commit adb4d6f into master Apr 1, 2026
12 of 13 checks passed
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app bot commented Apr 1, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

1 participant