@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,227 @@
|
|
|
1
|
+
// VENDORED: @voxgig/sekreto sdk-20260908-1556-0 (cpp/src/Sekreto.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
|
+
// sekreto: one interface for secrets, wherever they live.
|
|
5
|
+
//
|
|
6
|
+
// A Sekreto is an ordered chain of providers. `get` asks each in turn and
|
|
7
|
+
// returns the first hit, so an app can be configured from environment
|
|
8
|
+
// variables in development and a vault in production without changing a
|
|
9
|
+
// line of its own code.
|
|
10
|
+
//
|
|
11
|
+
// THE CORE INCLUDES NO PROVIDER THAT OPENS A SOCKET, SPAWNS A PROCESS OR
|
|
12
|
+
// SIGNS A REQUEST. The four built-in kinds - env, memory, dotenv, file -
|
|
13
|
+
// read at most a local file; every other kind is a voxgig/plugin
|
|
14
|
+
// definition under plugins/, and a chain may name one only if the calling
|
|
15
|
+
// project handed it in through `plugins`. That is what keeps an SDK whose
|
|
16
|
+
// chain is `[dotenv, env]` from linking AWS request signing, seven HTTP
|
|
17
|
+
// vault clients and OpenSSL behind them. See
|
|
18
|
+
// docs/design/plugin-providers.md.
|
|
19
|
+
//
|
|
20
|
+
// A port of typescript/src/Sekreto.ts, which is canonical.
|
|
21
|
+
|
|
22
|
+
#ifndef SEKRETO_SEKRETO_HPP
|
|
23
|
+
#define SEKRETO_SEKRETO_HPP
|
|
24
|
+
|
|
25
|
+
#include <memory>
|
|
26
|
+
#include <optional>
|
|
27
|
+
#include <string>
|
|
28
|
+
#include <utility>
|
|
29
|
+
#include <vector>
|
|
30
|
+
|
|
31
|
+
#include "Json.hpp"
|
|
32
|
+
#include "Provider.hpp"
|
|
33
|
+
|
|
34
|
+
namespace sekreto {
|
|
35
|
+
|
|
36
|
+
/// A secret name: dot-separated lowercase segments, e.g. `api.token`.
|
|
37
|
+
using Name = std::string;
|
|
38
|
+
|
|
39
|
+
/// How a Sekreto is built.
|
|
40
|
+
///
|
|
41
|
+
/// `plugins` is STATIC AND EXPLICIT: the calling project includes the
|
|
42
|
+
/// kinds it needs and passes them here, and a kind it did not pass is
|
|
43
|
+
/// unknown to this Sekreto. No dynamic discovery, no registry filled at
|
|
44
|
+
/// load, no module named by a string - the set of stores an app can reach
|
|
45
|
+
/// is not something to find out at run time, and a side effect of linking
|
|
46
|
+
/// is a thing a linker can drop.
|
|
47
|
+
struct SekretoOptions {
|
|
48
|
+
/// The provider chain, in resolution order, declaratively.
|
|
49
|
+
std::vector<ProviderSpec> providers;
|
|
50
|
+
/// The provider kinds beyond the built-ins that `providers` may name.
|
|
51
|
+
std::vector<Definition> plugins;
|
|
52
|
+
/// Cache resolved values (default: true).
|
|
53
|
+
bool cache = true;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/// Uppercase and lowercase the ASCII letters and nothing else. The C
|
|
57
|
+
/// library's `toupper` is locale-sensitive, and envkey must answer the
|
|
58
|
+
/// same in every locale on every port.
|
|
59
|
+
std::string asciiupper(const std::string& text);
|
|
60
|
+
std::string asciilower(const std::string& text);
|
|
61
|
+
|
|
62
|
+
/// Split on the literal dot, KEEPING empties, so `a.` is two segments (one
|
|
63
|
+
/// of them empty) and therefore not a valid name.
|
|
64
|
+
std::vector<std::string> segments(const std::string& name);
|
|
65
|
+
|
|
66
|
+
/// Is this a well-formed secret name?
|
|
67
|
+
bool validname(const std::string& name);
|
|
68
|
+
/// The same, for whatever a caller passed: anything that is not a string
|
|
69
|
+
/// is not a name. Never raises.
|
|
70
|
+
bool validname(const Json& name);
|
|
71
|
+
|
|
72
|
+
/// The name, or a SekretoError. Every entry point checks its name here.
|
|
73
|
+
Name checkname(const std::string& name);
|
|
74
|
+
Name checkname(const Json& name);
|
|
75
|
+
|
|
76
|
+
/// The environment-variable key for a name: `api.token` -> `API_TOKEN`.
|
|
77
|
+
/// The prefix is used verbatim, and is NOT uppercased.
|
|
78
|
+
std::string envkey(const std::string& name, const std::string& prefix = "");
|
|
79
|
+
|
|
80
|
+
/// Where a name lives in a KV vault.
|
|
81
|
+
struct VaultRef {
|
|
82
|
+
std::string path;
|
|
83
|
+
std::string field;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/// `api.token` -> `api` / `token`. A single-segment name has no path of
|
|
87
|
+
/// its own, so it becomes a secret of that name with the field `value`.
|
|
88
|
+
VaultRef vaultref(const std::string& name);
|
|
89
|
+
|
|
90
|
+
/// A name flattened to one segment: `api.token` -> `api_token` (GCP) or
|
|
91
|
+
/// `api-token` (Azure). With `-`, underscores flatten too, because Key
|
|
92
|
+
/// Vault's alphabet is letters, digits and hyphens only.
|
|
93
|
+
std::string flatname(const std::string& name, const std::string& sep);
|
|
94
|
+
|
|
95
|
+
/// The AWS SSM Parameter Store name: `db.pass.main` -> `/db/pass/main`,
|
|
96
|
+
/// or `/app/db/pass/main` under prefix `app`.
|
|
97
|
+
std::string awsparam(const std::string& name, const std::string& prefix = "");
|
|
98
|
+
|
|
99
|
+
/// Parse `.env` text into raw keys and values. There is no `.env`
|
|
100
|
+
/// standard, so this function is the specification; see the source.
|
|
101
|
+
Ordered parsedotenv(const std::string& text);
|
|
102
|
+
Ordered parsedotenv(const Json& text);
|
|
103
|
+
|
|
104
|
+
/// Replace known secret values in text with `[redacted]`. Only values of
|
|
105
|
+
/// four characters or more: shorter ones are too likely to appear in
|
|
106
|
+
/// ordinary text, and redacting them would make logs unreadable without
|
|
107
|
+
/// making them safer.
|
|
108
|
+
std::string redact(const std::string& text, const std::vector<std::string>& values);
|
|
109
|
+
|
|
110
|
+
/// The store name a provider answers to when nothing says otherwise:
|
|
111
|
+
/// `describe()` up to the first `:`.
|
|
112
|
+
std::string storename(const Provider& provider);
|
|
113
|
+
|
|
114
|
+
/// The secrets facade: a chain of providers plus a cache.
|
|
115
|
+
///
|
|
116
|
+
/// Two ways to read. `get` is transparent - it walks the chain and takes
|
|
117
|
+
/// the first hit, and the caller never learns which store answered.
|
|
118
|
+
/// `getfrom` is directed - it names the store, and only that store is
|
|
119
|
+
/// asked.
|
|
120
|
+
class Sekreto {
|
|
121
|
+
public:
|
|
122
|
+
/// A chain from declarative specs, built on a voxgig/plugin host: the
|
|
123
|
+
/// catalog is the four built-ins plus whatever `plugins` names, and each
|
|
124
|
+
/// spec becomes one instance on the host.
|
|
125
|
+
///
|
|
126
|
+
/// Eager and in chain order, so a chain that cannot be built says so at
|
|
127
|
+
/// once. Construction contacts nothing: `load` runs a definition's
|
|
128
|
+
/// `define`, which builds the provider, `activate` takes it live, and
|
|
129
|
+
/// the first network call is still the first lookup.
|
|
130
|
+
explicit Sekreto(const SekretoOptions& options);
|
|
131
|
+
|
|
132
|
+
/// A chain of providers already built. Nothing is declared on the host,
|
|
133
|
+
/// so `host().list()` is empty - a live provider has no instance behind
|
|
134
|
+
/// it, and never needed one.
|
|
135
|
+
Sekreto(std::vector<std::shared_ptr<Provider>> providers,
|
|
136
|
+
std::vector<std::string> names, bool docache = true);
|
|
137
|
+
|
|
138
|
+
/// The voxgig/plugin host every spec'd provider is an instance of. Read
|
|
139
|
+
/// it for introspection - `list()` names each store's ref and status -
|
|
140
|
+
/// and nothing on it advances the chain.
|
|
141
|
+
plugin::Host& host() const { return *host_; }
|
|
142
|
+
/// The definitions this Sekreto can build: the built-ins plus what
|
|
143
|
+
/// `plugins` handed in.
|
|
144
|
+
plugin::Catalog& catalog() const { return *catalog_; }
|
|
145
|
+
|
|
146
|
+
/// The secret, or a SekretoError if no provider has it.
|
|
147
|
+
std::string get(const Name& name);
|
|
148
|
+
/// The secret, or nothing. Named `tryget` because `try` is a keyword.
|
|
149
|
+
std::optional<std::string> tryget(const Name& name);
|
|
150
|
+
/// The secret from one named store, or a SekretoError.
|
|
151
|
+
std::string getfrom(const std::string& store, const Name& name);
|
|
152
|
+
/// The secret from one named store, or nothing. Naming a store that is
|
|
153
|
+
/// not in the chain is an error, not a miss.
|
|
154
|
+
std::optional<std::string> tryfrom(const std::string& store, const Name& name);
|
|
155
|
+
|
|
156
|
+
bool has(const Name& name);
|
|
157
|
+
bool hasin(const std::string& store, const Name& name);
|
|
158
|
+
/// Every named secret at once. Missing ones are an error.
|
|
159
|
+
Ordered all(const std::vector<Name>& names);
|
|
160
|
+
|
|
161
|
+
/// A description of each provider, in resolution order.
|
|
162
|
+
std::vector<std::string> sources() const;
|
|
163
|
+
/// The name of each store `getfrom` can address, in order, deduped.
|
|
164
|
+
std::vector<std::string> stores() const;
|
|
165
|
+
|
|
166
|
+
/// Replace every value this Sekreto has resolved with `[redacted]`.
|
|
167
|
+
std::string redact(const std::string& text) const;
|
|
168
|
+
|
|
169
|
+
/// Drop cached values, so the next `get` asks the providers again.
|
|
170
|
+
void refresh();
|
|
171
|
+
/// Tear the chain down: every plugin instance is deactivated and
|
|
172
|
+
/// unloaded, in reverse. Afterwards nothing resolves - but redaction
|
|
173
|
+
/// still knows every value ever resolved.
|
|
174
|
+
void close();
|
|
175
|
+
|
|
176
|
+
/// Printed without its secrets. `cache` and `seen` are ordinary fields,
|
|
177
|
+
/// so a derived printer would put every resolved secret into whatever
|
|
178
|
+
/// formatted it. Note the literal spacing: an empty chain prints
|
|
179
|
+
/// `Sekreto { stores: [ ] }`.
|
|
180
|
+
std::string str() const;
|
|
181
|
+
/// The same, as data: the store names and nothing else.
|
|
182
|
+
Json tojson() const;
|
|
183
|
+
|
|
184
|
+
private:
|
|
185
|
+
/// One provider in the chain, under the store name it answers to, and
|
|
186
|
+
/// the ref of the plugin instance that built it - empty for a live
|
|
187
|
+
/// provider handed in directly, which no instance backs.
|
|
188
|
+
struct Entry {
|
|
189
|
+
std::string store;
|
|
190
|
+
std::string ref;
|
|
191
|
+
std::shared_ptr<Provider> provider;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
struct Cached {
|
|
195
|
+
std::string store;
|
|
196
|
+
Name name;
|
|
197
|
+
std::string value;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
Entry declare(const ProviderSpec& spec);
|
|
201
|
+
|
|
202
|
+
std::optional<std::string> resolve(const std::string& store, const Name& name,
|
|
203
|
+
const std::vector<Entry>& useentries);
|
|
204
|
+
|
|
205
|
+
plugin::CatalogPtr catalog_;
|
|
206
|
+
plugin::HostPtr host_;
|
|
207
|
+
std::vector<Entry> entries_;
|
|
208
|
+
// A list, not a map: the store a value came from stays attached, and
|
|
209
|
+
// redaction order does not vary between runs.
|
|
210
|
+
std::vector<Cached> cache_;
|
|
211
|
+
// Every value ever resolved, for redact(). Kept independently of the
|
|
212
|
+
// read cache, so `cache: false` does not silently disable redaction.
|
|
213
|
+
// Append-only for the object's life: neither refresh() nor close()
|
|
214
|
+
// clears it.
|
|
215
|
+
std::vector<std::string> seen_;
|
|
216
|
+
bool docache_;
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
/// Make a Sekreto from declarative provider specs and the plugin kinds
|
|
220
|
+
/// they may name - the same shape the shared spec and an app's config file
|
|
221
|
+
/// use.
|
|
222
|
+
Sekreto makesekreto(const std::vector<ProviderSpec>& specs,
|
|
223
|
+
const std::vector<Definition>& plugins = {}, bool cache = true);
|
|
224
|
+
|
|
225
|
+
} // namespace sekreto
|
|
226
|
+
|
|
227
|
+
#endif
|