secretspec 0.16.0-aarch64-linux → 0.17.0-aarch64-linux
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/README.md +9 -0
- data/ext/secretspec/extconf.rb +4 -0
- data/lib/secretspec.rb +10 -4
- data/vendor/libsecretspec_ffi.a +0 -0
- data/vendor/secretspec.h +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 81d946255f67745ea2b63e069ce1bf6e61dadb49e19f5cd035a9efeaceaa85f8
|
|
4
|
+
data.tar.gz: 56ddcddd4aea5769b86654226921aa6f20d4430573f4f190bf4aea54adf2a787
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d60a6f402c3131e1d67213cf5bbc8c72f482865f13ca8ffc6e7428542c9d1fed10ae7ffea2f5dd63a8b95e9d1d6d3c4a6b0b2aeff16289ffccd6bdb964db541a
|
|
7
|
+
data.tar.gz: 20a6d71f91633b1527354f86c9a918d7cbe614e214dd84c8ef827a61f4825c0bdbe732bd8448a2a51aab4e6657e2b86b36e4f5ed09b6c44ffbc5b40733088ebf
|
data/README.md
CHANGED
|
@@ -24,6 +24,15 @@ resolved.set_as_env! # export everything into ENV
|
|
|
24
24
|
A missing required secret raises `Secretspec::MissingRequiredError`; any other
|
|
25
25
|
failure raises `Secretspec::Error` (with a stable `#kind`).
|
|
26
26
|
|
|
27
|
+
## Scopes (0.17+)
|
|
28
|
+
|
|
29
|
+
Use `.with_scope("api")` to resolve only a named `[scopes.api]` subset. Both
|
|
30
|
+
`resolved.scope` and `report.scope` return the selected scope:
|
|
31
|
+
|
|
32
|
+
```ruby
|
|
33
|
+
resolved = Secretspec::SecretSpec.builder.with_scope("api").load
|
|
34
|
+
```
|
|
35
|
+
|
|
27
36
|
## Cleanup
|
|
28
37
|
|
|
29
38
|
`as_path` secrets are materialized to temp files that outlive the call. Pass a
|
data/ext/secretspec/extconf.rb
CHANGED
|
@@ -57,5 +57,9 @@ $INCFLAGS << " -I#{include_dir}"
|
|
|
57
57
|
# for the referenced symbols) precedes the system libs it depends on.
|
|
58
58
|
$LOCAL_LIBS << " #{staticlib}"
|
|
59
59
|
$libs = "#{$libs} #{find_native_libs(vendor, repo_root)}"
|
|
60
|
+
# The Windows gem bundles MinGW import libraries next to the staticlib
|
|
61
|
+
# (libwindows.*.a / libwinapi_*.a ship inside cargo registry crates, so an
|
|
62
|
+
# installing machine has them nowhere else); let the linker search vendor/.
|
|
63
|
+
$LIBPATH << vendor if File.directory?(vendor)
|
|
60
64
|
|
|
61
65
|
create_makefile("secretspec/secretspec_ext")
|
data/lib/secretspec.rb
CHANGED
|
@@ -54,7 +54,7 @@ module Secretspec
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
# A successful resolution, mirroring the Rust Resolved wrapper.
|
|
57
|
-
Resolved = Struct.new(:provider, :profile, :secrets, :missing_optional) do
|
|
57
|
+
Resolved = Struct.new(:provider, :profile, :secrets, :missing_optional, :scope) do
|
|
58
58
|
# Export each resolved secret into ENV by its declared name. Secrets with no
|
|
59
59
|
# usable value (e.g. under no_values) are skipped rather than deleted from
|
|
60
60
|
# ENV (assigning nil would remove the variable).
|
|
@@ -97,7 +97,7 @@ module Secretspec
|
|
|
97
97
|
# A value-free resolution snapshot. Unlike Resolved, a missing required secret
|
|
98
98
|
# is a "missing_required" status here, not an error, so a report describes a
|
|
99
99
|
# profile even when its secrets are not all available.
|
|
100
|
-
Report = Struct.new(:provider, :profile, :secrets)
|
|
100
|
+
Report = Struct.new(:provider, :profile, :secrets, :scope)
|
|
101
101
|
|
|
102
102
|
# The narrow C ABI, statically linked into the secretspec_ext extension. The
|
|
103
103
|
# Native.c_resolve / c_abi_version C functions are defined in
|
|
@@ -145,6 +145,12 @@ module Secretspec
|
|
|
145
145
|
self
|
|
146
146
|
end
|
|
147
147
|
|
|
148
|
+
# Limit resolution to a named manifest scope (SecretSpec 0.17+).
|
|
149
|
+
def with_scope(scope)
|
|
150
|
+
@request["scope"] = scope if scope
|
|
151
|
+
self
|
|
152
|
+
end
|
|
153
|
+
|
|
148
154
|
def with_reason(reason)
|
|
149
155
|
@request["reason"] = reason if reason
|
|
150
156
|
self
|
|
@@ -178,7 +184,7 @@ module Secretspec
|
|
|
178
184
|
|
|
179
185
|
resolved = Resolved.new(
|
|
180
186
|
response["provider"], response["profile"], secrets,
|
|
181
|
-
response["missing_optional"] || []
|
|
187
|
+
response["missing_optional"] || [], response["scope"]
|
|
182
188
|
)
|
|
183
189
|
return resolved unless block_given?
|
|
184
190
|
|
|
@@ -202,7 +208,7 @@ module Secretspec
|
|
|
202
208
|
s["source_provider"], s["default_applied"],
|
|
203
209
|
s["generated"], s["as_path"])
|
|
204
210
|
end
|
|
205
|
-
Report.new(response["provider"], response["profile"], secrets)
|
|
211
|
+
Report.new(response["provider"], response["profile"], secrets, response["scope"])
|
|
206
212
|
end
|
|
207
213
|
|
|
208
214
|
private
|
data/vendor/libsecretspec_ffi.a
CHANGED
|
Binary file
|
data/vendor/secretspec.h
CHANGED
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Request JSON (all fields optional):
|
|
9
9
|
* { "path": ".../secretspec.toml", "provider": "keyring://",
|
|
10
|
-
* "profile": "production", "
|
|
11
|
-
* "mode": "resolve" }
|
|
10
|
+
* "profile": "production", "scope": "api", "reason": "boot",
|
|
11
|
+
* "no_values": false, "mode": "resolve" }
|
|
12
|
+
*
|
|
13
|
+
* "scope" selects a named [scopes] subset of the active profile (0.17+).
|
|
12
14
|
*
|
|
13
15
|
* "mode" selects the response shape and defaults to "resolve":
|
|
14
16
|
*
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: secretspec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.17.0
|
|
5
5
|
platform: aarch64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Cachix
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-07-
|
|
11
|
+
date: 2026-07-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: 'Ruby bindings for SecretSpec: a native extension that statically links
|
|
14
14
|
the secretspec-ffi C ABI.'
|