Skip to content

v1.1.0

Choose a tag to compare

@ryan-bezold ryan-bezold released this 01 Mar 01:14
· 41 commits to main since this release

What's New

Docker Support

The authentication service is now containerized and ready for production deployment via Docker.

Registration Control

  • GET /config (public) — returns auth configuration including whether sign-up is enabled.
  • PATCH /config (admin only) — allows admins to toggle registration on/off.
  • Sign-up requests rejected with 403 Forbidden when registration is disabled.
  • New auth_config database table seeded with registration enabled by default.

Admin User Creation

Administrators can now create new user accounts directly through the API.

Role Management

  • First registered user is automatically assigned the ADMIN role.
  • PATCH /users/:id/role endpoint added for role management (admin only).
  • All user endpoints are now auth-guarded (JWT required).
  • Passwords are no longer returned in user API responses.

Fixes

  • Fixed startup crash caused by missing CryptoGateway in AppConfigModule.
  • Fixed first user not receiving ADMIN role — Result.isSuccess was implemented as !!value, which returns false for falsy values like 0 (empty database).
  • Fixed sign-up always failing with "User not found" — the failure handler was incorrectly re-throwing a not-found result during email uniqueness check.
  • Fixed build error in AdminCreateUserUseCase caused by an incompatible interface constraint.
  • Removed unused import causing CI lint failures.

Refactor

  • Failure is now an abstract class with code and message fields; GenericFailure replaces plain new Failure(message) usages.
  • Result now stores an explicit success boolean instead of deriving it from !!value.
  • Result.success() / Result.failure() renamed to Result.ok() / Result.fail().
  • isSuccess and isFailure converted from property getters to methods.
  • The .on() pattern removed in favour of explicit if/else checks.

Full Changelog: v1.0.0...v1.1.0