Changelog

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

[0.12.0] - 2026-04-24

Added

  • feat(configuration): add profile enum for environment defaults

Style

  • style(spec): remove extra blank line to satisfy RuboCop

[0.11.0] - 2026-04-23

Added

  • feat(configuration): add ssl_verify, ssl_ca_file, and ssl_options
  • feat(configuration): add ENV fallback for settings
  • feat(client): support multi-tenant gateways with preconfig for Mosaic

CI

  • ci(release): recognise squash-merged release commits and allow manual publish (#43)
  • ci(release): recognise squash-merged release commits and allow manual publish

Documentation

  • docs(readme): refresh for multi-tenant, ENV fallback, Monitor
  • docs(client): correct access_token_for thread-safety note (Monitor, not Mutex)
  • docs(client): fill YARD gaps flagged by the PR yardstick report
  • docs(client): document ServiceNotAllowedError on HTTP verbs

Fixed

  • fix(configuration): deep-freeze every TenantConfig field, not only ssl_options
  • fix(http_client): harden SSL plumbing after PR review
  • fix(configuration): align YARD examples and isolate specs from ENV
  • fix(configuration): address PR review feedback
  • fix(client): harden multi-tenant — deep-freeze, string names, thread-safety, kwarg sentinel, docs

Other

  • chore(cliff): skip all merge commits from the changelog

Refactored

  • refactor(configuration): address TenantConfig review — deep-freeze, strict []
  • refactor(configuration): return a Data-based TenantConfig value object
  • refactor(client): centralize ServiceNotAllowedError message in the class
  • refactor(client): extract current_tenant_settings for readability

Tests

  • test(configuration): isolate class_attribute state in the around hook

[0.9.0] - 2026-04-20

Fixed

  • fix(client): fail fast on SSR tenant before touching OAuth and thread-local

[0.8.0] - 2026-04-20

Fixed

  • fix(client): route API calls to gateway_url, fetch token from appcenter_url

[0.7.0] - 2026-04-20

Added

  • feat(config)!: add OAuth2 scope configuration with 'public' default

Other

  • chore(docs): hide instance methods, keep class-level as public API

[0.6.0] - 2026-04-20

Added

  • feat(response): fall back to body for non-JSON, add raw: kwarg
  • feat(errors): wrap Faraday and OAuth2 errors on HTTP verbs
  • feat(client): reject backend service routing on SSR tenants

Build

  • build(deps): bump actions/upload-pages-artifact from 3 to 5
  • build(deps): bump actions/deploy-pages from 4 to 5

Documentation

  • docs: address review feedback on PR 26
  • docs(errors): add summaries and @api tags to RequestError members

Fixed

  • fix(response): key body fallback on Content-Type, not truthiness

[0.5.0] - 2026-04-17

Added

  • feat(config)!: switch default URLs to fluence.eu domain

Documentation

  • docs(contributing): add running tests, architecture, and CI sections

[0.4.0] - 2026-04-16

Added

  • feat(client): add service kwarg and with_service block helper

Build

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

CI

  • ci(coverage): show before/after diff vs base in PR comment
  • ci(coverage): surface undercover-flagged blocks in PR comment
  • ci(coverage): use undercover simplecov formatter
  • ci(release): create release PR via GitHub App token

Documentation

  • docs: rewrite README and fix coverage scope
  • docs: add YARD + yardstick documentation pipeline

Fixed

  • fix(client): only normalize symbol service names, leave strings untouched

Other

  • chore(gitignore): ignore .DS_Store

[0.3.0] - 2026-04-07

Added

  • feat(client): forward end-user bearer token to the gateway

CI

  • ci(coverage): point undercover at simplecov resultset
  • ci(coverage): add benchmark gem for ruby 4.0 compatibility

[0.2.0] - 2026-04-03

Added

  • feat: add hyphenated require path

Other

  • chore: remove Gemfile.lock and .idea/ from version control

Style

  • style: exclude hyphenated require file from Naming/FileName

Tests

  • test: add spec for hyphenated require path

[0.1.1] - 2026-04-03

Added

  • feat: add default URLs for gateway and appcenter
  • feat: add singleton Client with OAuth2 client_credentials
  • feat: add error classes
  • feat: add configuration module with Settings singleton

Build

  • build(deps): bump upload-artifact to v7 and download-artifact to v8

CI

  • ci: unify release system with Fluence gems
  • ci: add release system with GitHub Actions, changelog, and coverage

Documentation

  • docs: use source block syntax for GitHub Packages installation
  • docs: add YARD documentation and CONTRIBUTING.md
  • docs: add README with usage examples

Other

  • chore: rubocop config and auto-corrections
  • init: scaffold fluence-gateway-client gem

Refactored

  • refactor: remove Style/DoubleNegation, use explicit expired? check
  • refactor: rename token_url to appcenter_url with fixed /oauth/token path

Style

  • style: add name to all workflow steps for consistency