A REST request routing layer for AWS lambda handlers written in Kotlin

Overview

Build Status Coverage Status

lambda-kotlin-request-router

A REST request routing layer for AWS lambda handlers written in Kotlin.

Goal

We came up lambda-kotlin-request-router to reduce boilerplate code when implementing a REST API handlers on AWS Lambda.

The library addresses the following aspects:

  • serialization and deserialization
  • provide useful extensions and abstractions for API Gateway request and response types
  • writing REST handlers as functions
  • ease implementation of cross cutting concerns for handlers
  • ease (local) testing of REST handlers

Reference

Getting Started

To use the core module we need the following:

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'io.moia.lambda-kotlin-request-router:router:0.9.7' 
}

Having this we can now go ahead and implement our first handler. We can implement a request handler as a simple function. Request and response body are deserialized and serialized for you.

import io.moia.router.Request
import io.moia.router.RequestHandler
import io.moia.router.ResponseEntity
import io.moia.router.Router.Companion.router

class MyRequestHandler : RequestHandler() {

    override val router = router {
        GET("/some") { r: Request<String> -> ResponseEntity.ok(MyResponse(r.body)) }
    }
}

Content Negotiation

The router DSL allows for configuration of the content types a handler

  • produces (according to the request's Accept header)
  • consumes (according to the request's Content-Type header)

The router itself carries a default for both values.

var defaultConsuming = setOf("application/json")
var defaultProducing = setOf("application/json")

These defaults can be overridden on the router level or on the handler level to specify the content types most of your handlers consume and produce.

router {
    defaultConsuming = setOf("application/json")
    defaultProducing = setOf("application/json")
}

Exceptions from this default can be configured on a handler level.

router {
    POST("/some") { r: Request<String> -> ResponseEntity.ok(MyResponse(r.body)) }
        .producing("application/json")
        .consuming("application/json")
}

Filters

Filters are a means to add cross-cutting concerns to your request handling logic outside a handler function. Multiple filters can be used by composing them.

override val router = router {
        filter = loggingFilter().then(mdcFilter())

        GET("/some", controller::get)
    }

    private fun loggingFilter() = Filter { next -> {
        request ->
            log.info("Handling request ${request.httpMethod} ${request.path}")
            next(request) }
    }

    private fun mdcFilter() = Filter { next -> {
        request ->
            MDC.put("requestId", request.requestContext?.requestId)
            next(request) }
    }
}

Permissions

Permission handling is a cross-cutting concern that can be handled outside the regular handler function. The routing DSL also supports expressing required permissions:

override val router = router {
    GET("/some", controller::get).requiringPermissions("A_PERMISSION", "A_SECOND_PERMISSION")
}

For the route above the RequestHandler checks if any of the listed permissions are found on a request.

Additionally we need to configure a strategy to extract permissions from a request on the RequestHandler. By default a RequestHandler is using the NoOpPermissionHandler which always decides that any required permissions are found. The JwtPermissionHandler can be used to extract permissions from a JWT token found in a header.

class TestRequestHandlerAuthorization : RequestHandler() {
    override val router = router {
       GET("/some", controller::get).requiringPermissions("A_PERMISSION")
    }

    override fun permissionHandlerSupplier(): (r: APIGatewayProxyRequestEvent) -> PermissionHandler =
        { JwtPermissionHandler(
            request = it,
            //the claim to use to extract the permissions - defaults to `scope`
            permissionsClaim = "permissions",
            //separator used to separate permissions in the claim - defaults to ` `
            permissionSeparator = ","
        ) }
}

Given the code above the token is extracted from the Authorization header. We can also choose to extract the token from a different header:

JwtPermissionHandler(
    accessor = JwtAccessor(
        request = it,
        authorizationHeaderName = "custom-auth")
)

⚠️ The implementation here assumes that JWT tokens are validated on the API Gateway. So we do no validation of the JWT token.

Protobuf support

The module router-protobuf helps to ease implementation of handlers that receive and return protobuf messages.

implementation 'io.moia.lambda-kotlin-request-router:router-protobuf:0.9.7'

A handler implementation that wants to take advantage of the protobuf support should inherit from ProtoEnabledRequestHandler.

class TestRequestHandler : ProtoEnabledRequestHandler() {

        override val router = router {
            defaultProducing = setOf("application/x-protobuf")
            defaultConsuming = setOf("application/x-protobuf")

            defaultContentType = "application/x-protobuf"

            GET("/some-proto") { _: Request<Unit> -> ResponseEntity.ok(Sample.newBuilder().setHello("Hello").build()) }
                .producing("application/x-protobuf", "application/json")
            POST("/some-proto") { r: Request<Sample> -> ResponseEntity.ok(r.body) }
            GET<Unit, Unit>("/some-error") { _: Request<Unit> -> throw ApiException("boom", "BOOM", 400) }
        }

        override fun createErrorBody(error: ApiError): Any =
            io.moia.router.proto.sample.SampleOuterClass.ApiError.newBuilder()
                .setMessage(error.message)
                .setCode(error.code)
                .build()

        override fun createUnprocessableEntityErrorBody(errors: List<UnprocessableEntityError>): Any =
            errors.map { error ->
                io.moia.router.proto.sample.SampleOuterClass.UnprocessableEntityError.newBuilder()
                    .setMessage(error.message)
                    .setCode(error.code)
                    .setPath(error.path)
                    .build()
            }
    }

Make sure you override createErrorBody and createUnprocessableEntityErrorBody to map error type to your proto error messages.

Open API validation support

The module router-openapi-request-validator can be used to validate an interaction against an OpenAPI specification. Internally we use the swagger-request-validator to achieve this.

This library validates:

  • if the resource used is documented in the OpenApi specification
  • if request and response can be successfully validated against the request and response schema
  • ...
testImplementation 'io.moia.lambda-kotlin-request-router:router-openapi-request-validator:0.9.7'
    val validator = OpenApiValidator("openapi.yml")

    @Test
    fun `should handle and validate request`() {
        val request = GET("/tests")
            .withHeaders(mapOf("Accept" to "application/json"))

        val response = testHandler.handleRequest(request, mockk())

        validator.assertValidRequest(request)
        validator.assertValidResponse(request, response)
        validator.assertValid(request, response)
    }

If you want to validate all the API interactions in your handler tests against the API specification you can use io.moia.router.openapi.ValidatingRequestRouterWrapper. This a wrapper around your RequestHandler which transparently validates request and response.

    private val validatingRequestRouter = ValidatingRequestRouterWrapper(TestRequestHandler(), "openapi.yml")
    
    @Test
    fun `should return response on successful validation`() {
        val response = validatingRequestRouter
            .handleRequest(GET("/tests").withAcceptHeader("application/json"), mockk())

        then(response.statusCode).isEqualTo(200)
    }
Comments
  • Allow parameters in content type header

    Allow parameters in content type header

    For the partner API we sometimes get the charset parameter in the content type header (application/json; charset=UTF-8). This change allows the JSON deserialisation of such requests.

    opened by y-arslan 4
  • Bump assertk-jvm from 0.12 to 0.23 in /router

    Bump assertk-jvm from 0.12 to 0.23 in /router

    Bumps assertk-jvm from 0.12 to 0.23.

    Release notes

    Sourced from assertk-jvm's releases.

    v0.23

    Changed

    • Minimum supported kotlin version is 1.4.0
    • Multiplatform artifacts are published as a single artifact. You can now just write
      sourceSets {
        commonTest {
          dependencies {
             implementation "com.willowtreeapps.assertk:assertk:..."
          }
        }
      }
      

    instead of defining one for each platform.

    • Added support for the Kotlin/JS IR compiler
    • Added optional displayActual function to assertThat as an alternative to .toString() for external types
    • Moved most String assertions to CharSequence

    Added

    • Added prop function with KProperty1 argument.
    • Added containsExactlyInAnyOrder assertion for Iterable and primitive arrays
    • Added initial Coroutines artifact (additional support planned for the future)

    Deprecated

    • Deprecated prop function with KCallable argument. Use the new overload with type-safe KProperty1 argument or another overload with explicit name and lambda.

    Fixed

    • Primitive array 'contains' methods now work with NaN. ex:
      assertThat(floatArrayOf(Float.Nan)).contains(Float.NaN)
      
      will pass when it failed before.
    • Fixes a bug causing failures to sometimes be dropped in a nested assertion context

    v0.22

    Added

    • Add multi-value support for Assert<String>.contains() and doesNotContain()
    • Add isEqualByComparingTo to compare objects by compareTo instead of equals this is useful for cases like BigDecimal where equals would fail because of differing precision.
    • Add containsOnly for arrays.

    Changed

    • Minimum supported kotlin version is 1.3.70
    • Updated opentest4j to 1.2.0. This changes the multiple assertion message to include each exception class name.
    • Moved containsAll, containsNone, and containsOnly from Collection to Iterable to make them a bit more flexible.
    • containsAll, containsNone, and containsOnly error messages now include the expected and actual lists.
    • Unwrap exceptions thrown by prop(callable: KCallable<*>) to make them more clear.
    • Add all exception stacktraces to a MultipleFailuresError with Throwable.addSurpressed on the jvm (used when
    Changelog

    Sourced from assertk-jvm's changelog.

    [0.23] 2020-09-01

    Changed

    • Minimum supported kotlin version is 1.4.0
    • Multiplatform artifacts are published as a single artifact. You can now just write
      sourceSets {
        commonTest {
          dependencies {
             implementation "com.willowtreeapps.assertk:assertk:..."
          }
        }
      }
      

    instead of defining one for each platform.

    • Added support for the Kotlin/JS IR compiler
    • Added optional displayActual function to assertThat as an alternative to .toString() for external types
    • Moved most String assertions to CharSequence

    Added

    • Added prop function with KProperty1 argument.
    • Added containsExactlyInAnyOrder assertion for Iterable and primitive arrays
    • Added initial Coroutines artifact (additional support planned for the future)

    Deprecated

    • Deprecated prop function with KCallable argument. Use the new overload with type-safe KProperty1 argument or another overload with explicit name and lambda.

    Fixed

    • Primitive array 'contains' methods now work with NaN. ex:
      assertThat(floatArrayOf(Float.Nan)).contains(Float.NaN)
      
      will pass when it failed before.
    • Fixes a bug causing failures to sometimes be dropped in a nested assertion context

    [0.22] 2020-03-11

    Added

    • Add multi-value support for Assert<String>.contains() and doesNotContain()
    • Add isEqualByComparingTo to compare objects by compareTo instead of equals this is useful for cases like BigDecimal where equals would fail because of differing precision.
    • Add containsOnly for arrays.

    Changed

    • Minimum supported kotlin version is 1.3.70
    • Updated opentest4j to 1.2.0. This changes the multiple assertion message to include each exception class name.
    • Moved containsAll, containsNone, and containsOnly from Collection to Iterable to make them a bit more flexible.
    • containsAll, containsNone, and containsOnly error messages now include the expected and actual lists.
    Commits
    • 0960a0b Release v0.23
    • d822528 Merge pull request #316 from willowtreeapps/contains-exactly-in-any-order
    • 31d69f6 Adds containsExactlyInAnyOrder to iterable and primitive / float arrays.
    • 9c5897b Update detekt
    • 8aef431 Don't throw MultipleFailuresError if failure list is empty (#315)
    • 18a6bed Allow override of assertion context's error message display. (#313)
    • 051cec0 Fix subproject versioning
    • 4602c5a Custom implementation for float/double array contains (#312)
    • e4288e3 Update kotlin to 1.4.0 (#311)
    • 40f640b Convert Assert<String> extensions into Assert<CharSequence> extensions. (#309)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request during working hours.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump assertk-jvm from 0.12 to 0.23 in /router-protobuf

    Bump assertk-jvm from 0.12 to 0.23 in /router-protobuf

    Bumps assertk-jvm from 0.12 to 0.23.

    Release notes

    Sourced from assertk-jvm's releases.

    v0.23

    Changed

    • Minimum supported kotlin version is 1.4.0
    • Multiplatform artifacts are published as a single artifact. You can now just write
      sourceSets {
        commonTest {
          dependencies {
             implementation "com.willowtreeapps.assertk:assertk:..."
          }
        }
      }
      

    instead of defining one for each platform.

    • Added support for the Kotlin/JS IR compiler
    • Added optional displayActual function to assertThat as an alternative to .toString() for external types
    • Moved most String assertions to CharSequence

    Added

    • Added prop function with KProperty1 argument.
    • Added containsExactlyInAnyOrder assertion for Iterable and primitive arrays
    • Added initial Coroutines artifact (additional support planned for the future)

    Deprecated

    • Deprecated prop function with KCallable argument. Use the new overload with type-safe KProperty1 argument or another overload with explicit name and lambda.

    Fixed

    • Primitive array 'contains' methods now work with NaN. ex:
      assertThat(floatArrayOf(Float.Nan)).contains(Float.NaN)
      
      will pass when it failed before.
    • Fixes a bug causing failures to sometimes be dropped in a nested assertion context

    v0.22

    Added

    • Add multi-value support for Assert<String>.contains() and doesNotContain()
    • Add isEqualByComparingTo to compare objects by compareTo instead of equals this is useful for cases like BigDecimal where equals would fail because of differing precision.
    • Add containsOnly for arrays.

    Changed

    • Minimum supported kotlin version is 1.3.70
    • Updated opentest4j to 1.2.0. This changes the multiple assertion message to include each exception class name.
    • Moved containsAll, containsNone, and containsOnly from Collection to Iterable to make them a bit more flexible.
    • containsAll, containsNone, and containsOnly error messages now include the expected and actual lists.
    • Unwrap exceptions thrown by prop(callable: KCallable<*>) to make them more clear.
    • Add all exception stacktraces to a MultipleFailuresError with Throwable.addSurpressed on the jvm (used when
    Changelog

    Sourced from assertk-jvm's changelog.

    [0.23] 2020-09-01

    Changed

    • Minimum supported kotlin version is 1.4.0
    • Multiplatform artifacts are published as a single artifact. You can now just write
      sourceSets {
        commonTest {
          dependencies {
             implementation "com.willowtreeapps.assertk:assertk:..."
          }
        }
      }
      

    instead of defining one for each platform.

    • Added support for the Kotlin/JS IR compiler
    • Added optional displayActual function to assertThat as an alternative to .toString() for external types
    • Moved most String assertions to CharSequence

    Added

    • Added prop function with KProperty1 argument.
    • Added containsExactlyInAnyOrder assertion for Iterable and primitive arrays
    • Added initial Coroutines artifact (additional support planned for the future)

    Deprecated

    • Deprecated prop function with KCallable argument. Use the new overload with type-safe KProperty1 argument or another overload with explicit name and lambda.

    Fixed

    • Primitive array 'contains' methods now work with NaN. ex:
      assertThat(floatArrayOf(Float.Nan)).contains(Float.NaN)
      
      will pass when it failed before.
    • Fixes a bug causing failures to sometimes be dropped in a nested assertion context

    [0.22] 2020-03-11

    Added

    • Add multi-value support for Assert<String>.contains() and doesNotContain()
    • Add isEqualByComparingTo to compare objects by compareTo instead of equals this is useful for cases like BigDecimal where equals would fail because of differing precision.
    • Add containsOnly for arrays.

    Changed

    • Minimum supported kotlin version is 1.3.70
    • Updated opentest4j to 1.2.0. This changes the multiple assertion message to include each exception class name.
    • Moved containsAll, containsNone, and containsOnly from Collection to Iterable to make them a bit more flexible.
    • containsAll, containsNone, and containsOnly error messages now include the expected and actual lists.
    Commits
    • 0960a0b Release v0.23
    • d822528 Merge pull request #316 from willowtreeapps/contains-exactly-in-any-order
    • 31d69f6 Adds containsExactlyInAnyOrder to iterable and primitive / float arrays.
    • 9c5897b Update detekt
    • 8aef431 Don't throw MultipleFailuresError if failure list is empty (#315)
    • 18a6bed Allow override of assertion context's error message display. (#313)
    • 051cec0 Fix subproject versioning
    • 4602c5a Custom implementation for float/double array contains (#312)
    • e4288e3 Update kotlin to 1.4.0 (#311)
    • 40f640b Convert Assert<String> extensions into Assert<CharSequence> extensions. (#309)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request during working hours.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump assertj-core from 3.17.2 to 3.18.1 in /router-openapi-request-validator

    Bump assertj-core from 3.17.2 to 3.18.1 in /router-openapi-request-validator

    Bumps assertj-core from 3.17.2 to 3.18.1.

    Commits
    • 5cbaded [maven-release-plugin] prepare release assertj-core-3.18.1
    • 4e04c29 Make isElementOfCustomAssert protected
    • e78f410 Fix error mesage of ShouldNotHaveSameClass and test naming convention of same...
    • 4dca4e7 Bump verify.bndrun junit version
    • 4b500d2 Add map(…) and flatMap(…) to iterable assertions as aliases of extracting/fla...
    • 41a6c42 Code cleanup and minor test refactoring
    • c11e82f Bump verify.bndrun assertj-core version
    • 1b823e3 Bump byte-buddy.version from 1.10.17 to 1.10.18 (#2031)
    • 0f10304 Bump junit-jupiter.version from 5.6.2 to 5.6.3
    • b4b8b58 Bump mockito.version from 3.5.15 to 3.6.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request during working hours.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump org.jmailen.kotlinter from 3.9.0 to 3.11.1

    Bump org.jmailen.kotlinter from 3.9.0 to 3.11.1

    Bumps org.jmailen.kotlinter from 3.9.0 to 3.11.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 2
  • Bump org.jmailen.kotlinter from 3.3.0 to 3.5.1

    Bump org.jmailen.kotlinter from 3.3.0 to 3.5.1

    Bumps org.jmailen.kotlinter from 3.3.0 to 3.5.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump jvm from 1.4.31 to 1.5.30

    Bump jvm from 1.4.31 to 1.5.30

    Bumps jvm from 1.4.31 to 1.5.30.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump assertj-core from 3.11.1 to 3.18.1

    Bump assertj-core from 3.11.1 to 3.18.1

    Bumps assertj-core from 3.11.1 to 3.18.1.

    Commits
    • 5cbaded [maven-release-plugin] prepare release assertj-core-3.18.1
    • 4e04c29 Make isElementOfCustomAssert protected
    • e78f410 Fix error mesage of ShouldNotHaveSameClass and test naming convention of same...
    • 4dca4e7 Bump verify.bndrun junit version
    • 4b500d2 Add map(…) and flatMap(…) to iterable assertions as aliases of extracting/fla...
    • 41a6c42 Code cleanup and minor test refactoring
    • c11e82f Bump verify.bndrun assertj-core version
    • 1b823e3 Bump byte-buddy.version from 1.10.17 to 1.10.18 (#2031)
    • 0f10304 Bump junit-jupiter.version from 5.6.2 to 5.6.3
    • b4b8b58 Bump mockito.version from 3.5.15 to 3.6.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request during working hours.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump jackson-module-kotlin from 2.9.8 to 2.12.0

    Bump jackson-module-kotlin from 2.9.8 to 2.12.0

    Bumps jackson-module-kotlin from 2.9.8 to 2.12.0.

    Commits
    • 64b7c45 [maven-release-plugin] prepare release jackson-module-kotlin-2.12.0
    • f57aa40 Prepare for 2.12.0
    • b412aad back to snapshots
    • c6fece5 [maven-release-plugin] prepare for next development iteration
    • 08c9bd4 [maven-release-plugin] prepare release jackson-module-kotlin-2.12.0-rc2
    • 737464d prepare for 2.12.0-rc2
    • 75d810e update release notes
    • 3be4b06 Fix #385: add module-info.class using Moditect plugin (#393)
    • 5eda19d minor update of CREDITS-2.x
    • a4dc71f Backport license in 2.12 in case we want to include it via build
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request during working hours.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump protobuf-java-util from 3.13.0 to 3.14.0 in /router-protobuf

    Bump protobuf-java-util from 3.13.0 to 3.14.0 in /router-protobuf

    Bumps protobuf-java-util from 3.13.0 to 3.14.0.

    Release notes

    Sourced from protobuf-java-util's releases.

    Protocol Buffers v3.14.0

    Protocol Compiler

    • The proto compiler no longer requires a .proto filename when it is not generating code.
    • Added flag --deterministic_output to protoc --encode=....
    • Fixed deadlock when using google.protobuf.Any embedded in aggregate options.

    C++

    • Arenas are now unconditionally enabled. cc_enable_arenas no longer has any effect.
    • Removed inlined string support, which is incompatible with arenas.
    • Fix a memory corruption bug in reflection when mixing optional and non-optional fields.
    • Make SpaceUsed() calculation more thorough for map fields.
    • Add stack overflow protection for text format with unknown field values.
    • FieldPath::FollowAll() now returns a bool to signal if an out-of-bounds error was encountered.
    • Performance improvements for Map.
    • Minor formatting fix when dumping a descriptor to .proto format with DebugString.
    • UBSAN fix in RepeatedField (#2073).
    • When running under ASAN, skip a test that makes huge allocations.
    • Fixed a crash that could happen when creating more than 256 extensions in a single message.
    • Fix a crash in BuildFile when passing in invalid descriptor proto.
    • Parser security fix when operating with CodedInputStream.
    • Warn against the use of AllowUnknownExtension.
    • Migrated to C++11 for-range loops instead of index-based loops where possible. This fixes a lot of warnings when compiling with -Wsign-compare.
    • Fix segment fault for proto3 optional (#7805)
    • Adds a CMake option to build libprotoc separately (#7949)

    Java

    • Bugfix in mergeFrom() when a oneof has multiple message fields.
    • Fix RopeByteString.RopeInputStream.read() returning -1 when told to read 0 bytes when not at EOF.
    • Redefine remove(Object) on primitive repeated field Lists to avoid autoboxing.
    • Support "\u" escapes in textformat string literals.
    • Trailing empty spaces are no longer ignored for FieldMask.
    • Fix FieldMaskUtil.subtract to recursively remove mask.
    • Mark enums with @java.lang.Deprecated if the proto enum has option deprecated = true;.
    • Adding forgotten duration.proto to the lite library (#7738)

    Python

    • Print google.protobuf.NullValue as null instead of "NULL_VALUE" when it is used outside WKT Value/Struct.
    • Fix bug occurring when attempting to deep copy an enum type in python 3.
    • Add a setuptools extension for generating Python protobufs (#7783)
    Commits
    • 2514f0b Removed protoc-artifacts/target directory
    • f3192d6 Update protobuf version
    • 8630972 Updated CHANGES.txt to add #8035
    • e91922a Additional test
    • e57f761 Fix parsing negative Int32Value that crosses segment boundary
    • 1b851b3 Update protobuf version
    • 129a5ed Updated CHANGES.txt to include #7928
    • 99149ba Fix PyUnknownFields memory leak (#7928)
    • 4928583 Updated CHANGES.txt for the 3.14.0 release
    • fbbe11a Reintroduced definitions for PHP GeneratedClassName() functions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request during working hours.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump mockk from 1.10.0 to 1.10.4

    Bump mockk from 1.10.0 to 1.10.4

    Bumps mockk from 1.10.0 to 1.10.4.

    Release notes

    Sourced from mockk's releases.

    v1.10.4

    Restored jdk8 compatibility without needing a different version and improved Kotlin 1.3 compatibility.

    Jdk8-compliant build for 1.10.3

    No release notes provided.

    v1.10.3

    • upgrade to 1.4.20
    • issue #352 prevent slots from being used when verifying multiple calls
    • issue #510 changed the answers for collections to return a new instance every time
    • issue #315: Allow to combine @SpyK with @InjectMockKs
    • PR #518 mockkStatic hard reference support
    Commits
    • 6467c11 Release 1.10.4
    • 38b3017 Changed all 1.8 strings to the JavaVersion property
    • 529093c Merge pull request #551 from chao2zhang/patch-1
    • 4549213 Update README.md
    • 9b2f345 Update default.html
    • e64e17e Update README.md
    • 26569b1 Changed the function reference to a lambda for compatibility with kotlin 1.3.*
    • 61eb84c Restored sourceCompatibility and targetCompatibility to fix jdk version issues
    • e2da3e3 Update default.html
    • 5fded05 Removed changelog
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request during working hours.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump protoc from 3.21.10 to 3.21.12

    Bump protoc from 3.21.10 to 3.21.12

    Bumps protoc from 3.21.10 to 3.21.12.

    Commits
    • f0dc78d Updating version.json and repo version numbers to: 21.12
    • 7b0ca69 Updated release branch to latest upb. (#11258)
    • 7c123c4 Merge pull request #11201 from protocolbuffers/21.x-202212080033
    • 44eafb2 Update version.json to: 21.12-dev
    • aea4a27 Updating changelog
    • ffe65a5 Merge pull request #11197 from protocolbuffers/21.x-202212071935
    • a474c5b Updating version.json and repo version numbers to: 21.11
    • c0bc0cf Merge pull request #11196 from ericsalo/21.x
    • 9d17e97 sync with current 21.x upb
    • d024e3b Merge pull request #11118 from protocolbuffers/deannagarcia-patch-12
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump slf4j-api from 2.0.5 to 2.0.6

    Bump slf4j-api from 2.0.5 to 2.0.6

    Bumps slf4j-api from 2.0.5 to 2.0.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump protobuf-java-util from 3.21.10 to 3.21.12

    Bump protobuf-java-util from 3.21.10 to 3.21.12

    Bumps protobuf-java-util from 3.21.10 to 3.21.12.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump org.jmailen.kotlinter from 3.12.0 to 3.13.0

    Bump org.jmailen.kotlinter from 3.12.0 to 3.13.0

    Bumps org.jmailen.kotlinter from 3.12.0 to 3.13.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump protobuf-java from 3.21.10 to 3.21.12

    Bump protobuf-java from 3.21.10 to 3.21.12

    Bumps protobuf-java from 3.21.10 to 3.21.12.

    Commits
    • f0dc78d Updating version.json and repo version numbers to: 21.12
    • 7b0ca69 Updated release branch to latest upb. (#11258)
    • 7c123c4 Merge pull request #11201 from protocolbuffers/21.x-202212080033
    • 44eafb2 Update version.json to: 21.12-dev
    • aea4a27 Updating changelog
    • ffe65a5 Merge pull request #11197 from protocolbuffers/21.x-202212071935
    • a474c5b Updating version.json and repo version numbers to: 21.11
    • c0bc0cf Merge pull request #11196 from ericsalo/21.x
    • 9d17e97 sync with current 21.x upb
    • d024e3b Merge pull request #11118 from protocolbuffers/deannagarcia-patch-12
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump slf4j-simple from 2.0.5 to 2.0.6

    Bump slf4j-simple from 2.0.5 to 2.0.6

    Bumps slf4j-simple from 2.0.5 to 2.0.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
Releases(0.9.16)
Owner
MOIA GmbH - Open Source
MOIA GmbH - Open Source
Allows you to use AWS KMS asymmetric keys as PGP/GPG keys.

KMS for PGP/GPG This tool allows you to use AWS KMS asymmetric keys as if they were PGP/GPG keys. (Only for signatures for now.) This can be useful if

Stojan Dimitrovski 8 Oct 21, 2022
This library is created to make files uploading and downloading on Aws easier

S3Manager - aws files uploading library This library is created to make files uploading and downloading on Aws easier Features Easy to use Single/mult

Rajesh Khuti 0 Apr 30, 2022
Android app to fetch closed pull request of any public repo

Pullr Android app to fetch closed pull request of any public repo ?? Features Co

Sonu Sourav 2 Sep 17, 2022
This library handles conversion between Request Params and JPA Specification.

Spring Jpa Magic Filter This library handles conversion between spring rest Request Params and JPA Specification. It can be considered a simpler alter

Verissimo Joao Ribeiro 4 Jan 12, 2022
A demo project which demonstrates the work of javax.servlet.Filter capable of escaping / modifying / removing a part of JSON request based on specified criteria.

Replace Filter Demo A demo project which demonstrates the work of javax.servlet.Filter capable of escaping / modifying / removing a part of JSON reque

Vlad Krava 1 Jan 17, 2022
🪟 Pluggable Ktor plugin to implement Sentry for error handling and request contexts

?? Ktor Plugin for Sentry Pluggable Ktor plugin to implement Sentry for error handling and request contexts. What is this library? This basically impl

Noel 3 Dec 6, 2022
Kotlin microservices with REST, and gRPC using BFF pattern. This repository contains backend services. Everything is dockerized and ready to "Go" actually "Kotlin" :-)

Microservices Kotlin gRPC Deployed in EC2, Check it out! This repo contains microservices written in Kotlin with BFF pattern for performing CRUD opera

Oguzhan 18 Apr 21, 2022
Spring-kotlin - Learning API Rest with Kotlin, Spring and PostgreSQL

Kotlin, Spring, PostgreSQL and Liquibase Database Migrations Learning Kotlin for

Andre L S Ferreira 2 Feb 14, 2022
Demo Spting REST Service on Kotlin. Works with PostgreSQL via Spring Data. Data initialization provided by liquibase

Spring Boot REST API with Kotlin Spring Boot REST API service. Spring Data with PostgreSQL. Data initialization with Liquibase. Swagger UI Reference D

null 0 Jun 10, 2022
API Rest With Kotlin And Spring Boot

##API REST WITH KOTLIN AND SPRING BOOT GET Url: http://localhost:8080/customers Response (Status Code: 200 Ok) { "_embedded": { "customer

Felipe Baz 0 Nov 18, 2021
intera.kt is a Kotlin library for interacting with the Discord Interactions API through a gateway service or a REST API.

?? Overview ⚠️ WARNING: intera.kt is a work in progress. It is not yet ready for use. You may encounter bugs and other issues, but please report if yo

Pedro Henrique 1 Nov 30, 2021
intera.kt is a Kotlin library for interacting with the Discord Interactions API through a gateway service or a REST API.

?? Overview ⚠️ WARNING: intera.kt is a work in progress. It is not yet ready for use. You may encounter bugs and other issues, but please report if yo

Pedro Henrique 1 Nov 30, 2021
Api Rest Card Game made in Kotlin with Ktor

ApiRest-CardGame "Card Game API" is a project made in Kotlin with Ktor. The API allows you to manage a simple card game deck (shuffle, take a card, pu

null 0 Dec 4, 2021
Cargo service: REST API, Spring Boot, Kotlin, JDBC, PostgreSQL

cargo-jdbc Cargo service, training project with Spring Boot, JDBC and Kotlin. To

Valeriy Emelyanov 1 Dec 7, 2022
Kotlin Ktor REST Service

Servicio web para crear una API REST usando Kotlin y Kator así como otras tecnologías propuestas por JetBrains.

José Luis González Sánchez 3 Jan 9, 2023
Katoot - An easy-to-use (blocking) Kotlin wrapper for Kahoot's REST api

katoot An easy-to-use (blocking) Kotlin wrapper for Kahoot's REST api. Usage Qui

Subham 1 Jul 17, 2022
Kotlin SpringBoot REST Service

Kotlin SpringBoot REST Service Servicio web para API REST con Kotlin y SpringBoot. Kotlin SpringBoot REST Service Acerca de Autor Contacto Licencia Ac

José Luis González Sánchez 2 Mar 10, 2022
Ejemplo de API Rest Blog con Spring Boot + Kotlin + Gradle

Blog Ejemplo de API Rest Blog con Spring Boot 2.7.3 + Kotlin + Gradle + Java 17 El objetivo es que pueda servir como guía para el aprendizaje, lo más

Arturo López 6 Dec 18, 2022
Este es un ejemplo de como usar Kotlin en un proyecto Node.js, una api rest en Node.js con Express

Kotlin Hello Node.js Este es un ejemplo de como usar Kotlin en un proyecto Node.js, una API REST con Express Kotlin Hello Node.js Acerca de Uso Compil

José Luis González Sánchez 4 Jul 16, 2022