ree_lib 1.3.11 → 1.3.12

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49fa98abf408507fb7c59dea94efc94717156aa50e76b3015aee6dcada1e0f17
4
- data.tar.gz: 9a5927b28c56d6b8982e2565340d7816600f894becd05493bfcb9178196e85c6
3
+ metadata.gz: e10f8d9ba3558f200f081f325d2a7f10b81696459c8fbdd9054fd4e0b72c72ed
4
+ data.tar.gz: fc2f2bba979d98082ed296caeeb8823cf1cef3201cbda6244adb131e7ccc5db1
5
5
  SHA512:
6
- metadata.gz: ccdc45ab27ff92239fa01fa4bdd678c29d45a102af203192991acbf12caf447b77a6a8849d6a6f23d1891453b29074e1ed1a1503f239102d0e15948d40f4b364
7
- data.tar.gz: e6af57d77e1eb6c41cf5b678e216741ec505ceec40eb74abc07fbebe134d43b6e82e33e82aed2ce5fc4a1085ff730324be4678cc32d0de920b89607947902764
6
+ metadata.gz: 4cbd59039f6e3b238db9c88763e75f753a567c13edd080eda2e6fafbed838e3c61a71d9ee40af35b7042f58cee315f5aa3c7cdf8be8b2e7ae339f9ed7883906d
7
+ data.tar.gz: e0dddd85f84fec535514ebbec51e78425511b32a8ee877b65fdf4ac31f513717f9c12ab80d4772d7649ad1856ad625bf1d967e9c56d78823dc1435196b438c85
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.3.12] - 2026-09-02
4
+
5
+ - `ree_audit`: `annotate_audit` fn — the entry point product code uses to attach
6
+ facts to the current audited call. Declared `freeze false` so a host
7
+ application can stub it in its own specs.
8
+
3
9
  ## [1.3.11] - 2026-09-02
4
10
 
5
11
  - New `ree_audit` package: an opt-in trail of audited action calls (event,
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ PATH
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- ree_lib (1.3.10)
12
+ ree_lib (1.3.12)
13
13
  bigdecimal
14
14
  binding_of_caller
15
15
  i18n
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Точка входа для продуктового кода: прикрепить к текущему аудируемому вызову
4
+ # то, что известно только внутри — какое право проверено, к чьим данным и к
5
+ # какому объекту обратились.
6
+ #
7
+ # Почему fn, а не голая константа ReeAudit.annotate: одного `depends_on
8
+ # :ree_audit` хватило бы, чтобы пакет загрузился, но проверка объявленной
9
+ # зависимости (check_package_dependency_added) срабатывает только для
10
+ # `link`/`import`. Голая константа проходит мимо неё — и удаление `depends_on`
11
+ # как «неиспользуемого» уронило бы приложение NameError'ом уже в проде.
12
+ class ReeAudit::AnnotateAudit
13
+ include Ree::FnDSL
14
+
15
+ fn :annotate_audit do
16
+ # fn из общего пакета иначе не подменить в спеках приложения
17
+ freeze false
18
+ end
19
+
20
+ doc("Прикрепляет факты приложения к текущему событию аудита. nil — если аудит выключен или вызов пришёл не из аудируемого маршрута.")
21
+ contract(Ksplat[RestKeys => Any] => Nilor[Hash])
22
+ def call(**attrs)
23
+ ReeAudit.annotate(**attrs)
24
+ end
25
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ package_require('ree_audit/functions/annotate_audit')
4
+ package_require('ree_audit/event')
5
+
6
+ RSpec.describe :annotate_audit do
7
+ link :annotate_audit, from: :ree_audit
8
+
9
+ before { ReeAudit::Context.clear }
10
+ after { ReeAudit::Context.clear }
11
+
12
+ it "returns nil outside an audited call" do
13
+ expect(annotate_audit(permission: :access_uploads)).to be_nil
14
+ end
15
+
16
+ it "merges into the current event" do
17
+ event = ReeAudit::Event.build(action_name: :some_query)
18
+ ReeAudit::Context.push(event)
19
+
20
+ annotate_audit(permission: :access_uploads)
21
+ annotate_audit(subject: {type: :upload, id: "abc"})
22
+
23
+ expect(event.annotations).to eq({
24
+ permission: :access_uploads,
25
+ subject: {type: :upload, id: "abc"}
26
+ })
27
+ end
28
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReeLib
4
- VERSION = "1.3.11"
4
+ VERSION = "1.3.12"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ree_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.11
4
+ version: 1.3.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov
@@ -282,12 +282,14 @@ files:
282
282
  - lib/ree_lib/packages/ree_audit/package/ree_audit/config.rb
283
283
  - lib/ree_lib/packages/ree_audit/package/ree_audit/context.rb
284
284
  - lib/ree_lib/packages/ree_audit/package/ree_audit/event.rb
285
+ - lib/ree_lib/packages/ree_audit/package/ree_audit/functions/annotate_audit.rb
285
286
  - lib/ree_lib/packages/ree_audit/package/ree_audit/functions/filter_params.rb
286
287
  - lib/ree_lib/packages/ree_audit/package/ree_audit/sinks/logger_sink.rb
287
288
  - lib/ree_lib/packages/ree_audit/package/ree_audit/sinks/null_sink.rb
288
289
  - lib/ree_lib/packages/ree_audit/package/ree_audit/sinks/sink.rb
289
290
  - lib/ree_lib/packages/ree_audit/spec/ree_audit/beans/audit_spec.rb
290
291
  - lib/ree_lib/packages/ree_audit/spec/ree_audit/context_spec.rb
292
+ - lib/ree_lib/packages/ree_audit/spec/ree_audit/functions/annotate_audit_spec.rb
291
293
  - lib/ree_lib/packages/ree_audit/spec/ree_audit/functions/filter_params_spec.rb
292
294
  - lib/ree_lib/packages/ree_audit/spec/spec_helper.rb
293
295
  - lib/ree_lib/packages/ree_dao/.gitignore