Skip to content

Latest commit

 

History

History
108 lines (70 loc) · 3.87 KB

File metadata and controls

108 lines (70 loc) · 3.87 KB

Changelog

[1.5.1] - 2026-03-25

  • Add Docker build and healthcheck test script (scripts/docker-healthcheck-test.sh)
  • Add conditional GitHub Actions workflow that validates the Docker image on Dockerfile changes
  • Add Docker-compatible env file (.env.docker-test) for container-based testing

[1.5.0] - 2026-02-22

  • Replace LocalStack with fauxqs for local AWS service emulation (SQS/SNS)
  • Add AbstractSnsSqsConsumer base class mirroring AbstractRabbitMQTopicConsumer pattern
  • Add sqsClient, snsClient, stsClient, and snsConsumerErrorResolver DI registrations
  • Add sample UserEventConsumer (SNS->SQS) with user.created event handler
  • Add fauxqs test helper for embedded library mode in tests

[1.4.0] - 2026-02-16

  • Migrate to new opinionated-machine DI patterns: PublicDependencies module augmentation, InferModuleDependencies, InferPublicModuleDependencies
  • Migrate to unified buildRestContract from @lokalise/api-contracts (replaces buildGetRoute and other method-specific builders)
  • Migrate to unified sendByContract from @lokalise/backend-http-client (replaces sendByGetRoute and other method-specific senders)
  • Migrate to unified buildFastifyRoute and injectByContract from @lokalise/fastify-api-contracts (replaces buildFastifyPayloadRoute/buildFastifyNoPayloadRoute and injectGet/injectPost/injectPatch/injectDelete)
  • Update awilix to v13, opinionated-machine to v6.10

[1.3.4] - 2026-01-29

  • Add missing unhandledExceptionPlugin
  • Remove the error folder and replace it with node-core
  • Clean up unused dependencies

[1.3.3] - 2026-01-28

Skip request logging for utility endpoints

[1.3.2] - 2026-01-28

Switch to 1.0.0 beta drizzle

[1.3.1] - 2026-01-28

Migrate envvars management to envase.

[1.3.0] - 2026-01-27

  • Use newer version of OTel instrumentation setup

  • Remove New Relic instrumentation

  • Add optionalDependencies to ensure consistent lockfile regeneration

  • Update dependencies

[1.2.3] - 2026-01-27

Remove passing '-' as JWT secret private key to utilize Verify-only mode.

[1.2.2] - 2026-01-19

Move OpenAPI spec validation to e2e test.

[1.2.1] - 2026-01-19

Improve error logging.

[1.2.0] - 2025-09-17

Remove promise wrappers from healthchecks that already relied on synchronous storage, populated asynchronously. This reduces the overhead of healthcheck endpoint and works more reliably in a heavily loaded sytem.

[1.1.0] - 2025-09-17

Smoketest script added into CI, now it will start an application and wait for the healthcheck to pass, and shutdown the application, or timeout in 15 seconds.

[1.0.0] - 2025-07-30

Changes

@lokalise/healthcheck-utils v4.0.1 -> v5.1.0

With this update, we simplified the work with healthcheck wrappers.

Before the wrapper looked like this:

export const redisHealthCheck: HealthChecker = (
   app: FastifyInstance,
): Promise<Either<Error, true>> => {
   const checkResult = app.diContainer.cradle.healthcheckStore.getHealthcheckResult('redis')

   if (checkResult === false) {
       return Promise.resolve({
           error: new Error('Redis healthcheck not positive in store'),
       })
   }
   return Promise.resolve({ result: true })
}

The new wrapper looks like this:

export const redisHealthCheck: HealthChecker = (
    app: FastifyInstance,
): Promise<Either<Error, true>> => {
    return app.diContainer.cradle.healthcheckStore.getAsyncHealthCheckResult('redis')
}

To migrate, you need to replace getHealthcheckResult with getAsyncHealthCheckResult in your healthcheck wrappers.

Another thing that comes with this update is that now the getHealthcheckResult internally doesn't return only true/false, but also an error if the healthcheck failed. This means that you can now return a more descriptive error message in your healthcheck wrappers.