legion-crypt 1.4.8 → 1.4.9
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 +6 -0
- data/lib/legion/crypt/helper.rb +53 -0
- data/lib/legion/crypt/version.rb +1 -1
- data/lib/legion/crypt.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '093d22e811263ec14fb6f88da79dfb26a41b1a2bb7f6667dda487474b2bf27d5'
|
|
4
|
+
data.tar.gz: 5fec23e938d436e509289e45812b09345610d7712919778f855741f9d3cf4cc5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b5142b2955f1405e5e8c5fca648faa56b6edc730c19578532a0e75db785e26fa317fe68572f71bc326e87446338779a0e4518f1d28bfce87e8f9c5e8c2e81bae
|
|
7
|
+
data.tar.gz: ae839f58a838e6d8e2e7bc5ad87d33d0876040a0ae113a681f367d8542847783bca3e783499e069d7b66145a30b645345ba334ce299bee236c512b1fea3f7bbb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Legion::Crypt
|
|
2
2
|
|
|
3
|
+
## [1.4.9] - 2026-03-22
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- `Legion::Crypt::Helper` module: injectable Vault mixin for LEX extensions
|
|
7
|
+
- Namespaced `vault_get`, `vault_write`, `vault_exist?` with automatic lex-prefixed paths
|
|
8
|
+
|
|
3
9
|
## [1.4.8] - 2026-03-22
|
|
4
10
|
|
|
5
11
|
### Changed
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Crypt
|
|
5
|
+
module Helper
|
|
6
|
+
def vault_namespace
|
|
7
|
+
@vault_namespace ||= derive_vault_namespace
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def vault_get(path = nil)
|
|
11
|
+
Legion::Crypt.get(vault_path(path))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def vault_write(path, data)
|
|
15
|
+
Legion::Crypt.write(vault_path(path), data)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def vault_exist?(path = nil)
|
|
19
|
+
Legion::Crypt.exist?(vault_path(path))
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def vault_path(suffix = nil)
|
|
25
|
+
base = vault_namespace
|
|
26
|
+
suffix ? "#{base}/#{suffix}" : base
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def derive_vault_namespace
|
|
30
|
+
if respond_to?(:lex_filename)
|
|
31
|
+
fname = lex_filename
|
|
32
|
+
fname.is_a?(Array) ? fname.first : fname
|
|
33
|
+
else
|
|
34
|
+
derive_vault_namespace_from_class
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def derive_vault_namespace_from_class
|
|
39
|
+
name = respond_to?(:ancestors) ? ancestors.first.to_s : self.class.to_s
|
|
40
|
+
parts = name.split('::')
|
|
41
|
+
ext_idx = parts.index('Extensions')
|
|
42
|
+
target = if ext_idx && parts[ext_idx + 1]
|
|
43
|
+
parts[ext_idx + 1]
|
|
44
|
+
else
|
|
45
|
+
parts.last
|
|
46
|
+
end
|
|
47
|
+
target.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
|
48
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
49
|
+
.downcase
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
data/lib/legion/crypt/version.rb
CHANGED
data/lib/legion/crypt.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: legion-crypt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.4.
|
|
4
|
+
version: 1.4.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -77,6 +77,7 @@ files:
|
|
|
77
77
|
- lib/legion/crypt/cluster_secret.rb
|
|
78
78
|
- lib/legion/crypt/ed25519.rb
|
|
79
79
|
- lib/legion/crypt/erasure.rb
|
|
80
|
+
- lib/legion/crypt/helper.rb
|
|
80
81
|
- lib/legion/crypt/jwks_client.rb
|
|
81
82
|
- lib/legion/crypt/jwt.rb
|
|
82
83
|
- lib/legion/crypt/ldap_auth.rb
|