Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve exception handling/rendering during auth checks #405

Merged
merged 6 commits into from
Sep 17, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Changelog cleanup
  • Loading branch information
amcclain committed Sep 17, 2024
commit 34e9c8ee8561c21ccf057cf06d58b1080f92520b
35 changes: 15 additions & 20 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,29 @@
## 22.0-SNAPSHOT

### 💥 Breaking Changes (upgrade difficulty: 🟢 LOW)
* All `Timer`, `Cache`, and `CachedValue` object require a 'name' property. This property was
previously optional in many cases, but is now required in order to support new cluster features,
logging, and admin tools. The new `BaseService.resources` property now will give access to all
resources by name, if needed and replaces `BaseService.timers`.

* `BaseService` methods `getIMap()`, `getReplicatedMap()` and `getISet()` have been changed to
`createIMap()`, `createReplicatedMap()` and `createISet()`, respectively. This change provides
a consistent interface for all resources on BaseService and is not expected to impact most
applications.
* Updated `Timer`, `Cache`, and `CachedValue` objects to require a `name` property. Names are now
mandatory to better support new cluster features, logging, and Admin Console tooling.
* Migrated `BaseService` methods `getIMap()`, `getReplicatedMap()` and `getISet()` to
`createIMap()`, `createReplicatedMap()` and `createISet()`, respectively. Not expected to impact
most apps, as these APIs are new and only used for distributed, multi-instance data.

### 🎁 New Features
* `Cache` and `CachedValue` should now be created using a factory on `BaseService`. This streamlined
interface reduces boilerplate, and provides a consistent interface with `Timer`.

### ⚙️ Technical

* Improvements to `Timer` to avoid extra executions when primary instance changes.
* Added new `BaseService` factories to create `Cache` and `CachedValue` objects. This streamlined
interface reduces boilerplate and is consistent with `Timer` creation.
* Improved `Timer` to maintain consistent execution timing across primary instance changes.
* Improved `RestController` to support domain objects linked to a non-primary `DataSource`.

* Updated `ClusterService` to use Hoist's `InstanceNotFoundException` class to designate routine.
### ⚙️ Technical

* Exposed `/xh/ping` as whitelisted route for basic uptime/reachability checks. Retained legacy
`/ping` alias, but prefer this new path going forward.

* Improvements to `RestController` to better support editing Domain Objects defined with secondary
domain objects.

* Improved handling/rendering of exceptions during Authentication and Authorization checking of
requests.
* Improved handling + rendering of exceptions during authentication and authorization requests.
* Updated `ClusterService` to use Hoist's `InstanceNotFoundException`, ensuring that common errors
thrown due to instance changes are marked as routine and don't spam error reporting.
* Added new `BaseService.resources` property to track and provide access to `Cache` objects and
`Timer`s by name, replacing `BaseService.timers`.

## 21.0.1 - 2024-09-05

Expand Down
Loading