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