Skip to content

Releases: Decathlon/tzatziki

add oauth2 client_credentials support

03 Mar 11:56

Choose a tag to compare

🥒 OAuth2 Client Credentials Support is Here: Authenticate Your HTTP Calls with Ease!

Hi team! We’re happy to share a new addition to tzatziki-http in versions v2.4.0 that makes testing secured APIs much smoother.

🌟 What's New?

NEW: OAuth2 Client Credentials Authentication

You can now authenticate a user/service using the OAuth2 client credentials flow directly from your Gherkin scenarios.

Configure it once:

Background:
  Given that the user "my-service" is authenticated with:
    """yml
    client_id: my-client-id
    client_secret: secret123
    token_url: "http://auth-server/oauth/token"
    """

Then use your existing user-based HTTP steps as usual:

When my-service calls "http://backend/api/resource"
Then my-service calling "http://backend/api/status" receives a status OK_200

⚠️ Important Note

This feature is intended for mocked OAuth2 servers only, since the client_secret is provided in plain text. Please avoid using real secrets!.

📚 Documentation

See the full usage details in: https://github.com/Decathlon/tzatziki/blob/92b260633d23eb4a8df3e44a94b56cc0bc6c6bd7/tzatziki-http/README.md#oauth2-client-credentials-authentication

Thank You to @ozozgun

This feature was made possible thanks to the valuable contribution of @ozozgun. Your work has helped improve the project for everyone. We appreciate your effort and commitment!

v3.1.0: OAuth2 Client Credentials Authentication

03 Mar 12:26
92b2606

Choose a tag to compare

🥒 OAuth2 Client Credentials Support is Here: Authenticate Your HTTP Calls with Ease!

Hi team! We’re happy to share a new addition to tzatziki-http that makes testing secured APIs much smoother.

🌟 What's New?

NEW: OAuth2 Client Credentials Authentication

You can now authenticate a user/service using the OAuth2 client credentials flow directly from your Gherkin scenarios.

Configure it once:

Background:
  Given that the user "my-service" is authenticated with:
    """yml
    client_id: my-client-id
    client_secret: secret123
    token_url: "http://auth-server/oauth/token"
    """

Then use your existing user-based HTTP steps as usual:

When my-service calls "http://backend/api/resource"
Then my-service calling "http://backend/api/status" receives a status OK_200

⚠️ Important Note

This feature is intended for mocked OAuth2 servers only, since the client_secret is provided in plain text. Please avoid using real secrets!.

📚 Documentation

See the full usage details in: https://github.com/Decathlon/tzatziki/blob/92b260633d23eb4a8df3e44a94b56cc0bc6c6bd7/tzatziki-http/README.md#oauth2-client-credentials-authentication

Thank You to @ozozgun

This feature was made possible thanks to the valuable contribution of @ozozgun. Your work has helped improve the project for everyone. We appreciate your effort and commitment!

What's Changed

  • chore(deps): bump org.opensearch.client:opensearch-rest-client from 3.4.0 to 3.5.0 by @dependabot[bot] in #801
  • chore(deps): bump org.opensearch.client:opensearch-java from 3.5.0 to 3.6.0 by @dependabot[bot] in #804
  • feat(http): add oauth2 client_credentials support by @ozozgun in #813

New Contributors

Full Changelog: v3.0.0...v3.1.0

v3.0.0

11 Feb 13:36
55ba73c

Choose a tag to compare

🥒 Announcing Tzatziki 3.0.0: Test your Microservices with Ease!

Hi team! We are thrilled to announce that Tzatziki 3.0.0 is officially out! 🎉

This major milestone marks a huge step forward in our mission to provide the best "off-the-shelf" Cucumber steps for modern microservices architectures.

🌟 What's New?

🍃 NEW: Spring Boot 4 Compatibility: Tzatziki 3.0 is now fully compatible with Spring Boot 4, ensuring a smooth testing experience with the latest features of the Spring ecosystem.

NEW: MCP Support (Model Context Protocol)

You can now test your MCP servers and AI-driven tools as easily as your REST APIs! Tzatziki 3.0 introduces dedicated steps to interact with and assert on MCP flows, making it the first library of its kind to bridge the gap between BDD and the Agentic web.

🔧 Other Updates

JUnit 6 and TestContainers 2 are now supported, bringing more stability and performance to your test suites.

Kafka Fix: Resolved a NullPointerException when consuming records with null header values (thanks to Antoine Leveugle! 🙌).

⚠️ Breaking Changes & Migration

As this is a major version, we’ve cleaned up the library to make it more robust and future-proof:

1️⃣ Deprecations: Dropped support for Spring Boot 3.x. We have created a 2.x branch that remains compatible with Spring Boot 3 but will only receive critical fixes.

2️⃣ Spring Boot 4 & Cucumber Init: Upgrading to JUnit 6 requires a change in how Cucumber is launched and initialized. Don't worry: for most projects, this only involves modifying a single class, and everything is detailed in the migration guide.

3️⃣ Module Removal: The deprecated mockfaster and tzatziki-http-legacy modules have been officially removed. As previously announced, they are replaced by a backward compatible version of tzatziki-http based on Wiremock.

4️⃣ MongoDB Step Renaming: MongoDB steps have been renamed to allow them to co-exist seamlessly with JPA steps in the same project without naming conflicts. Please review this diff for necessary adjustments in your project.

🔮 What’s Next?

We’re not stopping here! Our roadmap for the coming months includes:

• 🤖 Tzatziki AI Skill: A dedicated toolset to help AI agents write high-quality Tzatziki tests autonomously.

• 🚀 tzatziki-kafka : A lightweight, Spring-independent alternative to tzatziki-spring-kafka. This new module will focus on functional testing by connecting directly to existing Kafka brokers (e.g., in pre-production), thus offering maximum flexibility for validating data flows without a Spring Boot dependency.

• 🗄️ tzatziki-sql: A new module for relational data insertion and assertion, completely independent of JPA for better flexibility.

Ambitious roadmap ahead! We rely on your contributions to make it happen.

💬 Feedback & Support

We are eager to hear your thoughts on this new version! Your feedback is essential to keep improving Tzatziki. Should you encounter any issues during your migration or daily use, please reach out - we'll make it a priority to fix them as quickly as possible.

📦 Getting Started

  1. Update your pom.xml to use version 3.0.0.
  2. Follow the Migration Guide.

❤️ Thank You

A huge thanks to everyone who helped test the MCP beta and the Spring Boot 4 integration. This release belongs to the community!

Full Changelog

v2.3.10...v3.0.0

Documentation

https://github.com/Decathlon/tzatziki/blob/main/README.md

Stay fresh with Tzatziki! 🥒

v2.3.10

05 Feb 17:26

Choose a tag to compare

New features

Dependency upgrades

  • chore: bump to Spring Boot 3.5.9 by @jak78 in #751
  • chore(deps-dev): bump testcontainer.version from 1.21.3 to 1.21.4 by @dependabot[bot] in #745
  • chore(deps): bump org.opensearch.client:opensearch-java from 3.3.0 to 3.4.0 by @dependabot[bot] in #746
  • chore(deps): bump org.opensearch.client:opensearch-rest-client from 3.3.2 to 3.4.0 by @dependabot[bot] in #748
  • chore(deps): bump org.sonarsource.scanner.maven:sonar-maven-plugin from 5.3.0.6276 to 5.5.0.6356 by @dependabot[bot] in #749
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.19.0 to 11.19.1 by @dependabot[bot] in #752
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.19.0 to 11.19.1 by @dependabot[bot] in #753
  • chore(deps): bump org.aspectj:aspectjweaver from 1.9.25 to 1.9.25.1 by @dependabot[bot] in #747
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.19.1 to 11.20.0 by @dependabot[bot] in #756
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.19.1 to 11.20.0 by @dependabot[bot] in #755
  • chore(deps): bump org.junit:junit-bom from 6.0.1 to 6.0.2 by @dependabot[bot] in #758
  • chore(deps): bump org.junit.jupiter:junit-jupiter-params from 6.0.1 to 6.0.2 by @dependabot[bot] in #759
  • chore(deps-dev): bump org.junit.vintage:junit-vintage-engine from 6.0.1 to 6.0.2 by @dependabot[bot] in #760
  • chore(deps): bump org.junit.jupiter:junit-jupiter-engine from 6.0.1 to 6.0.2 by @dependabot[bot] in #757
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.20.0 to 11.20.2 by @dependabot[bot] in #769
  • chore(deps): bump org.opensearch.client:opensearch-java from 3.4.0 to 3.5.0 by @dependabot[bot] in #768
  • chore(deps-dev): bump org.postgresql:postgresql from 42.7.8 to 42.7.9 by @dependabot[bot] in #767
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.20.0 to 11.20.2 by @dependabot[bot] in #766
  • chore(deps): bump org.scala-lang:scala-library from 2.13.18 to 3.8.0 by @dependabot[bot] in #765
  • chore(deps): bump io.modelcontextprotocol.sdk:mcp from 0.17.0 to 0.17.1 by @dependabot[bot] in #763
  • chore(deps): bump org.sonatype.central:central-publishing-maven-plugin from 0.9.0 to 0.10.0 by @dependabot[bot] in #761

Full Changelog: v2.3.9...v2.3.10

v2.3.9

15 Dec 13:10
9758ac2

Choose a tag to compare

What's Changed

  • Update to Spring Boot 3.5.8 & remove Semla dependency by @jak78 in #744
  • Add test for chunked transfer encoding disabling by @jak78 in #707
  • Log expected vs actual messages on Kafka assertion failures by @jak78dkt in #718

Dependencies

  • chore(deps): bump org.springframework.boot:spring-boot-dependencies from 3.5.6 to 3.5.7 by @dependabot[bot] in #703
  • chore(deps): bump net.logstash.logback:logstash-logback-encoder from 8.1 to 9.0 by @dependabot[bot] in #706
  • chore(deps): bump cucumber.version from 7.30.0 to 7.31.0 by @dependabot[bot] in #709
  • chore(deps): bump org.opensearch.client:opensearch-java from 3.2.0 to 3.3.0 by @dependabot[bot] in #710
  • chore(deps): bump org.aspectj:aspectjweaver from 1.9.24 to 1.9.25 by @dependabot[bot] in #716
  • chore(deps): bump org.opensearch.client:opensearch-rest-client from 3.3.1 to 3.3.2 by @dependabot[bot] in #711
  • chore(deps): bump org.junit.jupiter:junit-jupiter-params from 6.0.0 to 6.0.1 by @dependabot[bot] in #712
  • chore(deps-dev): bump org.junit.vintage:junit-vintage-engine from 6.0.0 to 6.0.1 by @dependabot[bot] in #713
  • chore(deps): bump org.junit:junit-bom from 6.0.0 to 6.0.1 by @dependabot[bot] in #715
  • chore(deps): bump org.junit.jupiter:junit-jupiter-engine from 6.0.0 to 6.0.1 by @dependabot[bot] in #714
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.15.0 to 11.17.1 by @dependabot[bot] in #731
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.15.0 to 11.17.1 by @dependabot[bot] in #730
  • chore(deps): bump cucumber.version from 7.31.0 to 7.32.0 by @dependabot[bot] in #729
  • chore(deps): bump org.scala-lang:scala-library from 2.13.17 to 2.13.18 by @dependabot[bot] in #727
  • chore(deps): bump org.wiremock:wiremock-jetty12 from 3.13.1 to 3.13.2 by @dependabot[bot] in #726
  • chore(deps): bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0 by @dependabot[bot] in #725
  • chore(deps): bump commons-io:commons-io from 2.20.0 to 2.21.0 by @dependabot[bot] in #721
  • chore(deps): bump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0 by @dependabot[bot] in #737
  • chore(deps): bump io.confluent:kafka-avro-serializer from 8.1.0 to 8.1.1 by @dependabot[bot] in #738
  • chore(deps): bump org.apache.commons:commons-text from 1.14.0 to 1.15.0 by @dependabot[bot] in #739
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.17.1 to 11.18.0 by @dependabot[bot] in #735
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.17.1 to 11.18.0 by @dependabot[bot] in #736
  • chore(deps): bump org.springframework.cloud:spring-cloud-dependencies from 2025.0.0 to 2025.1.0 by @dependabot[bot] in #732
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.18.0 to 11.19.0 by @dependabot[bot] in #742
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.18.0 to 11.19.0 by @dependabot[bot] in #741
  • chore(deps): bump cucumber.version from 7.32.0 to 7.33.0 by @dependabot[bot] in #740

New Contributors

Full Changelog: v2.3.8...v2.3.9

v2.3.8

24 Oct 15:06
6c36b32

Choose a tag to compare

What's Changed

  • fix(HttpSteps): disable chunked transfer encoding for mocked responses by @jak78 in #705
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.14.1 to 11.15.0 by @dependabot[bot] in #702
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.14.1 to 11.15.0 by @dependabot[bot] in #704

Full Changelog: v2.3.7...v2.3.8

v2.3.7

23 Oct 15:20
3a1f731

Choose a tag to compare

What's Changed

  • chore(deps): bump cucumber.version from 7.29.0 to 7.30.0 by @dependabot[bot] in #695
  • chore(deps): bump org.jacoco:jacoco-maven-plugin from 0.8.13 to 0.8.14 by @dependabot[bot] in #699
  • chore(deps-dev): bump net.java.dev.jna:jna from 5.18.0 to 5.18.1 by @dependabot[bot] in #698
  • chore(deps): bump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.1 to 3.6.2 by @dependabot[bot] in #696
  • chore(deps): bump org.opensearch.client:opensearch-rest-client from 3.2.0 to 3.3.0 by @dependabot[bot] in #697
  • Move custom extracting example logic to ExitStatus by @alexandrepa in #700
  • chore(deps): bump org.opensearch.client:opensearch-rest-client from 3.3.0 to 3.3.1 by @dependabot[bot] in #701

Full Changelog: v2.3.6...v2.3.7

v2.3.6

21 Oct 15:15
b81ed2e

Choose a tag to compare

What's Changed

  • chore(deps): bump io.confluent:kafka-avro-serializer from 8.0.0 to 8.1.0 by @dependabot[bot] in #693
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.13.1 to 11.14.1 by @dependabot[bot] in #691
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.13.1 to 11.14.1 by @dependabot[bot] in #690
  • chore(deps): bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 by @dependabot[bot] in #675
  • chore(deps): bump org.scala-lang:scala-library from 2.13.16 to 2.13.17 by @dependabot[bot] in #682
  • chore(deps): bump org.junit.jupiter:junit-jupiter-engine from 5.13.4 to 6.0.0 by @dependabot[bot] in #679
  • feat(HttpSteps): improve unhandled request error message formatting by @alexandrepa in #694
  • chore(deps): bump cucumber.version from 7.28.2 to 7.29.0 by @dependabot[bot] in #670

Full Changelog: v2.3.5...v2.3.6

v2.3.5

24 Sep 09:51
e65a2f2

Choose a tag to compare

What's Changed

  • Return the most accurate error comparison message in contains by @alexandrepa in #666

Bumps

  • chore(deps): bump org.sonatype.central:central-publishing-maven-plugin from 0.8.0 to 0.9.0 by @dependabot[bot] in #673
  • chore(deps): bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.3 to 3.12.0 by @dependabot[bot] in #671
  • chore(deps-dev): bump net.java.dev.jna:jna from 5.17.0 to 5.18.0 by @dependabot[bot] in #672
  • chore(deps): bump org.apache.maven.plugins:maven-compiler-plugin from 3.14.0 to 3.14.1 by @dependabot[bot] in #669
  • chore(deps-dev): bump org.postgresql:postgresql from 42.7.7 to 42.7.8 by @dependabot[bot] in #668
  • chore(deps): bump org.springframework.boot:spring-boot-dependencies from 3.5.5 to 3.5.6 by @dependabot[bot] in #667

Full Changelog: v2.3.4...v2.3.5

v2.3.4

18 Sep 13:34
235d859

Choose a tag to compare

What's Changed

  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.12.0 to 11.13.0 by @dependabot[bot] in #660
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.12.0 to 11.13.0 by @dependabot[bot] in #659
  • doc: Fix tzatziki-spring README.md to add the tzatziki-http dependency when required by @jak78 in #658
  • chore(deps-dev): bump org.flywaydb:flyway-core from 11.13.0 to 11.13.1 by @dependabot[bot] in #665
  • chore(deps): bump org.projectlombok:lombok from 1.18.40 to 1.18.42 by @dependabot[bot] in #664
  • chore(deps): bump com.google.guava:guava from 33.4.8-jre to 33.5.0-jre by @dependabot[bot] in #662
  • feat(EntityGraph): using EntityGraphs to fetch entities with only expected fields by @alexandrepa in #661
  • chore(deps-dev): bump org.flywaydb:flyway-database-postgresql from 11.13.0 to 11.13.1 by @dependabot[bot] in #663

Full Changelog: v2.3.3...v2.3.4