@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
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
// VENDORED: @voxgig/sekreto sdk-20260908-1556-0 (cpp/plugins/Tls.cpp)
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 1267ee2e5f49566bc92695bc9eb3a60ef4924998 [tag: sdk-20260908-1556-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
#include "Tls.hpp"
|
|
5
|
+
|
|
6
|
+
#include <arpa/inet.h>
|
|
7
|
+
#include <errno.h>
|
|
8
|
+
#include <openssl/err.h>
|
|
9
|
+
#include <openssl/ssl.h>
|
|
10
|
+
#include <openssl/x509.h>
|
|
11
|
+
#include <openssl/x509v3.h>
|
|
12
|
+
#include <unistd.h>
|
|
13
|
+
|
|
14
|
+
#include <cstdlib>
|
|
15
|
+
#include <fstream>
|
|
16
|
+
#include <sstream>
|
|
17
|
+
|
|
18
|
+
#include "Crypto.hpp"
|
|
19
|
+
|
|
20
|
+
namespace sekreto {
|
|
21
|
+
|
|
22
|
+
namespace {
|
|
23
|
+
|
|
24
|
+
/// What OpenSSL has to say for itself, never the empty string - an error
|
|
25
|
+
/// message reading "cannot reach https://vault: " says nothing at all.
|
|
26
|
+
std::string sslwhy() {
|
|
27
|
+
unsigned long code = ERR_get_error();
|
|
28
|
+
|
|
29
|
+
if (0 == code) return "handshake failed";
|
|
30
|
+
|
|
31
|
+
char buf[256];
|
|
32
|
+
ERR_error_string_n(code, buf, sizeof(buf));
|
|
33
|
+
|
|
34
|
+
// Drain the rest, so a later failure does not report this one's.
|
|
35
|
+
while (0 != ERR_get_error()) {
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return buf;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// Is this an IP literal rather than a DNS name? The two are verified
|
|
42
|
+
/// differently, and getting it wrong is the half people forget.
|
|
43
|
+
bool isipliteral(const std::string& host) {
|
|
44
|
+
unsigned char scratch[16];
|
|
45
|
+
|
|
46
|
+
if (0 < inet_pton(AF_INET, host.c_str(), scratch)) return true;
|
|
47
|
+
if (0 < inet_pton(AF_INET6, host.c_str(), scratch)) return true;
|
|
48
|
+
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/// Extra trust roots from SEKRETO_CA_BUNDLE, added to the store the system
|
|
53
|
+
/// roots are already in.
|
|
54
|
+
///
|
|
55
|
+
/// ADDITIVE, never a replacement: an internal Vault behind a private CA is
|
|
56
|
+
/// the common case, and an application must not lose the public roots by
|
|
57
|
+
/// naming one. FAILS OPEN, silently: an unreadable file, or a certificate
|
|
58
|
+
/// the store rejects, adds no roots and raises nothing - a wrong path
|
|
59
|
+
/// weakens nothing that was already trusted.
|
|
60
|
+
///
|
|
61
|
+
/// The PEM is parsed in-tree (Http.cpp) and only the DER is handed over,
|
|
62
|
+
/// because reading a text file is not cryptographic transport.
|
|
63
|
+
void addbundle(SSL_CTX* ctx) {
|
|
64
|
+
const char* path = std::getenv(CABUNDLE);
|
|
65
|
+
|
|
66
|
+
if (nullptr == path || '\0' == path[0]) return;
|
|
67
|
+
|
|
68
|
+
std::ifstream handle(path, std::ios::binary);
|
|
69
|
+
if (!handle) return;
|
|
70
|
+
|
|
71
|
+
std::stringstream buffer;
|
|
72
|
+
buffer << handle.rdbuf();
|
|
73
|
+
|
|
74
|
+
X509_STORE* store = SSL_CTX_get_cert_store(ctx);
|
|
75
|
+
if (nullptr == store) return;
|
|
76
|
+
|
|
77
|
+
for (const std::string& der : pemcerts(buffer.str())) {
|
|
78
|
+
const unsigned char* raw = reinterpret_cast<const unsigned char*>(der.data());
|
|
79
|
+
X509* cert = d2i_X509(nullptr, &raw, static_cast<long>(der.size()));
|
|
80
|
+
|
|
81
|
+
if (nullptr == cert) continue;
|
|
82
|
+
|
|
83
|
+
X509_STORE_add_cert(store, cert);
|
|
84
|
+
X509_free(cert);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
class Tlsstream : public Stream {
|
|
89
|
+
public:
|
|
90
|
+
Tlsstream(int fd, SSL_CTX* ctx, SSL* ssl, const std::string& url)
|
|
91
|
+
: fd_(fd), ctx_(ctx), ssl_(ssl), url_(url) {}
|
|
92
|
+
|
|
93
|
+
~Tlsstream() override {
|
|
94
|
+
if (nullptr != ssl_) {
|
|
95
|
+
SSL_shutdown(ssl_);
|
|
96
|
+
SSL_free(ssl_);
|
|
97
|
+
}
|
|
98
|
+
if (nullptr != ctx_) SSL_CTX_free(ctx_);
|
|
99
|
+
if (0 <= fd_) ::close(fd_);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
Tlsstream(const Tlsstream&) = delete;
|
|
103
|
+
Tlsstream& operator=(const Tlsstream&) = delete;
|
|
104
|
+
|
|
105
|
+
size_t readsome(char* buf, size_t len) override {
|
|
106
|
+
int got = SSL_read(ssl_, buf, static_cast<int>(len));
|
|
107
|
+
|
|
108
|
+
if (0 < got) return static_cast<size_t>(got);
|
|
109
|
+
|
|
110
|
+
int reason = SSL_get_error(ssl_, got);
|
|
111
|
+
|
|
112
|
+
// A truncated stream is how many servers close; the framing decides
|
|
113
|
+
// whether what arrived was a whole response.
|
|
114
|
+
if (SSL_ERROR_ZERO_RETURN == reason) return 0;
|
|
115
|
+
|
|
116
|
+
if (SSL_ERROR_SYSCALL == reason && 0 == ERR_peek_error()) {
|
|
117
|
+
// The socket carries the read deadline, so a stalled server arrives
|
|
118
|
+
// here as EAGAIN. That is a store that could not answer, and reading
|
|
119
|
+
// it as a clean end of stream would hand back a TRUNCATED body -
|
|
120
|
+
// which the JSON parser would then reject as a malformed response,
|
|
121
|
+
// hiding a timeout behind the wrong diagnosis.
|
|
122
|
+
if (EAGAIN == errno || EWOULDBLOCK == errno) {
|
|
123
|
+
throw SekretoError("sekreto: cannot reach " + bareurl(url_) + ": timed out");
|
|
124
|
+
}
|
|
125
|
+
return 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
throw SekretoError("sekreto: cannot reach " + bareurl(url_) + ": " + sslwhy());
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
void writeall(const char* buf, size_t len) override {
|
|
132
|
+
size_t sent = 0;
|
|
133
|
+
|
|
134
|
+
while (sent < len) {
|
|
135
|
+
int put = SSL_write(ssl_, buf + sent, static_cast<int>(len - sent));
|
|
136
|
+
|
|
137
|
+
if (0 >= put) {
|
|
138
|
+
throw SekretoError("sekreto: cannot reach " + bareurl(url_) + ": " + sslwhy());
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
sent += static_cast<size_t>(put);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private:
|
|
146
|
+
int fd_;
|
|
147
|
+
SSL_CTX* ctx_;
|
|
148
|
+
SSL* ssl_;
|
|
149
|
+
std::string url_;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
/// Everything acquired so far, released on any error arm as well as the
|
|
153
|
+
/// success one.
|
|
154
|
+
struct Setup {
|
|
155
|
+
int fd = -1;
|
|
156
|
+
SSL_CTX* ctx = nullptr;
|
|
157
|
+
SSL* ssl = nullptr;
|
|
158
|
+
|
|
159
|
+
~Setup() {
|
|
160
|
+
if (nullptr != ssl) SSL_free(ssl);
|
|
161
|
+
if (nullptr != ctx) SSL_CTX_free(ctx);
|
|
162
|
+
if (0 <= fd) ::close(fd);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
void keep() {
|
|
166
|
+
fd = -1;
|
|
167
|
+
ctx = nullptr;
|
|
168
|
+
ssl = nullptr;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
} // namespace
|
|
173
|
+
|
|
174
|
+
std::unique_ptr<Stream> tlsstream(int fd, const std::string& host, const std::string& url) {
|
|
175
|
+
Setup held;
|
|
176
|
+
held.fd = fd;
|
|
177
|
+
|
|
178
|
+
auto refuse = [&url](const std::string& why) {
|
|
179
|
+
return SekretoError("sekreto: cannot reach " + bareurl(url) + ": " + why);
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
held.ctx = SSL_CTX_new(TLS_client_method());
|
|
183
|
+
if (nullptr == held.ctx) throw refuse(sslwhy());
|
|
184
|
+
|
|
185
|
+
// TLS 1.0 and 1.1 are withdrawn; a vault that offers only those is not
|
|
186
|
+
// one this library will talk to.
|
|
187
|
+
SSL_CTX_set_min_proto_version(held.ctx, TLS1_2_VERSION);
|
|
188
|
+
|
|
189
|
+
// (1) Verify the chain against the system trust store. The default
|
|
190
|
+
// paths also honour SSL_CERT_FILE and SSL_CERT_DIR, and the NULL
|
|
191
|
+
// callback means a verification error ABORTS the handshake rather than
|
|
192
|
+
// being reported and ignored.
|
|
193
|
+
if (1 != SSL_CTX_set_default_verify_paths(held.ctx)) throw refuse(sslwhy());
|
|
194
|
+
SSL_CTX_set_verify(held.ctx, SSL_VERIFY_PEER, nullptr);
|
|
195
|
+
|
|
196
|
+
// (4) Extra roots, additively, after the system ones are in place.
|
|
197
|
+
addbundle(held.ctx);
|
|
198
|
+
|
|
199
|
+
held.ssl = SSL_new(held.ctx);
|
|
200
|
+
if (nullptr == held.ssl) throw refuse(sslwhy());
|
|
201
|
+
|
|
202
|
+
// (2) Verify the HOSTNAME. This is a SEPARATE step from chain
|
|
203
|
+
// verification, and it is the half that gets forgotten: a valid
|
|
204
|
+
// certificate for any host would otherwise be accepted for this one.
|
|
205
|
+
//
|
|
206
|
+
// An IP literal takes the other call. SSL_set1_host does DNS-name
|
|
207
|
+
// matching and will NOT match an iPAddress SAN, so a port that treats
|
|
208
|
+
// every host as a name cannot reach an https endpoint named by address -
|
|
209
|
+
// and, worse, would have to disable verification to do so.
|
|
210
|
+
X509_VERIFY_PARAM* param = SSL_get0_param(held.ssl);
|
|
211
|
+
bool literal = isipliteral(host);
|
|
212
|
+
|
|
213
|
+
if (literal) {
|
|
214
|
+
if (1 != X509_VERIFY_PARAM_set1_ip_asc(param, host.c_str())) {
|
|
215
|
+
throw refuse("cannot verify address " + host);
|
|
216
|
+
}
|
|
217
|
+
} else {
|
|
218
|
+
if (1 != SSL_set1_host(held.ssl, host.c_str())) {
|
|
219
|
+
throw refuse("cannot verify host name " + host);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// (3) SNI - and not for an IP literal, which RFC 6066 forbids and
|
|
223
|
+
// OpenSSL would send anyway if it were handed one.
|
|
224
|
+
SSL_set_tlsext_host_name(held.ssl, host.c_str());
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
if (1 != SSL_set_fd(held.ssl, fd)) throw refuse(sslwhy());
|
|
228
|
+
|
|
229
|
+
if (1 != SSL_connect(held.ssl)) {
|
|
230
|
+
// The verification reason first, when there is one: "certificate
|
|
231
|
+
// verify failed" alone does not say whether the chain or the HOSTNAME
|
|
232
|
+
// was refused, and those are two different misconfigurations.
|
|
233
|
+
long refused = SSL_get_verify_result(held.ssl);
|
|
234
|
+
if (X509_V_OK != refused) {
|
|
235
|
+
throw refuse(std::string("certificate verify failed: ") +
|
|
236
|
+
X509_verify_cert_error_string(refused));
|
|
237
|
+
}
|
|
238
|
+
throw refuse(sslwhy());
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Belt and braces. SSL_VERIFY_PEER already aborts on a bad chain, but
|
|
242
|
+
// the two checks below are cheap and they are what makes "verification
|
|
243
|
+
// is on" observable rather than assumed.
|
|
244
|
+
long verified = SSL_get_verify_result(held.ssl);
|
|
245
|
+
if (X509_V_OK != verified) {
|
|
246
|
+
throw refuse(std::string("certificate verify failed: ") +
|
|
247
|
+
X509_verify_cert_error_string(verified));
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
X509* peer = SSL_get1_peer_certificate(held.ssl);
|
|
251
|
+
if (nullptr == peer) throw refuse("no server certificate");
|
|
252
|
+
X509_free(peer);
|
|
253
|
+
|
|
254
|
+
std::unique_ptr<Stream> out(new Tlsstream(held.fd, held.ctx, held.ssl, url));
|
|
255
|
+
held.keep();
|
|
256
|
+
|
|
257
|
+
return out;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
} // namespace sekreto
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// VENDORED: @voxgig/sekreto sdk-20260908-1556-0 (cpp/plugins/Tls.hpp)
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 1267ee2e5f49566bc92695bc9eb3a60ef4924998 [tag: sdk-20260908-1556-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
// The TLS binding, and the only file in this port that names OpenSSL.
|
|
5
|
+
//
|
|
6
|
+
// AGENTS.md rule 3 as a principle: cryptographic transport is not
|
|
7
|
+
// hand-rolled. Where a port's standard library has TLS it uses it; where
|
|
8
|
+
// it does not, it binds the platform's audited TLS library - the same one
|
|
9
|
+
// that language's own ecosystem binds. For C++ that is OpenSSL, reached
|
|
10
|
+
// directly rather than through Boost.Asio's SSL stream or cpp-httplib,
|
|
11
|
+
// because those bring an HTTP framing the rule requires in-tree.
|
|
12
|
+
//
|
|
13
|
+
// Audit surface: `-lssl -lcrypto`, and the distribution's OpenSSL is the
|
|
14
|
+
// audit surface. Nothing else is linked. Note in particular that
|
|
15
|
+
// libcrypto's own digests are NOT used for SigV4 - the exception covers
|
|
16
|
+
// transport only, so Crypto.cpp carries SHA-256 and HMAC in-tree, exactly
|
|
17
|
+
// as rust/src/crypto.rs does beside rustls.
|
|
18
|
+
|
|
19
|
+
#ifndef SEKRETO_PLUGINS_TLS_HPP
|
|
20
|
+
#define SEKRETO_PLUGINS_TLS_HPP
|
|
21
|
+
|
|
22
|
+
#include <memory>
|
|
23
|
+
#include <string>
|
|
24
|
+
|
|
25
|
+
#include "Httpjson.hpp"
|
|
26
|
+
|
|
27
|
+
namespace sekreto {
|
|
28
|
+
|
|
29
|
+
/// Hand a connected socket to OpenSSL and complete the handshake.
|
|
30
|
+
///
|
|
31
|
+
/// `host` is the BARE host - an IPv6 literal without its brackets - and is
|
|
32
|
+
/// what the certificate is checked against. Four obligations, all met
|
|
33
|
+
/// before any byte of the request is written, and all in Tls.cpp:
|
|
34
|
+
///
|
|
35
|
+
/// 1. the chain is verified against the system trust store;
|
|
36
|
+
/// 2. the HOSTNAME is verified, which is a separate step from the chain;
|
|
37
|
+
/// 3. SNI is sent, except for an IP literal, which RFC 6066 forbids;
|
|
38
|
+
/// 4. SEKRETO_CA_BUNDLE adds extra roots, additively.
|
|
39
|
+
///
|
|
40
|
+
/// A handshake failure is a refusal to trust the server, so it surfaces as
|
|
41
|
+
/// an error and never as a missing secret. Ownership of `fd` passes to the
|
|
42
|
+
/// returned stream.
|
|
43
|
+
std::unique_ptr<Stream> tlsstream(int fd, const std::string& host, const std::string& url);
|
|
44
|
+
|
|
45
|
+
} // namespace sekreto
|
|
46
|
+
|
|
47
|
+
#endif
|