forest_admin_agent 1.34.1 → 1.34.2

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: 9c5e8fa961c0bfa90a829101ff89d53cf65179f3a340115128f01381eb11e749
4
- data.tar.gz: b8d22818abb218310ca2bda0bef5d8759b4ec972875171ead4c9364cbd052cc4
3
+ metadata.gz: 9168d143364c72dd23c7457b1325729c130cfd3ebb26bd3b04ffc4aa2ddf3533
4
+ data.tar.gz: 59838e20742b4b78483fa0de351f983c5c704a6a482df645582621c4e8607c56
5
5
  SHA512:
6
- metadata.gz: 20b1882e80989f79dffb03e83152311797e881843fd26a5b303ec5ea039aea7023c4a4166b906874e5080d74bc7247c486566ed29d1d3954345ceb7de285c379
7
- data.tar.gz: 45c80395afc651b897bd4710d711faf336ea00439f26af9e10faf4075d4724c7b31f12420e457a557bd3186c7f2541ff008b24e53031cc15bc43551013e1b158
6
+ metadata.gz: 256d7d85b33a80780cd7374fd1b7f3e803fe5f7ab45e38574d02ac14ebe2c58cb04b18dd0150fe2019480d35750149adeb597d2845f315e4c989ac636669c527
7
+ data.tar.gz: 698b2562d70fedfb724a93d9245917f83dd64e4bc5c72a3820f277294260cfb285f2ad0245d5a29b6eccefb928fcf9a5ec11267ee34507cffb371c2b882dff1c
@@ -1,4 +1,6 @@
1
1
  require 'ipaddress'
2
+ require 'filecache'
3
+ require 'json'
2
4
 
3
5
  module ForestAdminAgent
4
6
  module Services
@@ -6,11 +8,26 @@ module ForestAdminAgent
6
8
  RULE_MATCH_IP = 0
7
9
  RULE_MATCH_RANGE = 1
8
10
  RULE_MATCH_SUBNET = 2
11
+ CACHE_KEY = 'forest.ip_whitelist'.freeze
9
12
 
10
- attr_reader :forest_api
13
+ attr_reader :forest_api, :cache
11
14
 
12
15
  def initialize
13
16
  @forest_api = ForestAdminAgent::Http::ForestAdminApiRequester.new
17
+ @cache = FileCache.new(
18
+ 'ip_whitelist',
19
+ Facades::Container.config_from_cache[:cache_dir].to_s,
20
+ Facades::Container.config_from_cache[:permission_expiration]
21
+ )
22
+ end
23
+
24
+ def self.invalidate_cache
25
+ cache = FileCache.new(
26
+ 'ip_whitelist',
27
+ Facades::Container.config_from_cache[:cache_dir].to_s,
28
+ Facades::Container.config_from_cache[:permission_expiration]
29
+ )
30
+ cache.delete(CACHE_KEY) unless cache.get(CACHE_KEY).nil?
14
31
  end
15
32
 
16
33
  def use_ip_whitelist
@@ -85,6 +102,13 @@ module ForestAdminAgent
85
102
  private
86
103
 
87
104
  def fetch_rules
105
+ ip_whitelist_data = cache.get_or_set(CACHE_KEY) { fetch_ip_whitelist_from_api }
106
+
107
+ @use_ip_whitelist = ip_whitelist_data['use_ip_whitelist']
108
+ @rules = ip_whitelist_data['rules']
109
+ end
110
+
111
+ def fetch_ip_whitelist_from_api
88
112
  response = forest_api.get('/liana/v1/ip-whitelist-rules')
89
113
 
90
114
  unless response.status == 200
@@ -109,10 +133,7 @@ module ForestAdminAgent
109
133
  ForestAdminAgent::Utils::ErrorMessages::UNEXPECTED
110
134
  end
111
135
 
112
- ip_whitelist_data = body['data']['attributes']
113
-
114
- @use_ip_whitelist = ip_whitelist_data['use_ip_whitelist']
115
- @rules = ip_whitelist_data['rules']
136
+ body['data']['attributes']
116
137
  rescue StandardError => e
117
138
  ForestAdminAgent::Facades::Container.logger.log('Debug', {
118
139
  error: e.message,
@@ -6,7 +6,7 @@ module ForestAdminAgent
6
6
  module Schema
7
7
  class SchemaEmitter
8
8
  LIANA_NAME = "agent-ruby"
9
- LIANA_VERSION = "1.34.1"
9
+ LIANA_VERSION = "1.34.2"
10
10
 
11
11
  def self.generate(datasource)
12
12
  datasource.collections
@@ -1,3 +1,3 @@
1
1
  module ForestAdminAgent
2
- VERSION = "1.34.1"
2
+ VERSION = "1.34.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forest_admin_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.34.1
4
+ version: 1.34.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthieu
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2026-07-02 00:00:00.000000000 Z
12
+ date: 2026-07-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport