@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,346 @@
|
|
|
1
|
+
-- VENDORED: @voxgig/sekreto sdk-20260908-1556-0 (lua/src/sekreto/providers.lua)
|
|
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
|
+
-- What a provider is, how a provider kind becomes a voxgig/plugin
|
|
5
|
+
-- definition - and the four BUILT-IN kinds.
|
|
6
|
+
--
|
|
7
|
+
-- A provider answers one question: "do you have this secret?" It returns
|
|
8
|
+
-- the value, or nil to mean "ask the next one". Nothing else about a
|
|
9
|
+
-- provider is visible to the caller - which is the point: an app reads
|
|
10
|
+
-- `api.token` and never learns whether it came from the environment, a
|
|
11
|
+
-- .env file, HashiCorp Vault or a boru vault.
|
|
12
|
+
--
|
|
13
|
+
-- Two failure shapes, and they are never interchangeable. A store that
|
|
14
|
+
-- does not hold the secret is a MISS (nil) - the chain carries on. A
|
|
15
|
+
-- store that could not answer - bad credentials, unreachable host,
|
|
16
|
+
-- missing configuration - is an ERROR: falling through there would
|
|
17
|
+
-- quietly reach for a weaker store.
|
|
18
|
+
--
|
|
19
|
+
-- A provider is a plain table with two functions, `lookup` and
|
|
20
|
+
-- `describe`, and no lifecycle. It is duck-typed: anything with a
|
|
21
|
+
-- callable `lookup` is a provider, whatever built it.
|
|
22
|
+
--
|
|
23
|
+
-- THIS MODULE REQUIRES NO SOCKET, NO DIGEST AND NO CHILD PROCESS. What
|
|
24
|
+
-- makes a kind built in is that it needs nothing of the platform beyond
|
|
25
|
+
-- reading a local file; every kind that opens a socket, signs a request
|
|
26
|
+
-- or spawns a process is a plugin under plugins/, its own module,
|
|
27
|
+
-- required only by a program that names it. `sekreto.plugins.net` - and
|
|
28
|
+
-- with it native/sekretonet.c, this port's only compiled artifact - is
|
|
29
|
+
-- reached by no file the core requires (docs/design/plugin-providers.md).
|
|
30
|
+
--
|
|
31
|
+
-- A port of typescript/src/provider/support.ts and
|
|
32
|
+
-- typescript/src/provider/builtin.ts, which are canonical.
|
|
33
|
+
|
|
34
|
+
local plugin = require('feature.secrets.plugin')
|
|
35
|
+
|
|
36
|
+
local err = require('feature.secrets.sekreto.err')
|
|
37
|
+
local name = require('feature.secrets.sekreto.name')
|
|
38
|
+
|
|
39
|
+
local fail = err.fail
|
|
40
|
+
|
|
41
|
+
local M = {}
|
|
42
|
+
|
|
43
|
+
-- ------------------------------------------------------------ the specs
|
|
44
|
+
|
|
45
|
+
--- What a credential field reports about itself.
|
|
46
|
+
local function setornot(value)
|
|
47
|
+
if nil == value or '' == value then
|
|
48
|
+
return '[unset]'
|
|
49
|
+
end
|
|
50
|
+
return '[set]'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
--- Printed without its credentials.
|
|
54
|
+
---
|
|
55
|
+
--- Lua's `tostring` on a bare table prints an address, but anything that
|
|
56
|
+
--- walks a spec - a config dumper, a logging helper - would otherwise
|
|
57
|
+
--- reach the Vault token, the AWS secret access key and the Azure client
|
|
58
|
+
--- secret. Fields holding a credential report whether they are set, never
|
|
59
|
+
--- what they are.
|
|
60
|
+
local SPECMT = {
|
|
61
|
+
__tostring = function(spec)
|
|
62
|
+
return 'ProviderSpec(kind=' .. tostring(spec.kind) ..
|
|
63
|
+
', name=' .. tostring(spec.name) ..
|
|
64
|
+
', addr=' .. tostring(spec.addr) ..
|
|
65
|
+
', token=' .. setornot(spec.token) ..
|
|
66
|
+
', secret=' .. setornot(spec.secret) ..
|
|
67
|
+
', clientsecret=' .. setornot(spec.clientsecret) ..
|
|
68
|
+
', auth=' .. tostring(spec.auth) .. ')'
|
|
69
|
+
end,
|
|
70
|
+
__name = 'ProviderSpec',
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
local AUTHMT = {
|
|
74
|
+
__tostring = function(auth)
|
|
75
|
+
return 'AuthSpec(method=' .. tostring(auth.method) ..
|
|
76
|
+
', mount=' .. tostring(auth.mount) ..
|
|
77
|
+
', role=' .. tostring(auth.role) ..
|
|
78
|
+
', jwtfile=' .. tostring(auth.jwtfile) ..
|
|
79
|
+
', roleid=' .. tostring(auth.roleid) ..
|
|
80
|
+
', jwt=' .. setornot(auth.jwt) ..
|
|
81
|
+
', secretid=' .. setornot(auth.secretid) .. ')'
|
|
82
|
+
end,
|
|
83
|
+
__name = 'AuthSpec',
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
--- The declarative form of a provider, as used in config and in the
|
|
87
|
+
--- shared spec. `kind` picks the provider; everything else is that
|
|
88
|
+
--- kind's own.
|
|
89
|
+
function M.spec(fields)
|
|
90
|
+
return setmetatable(fields or {}, SPECMT)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
--- Logging in to a vault instead of being handed a token. `method` is
|
|
94
|
+
--- `kubernetes` or `approle`; `mount` defaults to the method name.
|
|
95
|
+
function M.authspec(fields)
|
|
96
|
+
return setmetatable(fields or {}, AUTHMT)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
-- -------------------------------------------------------------- helpers
|
|
100
|
+
|
|
101
|
+
local function trimslash(text)
|
|
102
|
+
if '/' == text:sub(-1) then
|
|
103
|
+
return text:sub(1, #text - 1)
|
|
104
|
+
end
|
|
105
|
+
return text
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
M.trimslash = trimslash
|
|
109
|
+
|
|
110
|
+
local function nonempty(value)
|
|
111
|
+
return nil ~= value and '' ~= value
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
M.nonempty = nonempty
|
|
115
|
+
|
|
116
|
+
--- The whole of a file, or nil plus the reason.
|
|
117
|
+
---
|
|
118
|
+
--- Absence - of the file OR of a directory on the way to it - is "no
|
|
119
|
+
--- secrets here" and answers nil with no reason, so the caller can tell
|
|
120
|
+
--- it from a permission error, which is a store that could not answer.
|
|
121
|
+
--- The reason string is not consulted; it comes from the C library's
|
|
122
|
+
--- strerror and follows the machine's locale.
|
|
123
|
+
local function readfile(path)
|
|
124
|
+
local handle, why, code = io.open(path, 'rb')
|
|
125
|
+
|
|
126
|
+
if nil == handle then
|
|
127
|
+
-- ENOENT (2) and ENOTDIR (20): the file is not there, or a component
|
|
128
|
+
-- of the path is not a directory. Both mean "no secrets here".
|
|
129
|
+
if 2 == code or 20 == code then
|
|
130
|
+
return nil, nil
|
|
131
|
+
end
|
|
132
|
+
return nil, ((why or 'cannot read'):gsub('^.-: ', ''))
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
local text = handle:read('a')
|
|
136
|
+
handle:close()
|
|
137
|
+
|
|
138
|
+
if nil == text then
|
|
139
|
+
return nil, 'cannot read'
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
return text
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
M.readfile = readfile
|
|
146
|
+
|
|
147
|
+
-- ------------------------------------------------------- built-in kinds
|
|
148
|
+
--
|
|
149
|
+
-- The criterion for "built in" is needing nothing of the platform beyond
|
|
150
|
+
-- reading a local file: no socket, no TLS, no crypto, no child process.
|
|
151
|
+
|
|
152
|
+
--- Environment variables: `api.token` from `API_TOKEN`.
|
|
153
|
+
function M.env(prefix, source)
|
|
154
|
+
return {
|
|
155
|
+
lookup = function(secret)
|
|
156
|
+
local key = name.envkey(secret, prefix)
|
|
157
|
+
if nil == source then
|
|
158
|
+
return os.getenv(key)
|
|
159
|
+
end
|
|
160
|
+
return source[key]
|
|
161
|
+
end,
|
|
162
|
+
describe = function()
|
|
163
|
+
return 'env' .. (nonempty(prefix) and (':' .. prefix) or '')
|
|
164
|
+
end,
|
|
165
|
+
}
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
--- A `.env` file, read once, keyed exactly like the environment.
|
|
169
|
+
---
|
|
170
|
+
--- Loaded LAZILY. The `stores` corpus group puts a dotenv provider in a
|
|
171
|
+
--- chain and never looks anything up; an eager constructor would read
|
|
172
|
+
--- whatever `.env` happens to sit in the working directory.
|
|
173
|
+
function M.dotenv(file, prefix)
|
|
174
|
+
local usefile = file or '.env'
|
|
175
|
+
local values = nil
|
|
176
|
+
|
|
177
|
+
local function load()
|
|
178
|
+
if nil ~= values then
|
|
179
|
+
return values
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
local text, why = readfile(usefile)
|
|
183
|
+
|
|
184
|
+
if nil == text then
|
|
185
|
+
if nil ~= why then
|
|
186
|
+
fail('sekreto: dotenv provider cannot read ' .. usefile .. ': ' .. why)
|
|
187
|
+
end
|
|
188
|
+
-- An absent file, or an absent directory, means "no secrets here",
|
|
189
|
+
-- exactly like the file provider.
|
|
190
|
+
values = {}
|
|
191
|
+
else
|
|
192
|
+
values = name.parsedotenv(text)
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
return values
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
return {
|
|
199
|
+
lookup = function(secret)
|
|
200
|
+
return load()[name.envkey(secret, prefix)]
|
|
201
|
+
end,
|
|
202
|
+
describe = function()
|
|
203
|
+
return 'dotenv:' .. usefile
|
|
204
|
+
end,
|
|
205
|
+
}
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
--- Literal values, keyed like environment variables. The shared spec uses
|
|
209
|
+
--- this to test chain behaviour without touching the outside world.
|
|
210
|
+
function M.memory(values, prefix)
|
|
211
|
+
local usevalues = values or {}
|
|
212
|
+
|
|
213
|
+
return {
|
|
214
|
+
lookup = function(secret)
|
|
215
|
+
return usevalues[name.envkey(secret, prefix)]
|
|
216
|
+
end,
|
|
217
|
+
describe = function()
|
|
218
|
+
return 'memory' .. (nonempty(prefix) and (':' .. prefix) or '')
|
|
219
|
+
end,
|
|
220
|
+
}
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
--- A directory of one-secret-per-file entries, keyed like the
|
|
224
|
+
--- environment: `api.token` reads `<dir>/API_TOKEN`.
|
|
225
|
+
---
|
|
226
|
+
--- This is the shape of a mounted Kubernetes Secret, a Docker or Swarm
|
|
227
|
+
--- secret, and a systemd credentials directory, so those all work with no
|
|
228
|
+
--- further configuration. Read on every lookup, never cached. One
|
|
229
|
+
--- trailing newline is stripped - tools that write these files disagree
|
|
230
|
+
--- about it, and a newline is never part of a secret on purpose.
|
|
231
|
+
function M.file(dir, prefix)
|
|
232
|
+
local usedir = dir or ''
|
|
233
|
+
|
|
234
|
+
return {
|
|
235
|
+
lookup = function(secret)
|
|
236
|
+
local path = ('' == usedir) and name.envkey(secret, prefix)
|
|
237
|
+
or (trimslash(usedir) .. '/' .. name.envkey(secret, prefix))
|
|
238
|
+
|
|
239
|
+
local text, why = readfile(path)
|
|
240
|
+
|
|
241
|
+
if nil == text then
|
|
242
|
+
if nil ~= why then
|
|
243
|
+
fail('sekreto: file provider cannot read ' .. path .. ': ' .. why)
|
|
244
|
+
end
|
|
245
|
+
return nil
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
if '\r\n' == text:sub(-2) then
|
|
249
|
+
return text:sub(1, #text - 2)
|
|
250
|
+
end
|
|
251
|
+
if '\n' == text:sub(-1) then
|
|
252
|
+
return text:sub(1, #text - 1)
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
return text
|
|
256
|
+
end,
|
|
257
|
+
describe = function()
|
|
258
|
+
return 'file:' .. usedir
|
|
259
|
+
end,
|
|
260
|
+
}
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
-- ------------------------------ providers as voxgig/plugin definitions
|
|
264
|
+
|
|
265
|
+
--- The export key under which a provider definition publishes the
|
|
266
|
+
--- provider it built. `Sekreto` reads `<ref>/provider` off the host.
|
|
267
|
+
M.PROVIDER_EXPORT = 'provider'
|
|
268
|
+
|
|
269
|
+
--- The voxgig/plugin error code a SekretoError travels under when it is
|
|
270
|
+
--- raised inside a definition's `define`.
|
|
271
|
+
---
|
|
272
|
+
--- plugin wraps a code-less error raised by a callback as
|
|
273
|
+
--- `plugin_define_failed`, and keeps an error that already carries a
|
|
274
|
+
--- code. A provider that refuses its own configuration - `kv: 3`, a
|
|
275
|
+
--- missing project - raises a SekretoError, and that message is pinned by
|
|
276
|
+
--- the spec byte for byte, so it must come back out of the host exactly
|
|
277
|
+
--- as it went in. `providerplugin` gives it this code on the way in;
|
|
278
|
+
--- `Sekreto` turns it back into a SekretoError on the way out.
|
|
279
|
+
M.ERROR_CODE = 'sekreto_error'
|
|
280
|
+
|
|
281
|
+
--- A provider kind, as a voxgig/plugin definition.
|
|
282
|
+
---
|
|
283
|
+
--- This is the whole bridge between the two libraries. The definition's
|
|
284
|
+
--- `name` is the `kind` a spec names; its `define` reads the spec as
|
|
285
|
+
--- `inst:options()`, builds the provider with `make`, and exports it.
|
|
286
|
+
--- Nothing runs at `activate`: a provider opens nothing until its first
|
|
287
|
+
--- lookup, so there is nothing to capture - a provider that does hold a
|
|
288
|
+
--- resource acquires it there and lets the instance scope unwind it.
|
|
289
|
+
---
|
|
290
|
+
--- Every built-in and every plugin is made this way, so a custom provider
|
|
291
|
+
--- kind is one call:
|
|
292
|
+
---
|
|
293
|
+
--- providerplugin('mystore', function(spec) return mystore(spec.addr) end)
|
|
294
|
+
---
|
|
295
|
+
--- ONLY a SekretoError is re-raised with a code. Anything else a `make`
|
|
296
|
+
--- raises is not sekreto's to rewrite: it leaves this function as it
|
|
297
|
+
--- arrived, code-less, and the host wraps it as `plugin_define_failed`
|
|
298
|
+
--- naming the instance.
|
|
299
|
+
function M.providerplugin(kind, make)
|
|
300
|
+
return {
|
|
301
|
+
name = kind,
|
|
302
|
+
define = function(inst)
|
|
303
|
+
local ok, built = pcall(make, inst:options() or {})
|
|
304
|
+
|
|
305
|
+
if not ok then
|
|
306
|
+
if err.issekretoerror(built) then
|
|
307
|
+
local message = err.message(built)
|
|
308
|
+
plugin.types.fail(M.ERROR_CODE, message,
|
|
309
|
+
plugin.types.map({ ref = inst.ref, cause = message }))
|
|
310
|
+
end
|
|
311
|
+
error(built, 0)
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
inst:export(M.PROVIDER_EXPORT, built)
|
|
315
|
+
end,
|
|
316
|
+
}
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
--- The four built-in provider kinds - the same four in every port. What
|
|
320
|
+
--- makes a kind built in is that it reads at most a local file: no
|
|
321
|
+
--- socket, no TLS, no crypto, no child process.
|
|
322
|
+
M.BUILTINS = {
|
|
323
|
+
M.providerplugin('env', function(spec) return M.env(spec.prefix) end),
|
|
324
|
+
M.providerplugin('memory', function(spec)
|
|
325
|
+
return M.memory(spec.values or {}, spec.prefix)
|
|
326
|
+
end),
|
|
327
|
+
M.providerplugin('dotenv', function(spec)
|
|
328
|
+
return M.dotenv(spec.file or '.env', spec.prefix)
|
|
329
|
+
end),
|
|
330
|
+
M.providerplugin('file', function(spec)
|
|
331
|
+
return M.file(spec.dir or '', spec.prefix)
|
|
332
|
+
end),
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
--- Every kind this library ships, built in or as a plugin, so that a kind
|
|
336
|
+
--- sekreto has never heard of can be told from one that was not passed
|
|
337
|
+
--- in.
|
|
338
|
+
M.KINDS = {
|
|
339
|
+
builtin = { 'env', 'memory', 'dotenv', 'file' },
|
|
340
|
+
plugin = {
|
|
341
|
+
'hashicorp', 'boru', 'awssecrets', 'awsparams', 'gcpsecrets',
|
|
342
|
+
'azuresecrets', 'onepassword', 'doppler', 'infisical', 'secretspec',
|
|
343
|
+
},
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
return M
|