legionio 1.7.33 → 1.7.34

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: 839e777ef392bc9f9a005418901f90837a78e10dc16f4425788332f8098a449c
4
- data.tar.gz: 81c74483a04d1e5ae46789b0648153df04e954b94415168063fb5831a67d83c5
3
+ metadata.gz: 4f7058dc8cbf92828614c9767e67004f572a6f2d076295020245f73f6d5dbf38
4
+ data.tar.gz: 64f195574809ad7f3f2962738a17748401a7153775bcc4afa492144a0b44294c
5
5
  SHA512:
6
- metadata.gz: 3828b5dc1f52bd1e1a1f6f1c63d5fe2fe148f019be8e24fdf58cc1c0c69c4788d99f64a119398d9d8209042e21ba47f48a24a9b8692227b5851113825dc7d3c1
7
- data.tar.gz: 3e05508d0d71bbed405d18219f79e7e4745ab28be2e16755747822bc1ec0dae2b441b3810b6dd0c1ec42cef58ccfacea065e2b33588f1bc20d225c5e473f4415
6
+ metadata.gz: 7170ca9aa9d93cbb366b499120d996fbd8dec86e13ef7951f0137eaf610c3e3f0604b7889c7ddbbd303f9a3bf53f0e7747331b46907101272ca1e2b1e2f68815
7
+ data.tar.gz: 0ae25c6ee83ce334fb1d481652facc04898b2d184ec1f02f274e9eec96d320342e4149eabd3f27adaf5118351ad72ea74c22eb4e14147f07809c12d8a58ec6f9
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Legion Changelog
2
2
 
3
+ ## [Unreleased]
4
+
5
+ ### Added
6
+ - register_credential_providers step in boot sequence for Phase 8 credential-only identity module registration with Broker
7
+
3
8
  ## [1.7.33] - 2026-04-09
4
9
 
5
10
  ### Added
data/CLAUDE.md CHANGED
@@ -9,7 +9,7 @@ The primary gem for the LegionIO framework. An extensible async job engine for s
9
9
 
10
10
  **GitHub**: https://github.com/LegionIO/LegionIO
11
11
  **Gem**: `legionio`
12
- **Version**: 1.7.21
12
+ **Version**: 1.7.34
13
13
  **License**: Apache-2.0
14
14
  **Docker**: `legionio/legion`
15
15
  **Ruby**: >= 3.4
@@ -169,6 +169,7 @@ module Legion
169
169
 
170
170
  # Identity resolution — after extensions so lex-identity-* providers are loaded
171
171
  setup_identity if transport
172
+ register_credential_providers if extensions && transport
172
173
 
173
174
  register_core_tools
174
175
 
@@ -904,6 +905,7 @@ module Legion
904
905
  load_extensions
905
906
  Legion::Readiness.mark_ready(:extensions)
906
907
 
908
+ register_credential_providers
907
909
  Legion::Extensions.flush_pending_registrations! if defined?(Legion::Extensions) && Legion::Extensions.respond_to?(:flush_pending_registrations!)
908
910
 
909
911
  register_core_tools
@@ -1137,6 +1139,36 @@ module Legion
1137
1139
  handle_exception(e, level: :warn, operation: 'service.register_provider_with_broker')
1138
1140
  end
1139
1141
 
1142
+ def register_credential_providers
1143
+ return unless defined?(Legion::Identity::Broker) && defined?(Legion::Extensions)
1144
+
1145
+ Legion::Extensions.loaded_extension_modules.each do |ext|
1146
+ identity_mod = find_credential_identity(ext)
1147
+ next unless identity_mod
1148
+
1149
+ name = identity_mod.provider_name
1150
+ next if Legion::Identity::Broker.providers.include?(name)
1151
+
1152
+ lease = identity_mod.provide_token
1153
+ next unless lease
1154
+
1155
+ Legion::Identity::Broker.register_provider(name, provider: identity_mod, lease: lease)
1156
+ log.info "[Identity] registered credential provider #{name} with Broker"
1157
+ rescue StandardError => e
1158
+ handle_exception(e, level: :warn, operation: 'service.register_credential_providers')
1159
+ end
1160
+ end
1161
+
1162
+ def find_credential_identity(ext)
1163
+ return nil unless ext.respond_to?(:const_defined?) && ext.const_defined?(:Identity, false)
1164
+
1165
+ identity = ext.const_get(:Identity, false)
1166
+ return nil unless identity.respond_to?(:provider_type) && identity.provider_type == :credential
1167
+ return nil unless identity.respond_to?(:provide_token)
1168
+
1169
+ identity
1170
+ end
1171
+
1140
1172
  def find_identity_providers
1141
1173
  return [] unless defined?(Legion::Extensions)
1142
1174
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Legion
4
- VERSION = '1.7.33'
4
+ VERSION = '1.7.34'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legionio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.33
4
+ version: 1.7.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity