kreds 1.1.2 → 1.1.4
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 +10 -0
- data/README.md +4 -4
- data/kreds.gemspec +1 -1
- data/lib/kreds/fetch.rb +13 -3
- data/lib/kreds/inputs.rb +6 -6
- data/lib/kreds/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d74986e248d965c5c327a305d00f6fa4e78c3cfa79c0ff3e24d1a51513b2b5ae
|
4
|
+
data.tar.gz: b92ca91903f6ed4f001b96af806ab31f241e76585784a5a4c931f1d40a592d7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef1aa0826e0024caec247ae91af53504684a3e21301db445fc0827358793ff67dd9b1457a9c7b65aaf101daf6e082f5136d054507cb2aa367034d732ff5c2cfd
|
7
|
+
data.tar.gz: acf4be931199bf84760259480cc49b85770e48595fe59cb347fa8041d2a6a9a5bc3eaa8aca1c2aabf7c2a88e67fb948ae56b371958ad2551ec0b886325422ca5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## v1.1.4
|
2
|
+
|
3
|
+
- Relaxed dependency versions
|
4
|
+
- Minor code optimizations
|
5
|
+
|
6
|
+
## v1.1.3
|
7
|
+
|
8
|
+
- Improved error messages for better clarity
|
9
|
+
- Minor code optimizations and cleanup
|
10
|
+
|
1
11
|
## v1.1.2
|
2
12
|
|
3
13
|
- Added input validation using `dry-types` for user-facing API
|
data/README.md
CHANGED
@@ -9,8 +9,8 @@ Kreds is a simpler, shorter, and safer way to access Rails credentials, with a f
|
|
9
9
|
|
10
10
|
- Simplified credential access with clear error messages
|
11
11
|
- Environment variable fallback support
|
12
|
-
- Environment-scoped credentials access
|
13
|
-
-
|
12
|
+
- Environment-scoped credentials access
|
13
|
+
- Blank value detection and prevention
|
14
14
|
|
15
15
|
**Before and After:**
|
16
16
|
|
@@ -44,7 +44,7 @@ Kreds.fetch!(:captcha, :site_key)
|
|
44
44
|
- [Debug and Inspection](#debug-and-inspection)
|
45
45
|
|
46
46
|
**Community Resources:**
|
47
|
-
- [Contributing](#contributing)
|
47
|
+
- [Getting Help and Contributing](#getting-help-and-contributing)
|
48
48
|
- [License](#license)
|
49
49
|
- [Code of Conduct](#code-of-conduct)
|
50
50
|
|
@@ -146,7 +146,7 @@ Kreds.show
|
|
146
146
|
# => { aws: { access_key_id: "...", secret_access_key: "..." }, ... }
|
147
147
|
```
|
148
148
|
|
149
|
-
## Contributing
|
149
|
+
## Getting Help and Contributing
|
150
150
|
|
151
151
|
### Getting Help
|
152
152
|
Have a question or need assistance? Open a discussion in our [discussions section](https://github.com/brownboxdev/kreds/discussions) for:
|
data/kreds.gemspec
CHANGED
data/lib/kreds/fetch.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
module Kreds
|
2
2
|
module Fetch
|
3
3
|
def fetch!(*keys, var: nil, &)
|
4
|
-
symbolized_keys = Kreds::Inputs.process(
|
4
|
+
symbolized_keys = Kreds::Inputs.process(
|
5
|
+
keys, as: :symbol_array, message: "Expected an array of symbols or strings, got `#{keys.inspect}`"
|
6
|
+
)
|
5
7
|
|
6
8
|
path = []
|
7
9
|
|
@@ -10,7 +12,13 @@ module Kreds
|
|
10
12
|
fetch_key(hash, key, path, symbolized_keys)
|
11
13
|
end
|
12
14
|
rescue Kreds::BlankCredentialsError, Kreds::UnknownCredentialsError => e
|
13
|
-
fallback_to_var(
|
15
|
+
fallback_to_var(
|
16
|
+
e,
|
17
|
+
Kreds::Inputs.process(
|
18
|
+
var, as: :non_empty_string, optional: true, message: "Expected a non-empty string, got `#{var.inspect}`"
|
19
|
+
),
|
20
|
+
&
|
21
|
+
)
|
14
22
|
end
|
15
23
|
|
16
24
|
def env_fetch!(*keys, var: nil, &)
|
@@ -18,7 +26,9 @@ module Kreds
|
|
18
26
|
end
|
19
27
|
|
20
28
|
def var!(var, &)
|
21
|
-
value = ENV.fetch(
|
29
|
+
value = ENV.fetch(
|
30
|
+
Kreds::Inputs.process(var, as: :non_empty_string, message: "Expected a non-empty string, got `#{var.inspect}`")
|
31
|
+
)
|
22
32
|
|
23
33
|
return raise_or_yield(Kreds::BlankEnvironmentVariableError.new("Blank value in environment variable: #{var.inspect}"), &) if value.blank?
|
24
34
|
|
data/lib/kreds/inputs.rb
CHANGED
@@ -7,22 +7,22 @@ module Kreds
|
|
7
7
|
include Dry.Types()
|
8
8
|
|
9
9
|
TYPES = {
|
10
|
-
symbol_array:
|
11
|
-
|
12
|
-
boolean:
|
10
|
+
symbol_array: self::Array.of(self::Coercible::Symbol).constrained(min_size: 1),
|
11
|
+
non_empty_string: self::Strict::String.constrained(min_size: 1),
|
12
|
+
boolean: self::Strict::Bool
|
13
13
|
}.freeze
|
14
14
|
|
15
|
-
def process(value, as:, optional: false)
|
15
|
+
def process(value, as:, optional: false, error: Kreds::InvalidArgumentError, message: nil)
|
16
16
|
checker = type_for(as)
|
17
17
|
checker = checker.optional if optional
|
18
18
|
|
19
19
|
checker[value]
|
20
20
|
rescue Dry::Types::CoercionError => e
|
21
|
-
raise
|
21
|
+
raise error, message || e.message
|
22
22
|
end
|
23
23
|
|
24
24
|
private
|
25
25
|
|
26
|
-
def type_for(name) = Kreds::Inputs::TYPES.fetch(name)
|
26
|
+
def type_for(name) = Kreds::Inputs::TYPES.fetch(name)
|
27
27
|
end
|
28
28
|
end
|
data/lib/kreds/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kreds
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- enjaku4
|
@@ -15,14 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: '1.
|
18
|
+
version: '1.7'
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - "~>"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: '1.
|
25
|
+
version: '1.7'
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rails
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|