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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +51 -0
  3. data/lib/yes/version.rb +1 -1
  4. metadata +9 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3911bd78f9c4eff4e845defe91790e1a0d7b3f9050710cfd3acf573dffc114a
4
- data.tar.gz: e3fce24424170ed6a43e98f8bd129c9c78fc7d2b5d1b4b55e54454632d367059
3
+ metadata.gz: 7d2ddb9e50702c3c99ab4cba938f1fabcbe8591d149afa8f3ea76e52541f42bb
4
+ data.tar.gz: f8f54a0ec7a1906640c47207d6dfc091dd2cac0f4f5e561fa415903d42eb4fa2
5
5
  SHA512:
6
- metadata.gz: 593e188833682247031b0b1d17443d4ac58765dc9e96569cb838ef61ccec379c8dec28328d1cb0e70b901ca35fcc0813841e1e5c2717bd344cee7928efe01b09
7
- data.tar.gz: bc6b2aba7b251abda0224c28f1da88a9ace2bfb1498f5be429b530d9202e532f8b6bf3d99535735b6247b6182855981ec12ad8cb2a6d7302c8038ceff92b3d9a
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yes
4
- VERSION = '2.4.5'
4
+ VERSION = '2.6.0'
5
5
  end
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.5
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.4.5
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.4.5
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.4.5
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.4.5
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.4.5
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.4.5
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.4.5
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.4.5
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