Changelog

All notable changes to this project will be documented in this file.

[0.10.1] - 2026-04-15

Added

  • feat(doc): tag the public API surface with @api and enforce it via yardstick
  • feat(doc): override YARD template to hide embedded source code

Build

  • build(doc): regenerate Appraisal gemfiles with yard and yardstick
  • build(doc): add yard and yardstick documentation coverage

CI

  • ci(doc): group violations by file with linkable rows in PR comment
  • ci(doc): render PR comment via a Ruby script matching coverage style
  • ci(doc): add docs workflow with Pages deploy and PR report

Documentation

  • docs(readme): align ActionCable section with scope-based concern
  • docs: rewrite README from source
  • docs: rewrite YARD comments across lib from source

Fixed

  • fix(coverage): exclude version.rb from SimpleCov tracking
  • fix(generator): scaffold first_name and last_name when creating the user table
  • fix(ci): query workflow runs with status=completed and filter by conclusion

Refactored

  • refactor(rakefile): guard doc tasks against missing yard, yardstick or config

Tests

  • test(coverage): load gem via hyphenated entrypoint so SimpleCov measures it

[0.10.0] - 2026-04-14

Fixed

  • fix(railtie): fix eager loading + derive scope in GatewayConnection

[0.9.0] - 2026-04-10

Fixed

  • fix(actioncable): correct docs examples and add missing spec
  • fix(actioncable): add missing requires, on_missing_user provisioning, and clean up specs

Refactored

  • refactor(actioncable): replace instance authenticate_connection! with class-level declarative
  • refactor(actioncable): do not force auth by default, add authenticate_connection!

Style

  • style: fix NilLambda rubocop offense

Tests

  • test(actioncable): cover on_missing_user edge cases

[0.8.0] - 2026-04-10

Added

  • feat(actioncable): add GatewayConnection concern for WebSocket auth

[0.7.0] - 2026-04-10

Added

  • feat(authentication): expose first_name and last_name from gateway headers

[0.6.1] - 2026-04-09

Fixed

  • fix(middleware): include query string in HMAC signature

Refactored

  • refactor(middleware): return explicit rejection codes in dev/test

[0.6.0] - 2026-04-09

Added

  • feat(test): add TestHelpers module for application specs

[0.5.0] - 2026-04-08

Added

  • feat(authentication): add on_missing_user provisioning hook
  • feat(generators): create model file when missing
  • feat(generators): auto-detect create_table vs add_column migration
  • feat(generators)!: add gateway_subject column instead of creating users table
  • feat(railtie): validate subject_column at boot
  • feat(authentication)!: look up user by configured subject_column
  • feat(config): add subject_column setting
  • feat(errors): add InvalidSubjectColumn

Documentation

  • docs: rewrite README from scratch
  • docs: revert manual changelog/upgrade entries
  • docs: document subject_column and 0.5.0 upgrade path

Fixed

  • fix(generators): handle namespaced models in table_name

Refactored

  • refactor(generators): inherit from NamedBase
  • refactor(railtie): drop subject_column boot validation
  • refactor(generators): use native active_record:migration
  • refactor(generators): align with Devise pattern (file-based detection)
  • refactor(generators): use Thor skip option instead of File.exist?

Tests

  • test(coverage): exclude generator templates from simplecov
  • test(dummy): add gateway_subject column to accounts

[0.4.1] - 2026-04-08

Added

  • feat(authentication): expose gateway_logout_path helper

[0.4.0] - 2026-04-08

Added

  • feat!: derive auth helpers from configured user_model
  • feat(config): add scope_name derived from user_model

Build

  • build(deps): bump actions/create-github-app-token from 2 to 3

CI

  • ci(rubocop): exclude Appraisal-generated gemfiles from linting
  • ci: add Rails version matrix via Appraisal
  • ci(coverage): grant actions:read so cross-run artifact lookup works
  • ci(coverage): show before/after diff vs base in PR comment
  • ci(coverage): surface undercover-flagged blocks in PR comment
  • ci(coverage): pass undercover-formatted coverage.json to undercover
  • ci(release): create release PR via GitHub App token
  • ci(coverage): point undercover at simplecov resultset

Documentation

  • docs(generator): document scope_name in initializer template
  • docs(readme): document derived auth helpers and migration

Fixed

  • fix(integration): constrain SQLite in-memory pool to a single connection
  • fix(integration): address review feedback on dummy app
  • fix(config): reject whitespace-only user_model values
  • fix(config): validate derived scope_name to fail fast on invalid identifiers
  • fix(config): validate user_model to fail fast on nil or blank
  • fix(railtie): defer controller include until after initializers
  • fix(coverage): close coverage.json file handle via block form
  • fix(coverage): make parse_resultset defensive against malformed input

Other

  • chore(gitignore): ignore .DS_Store

Refactored

  • refactor!: introduce custom error hierarchy

Tests

  • test(integration): add Rails dummy app for railtie + ActiveRecord coverage

[0.3.1] - 2026-04-03

Build

  • build(deps): bump actions/upload-artifact from 4 to 7
  • build(deps): bump actions/download-artifact from 4 to 8

CI

  • ci: unify release system with Fluence gems

Fixed

  • fix(rubocop): restore default excludes and fix generator offense
  • fix(rubocop): exclude gemspec from BlockLength check

Other

  • chore: add MIT LICENSE file
  • chore(gemspec): add license, metadata URIs and clean up gitignore

Tests

  • test(gateway_authentication): add specs for controller concern

[0.3.0] - 2026-04-03

Build

  • build(ci): add SimpleCov + undercover coverage with PR reporting

Refactored

  • refactor(generators): split install into initializer + AR migration

[0.2.1] - 2026-03-18

Added

  • feat: add gateway_client_id, service_request? helpers and remove Gemfile.lock

[0.2.0] - 2026-03-18

Added

  • feat: add client_id to HMAC payload and require X-Client-Id header

[0.1.1] - 2026-03-18

Added

  • feat: auto-register HMAC middleware via Railtie
  • feat: add Railtie for automatic controller concern inclusion
  • feat: add authenticate_user! method for before_action protection
  • feat: add configuration, controller concern, and install generator
  • feat: HMAC authentication middleware for Fluence Gateway

CI

  • ci: add release pipeline with changelog and GitHub Packages publish

Documentation

  • docs: add CONTRIBUTING.md
  • docs: update README with installation and usage guide
  • docs: add YARD documentation and hyphenated require path

Other

  • chore: remove unused Error class
  • chore: simplify migration template to email only
  • chore: add rubocop config and fix style offenses
  • chore: remove .idea from tracking and add to gitignore

Refactored

  • refactor: move ENV fallback for hmac_secret into Configuration