yes 2.4.5 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +51 -0
- data/lib/yes/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7d2ddb9e50702c3c99ab4cba938f1fabcbe8591d149afa8f3ea76e52541f42bb
|
|
4
|
+
data.tar.gz: f8f54a0ec7a1906640c47207d6dfc091dd2cac0f4f5e561fa415903d42eb4fa2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: da2a6ae6bd18505cba5cfdf0a80abe4e6de1be364718cb4a489f7b9c79960656ca803a0a1d02169b111aec07056a9f8eaccfb4581aec8bee416ec7784de2f89a
|
|
7
|
+
data.tar.gz: 6e0111d1761b8e098a7bb10244cbe5da922dbe9b69327c32ba99420e5dfafb2eb0c5671e75af4eff3ea7628041c9d852727f8bc7c839cf94307f8ec89220bc4c
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,57 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [2.6.0] - 2026-10-28
|
|
8
|
+
|
|
9
|
+
### yes-core
|
|
10
|
+
|
|
11
|
+
#### Added
|
|
12
|
+
- `Yes::Core::ReadModel::Builder#call` now writes the stream revision of the handled event into the read
|
|
13
|
+
model's `revision` column, if it has one. The column only moves forward, so replaying older events does
|
|
14
|
+
not lower it, and a rebuild ends at the last revision of the stream. Events that were not handled (no
|
|
15
|
+
handler, locale not available) leave it unchanged. Per-aggregate revision columns such as
|
|
16
|
+
`shop_order_revision` are not touched. The builder writes `revision` for every event of the read model's own
|
|
17
|
+
stream, so a read model whose `revision` column an aggregate writes must not also be fed by a builder (use
|
|
18
|
+
per-aggregate revision columns or project the events through the aggregate instead). Only events of the
|
|
19
|
+
read model's own stream are considered, compared by stream id only: a read model fed by two streams with
|
|
20
|
+
the same id (different context or stream name) would get a mixed revision and must not rely on it. This lets a consumer of a read model fed by a
|
|
21
|
+
subscription compare its `revision` with the stream's last revision to know whether the projection has caught up.
|
|
22
|
+
|
|
23
|
+
## [2.5.0] - 2026-10-08
|
|
24
|
+
|
|
25
|
+
### yes-core
|
|
26
|
+
|
|
27
|
+
#### Added
|
|
28
|
+
- `Configuration#auth_error_classes` returns `Yes::Core::AuthenticationError` plus the error classes
|
|
29
|
+
of the configured auth adapter. The command API now uses it to decide which errors it rescues.
|
|
30
|
+
|
|
31
|
+
### yes-read-api
|
|
32
|
+
|
|
33
|
+
#### Fixed
|
|
34
|
+
- The read API now rescues the error classes of the configured auth adapter like the command API
|
|
35
|
+
does, so e.g. an expired token yields 401 instead of an unhandled error.
|
|
36
|
+
- A malformed bearer token no longer fails the request with an unhandled error when tracing is
|
|
37
|
+
enabled; the controller answers 401.
|
|
38
|
+
|
|
39
|
+
#### Security
|
|
40
|
+
- `QueriesController` now hands the request authorizer only the filter parameter the query applies.
|
|
41
|
+
It used to pass the raw params, with both `filters` and `filter_definition`, although a basic
|
|
42
|
+
query applies only `filters` and an advanced query (the `advanced` action, or a persisted filter
|
|
43
|
+
given by `filter_id`) applies only `filter_definition`. A request authorizer that chooses what to
|
|
44
|
+
authorize by which of the two is present could therefore authorize parameters the query ignores,
|
|
45
|
+
for example `GET /:model?filter_definition[scope][company_ids]=<own company>` passing the check
|
|
46
|
+
while the query returned unscoped rows. The query is built from the same reduced params, so
|
|
47
|
+
authorizers that bound a request by changing them keep working. Subclasses that call the request
|
|
48
|
+
authorizer from their own actions should drop the ignored parameter the same way.
|
|
49
|
+
|
|
50
|
+
### yes-command-api
|
|
51
|
+
|
|
52
|
+
#### Fixed
|
|
53
|
+
- A malformed bearer token no longer fails the request with an unhandled error when tracing is
|
|
54
|
+
enabled; the controller answers 401.
|
|
55
|
+
|
|
5
56
|
## [2.4.5] - 2026-09-23
|
|
6
57
|
|
|
7
58
|
### yes-core
|
data/lib/yes/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: 'yes'
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nico Ritsche
|
|
@@ -15,56 +15,56 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 2.
|
|
18
|
+
version: 2.6.0
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 2.
|
|
25
|
+
version: 2.6.0
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: yes-command-api
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - '='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 2.
|
|
32
|
+
version: 2.6.0
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - '='
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 2.
|
|
39
|
+
version: 2.6.0
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: yes-core
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - '='
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 2.
|
|
46
|
+
version: 2.6.0
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - '='
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 2.
|
|
53
|
+
version: 2.6.0
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: yes-read-api
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - '='
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 2.
|
|
60
|
+
version: 2.6.0
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - '='
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 2.
|
|
67
|
+
version: 2.6.0
|
|
68
68
|
description: Event sourcing framework for Ruby on Rails applications
|
|
69
69
|
email:
|
|
70
70
|
- nico.ritsche@yousty.ch
|