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 +4 -4
- data/CHANGELOG.md +5 -0
- data/CLAUDE.md +1 -1
- data/lib/legion/service.rb +32 -0
- data/lib/legion/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4f7058dc8cbf92828614c9767e67004f572a6f2d076295020245f73f6d5dbf38
|
|
4
|
+
data.tar.gz: 64f195574809ad7f3f2962738a17748401a7153775bcc4afa492144a0b44294c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7170ca9aa9d93cbb366b499120d996fbd8dec86e13ef7951f0137eaf610c3e3f0604b7889c7ddbbd303f9a3bf53f0e7747331b46907101272ca1e2b1e2f68815
|
|
7
|
+
data.tar.gz: 0ae25c6ee83ce334fb1d481652facc04898b2d184ec1f02f274e9eec96d320342e4149eabd3f27adaf5118351ad72ea74c22eb4e14147f07809c12d8a58ec6f9
|
data/CHANGELOG.md
CHANGED
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.
|
|
12
|
+
**Version**: 1.7.34
|
|
13
13
|
**License**: Apache-2.0
|
|
14
14
|
**Docker**: `legionio/legion`
|
|
15
15
|
**Ruby**: >= 3.4
|
data/lib/legion/service.rb
CHANGED
|
@@ -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
|
|
data/lib/legion/version.rb
CHANGED