Changelog
All notable changes to this project will be documented in this file.
[0.14.0] - 2026-09-04
Added
- feat(errors): type 429 and 502/503/504 as RequestError subclasses
Style
- style(client): use the disable-next directive rubocop expects
- style(client): scope the ParameterLists directive to its statement
[0.13.0] - 2026-08-13
Added
- feat(appcenter): add user and client lookup helpers
CI
- ci: forward the release bot key on codequality-pr
- ci: drop wrapper comments duplicated from the ci-workflows docs
- ci: migrate to ci-workflows@v6 config file
- ci(workflows): bump ci-workflows pins to @v5 + drop github.actor
- ci: bump ci-workflows to @v5 (multi-gem-capable reusables)
- ci: retrigger checks against updated @v3
- ci: bump ci-workflows v2 → v3, drop namespace :doc Rakefile boilerplate
- ci: migrate dev/CI tools to fluence-ci-tools meta-gem
- ci: grant
packages: readon @v2 wrappers (fix startup_failure) - ci: bump remaining ci-workflows wrappers from @v1 to @v2
- ci: add workflow_dispatch to publish.yml for manual republish
- ci: bump release.yml to @v2 and forward RELEASE_APP_PRIVATE_KEY
- ci: pin reek/flog/flay versions to stabilize codequality deltas
- ci: add codequality workflow (reek + flog + flay, advisory)
- ci: pin yard/yardstick versions to stabilize docs deltas
- ci: forward FLUENCE_CI_BOT_PRIVATE_KEY to author sticky comments as App
- ci: drop FLUENCE_CI_BOT_PRIVATE_KEY forwarding (no longer needed)
- ci: fix docs-pr startup by adding 'actions: read' permission
- ci: add rubocop-measure.yml + rubocop-pr.yml, drop 4.0 from matrix
- ci: add coverage-measure.yml + coverage-pr.yml (symmetric with docs)
- ci: add docs-measure.yml for yardstick baseline on main push
- ci: forward FLUENCE_CI_BOT_PRIVATE_KEY to docs-pr + coverage-pr
- ci: pin reusable workflow refs to @v1 instead of @main
- ci: drop secrets: inherit — forward only what each workflow needs
- ci(publish): add thin publish.yml listening on release: published
- ci(release): drop version_file input (read via gemspec upstream)
- ci(release): scope push trigger to version-file changes
Documentation
- docs(readme): document AppCenter lookup helpers
- docs(contributing): refresh CI section to match the real workflow set
- docs: route yard doc through fluence-ci docs --build
- docs: standardise dev commands on fluence-ci
Fixed
- fix: use git source type for graphiti marketplace
Other
- chore: enable graphiti plugin via fluence marketplace
- chore(deps): bump actions/checkout from 6 to 7
- chore: migrate to ci-workflows v4 (FLUENCE_BOT naming)
- chore: shorten step name (rubocop context already in matrix comment)
Refactored
- refactor(client): make the instance-level HTTP surface private
- refactor(appcenter): make appcenter_get private on Client
- refactor(ci): migrate coverage PR comment to centralized workflow
- refactor(ci): migrate docs to centralized workflows
- refactor(ci): split release into prepare + release — one trigger per file
- refactor(ci): use centralized reusable workflows from fluence-eu/ci-workflows
[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
Added
- feat(client): reject backend service routing on SSR tenants
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
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