Releases: softwaremill/tapir
v1.9.9
What’s Changed
- Guard against bad zio-http Request objects, sometimes provoked by malicious requests (#3494) @swaldman
- Proposal to describe OAuth2 flows (#3490) @leoniv
- Fix Test Reports fail frequently on master (#3497) @DybekK
- Add support for pekko http in sttp client interpreter (#3493) @adamw
Dependency updates
- Update vertx-web to 4.5.2 (#3496) @softwaremill-ci
- Update armeria to 1.27.0 (#3495) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.28.0 (#3492) @softwaremill-ci
v1.9.8
What’s Changed
- [bugfix] Fix memory leak of Netty byte buffer in netty.cats server (#3489) @kciesielski
- Release netty buffers after use (#3485) @easel
- Improvements to the performance testing harness (#3484) @kciesielski
Dependency updates
- Update jsoniter-scala-core, ... to 2.27.7 (#3486) @softwaremill-ci
- Update refined to 0.11.1 (#3487) @softwaremill-ci
v1.9.7
What’s Changed
- Remove dependency on logback-classic and scala-logging where unnecessary (#3471) @hygt
IMPORTANT: This fix removes unwanted dependencies tologback-classic
andscala-logging
from some Tapir modules. This may affect your project, if it is accidentally relying on transitive dependencies. Affected backends aretapir-jdkhttp-server
and Netty-based backends. - Performance tests: Fix warm-up phase (#3479) @kciesielski
- Add Scala 3 support to sttp-mock-server (#3478) @oldstevekenobi
- Fix sttp client content-type header override (#3472) @markarasev
- Update pekko-grpc-runtime, ... to 1.0.2 (#3446) @softwaremill-ci
- Performance tests part 1 (#3434) @kciesielski
- [bugfix] Release Netty buffers (#3469) @kciesielski
- [bugfix] Close the DefaultEventExecutor on shutdown (#3460) @kciesielski
- Better error messages when can't map because a class has more than 22 fields (#3449) @adamw
- Appending multiple variants (#3438) @pramodShehan5
- [bugfix] Don't inherit encodedName (#3430) @kciesielski
- Update sbt, sbt-dependency-tree to 1.9.8 (#3403) @softwaremill-ci
- Add derivation for schemas of union types (#3425) @adamw
Dependency updates
- Update java-dogstatsd-client to 4.3.0 (#3481) @softwaremill-ci
- Update asyncapi-circe-yaml, ... to 0.7.4 (#3483) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.27.6 (#3482) @softwaremill-ci
- Update jackson-module-scala to 2.16.1 (#3480) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.27.5 (#3474) @softwaremill-ci
- Update quicklens to 1.9.7 (#3475) @softwaremill-ci
- Update jackson-module-scala to 2.15.3 (#3473) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.27.4 (#3468) @softwaremill-ci
- Update fs2-reactive-streams to 3.9.4 (#3467) @softwaremill-ci
- Update netty-all to 4.1.106.Final (#3465) @softwaremill-ci
- Update sbt-scala-native to 0.4.17 (#3466) @softwaremill-ci
- Update jwt-circe to 10.0.0 (#3461) @softwaremill-ci
- Update play-json to 3.0.2 (#3459) @softwaremill-ci
- Update zio-prelude to 1.0.0-RC22 (#3462) @softwaremill-ci
- Update client3:akka-http-backend, ... to 3.9.2 (#3456) @softwaremill-ci
- Update jwt-circe to 9.4.6 (#3455) @softwaremill-ci
- Update netty-all to 4.1.105.Final (#3458) @softwaremill-ci
- Update play-json to 2.10.4 (#3457) @softwaremill-ci
- Update cats-effect to 3.5.3 (#3454) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.27.3 (#3453) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.27.2 (#3452) @softwaremill-ci
- Update opentelemetry-api, ... to 1.34.1 (#3451) @softwaremill-ci
- Update upickle to 3.1.4 (#3450) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.5.2 (#3444) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.27.1 (#3442) @softwaremill-ci
- Update opentelemetry-api, ... to 1.34.0 (#3443) @softwaremill-ci
- Update http4s-circe, http4s-core, ... to 0.23.25 (#3440) @softwaremill-ci
- Update zio, zio-streams, zio-test, ... to 2.0.21 (#3439) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.27.0 (#3436) @softwaremill-ci
- Update http4s-blaze-client to 0.23.16 (#3437) @softwaremill-ci
- Update sbt-projectmatrix to 0.9.2 (#3435) @softwaremill-ci
- Update http4s-blaze-client, ... to 0.23.16 (#3433) @softwaremill-ci
- Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 (#3432) @softwaremill-ci
- Update iron to 2.4.0 (#3431) @softwaremill-ci
- Update play, play-netty-server, ... to 3.0.1 (#3417) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.26.2 (#3429) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.26.1 (#3427) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.26.0 (#3426) @softwaremill-ci
- Update gatling-charts-highcharts to 3.10.3 (#3421) @softwaremill-ci
v1.9.6
What’s Changed
- Updated Http4sWebSockets. (#3393) @kamilkloch
- Added CORSInterceptor example for PekkoServer (#3423) @amorfis
- Use full names in macro to avoid collision - fixes #3407 (#3413) @ivan-klass
- Most examples moved from Scala 2 -> Scala 3 (#3404) @amorfis
Dependency updates
- Update gatling-test-framework to 3.10.3 (#3420) @softwaremill-ci
- Update magnolia to 1.1.8 (#3419) @softwaremill-ci
- Update netty-reactive-streams-http to 3.0.2 (#3418) @softwaremill-ci
- Update play, play-akka-http-server, ... to 2.9.1 (#3414) @softwaremill-ci
- Update gatling-test-framework to 3.10.2 (#3415) @softwaremill-ci
- Update gatling-sbt to 4.7.0 (#3409) @softwaremill-ci
- Update gatling-charts-highcharts to 3.10.0 (#3411) @softwaremill-ci
- Update netty-all to 4.1.104.Final (#3406) @softwaremill-ci
- Update vertx-web to 4.5.1 (#3400) @softwaremill-ci
- Update zio, zio-streams, zio-test, ... to 2.0.20 (#3398) @softwaremill-ci
- Update netty-all to 4.1.103.Final (#3399) @softwaremill-ci
- Update magnolia to 1.1.7 (#3395) @softwaremill-ci
- Update netty-all to 4.1.102.Final (#3396) @softwaremill-ci
v1.9.5
What’s Changed
- Fix Json Schema meta schema ID (#3394) @dvgica
- Fix the hidden schema annotation for Scala 3 (#3392) @adamw
- Support MaxContentLength for zio-http, fix file upload (#3391) @kciesielski
- Add date-time support to codegen (#3390) @markussammallahti
- MaxContentLength for Pekko and Akka, Play, Vertx (#3375) @kciesielski
- When calculating the client ip, allow the possibility of the address to be null (#3389) @adamw
- fix(server): proper path segment decoding (#3386) @finalchild
- Fix Circe Yaml (#3388) @zarthross
- Fix codegen method parsing (#3387) @markussammallahti
- Fix: ContentType is not set for multipart file upload in VertxServer (#3383) @yoskhdia
- MaxContentLength for http4s, jdkhttp, play (#3374) @kciesielski
- fix doc bytes (#3372) @timzaak
Dependency updates
- Update opentelemetry-api, ... to 1.33.0 (#3381) @softwaremill-ci
- Update armeria to 1.26.4 (#3380) @softwaremill-ci
- Update play-ahc-ws-standalone to 2.2.5 (#3376) @softwaremill-ci
- Update sbt-twirl to 2.0.3 (#3379) @softwaremill-ci
- Update netty-reactive-streams-http to 3.0.1 (#3378) @softwaremill-ci
- Update play-ahc-ws-standalone to 3.0.1 (#3377) @softwaremill-ci
v1.9.4
MaxContentLength for Netty
All Netty backends now support restricting maximum request body length. This per-endpoint protection ensures that no more bytes are loaded from body than given limit. Exceeding the limit results in HTTP 413 Payload Too Large response. For details see https://tapir.softwaremill.com/en/latest/endpoint/security.html#limiting-request-body-length for details.
More backends will support this feature in upcoming versions.
- If you have been using the global
NettyConfig.maxContentLength
setting, it's no longer available. Please switch to the new per-endpoint annotation. NettyConfig.defaultNoStreaming
has been removed, useNettyConfig.default
Removed ZIO 1.x modules
Tapir integrations for zio
, zio-json
, zio-http
, etc. are now available only for ZIO 2.x
What’s Changed
- Remove test leftovers (#3370) @kciesielski
- Remove zio1 support (#3369) @kciesielski
- Adjust Play 2.9 to changes in RequestBody (#3368) @kciesielski
- MaxContentLength support for Netty pt 2 (#3337) @kciesielski
- Update pekko-discovery, pekko-slf4j, ... to 1.0.2 (#3363) @softwaremill-ci
- separated test report (#3351) @micsza
- Fix automerge - use squash method. (#3358) @micsza
- use-repo-token-for-rebase-cmd-dispatch (#3353) @micsza
Dependency updates
- Update json4s-core, json4s-jackson to 4.0.7 (#3365) @softwaremill-ci
- Update swagger-ui to 5.10.3 (#3364) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.25.0 (#3362) @softwaremill-ci
- Update logback-classic to 1.4.14 (#3361) @softwaremill-ci
- Update zio-http to 3.0.0-RC4 (#3357) @softwaremill-ci
v1.9.3
Play 2.9 support
Recently Tapir switched its Play modules to version 3. This versions brings support to Play 2.9. Please read the new docs to learn how to configure the dependencies: https://tapir.softwaremill.com/en/latest/server/play.html
Note that tapir-play29-server
works only for Scala 2.13, but tapir-play29-client
and tapir-json-play29
are available for Scala 2.12, 2.13, and 3.
What’s Changed
- Add module with Play 2.9 support (#3313) @cptwunderlich
- Update optionallyAutoPong. (#3350) @kamilkloch
- Replace mergify with GHAs (#3346) @micsza
- Revert "Pretty layout for tests results." (#3352) @micsza
- Pretty layout for tests results. (#3348) @micsza
- Add example and warning for comma-separated query input values (#3344) @andreazube
- [CI] Tune test timeouts (#3342) @kciesielski
- Improve Http4sWebSockets.pipeToBody (#3340) @kamilkloch
Dependency updates
- Update logback-classic to 1.4.13 (#3349) @softwaremill-ci
- Update asyncapi-circe-yaml, ... to 0.7.3 (#3341) @softwaremill-ci
- Update scalafmt-core to 3.7.17 (#3324) @softwaremill-ci
v1.9.2
What’s Changed
- MaxContentLength support (streaming) (#3319) @kciesielski
- [CI] Compile tests in compileScoped (#3336) @kciesielski
- Use setup-node to install npm (#3333) @kciesielski
- make schema nullable instead of adding null-types into the apispec schema (#3331) @cornerman
Dependency updates
- Update sbt-twirl to 2.0.2 (#3323) @softwaremill-ci
- Update jwt-circe to 9.4.5 (#3334) @softwaremill-ci
- Update sbt-assembly to 2.1.5 (#3330) @softwaremill-ci
- Update armeria to 1.26.3 (#3329) @softwaremill-ci
- Update vertx-web to 4.5.0 (#3320) @softwaremill-ci
- Update http4s-circe, http4s-core, ... to 0.23.24 (#3318) @softwaremill-ci
- Update opentelemetry-api, ... to 1.32.0 (#3317) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.5.1 (#3311) @softwaremill-ci
- Update netty-all to 4.1.101.Final (#3310) @softwaremill-ci
v1.9.1
What’s Changed
- #3315 - upgrade prometheus client java to 1.1.0 (#3325) @gastonschabas
- Update docs for sbt-assembly config (#3328) @BranislavLazic
- Properly handle independent customisation of referenced schemas, where one is an option (#3327) @adamw
- Codegen any type support (#3314) @markussammallahti
- jdkhttp-server: Write multipart parts bigger than threshold to files (#3227) @jnatten
v1.9.0
New Loom-based backends
Backends based on Loom (Java virtual threads) have been migrated from the tapir-loom project, and are now a part of the main distribution. They require JDK 21. Read more:
Breaking changes
DecodeFailureHandler
DecodeFailureHandler
has become DecodeFailureHandler[F]
to allow effectful error handling. If you're using custom handlers, update them to the new apply
signature:
trait DecodeFailureHandler[F[_]] {
def apply(ctx: DecodeFailureContext)(implicit monad: MonadError[F]): F[Option[ValuedEndpointOutput[_]]]
}
RejectHandler
RejectHandler.apply
no longer takes a Failure
, but a RejectContext
, which encapsulates the failure, and the ServerRequest
as well, allowing using more information for your rejection handling.
trait RejectHandler[F[_]] {
def apply(ctx: RejectContext)(implicit monad: MonadError[F]): F[Option[ValuedEndpointOutput[_]]]
}
Full changelog
- [bugfix] Fix blocking implementation for CatsMonadAsyncError (#3309) @kciesielski
- Add RejectContext to RejectHandler. (#3285) @Grryum
- [tests] Implement serverWithStop in all test interpreters (#3306) @kciesielski
- Add type parameter F[_] to DecodeFailureHandler. (#3281) @Grryum
- Migrate servers from tapir-loom (#3304) @kciesielski
- Fix zio-interop-reactivestreams dependency (#3303) @kciesielski
- Support graceful shutdown in Netty server (#3294) @kciesielski
- syntactic sugar: add Codec.mapEither (#3299) @jnicoulaud-ledger
- feat: Update Iron to v2.3.0 (#3298) @Iltotore
Dependency updates
- Update client3:akka-http-backend, ... to 3.9.1 (#3308) @softwaremill-ci
- Update armeria to 1.26.2 (#3307) @softwaremill-ci
- Update iron to 2.3.0 (#3293) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.5.0 (#3305) @softwaremill-ci
- Update zio, zio-streams, zio-test, ... to 2.0.19 (#3302) @softwaremill-ci
- Update fs2-reactive-streams to 3.9.3 (#3301) @softwaremill-ci
- Update finatra-http-server, inject-app, ... to 23.11.0 (#3295) @softwaremill-ci
- Update play-json to 3.0.1 (#3300) @softwaremill-ci