activejob-temporal 0.3.0 → 0.3.1

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: 8a0aefb6003d5c49d08c531d80ac7ce5ff82ee038a81aee31d3c5f0d2d438f61
4
- data.tar.gz: c0f3f46a2e57f35a0c05290d129d9905f64c6dbe9be30371e79f99d0905d3cd0
3
+ metadata.gz: 79166555209f6e6cf73641c9415feac14e6cffad299940c94ebcba0568c3cfdd
4
+ data.tar.gz: 4e3f843f44c93c4ce383415b32616f7770c407dec314dbf5e305a820e9095480
5
5
  SHA512:
6
- metadata.gz: 16bd26f8f58993b6c60b21a16f0216fe928eb4ad341aad19483fe77cd3f2c2c21ecf67695969df2137fa2b4953a8f984ff1d446696ce9691e33e0431fa3af177
7
- data.tar.gz: b06bd6d8ca772947228dacfe065e5582156d15fccc8501bff3ec14e8f3c18454d22d2b28c09cb1a59788462997067eaa9f12204ac265fd10273468cd653346ef
6
+ metadata.gz: f1dd16daf2739bbefdb568eb08423ca071fdc4ef96cee1b775d1fbb383728abec3c226d4f52d1ee633db6b7048ae5e6d68c0842a72dedf40cb03fdb4fe7d41ca
7
+ data.tar.gz: 9c17b2bf542f9990b68db645b32edd0176d8250309e70577d583f7d2102ed5cf176000ad5a5384a51c5ac4aa58fd18af161c226f389af413d66a0b00f01c84bd
data/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.3.1] - 2026-08-06
11
+
12
+ ### Fixed
13
+ - `api_key_watch` and `tls_cert_watch` now fire on Kubernetes projected and secret volumes: kubelet rotates them atomically by swapping a `..data` symlink into a new timestamped directory, so the watched file's own path never appears in the change events and the previous exact-path filter dropped every rotation. Any change inside a watched file's directory now counts as relevant.
14
+
10
15
  ## [0.3.0] - 2026-08-06
11
16
 
12
17
  ### Added
@@ -89,9 +89,14 @@ module ActiveJob
89
89
  end
90
90
  end
91
91
 
92
+ # Kubernetes projected and secret volumes rotate atomically: kubelet writes a new timestamped
93
+ # directory and swaps a `..data` symlink, so the watched file's own path never appears in the
94
+ # change events. Any change inside a watched file's directory therefore counts as relevant;
95
+ # the debounce absorbs the multi-event burst a rotation produces.
92
96
  def relevant_change?(changed_paths)
93
97
  changed_paths.any? do |path|
94
- @paths.include?(File.expand_path(path))
98
+ expanded = File.expand_path(path)
99
+ @paths.include?(expanded) || directories.any? { |dir| expanded.start_with?("#{dir}/") }
95
100
  end
96
101
  end
97
102
 
@@ -155,8 +155,8 @@ module ActiveJob
155
155
  default: false,
156
156
  env_var: "ACTIVEJOB_TEMPORAL_API_KEY_WATCH",
157
157
  type: :boolean,
158
- description: "Watch api_key_file and reload worker clients when it changes (kubelet rewrites " \
159
- "projected tokens in place long before they expire)"
158
+ description: "Watch api_key_file and refresh the token when it changes (kubelet rotates " \
159
+ "projected tokens atomically, long before they expire)"
160
160
  },
161
161
 
162
162
  priority_task_queues: {
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveJob
4
4
  module Temporal
5
- VERSION = "0.3.0"
5
+ VERSION = "0.3.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activejob-temporal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Temporal Technologies