@voxgig/sdkgen 4.10.0 → 4.11.0
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.
- package/bin/voxgig-sdkgen +1 -1
- package/package.json +1 -1
- package/project/.sdk/model/feature/secrets.aon +330 -0
- package/project/.sdk/model/target/c.aon +15 -2
- package/project/.sdk/model/target/cpp.aon +18 -0
- package/project/.sdk/model/target/lua.aon +17 -0
- package/project/.sdk/model/target/ocaml.aon +48 -5
- package/project/.sdk/model/target/zig.aon +30 -4
- package/project/.sdk/src/cmp/c/Config_c.ts +338 -1
- package/project/.sdk/src/cmp/c/Main_c.ts +57 -2
- package/project/.sdk/src/cmp/c/Package_c.ts +12 -2
- package/project/.sdk/src/cmp/cpp/Config_cpp.ts +324 -2
- package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +2 -0
- package/project/.sdk/src/cmp/cpp/Main_cpp.ts +62 -4
- package/project/.sdk/src/cmp/cpp/Package_cpp.ts +10 -0
- package/project/.sdk/src/cmp/lua/Config_lua.ts +88 -0
- package/project/.sdk/src/cmp/lua/Gitignore_lua.ts +4 -0
- package/project/.sdk/src/cmp/lua/Main_lua.ts +93 -3
- package/project/.sdk/src/cmp/lua/Package_lua.ts +60 -0
- package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +10 -0
- package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +183 -5
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +160 -3
- package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +25 -1
- package/project/.sdk/src/cmp/zig/Config_zig.ts +130 -9
- package/project/.sdk/src/cmp/zig/Main_zig.ts +208 -4
- package/project/.sdk/{tm/zig/build.zig → src/cmp/zig/fragment/Build.fragment.zig} +7 -0
- package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +25 -0
- package/project/.sdk/{tm/zig/root.zig → src/cmp/zig/fragment/Root.fragment.zig} +9 -0
- package/project/.sdk/tm/c/Makefile +58 -9
- package/project/.sdk/tm/c/core/sdk.h +10 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +133 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +39 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +83 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +48 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/config.c +413 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/config.h +24 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +264 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +29 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/env.c +220 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/env.h +19 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/export.c +97 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/export.h +19 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +237 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +17 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/host.c +1494 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/host.h +135 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/order.c +288 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/order.h +18 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/point.c +141 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/point.h +80 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +170 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +52 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +98 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +18 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/types.c +150 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/types.h +104 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/value.c +649 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/value.h +135 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/version.c +151 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/version.h +34 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +281 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +207 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +164 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +75 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +141 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +144 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +177 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +239 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +599 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +165 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +194 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +233 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +125 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +125 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +270 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +382 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/support.h +153 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +420 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +86 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +721 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +813 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +944 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +490 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +442 -0
- package/project/.sdk/tm/c/feature/secrets.c +797 -0
- package/project/.sdk/tm/c/feature/secrets.h +46 -0
- package/project/.sdk/tm/c/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/c/tests/feature/secrets/secrets_test.c +802 -0
- package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +38 -11
- package/project/.sdk/tm/clojure/test/sdk/test/feature/secrets.clj +40 -6
- package/project/.sdk/tm/cpp/Makefile +48 -4
- package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +121 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +41 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +60 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +66 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +376 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +29 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +230 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +31 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +205 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +25 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +84 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +24 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +222 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +21 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +1200 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +250 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +250 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +22 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +110 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +79 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +136 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +60 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +82 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +25 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +90 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +65 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +491 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +120 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +143 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +36 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +248 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +30 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +149 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +117 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +27 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +180 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +52 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +87 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +121 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +153 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +666 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +160 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +123 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +125 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +223 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +47 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +104 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +27 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +242 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +58 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +260 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +47 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +476 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +89 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +312 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +263 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +354 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +111 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +613 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +227 -0
- package/project/.sdk/tm/cpp/feature/secrets.hpp +745 -0
- package/project/.sdk/tm/cpp/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/cpp/test/feature/secrets/secrets_test.cpp +808 -0
- package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +34 -8
- package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +85 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets.ex +17 -2
- package/project/.sdk/tm/elixir/test/feature/secrets/secrets_test.exs +41 -0
- package/project/.sdk/tm/go/feature/secrets_feature.go +32 -10
- package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +116 -0
- package/project/.sdk/tm/java/feature/SecretsFeature.java +33 -8
- package/project/.sdk/tm/java/test/feature/secrets/SecretsFeatureTest.java +64 -0
- package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +34 -11
- package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +73 -0
- package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +32 -7
- package/project/.sdk/tm/kotlin/test/feature/secrets/SecretsTest.kt +69 -0
- package/project/.sdk/tm/lua/Makefile +15 -4
- package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +806 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +135 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +63 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +361 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +232 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +168 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +66 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +194 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +1190 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +169 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +207 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +106 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +115 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +78 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +275 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +131 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin.lua +76 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +124 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +47 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +315 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +228 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +137 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +124 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +212 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +89 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +129 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +154 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +248 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +113 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +449 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +198 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +126 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +93 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +269 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +146 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +346 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +479 -0
- package/project/.sdk/tm/lua/feature/secrets_feature.lua +690 -0
- package/project/.sdk/tm/lua/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/lua/test/extend_test.lua +105 -0
- package/project/.sdk/tm/lua/test/feature/secrets/secrets_feature_test.lua +862 -0
- package/project/.sdk/tm/ocaml/Makefile +52 -8
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +106 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +43 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +349 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +143 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +217 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +197 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +89 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +227 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +1112 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +202 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +138 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +126 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +62 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +97 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +387 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +139 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +171 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +116 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +95 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +149 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +61 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +93 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +120 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +421 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +66 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +85 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +112 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +97 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +68 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +259 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +44 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +358 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +376 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +647 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +299 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +347 -0
- package/project/.sdk/tm/ocaml/feature/secrets_feature.ml +453 -0
- package/project/.sdk/tm/ocaml/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/ocaml/test/feature/secrets/t_secrets.ml +670 -0
- package/project/.sdk/tm/perl/feature/secrets_feature.pm +33 -12
- package/project/.sdk/tm/perl/t/feature/secrets/secrets.t +47 -0
- package/project/.sdk/tm/php/feature/SecretsFeature.php +30 -6
- package/project/.sdk/tm/php/test/feature/secrets/SecretsTest.php +98 -0
- package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +28 -6
- package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +114 -0
- package/project/.sdk/tm/rb/feature/secrets_feature.rb +28 -6
- package/project/.sdk/tm/rb/test/feature/secrets/secrets_feature_test.rb +93 -0
- package/project/.sdk/tm/rust/feature/secrets.rs +33 -10
- package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +96 -0
- package/project/.sdk/tm/scala/feature/SecretsFeature.scala +29 -7
- package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +71 -0
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +35 -12
- package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +73 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +137 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +90 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +346 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +244 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +201 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +83 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +212 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +1224 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +126 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +228 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +34 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +166 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +147 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +74 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +140 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +662 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +139 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +294 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +222 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +188 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +135 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +170 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +242 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +535 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +167 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +202 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +160 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +336 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +148 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +259 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +440 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +944 -0
- package/project/.sdk/tm/zig/feature/secrets.zig +854 -0
- package/project/.sdk/tm/zig/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/zig/test/feature/secrets/secrets_test.zig +891 -0
- package/project/sdkgen-package.json +1 -1
package/bin/voxgig-sdkgen
CHANGED
package/package.json
CHANGED
|
@@ -99,6 +99,53 @@ main: kit: feature: secrets: {
|
|
|
99
99
|
# every `private[plugins]` symbol crossing a file boundary is defined in
|
|
100
100
|
# Httpjson.scala or Sigv4.scala, and nothing else is shared.
|
|
101
101
|
|
|
102
|
+
#
|
|
103
|
+
# c has the shared-helper shape too, and five files of it, every one
|
|
104
|
+
# verified by a symbol scan of the port at the tag rather than read off
|
|
105
|
+
# a comment: plugins/httpjson.c (the socket HTTP client eight kinds
|
|
106
|
+
# call), plugins/tls.c (its OpenSSL binding - the ONLY file that names
|
|
107
|
+
# OpenSSL), plugins/encode.c (`sek_uriescape` for four stores and
|
|
108
|
+
# base64 for two), plugins/clock.c (token renewal time, SigV4's
|
|
109
|
+
# timestamp) and plugins/proc.c (`sek_runcmd`, for boru in `vault` AND
|
|
110
|
+
# secretspec in `secretspec`). All five belong to NO group. The two
|
|
111
|
+
# plugin headers (sekretoplugins.h, support.h) are ungrouped for the
|
|
112
|
+
# same reason. What makes c different from java/scala is that the
|
|
113
|
+
# Makefile can see the trim: it compiles these helpers, and links
|
|
114
|
+
# OpenSSL, only when at least one KIND file survived, so an
|
|
115
|
+
# [env, memory] chain compiles the sekreto and voxgig/plugin cores
|
|
116
|
+
# alone and links libc alone. sha256.c and sigv4.c are NOT shared in c
|
|
117
|
+
# (aws.c is their only caller) and go with `aws`.
|
|
118
|
+
#
|
|
119
|
+
# ocaml has the java/scala Sigv4 shape AND the c Makefile-visible
|
|
120
|
+
# trim, verified by an `open`/qualifier scan of the port at the tag:
|
|
121
|
+
# plugins/sigv4.ml's `uriescape` is called by azuresecrets (`cloud`)
|
|
122
|
+
# and by doppler, infisical and onepassword (`saas`), plugins/crypto.ml
|
|
123
|
+
# is sigv4.ml's only caller but must compile before it, and
|
|
124
|
+
# plugins/runcmd.ml (the child-process helper) is opened by boru
|
|
125
|
+
# (`vault`) AND secretspec (`secretspec`). The transport chain
|
|
126
|
+
# plugins/httpjson.ml -> http.ml -> tls.ml (+ tls_stubs.c, the OpenSSL
|
|
127
|
+
# binding) is opened by every HTTPS kind. All seven belong to NO
|
|
128
|
+
# group. What makes the cost zero when no kind needs them is the
|
|
129
|
+
# generated feature/secrets/feature.mk (Main_ocaml): OCaml compiles
|
|
130
|
+
# exactly the modules it is handed, in the order it is handed them, so
|
|
131
|
+
# the fragment lists the transport helpers (and compiles the stub,
|
|
132
|
+
# linking OpenSSL) only when an active group declares `needs.fetch`,
|
|
133
|
+
# and runcmd.ml only when any kind is active. A chain of built-ins,
|
|
134
|
+
# or `secretspec` alone, compiles neither and links no OpenSSL.
|
|
135
|
+
#
|
|
136
|
+
# cpp has four ungrouped shared helpers, read off the port's own
|
|
137
|
+
# include lines at the tag rather than off a comment: plugins/Httpjson
|
|
138
|
+
# .cpp (the socket HTTP client eight kinds include), plugins/Tls.cpp
|
|
139
|
+
# (its OpenSSL binding, included by Httpjson.cpp - the ONLY file that
|
|
140
|
+
# names OpenSSL), plugins/Crypto.cpp (SHA-256/HMAC, included by Tls.cpp
|
|
141
|
+
# AND Sigv4.cpp) and plugins/Proc.cpp (`runcmd`, for Boru in `vault`
|
|
142
|
+
# AND Secretspec in `secretspec`). All four belong to NO group, .hpp
|
|
143
|
+
# and .cpp alike. Sigv4.{cpp,hpp} is included by Aws.cpp alone
|
|
144
|
+
# (upstream's own `make lean` asserts only aws needs a digest) and goes
|
|
145
|
+
# with `aws`. As in c, the Makefile can see the trim: it compiles the
|
|
146
|
+
# helpers, and links OpenSSL, only when at least one KIND file survived,
|
|
147
|
+
# so an [env, memory] chain compiles the sekreto and voxgig/plugin cores
|
|
148
|
+
# alone and links libstdc++ alone.
|
|
102
149
|
vault: {
|
|
103
150
|
title: 'HashiCorp Vault and boru'
|
|
104
151
|
needs: { fs: true, fetch: true }
|
|
@@ -137,6 +184,18 @@ main: kit: feature: secrets: {
|
|
|
137
184
|
'feature/secrets/plugins/Boru.swift'
|
|
138
185
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Hashicorp.lean'
|
|
139
186
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Boru.lean'
|
|
187
|
+
'feature/secrets/plugins/hashicorp.c'
|
|
188
|
+
'feature/secrets/plugins/boru.c'
|
|
189
|
+
'feature/secrets/sekreto/plugins/hashicorp.lua'
|
|
190
|
+
'feature/secrets/sekreto/plugins/boru.lua'
|
|
191
|
+
'feature/secrets/plugins/hashicorp.zig'
|
|
192
|
+
'feature/secrets/plugins/boru.zig'
|
|
193
|
+
'feature/secrets/plugins/hashicorp.ml'
|
|
194
|
+
'feature/secrets/plugins/boru.ml'
|
|
195
|
+
'feature/secrets/plugins/Hashicorp.cpp'
|
|
196
|
+
'feature/secrets/plugins/Hashicorp.hpp'
|
|
197
|
+
'feature/secrets/plugins/Boru.cpp'
|
|
198
|
+
'feature/secrets/plugins/Boru.hpp'
|
|
140
199
|
]
|
|
141
200
|
def: ts: {
|
|
142
201
|
hashicorp: 'src/feature/secrets/sekreto/plugins/hashicorp.ts'
|
|
@@ -297,6 +356,86 @@ main: kit: feature: secrets: {
|
|
|
297
356
|
'Sekreto.hashicorp': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Hashicorp.lean'
|
|
298
357
|
'Sekreto.boru': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Boru.lean'
|
|
299
358
|
}
|
|
359
|
+
# c: the `Definition *sek_plugin_<kind>(void)` constructor each
|
|
360
|
+
# vendored plugin file defines (plugins/sekretoplugins.h declares all
|
|
361
|
+
# ten; only the objects the link line names are carried). The path is
|
|
362
|
+
# target-root-relative, as go's is, because Main_c's Copy is rooted
|
|
363
|
+
# at tm/c. The generated feature/secrets/kinds.c (Config_c) calls
|
|
364
|
+
# these and hands the list to the feature through feature_plugins().
|
|
365
|
+
#
|
|
366
|
+
# plugins/proc.c does NOT go with boru: it is the php/perl
|
|
367
|
+
# SHARED-HELPER shape - `sek_runcmd` is called by boru (`vault`) AND
|
|
368
|
+
# secretspec (`secretspec`), so it ships with the feature core
|
|
369
|
+
# beside httpjson.c, tls.c, encode.c and clock.c and belongs to NO
|
|
370
|
+
# group. The Makefile compiles the ungrouped helpers only when a
|
|
371
|
+
# kind file is present, so they cost nothing (and need no OpenSSL
|
|
372
|
+
# headers) in a chain that is [env, memory].
|
|
373
|
+
def: c: {
|
|
374
|
+
sek_plugin_hashicorp: 'feature/secrets/plugins/hashicorp.c'
|
|
375
|
+
sek_plugin_boru: 'feature/secrets/plugins/boru.c'
|
|
376
|
+
}
|
|
377
|
+
# lua: the FIELD each module exports (`require('...hashicorp').hashicorp`
|
|
378
|
+
# is upstream's own spelling; aws.lua exports awssecrets AND awsparams),
|
|
379
|
+
# and the module path under tm/lua - this target's root, which is also
|
|
380
|
+
# Main_lua's Copy root, so the emitted exclude matches it. Config_lua
|
|
381
|
+
# turns the path into a require (strip .lua, slashes to dots).
|
|
382
|
+
def: lua: {
|
|
383
|
+
hashicorp: 'feature/secrets/sekreto/plugins/hashicorp.lua'
|
|
384
|
+
boru: 'feature/secrets/sekreto/plugins/boru.lua'
|
|
385
|
+
}
|
|
386
|
+
# zig: the BARE export names upstream's plugins/all.zig re-exports
|
|
387
|
+
# (`pub const hashicorp = @import("hashicorp.zig").hashicorp;`), so the
|
|
388
|
+
# symbol is what Config_zig re-exports from the generated
|
|
389
|
+
# feature/secrets/plugins.zig - the root of the `sekretoplugins` build
|
|
390
|
+
# module, which is what makes the trim REAL in zig: the compiler
|
|
391
|
+
# analyses only what a module root reaches, so a kind this file does
|
|
392
|
+
# not name is neither compiled nor in the vocabulary. The path is
|
|
393
|
+
# target-root-relative, as go's is, because Main_zig's Copy is rooted
|
|
394
|
+
# at tm/zig. plugins/httpjson.zig is in NO group (eight kinds import
|
|
395
|
+
# it by relative path, and the exchange's fetch of last resort is its
|
|
396
|
+
# fetchjson), so it ships with the feature core.
|
|
397
|
+
def: zig: {
|
|
398
|
+
hashicorp: 'feature/secrets/plugins/hashicorp.zig'
|
|
399
|
+
boru: 'feature/secrets/plugins/boru.zig'
|
|
400
|
+
}
|
|
401
|
+
# ocaml: MODULE-QUALIFIED FUNCTIONS (`Hashicorp.plugin`), the
|
|
402
|
+
# `unit -> Defs.definition` each vendored kind module defines
|
|
403
|
+
# (upstream's allplugins.ml names exactly these); Config_ocaml
|
|
404
|
+
# appends `()`. OCaml's namespace is flat and resolved by -I, so the
|
|
405
|
+
# symbol needs no import and the path is only what the plugin trim
|
|
406
|
+
# matches and what feature/secrets/feature.mk compiles. The path is target-root
|
|
407
|
+
# relative, as go's is, because Main_ocaml's Copy is rooted at
|
|
408
|
+
# tm/ocaml.
|
|
409
|
+
#
|
|
410
|
+
# plugins/runcmd.ml does NOT go with boru: it is the php/perl
|
|
411
|
+
# SHARED-HELPER shape (secretspec opens it too), so it ships with the
|
|
412
|
+
# feature core and belongs to NO group - see the ocaml note at the
|
|
413
|
+
# head of this `plugin` block.
|
|
414
|
+
def: ocaml: {
|
|
415
|
+
'Hashicorp.plugin': 'feature/secrets/plugins/hashicorp.ml'
|
|
416
|
+
'Boru.plugin': 'feature/secrets/plugins/boru.ml'
|
|
417
|
+
}
|
|
418
|
+
# cpp: the bare `Definition <kind>()` factory each vendored kind file
|
|
419
|
+
# defines in namespace sekreto (Hashicorp.hpp: `Definition hashicorp();`),
|
|
420
|
+
# so the key is the unqualified function name; the generated
|
|
421
|
+
# feature/secrets/kinds.cpp (Config_cpp) qualifies it as
|
|
422
|
+
# `sekreto::hashicorp()` and includes the owning file's header. The path
|
|
423
|
+
# is target-root-relative, as go's is, because Main_cpp's Copy is rooted
|
|
424
|
+
# at tm/cpp; the .hpp rides in `path` beside its .cpp so the trim removes
|
|
425
|
+
# the pair, and the .cpp is what the def names because it is what the
|
|
426
|
+
# Makefile compiles.
|
|
427
|
+
#
|
|
428
|
+
# plugins/Proc.cpp does NOT go with Boru: it is the php/perl
|
|
429
|
+
# SHARED-HELPER shape - `runcmd` is called by Boru (`vault`) AND
|
|
430
|
+
# Secretspec (`secretspec`), so it ships with the feature core beside
|
|
431
|
+
# Httpjson.cpp, Tls.cpp and Crypto.cpp and belongs to NO group. The
|
|
432
|
+
# Makefile compiles the ungrouped helpers only when a kind file is
|
|
433
|
+
# present, so they cost nothing (and need no OpenSSL headers) in a chain
|
|
434
|
+
# that is [env, memory].
|
|
435
|
+
def: cpp: {
|
|
436
|
+
hashicorp: 'feature/secrets/plugins/Hashicorp.cpp'
|
|
437
|
+
boru: 'feature/secrets/plugins/Boru.cpp'
|
|
438
|
+
}
|
|
300
439
|
}
|
|
301
440
|
|
|
302
441
|
cloud: {
|
|
@@ -337,6 +476,18 @@ main: kit: feature: secrets: {
|
|
|
337
476
|
'feature/secrets/plugins/Azuresecrets.swift'
|
|
338
477
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Gcpsecrets.lean'
|
|
339
478
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Azuresecrets.lean'
|
|
479
|
+
'feature/secrets/plugins/gcpsecrets.c'
|
|
480
|
+
'feature/secrets/plugins/azuresecrets.c'
|
|
481
|
+
'feature/secrets/sekreto/plugins/gcpsecrets.lua'
|
|
482
|
+
'feature/secrets/sekreto/plugins/azuresecrets.lua'
|
|
483
|
+
'feature/secrets/plugins/gcpsecrets.zig'
|
|
484
|
+
'feature/secrets/plugins/azuresecrets.zig'
|
|
485
|
+
'feature/secrets/plugins/gcpsecrets.ml'
|
|
486
|
+
'feature/secrets/plugins/azuresecrets.ml'
|
|
487
|
+
'feature/secrets/plugins/Gcpsecrets.cpp'
|
|
488
|
+
'feature/secrets/plugins/Gcpsecrets.hpp'
|
|
489
|
+
'feature/secrets/plugins/Azuresecrets.cpp'
|
|
490
|
+
'feature/secrets/plugins/Azuresecrets.hpp'
|
|
340
491
|
]
|
|
341
492
|
def: ts: {
|
|
342
493
|
gcpsecrets: 'src/feature/secrets/sekreto/plugins/gcpsecrets.ts'
|
|
@@ -406,6 +557,32 @@ main: kit: feature: secrets: {
|
|
|
406
557
|
'Sekreto.gcpsecrets': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Gcpsecrets.lean'
|
|
407
558
|
'Sekreto.azuresecrets': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Azuresecrets.lean'
|
|
408
559
|
}
|
|
560
|
+
def: c: {
|
|
561
|
+
sek_plugin_gcpsecrets: 'feature/secrets/plugins/gcpsecrets.c'
|
|
562
|
+
sek_plugin_azuresecrets: 'feature/secrets/plugins/azuresecrets.c'
|
|
563
|
+
}
|
|
564
|
+
# lua: the FIELD each module exports (`require('...hashicorp').hashicorp`
|
|
565
|
+
# is upstream's own spelling; aws.lua exports awssecrets AND awsparams),
|
|
566
|
+
# and the module path under tm/lua - this target's root, which is also
|
|
567
|
+
# Main_lua's Copy root, so the emitted exclude matches it. Config_lua
|
|
568
|
+
# turns the path into a require (strip .lua, slashes to dots).
|
|
569
|
+
def: lua: {
|
|
570
|
+
gcpsecrets: 'feature/secrets/sekreto/plugins/gcpsecrets.lua'
|
|
571
|
+
azuresecrets: 'feature/secrets/sekreto/plugins/azuresecrets.lua'
|
|
572
|
+
}
|
|
573
|
+
def: zig: {
|
|
574
|
+
gcpsecrets: 'feature/secrets/plugins/gcpsecrets.zig'
|
|
575
|
+
azuresecrets: 'feature/secrets/plugins/azuresecrets.zig'
|
|
576
|
+
}
|
|
577
|
+
def: ocaml: {
|
|
578
|
+
'Gcpsecrets.plugin': 'feature/secrets/plugins/gcpsecrets.ml'
|
|
579
|
+
'Azuresecrets.plugin': 'feature/secrets/plugins/azuresecrets.ml'
|
|
580
|
+
}
|
|
581
|
+
# cpp: see the vault group.
|
|
582
|
+
def: cpp: {
|
|
583
|
+
gcpsecrets: 'feature/secrets/plugins/Gcpsecrets.cpp'
|
|
584
|
+
azuresecrets: 'feature/secrets/plugins/Azuresecrets.cpp'
|
|
585
|
+
}
|
|
409
586
|
}
|
|
410
587
|
|
|
411
588
|
saas: {
|
|
@@ -463,6 +640,24 @@ main: kit: feature: secrets: {
|
|
|
463
640
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Onepassword.lean'
|
|
464
641
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Doppler.lean'
|
|
465
642
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Infisical.lean'
|
|
643
|
+
'feature/secrets/plugins/onepassword.c'
|
|
644
|
+
'feature/secrets/plugins/doppler.c'
|
|
645
|
+
'feature/secrets/plugins/infisical.c'
|
|
646
|
+
'feature/secrets/sekreto/plugins/onepassword.lua'
|
|
647
|
+
'feature/secrets/sekreto/plugins/doppler.lua'
|
|
648
|
+
'feature/secrets/sekreto/plugins/infisical.lua'
|
|
649
|
+
'feature/secrets/plugins/onepassword.zig'
|
|
650
|
+
'feature/secrets/plugins/doppler.zig'
|
|
651
|
+
'feature/secrets/plugins/infisical.zig'
|
|
652
|
+
'feature/secrets/plugins/onepassword.ml'
|
|
653
|
+
'feature/secrets/plugins/doppler.ml'
|
|
654
|
+
'feature/secrets/plugins/infisical.ml'
|
|
655
|
+
'feature/secrets/plugins/Onepassword.cpp'
|
|
656
|
+
'feature/secrets/plugins/Onepassword.hpp'
|
|
657
|
+
'feature/secrets/plugins/Doppler.cpp'
|
|
658
|
+
'feature/secrets/plugins/Doppler.hpp'
|
|
659
|
+
'feature/secrets/plugins/Infisical.cpp'
|
|
660
|
+
'feature/secrets/plugins/Infisical.hpp'
|
|
466
661
|
]
|
|
467
662
|
def: ts: {
|
|
468
663
|
onepassword: 'src/feature/secrets/sekreto/plugins/onepassword.ts'
|
|
@@ -556,6 +751,37 @@ main: kit: feature: secrets: {
|
|
|
556
751
|
'Sekreto.doppler': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Doppler.lean'
|
|
557
752
|
'Sekreto.infisical': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Infisical.lean'
|
|
558
753
|
}
|
|
754
|
+
def: c: {
|
|
755
|
+
sek_plugin_onepassword: 'feature/secrets/plugins/onepassword.c'
|
|
756
|
+
sek_plugin_doppler: 'feature/secrets/plugins/doppler.c'
|
|
757
|
+
sek_plugin_infisical: 'feature/secrets/plugins/infisical.c'
|
|
758
|
+
}
|
|
759
|
+
# lua: the FIELD each module exports (`require('...hashicorp').hashicorp`
|
|
760
|
+
# is upstream's own spelling; aws.lua exports awssecrets AND awsparams),
|
|
761
|
+
# and the module path under tm/lua - this target's root, which is also
|
|
762
|
+
# Main_lua's Copy root, so the emitted exclude matches it. Config_lua
|
|
763
|
+
# turns the path into a require (strip .lua, slashes to dots).
|
|
764
|
+
def: lua: {
|
|
765
|
+
onepassword: 'feature/secrets/sekreto/plugins/onepassword.lua'
|
|
766
|
+
doppler: 'feature/secrets/sekreto/plugins/doppler.lua'
|
|
767
|
+
infisical: 'feature/secrets/sekreto/plugins/infisical.lua'
|
|
768
|
+
}
|
|
769
|
+
def: zig: {
|
|
770
|
+
onepassword: 'feature/secrets/plugins/onepassword.zig'
|
|
771
|
+
doppler: 'feature/secrets/plugins/doppler.zig'
|
|
772
|
+
infisical: 'feature/secrets/plugins/infisical.zig'
|
|
773
|
+
}
|
|
774
|
+
def: ocaml: {
|
|
775
|
+
'Onepassword.plugin': 'feature/secrets/plugins/onepassword.ml'
|
|
776
|
+
'Doppler.plugin': 'feature/secrets/plugins/doppler.ml'
|
|
777
|
+
'Infisical.plugin': 'feature/secrets/plugins/infisical.ml'
|
|
778
|
+
}
|
|
779
|
+
# cpp: see the vault group.
|
|
780
|
+
def: cpp: {
|
|
781
|
+
onepassword: 'feature/secrets/plugins/Onepassword.cpp'
|
|
782
|
+
doppler: 'feature/secrets/plugins/Doppler.cpp'
|
|
783
|
+
infisical: 'feature/secrets/plugins/Infisical.cpp'
|
|
784
|
+
}
|
|
559
785
|
}
|
|
560
786
|
|
|
561
787
|
# The only plugin that costs node:crypto: AWS request signing.
|
|
@@ -602,6 +828,18 @@ main: kit: feature: secrets: {
|
|
|
602
828
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Sigv4.lean'
|
|
603
829
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Crypto.lean'
|
|
604
830
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Clock.lean'
|
|
831
|
+
'feature/secrets/plugins/aws.c'
|
|
832
|
+
'feature/secrets/plugins/sigv4.c'
|
|
833
|
+
'feature/secrets/plugins/sha256.c'
|
|
834
|
+
'feature/secrets/sekreto/plugins/aws.lua'
|
|
835
|
+
'feature/secrets/sekreto/plugins/sigv4.lua'
|
|
836
|
+
'feature/secrets/plugins/aws.zig'
|
|
837
|
+
'feature/secrets/plugins/sigv4.zig'
|
|
838
|
+
'feature/secrets/plugins/aws.ml'
|
|
839
|
+
'feature/secrets/plugins/Aws.cpp'
|
|
840
|
+
'feature/secrets/plugins/Aws.hpp'
|
|
841
|
+
'feature/secrets/plugins/Sigv4.cpp'
|
|
842
|
+
'feature/secrets/plugins/Sigv4.hpp'
|
|
605
843
|
]
|
|
606
844
|
def: ts: {
|
|
607
845
|
awssecrets: 'src/feature/secrets/sekreto/plugins/aws.ts'
|
|
@@ -746,6 +984,63 @@ main: kit: feature: secrets: {
|
|
|
746
984
|
'Sekreto.awssecrets': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Aws.lean'
|
|
747
985
|
'Sekreto.awsparams': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Aws.lean'
|
|
748
986
|
}
|
|
987
|
+
# c: ONE file, TWO definitions - the c spelling of the ts aws.ts
|
|
988
|
+
# pair, as go spells it aws.Secrets/aws.Params. plugins/sigv4.c AND
|
|
989
|
+
# plugins/sha256.c ride with it and only with it: upstream's own
|
|
990
|
+
# plugins/support.h says "sha256.c and nothing else. The aws plugin is
|
|
991
|
+
# the only thing in the library that names these", and a symbol scan
|
|
992
|
+
# of the port at the tag confirms aws.c is the sole caller of
|
|
993
|
+
# sek_sigv4 / sek_sha256 / sek_hmac_sha256. Unlike java's and scala's
|
|
994
|
+
# Sigv4, the c percent-encoder the other stores use (`sek_uriescape`)
|
|
995
|
+
# lives in the ungrouped encode.c, so nothing outside this group
|
|
996
|
+
# compiles against sigv4.c.
|
|
997
|
+
def: c: {
|
|
998
|
+
sek_plugin_awssecrets: 'feature/secrets/plugins/aws.c'
|
|
999
|
+
sek_plugin_awsparams: 'feature/secrets/plugins/aws.c'
|
|
1000
|
+
}
|
|
1001
|
+
# lua: the FIELD each module exports (`require('...hashicorp').hashicorp`
|
|
1002
|
+
# is upstream's own spelling; aws.lua exports awssecrets AND awsparams),
|
|
1003
|
+
# and the module path under tm/lua - this target's root, which is also
|
|
1004
|
+
# Main_lua's Copy root, so the emitted exclude matches it. Config_lua
|
|
1005
|
+
# turns the path into a require (strip .lua, slashes to dots).
|
|
1006
|
+
# sigv4.lua is required by aws.lua ALONE in the lua port (checked at the
|
|
1007
|
+
# tag: gcpsecrets.lua reaches crypto.lua directly, never sigv4), so it
|
|
1008
|
+
# belongs to this group. crypto.lua is shared by aws and cloud and
|
|
1009
|
+
# ships ungrouped with the feature core.
|
|
1010
|
+
def: lua: {
|
|
1011
|
+
awssecrets: 'feature/secrets/sekreto/plugins/aws.lua'
|
|
1012
|
+
awsparams: 'feature/secrets/sekreto/plugins/aws.lua'
|
|
1013
|
+
}
|
|
1014
|
+
# ONE file, TWO definitions - zig's spelling of the ts aws.ts pair
|
|
1015
|
+
# (upstream all.zig: `awssecrets` and `awsparams`, both from aws.zig).
|
|
1016
|
+
# plugins/sigv4.zig goes with it, and goes only with it: at the tag
|
|
1017
|
+
# aws.zig is the ONLY file that `@import("sigv4.zig")` - the zig port
|
|
1018
|
+
# has no java/kotlin/scala `uriescape` story (checked by grep at the
|
|
1019
|
+
# tag), so an aws-off trim leaves nothing dangling.
|
|
1020
|
+
def: zig: {
|
|
1021
|
+
awssecrets: 'feature/secrets/plugins/aws.zig'
|
|
1022
|
+
awsparams: 'feature/secrets/plugins/aws.zig'
|
|
1023
|
+
}
|
|
1024
|
+
# ONE module, TWO definitions - ocaml's spelling of the ts aws.ts
|
|
1025
|
+
# pair (aws.ml defines `secretsplugin` and `paramsplugin`).
|
|
1026
|
+
# plugins/sigv4.ml and plugins/crypto.ml do NOT go with it: the
|
|
1027
|
+
# java/scala story repeats here (see the ocaml note at the head of
|
|
1028
|
+
# this `plugin` block), because `Sigv4.uriescape` is also called by
|
|
1029
|
+
# azuresecrets (`cloud`) and by doppler, infisical and onepassword
|
|
1030
|
+
# (`saas`), and crypto.ml has to compile before sigv4.ml.
|
|
1031
|
+
def: ocaml: {
|
|
1032
|
+
'Aws.secretsplugin': 'feature/secrets/plugins/aws.ml'
|
|
1033
|
+
'Aws.paramsplugin': 'feature/secrets/plugins/aws.ml'
|
|
1034
|
+
}
|
|
1035
|
+
# cpp: ONE file, TWO definitions (`Definition awssecrets();` and
|
|
1036
|
+
# `Definition awsparams();`, both in Aws.hpp) - the ts/go/py shape. The
|
|
1037
|
+
# SigV4 signer is aws-only in this port: Sigv4.hpp is included by Aws.cpp
|
|
1038
|
+
# and nothing else, so Sigv4.{cpp,hpp} go with `aws`; Crypto.cpp, which
|
|
1039
|
+
# Sigv4.cpp AND Tls.cpp include, stays with the feature core.
|
|
1040
|
+
def: cpp: {
|
|
1041
|
+
awssecrets: 'feature/secrets/plugins/Aws.cpp'
|
|
1042
|
+
awsparams: 'feature/secrets/plugins/Aws.cpp'
|
|
1043
|
+
}
|
|
749
1044
|
}
|
|
750
1045
|
|
|
751
1046
|
# The only plugin that runs a CHILD PROCESS: the secretspec CLI
|
|
@@ -772,6 +1067,12 @@ main: kit: feature: secrets: {
|
|
|
772
1067
|
'feature/secrets/sekreto/plugins/secretspec.ex'
|
|
773
1068
|
'feature/secrets/plugins/Secretspec.swift'
|
|
774
1069
|
'src/feature/secrets/sekreto/plugins/SekretoPlugins/Secretspec.lean'
|
|
1070
|
+
'feature/secrets/plugins/secretspec.c'
|
|
1071
|
+
'feature/secrets/sekreto/plugins/secretspec.lua'
|
|
1072
|
+
'feature/secrets/plugins/secretspec.zig'
|
|
1073
|
+
'feature/secrets/plugins/secretspec.ml'
|
|
1074
|
+
'feature/secrets/plugins/Secretspec.cpp'
|
|
1075
|
+
'feature/secrets/plugins/Secretspec.hpp'
|
|
775
1076
|
]
|
|
776
1077
|
def: ts: {
|
|
777
1078
|
secretspec: 'src/feature/secrets/sekreto/plugins/secretspec.ts'
|
|
@@ -853,6 +1154,35 @@ main: kit: feature: secrets: {
|
|
|
853
1154
|
def: lean: {
|
|
854
1155
|
'Sekreto.secretspec': 'src/feature/secrets/sekreto/plugins/SekretoPlugins/Secretspec.lean'
|
|
855
1156
|
}
|
|
1157
|
+
# plugins/proc.c is NOT listed here either - see the c note in the
|
|
1158
|
+
# `vault` group: it is a feature-core file both groups use.
|
|
1159
|
+
def: c: {
|
|
1160
|
+
sek_plugin_secretspec: 'feature/secrets/plugins/secretspec.c'
|
|
1161
|
+
}
|
|
1162
|
+
# lua: the FIELD each module exports (`require('...hashicorp').hashicorp`
|
|
1163
|
+
# is upstream's own spelling; aws.lua exports awssecrets AND awsparams),
|
|
1164
|
+
# and the module path under tm/lua - this target's root, which is also
|
|
1165
|
+
# Main_lua's Copy root, so the emitted exclude matches it. Config_lua
|
|
1166
|
+
# turns the path into a require (strip .lua, slashes to dots).
|
|
1167
|
+
def: lua: {
|
|
1168
|
+
secretspec: 'feature/secrets/sekreto/plugins/secretspec.lua'
|
|
1169
|
+
}
|
|
1170
|
+
def: zig: {
|
|
1171
|
+
secretspec: 'feature/secrets/plugins/secretspec.zig'
|
|
1172
|
+
}
|
|
1173
|
+
# plugins/runcmd.ml is NOT listed here either - see the ocaml note in
|
|
1174
|
+
# the `vault` group: it is a feature-core file both groups open.
|
|
1175
|
+
# This is the one ocaml group that needs NO transport (`needs` has no
|
|
1176
|
+
# `fetch`), so feature/secrets/feature.mk compiles runcmd.ml beside it and nothing of
|
|
1177
|
+
# the TLS chain: a secretspec-only ocaml SDK links no OpenSSL.
|
|
1178
|
+
def: ocaml: {
|
|
1179
|
+
'Secretspec.plugin': 'feature/secrets/plugins/secretspec.ml'
|
|
1180
|
+
}
|
|
1181
|
+
# cpp: see the vault group. plugins/Proc.cpp (`runcmd`) is shared with
|
|
1182
|
+
# Boru and ships with the feature core, not here.
|
|
1183
|
+
def: cpp: {
|
|
1184
|
+
secretspec: 'feature/secrets/plugins/Secretspec.cpp'
|
|
1185
|
+
}
|
|
856
1186
|
}
|
|
857
1187
|
}
|
|
858
1188
|
|
|
@@ -8,6 +8,11 @@ main: kit: target: c: {
|
|
|
8
8
|
base: 'BASE'
|
|
9
9
|
srcfeature: false
|
|
10
10
|
|
|
11
|
+
# Applicability tags (docs/design/feature-tags.md): this target vendors
|
|
12
|
+
# the c port of @voxgig/sekreto (with voxgig/plugin under it) inside its
|
|
13
|
+
# gated `feature/secrets/` container, so the `secrets` feature applies.
|
|
14
|
+
provides: { sekreto: true }
|
|
15
|
+
|
|
11
16
|
# Files earlier toolchains generated that this target has RETIRED
|
|
12
17
|
# (vendor-tag rollout): the fused corpus runner, whose engine half is now
|
|
13
18
|
# the vendored omni runner (tests/vendor/omni) and whose support half
|
|
@@ -23,8 +28,16 @@ main: kit: target: c: {
|
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
# struct is vendored under utility/struct — no external dep. The whole
|
|
26
|
-
# pipeline is synchronous
|
|
27
|
-
#
|
|
31
|
+
# pipeline is synchronous, and the CORE ships no HTTP client at all: a
|
|
32
|
+
# live request without a caller-supplied `options.system.fetch` returns
|
|
33
|
+
# a transport error (utility/fetcher.c). The only external dependencies
|
|
34
|
+
# a c SDK can have arrive with the `secrets` feature, and only when it
|
|
35
|
+
# is active with a plugin group: the vendored vault kinds link OpenSSL
|
|
36
|
+
# (-lssl -lcrypto, plugins/tls.c), and the feature's token-exchange
|
|
37
|
+
# transport of last resort (feature/secrets/kinds.c, generated) links
|
|
38
|
+
# libcurl. Both are turned on by the generated feature/secrets/kinds.mk
|
|
39
|
+
# the Makefile includes, so an SDK with secrets inactive, or with no
|
|
40
|
+
# plugin group, links libc alone.
|
|
28
41
|
deps: {
|
|
29
42
|
}
|
|
30
43
|
}
|
|
@@ -8,6 +8,14 @@ main: kit: target: cpp: {
|
|
|
8
8
|
base: 'BASE'
|
|
9
9
|
srcfeature: false
|
|
10
10
|
|
|
11
|
+
# Applicability tags (docs/design/feature-tags.md): this target vendors
|
|
12
|
+
# the cpp port of @voxgig/sekreto (with voxgig/plugin under it) inside
|
|
13
|
+
# its gated `feature/secrets/` container, so the `secrets` feature
|
|
14
|
+
# applies. The port is a multi-translation-unit library where the SDK
|
|
15
|
+
# itself is header-only; tm/cpp/Makefile compiles it into an archive only
|
|
16
|
+
# through the generated feature/secrets/kinds.mk it `-include`s.
|
|
17
|
+
provides: { sekreto: true }
|
|
18
|
+
|
|
11
19
|
# Files earlier toolchains generated that this target has RETIRED
|
|
12
20
|
# (vendor-tag rollout): the struct-corpus runner header
|
|
13
21
|
# (test/runner_support.hpp is support-only — the file/env loaders,
|
|
@@ -25,6 +33,16 @@ main: kit: target: cpp: {
|
|
|
25
33
|
# struct is vendored under utility/voxgigstruct — no external dep. The SDK
|
|
26
34
|
# is header-only; JSON parsing is the vendored struct parser and the mock
|
|
27
35
|
# transport needs no network. Tests need only a C++17 compiler (g++).
|
|
36
|
+
#
|
|
37
|
+
# The one external dependency a cpp SDK can have arrives with the
|
|
38
|
+
# `secrets` feature, and only when it is active WITH a plugin group: the
|
|
39
|
+
# vendored vault kinds link OpenSSL (-lssl -lcrypto, plugins/Tls.cpp),
|
|
40
|
+
# and the feature's token-exchange transport of last resort (the
|
|
41
|
+
# generated feature/secrets/kinds.cpp) rides on the same vendored HTTPS
|
|
42
|
+
# client rather than adding libcurl - so there is exactly one HTTP stack
|
|
43
|
+
# and one -l pair. The generated feature/secrets/kinds.mk turns it on
|
|
44
|
+
# from the model, so an SDK with secrets inactive, or with no plugin
|
|
45
|
+
# group, links libstdc++ and libc alone.
|
|
28
46
|
deps: {}
|
|
29
47
|
}
|
|
30
48
|
|
|
@@ -8,6 +8,23 @@ main: kit: target: lua: {
|
|
|
8
8
|
base: 'BASE'
|
|
9
9
|
srcfeature: false
|
|
10
10
|
|
|
11
|
+
# Applicability (docs/design/feature-tags.md). A vendored sekreto port
|
|
12
|
+
# lives in this target's feature container (tm/lua/feature/secrets/), so
|
|
13
|
+
# a feature that resolves secrets through sekreto can apply here.
|
|
14
|
+
#
|
|
15
|
+
# What lua ships: the four built-in kinds (env, memory, dotenv, file) in
|
|
16
|
+
# the vendored core, and every plugin kind as a trimmable group. The
|
|
17
|
+
# plugin kinds reach `sekreto.plugins.net`, which runs a small COMPILED
|
|
18
|
+
# helper (feature/secrets/native/sekretonet.c, -lssl -lcrypto) because
|
|
19
|
+
# Lua 5.4 has no sockets and no TLS. The helper is vendored with the
|
|
20
|
+
# feature and built by the generated Makefile ONLY when a plugin group is
|
|
21
|
+
# active (Main_lua emits feature/secrets/native.mk then), so an SDK
|
|
22
|
+
# without secrets - or with the built-in chain alone - runs no compiler
|
|
23
|
+
# and links no OpenSSL. `sekreto.plugins.net` finds the binary through
|
|
24
|
+
# its own adapted helperpath() (vendor/routes.json), at
|
|
25
|
+
# feature/secrets/native/sekreto-net.
|
|
26
|
+
provides: { sekreto: true }
|
|
27
|
+
|
|
11
28
|
# Files earlier toolchains generated that this target has RETIRED
|
|
12
29
|
# (vendor-tag rollout): the struct-corpus runner (test/runner.lua is
|
|
13
30
|
# support-only and RETAINED). `doctor` reports leftovers; `doctor
|
|
@@ -8,6 +8,24 @@ main: kit: target: ocaml: {
|
|
|
8
8
|
base: 'BASE'
|
|
9
9
|
srcfeature: false
|
|
10
10
|
|
|
11
|
+
# Applicability (docs/design/feature-tags.md). A vendored sekreto port
|
|
12
|
+
# lives in this target's feature container (tm/ocaml/feature/secrets/:
|
|
13
|
+
# the sekreto core under sekreto/, the voxgig/plugin host under plugin/
|
|
14
|
+
# and the provider kinds under plugins/), so a feature that resolves
|
|
15
|
+
# secrets through sekreto can apply here.
|
|
16
|
+
#
|
|
17
|
+
# What ocaml ships: the four built-in kinds (env, memory, dotenv, file)
|
|
18
|
+
# in the vendored core, and every plugin kind as a trimmable group. The
|
|
19
|
+
# four HTTPS groups (vault, cloud, saas, aws) reach plugins/http.ml ->
|
|
20
|
+
# plugins/tls.ml, whose externals are bound in plugins/tls_stubs.c
|
|
21
|
+
# against OpenSSL (-lssl -lcrypto, and `ocamlc -custom` to carry the
|
|
22
|
+
# stub). That dependency is scoped INSIDE the gated feature: the
|
|
23
|
+
# generated feature/secrets/feature.mk (Main_ocaml) compiles the stub
|
|
24
|
+
# and links OpenSSL ONLY when a plugin group that needs a transport is
|
|
25
|
+
# active, so an SDK without secrets, or with the built-in chain alone,
|
|
26
|
+
# or with `secretspec` alone, runs no C compiler and links no OpenSSL.
|
|
27
|
+
provides: { sekreto: true }
|
|
28
|
+
|
|
11
29
|
# Files earlier toolchains generated that this target has RETIRED
|
|
12
30
|
# (vendor-tag rollout): the hand-written corpus engine, replaced by
|
|
13
31
|
# test/omni_resolver.ml over the vendored @voxgig/omni port
|
|
@@ -24,6 +42,17 @@ main: kit: target: ocaml: {
|
|
|
24
42
|
# struct is vendored under utility/ (voxgig_struct.ml + vregex.ml) — the
|
|
25
43
|
# runtime is dependency-free: it compiles with the stock ocamlc, no opam
|
|
26
44
|
# packages, no dune. So there are no manifest dependencies.
|
|
45
|
+
#
|
|
46
|
+
# The CORE also bundles no HTTP transport (sdk_runtime.ml
|
|
47
|
+
# fetch_no_transport): a live request needs a caller-supplied
|
|
48
|
+
# `options.system.fetch`. The only external dependency an ocaml SDK can
|
|
49
|
+
# have arrives with the `secrets` feature, and only when a plugin group
|
|
50
|
+
# needing a transport is active: the vendored HTTPS kinds bind OpenSSL
|
|
51
|
+
# through plugins/tls_stubs.c, and the feature's token-exchange transport
|
|
52
|
+
# of last resort rides the same vendored HTTP client. The generated
|
|
53
|
+
# feature/secrets/feature.mk turns both on from the trimmed tree, so an
|
|
54
|
+
# SDK with secrets inactive, or with no plugin group, links the OCaml
|
|
55
|
+
# distribution alone (unix.cma for the dotenv/file built-ins).
|
|
27
56
|
deps: {}
|
|
28
57
|
}
|
|
29
58
|
|
|
@@ -59,10 +88,24 @@ main: kit: target: ocaml: publish: {
|
|
|
59
88
|
}
|
|
60
89
|
|
|
61
90
|
|
|
62
|
-
# Feature source
|
|
63
|
-
#
|
|
64
|
-
#
|
|
65
|
-
#
|
|
91
|
+
# Feature source IS trimmed to the model's selection. The eighteen pipeline
|
|
92
|
+
# features live inside one template module (sdk_features.ml), which is not
|
|
93
|
+
# feature source and is never a trim candidate - so for a long time there
|
|
94
|
+
# was nothing per-feature to leave out and trim stayed off. `secrets`
|
|
95
|
+
# changed that: it is the first ocaml feature carried as a CONTAINER
|
|
96
|
+
# (feature/secrets_feature.ml, feature/secrets/ with the vendored sekreto
|
|
97
|
+
# and voxgig/plugin trees, test/feature/secrets/), some 5.5k lines that a
|
|
98
|
+
# project which never selected the feature must not carry. With trim on,
|
|
99
|
+
# `target add ocaml` copies that container only when the project's model
|
|
100
|
+
# selects `secrets`; the per-feature placeholder dirs under src/feature/
|
|
101
|
+
# (never generated - Main_ocaml excludes src/) are trimmed on the same
|
|
102
|
+
# rule, which is what every trim:true target does.
|
|
103
|
+
#
|
|
104
|
+
# fullset is EMPTY on purpose: test/t_feature.ml gates every block on
|
|
105
|
+
# `has_feature`, and the harness only constructs features the generated
|
|
106
|
+
# config knows, so the cross-feature suite compiles and runs against any
|
|
107
|
+
# trimmed set. Nothing else references a feature by name.
|
|
66
108
|
main: kit: target: ocaml: feature: {
|
|
67
|
-
trim:
|
|
109
|
+
trim: true
|
|
110
|
+
fullset: []
|
|
68
111
|
}
|
|
@@ -8,6 +8,17 @@ main: kit: target: zig: {
|
|
|
8
8
|
base: 'BASE'
|
|
9
9
|
srcfeature: false
|
|
10
10
|
|
|
11
|
+
# Applicability (docs/design/feature-tags.md): the `secrets` feature is a
|
|
12
|
+
# thin layer over a VENDORED sekreto port and declares `needs: { sekreto:
|
|
13
|
+
# true }`; a target that does not say it carries one never gets the
|
|
14
|
+
# feature. This target does: tm/zig/feature/secrets/{sekreto,plugin,
|
|
15
|
+
# plugins} are the zig ports of @voxgig/sekreto and voxgig/plugin at the
|
|
16
|
+
# shared vendor tag, wired as the named build modules `sekreto`, `plugin`
|
|
17
|
+
# and `sekretoplugins` by the generated build.zig (Main_zig) - and ONLY
|
|
18
|
+
# when the feature is active, so an SDK without secrets declares none of
|
|
19
|
+
# them and compiles nothing of it. Mirrors ts.aon / go.aon / rust.aon.
|
|
20
|
+
provides: { sekreto: true }
|
|
21
|
+
|
|
11
22
|
# Files earlier toolchains generated that this target has RETIRED
|
|
12
23
|
# (vendor-tag rollout): the hand-written struct runner, whose engine half
|
|
13
24
|
# AND assertion half are now the vendored omni port driven through
|
|
@@ -61,10 +72,25 @@ main: kit: target: zig: publish: {
|
|
|
61
72
|
|
|
62
73
|
|
|
63
74
|
# Feature source is NOT trimmed to the model's selection here: root.zig
|
|
64
|
-
# re-exports every feature type with @import("feature/<name>.zig"),
|
|
65
|
-
# build.zig names test/feature_test.zig explicitly, so a trimmed tree
|
|
66
|
-
# fails to build. Trimming stays off until
|
|
67
|
-
#
|
|
75
|
+
# re-exports every BUILT-IN feature type with @import("feature/<name>.zig"),
|
|
76
|
+
# and build.zig names test/feature_test.zig explicitly, so a trimmed tree
|
|
77
|
+
# fails to build. Trimming stays off until those static exports are driven
|
|
78
|
+
# from the model too.
|
|
79
|
+
#
|
|
80
|
+
# THE FORCING CASE is `secrets`, the first GATED feature this target
|
|
81
|
+
# carries. With the trim off, its whole tree - feature/secrets.zig, the
|
|
82
|
+
# vendored sekreto and voxgig/plugin cores and the provider plugins - ships
|
|
83
|
+
# in EVERY zig SDK whatever the model says. What keeps that honest is that
|
|
84
|
+
# zig compiles only what a module root reaches, so the generated build.zig
|
|
85
|
+
# and root.zig (Main_zig, from the marker-slotted fragments) name the
|
|
86
|
+
# feature's modules, its root export and its test step ONLY when the
|
|
87
|
+
# feature is active: a secrets-off SDK carries the files as dead weight and
|
|
88
|
+
# compiles none of them, and `make lint` (`zig fmt --check .`) is the one
|
|
89
|
+
# gate that still reads them. Main_zig also drops the provider plugins of
|
|
90
|
+
# an INACTIVE feature and the inactive groups of an active one (the scala
|
|
91
|
+
# shape), so the dead weight is the two cores plus the ungrouped
|
|
92
|
+
# httpjson/sigv4 helpers, never the nine vault clients. When the feature
|
|
93
|
+
# trim lands here, that second exclude list becomes redundant, not wrong.
|
|
68
94
|
main: kit: target: zig: feature: {
|
|
69
95
|
trim: false
|
|
70
96
|
}
|