@voxgig/sdkgen 4.10.0 → 4.12.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/dist/action/resolve.js +75 -1
- package/dist/action/resolve.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility.js +17 -0
- package/dist/utility.js.map +1 -1
- package/package.json +4 -3
- 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/c/tests/vendor/omni/json.c +1 -1
- package/project/.sdk/tm/c/tests/vendor/omni/omni.h +1 -1
- package/project/.sdk/tm/c/tests/vendor/omni/runner.c +1 -1
- package/project/.sdk/tm/c/tests/vendor/omni/util.c +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +38 -11
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +1 -1
- package/project/.sdk/tm/clojure/test/sdk/test/feature/secrets.clj +40 -6
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +1 -1
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +1 -1
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +1 -1
- 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/cpp/test/vendor/omni/json.hpp +1 -1
- package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +1 -1
- package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +1 -1
- package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +34 -8
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +1 -1
- package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +1 -1
- package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +85 -0
- package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +1 -1
- package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +1 -1
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +1 -1
- 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/elixir/test/vendor/omni/json.ex +1 -1
- package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +1 -1
- package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +1 -1
- 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/go/test/omni/omni.go +1 -1
- package/project/.sdk/tm/go/test/omni/util.go +1 -1
- package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
- package/project/.sdk/tm/java/feature/SecretsFeature.java +33 -8
- package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +1 -1
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +1 -1
- package/project/.sdk/tm/java/test/feature/secrets/SecretsFeatureTest.java +64 -0
- package/project/.sdk/tm/java/test/vendor/omni/Json.java +1 -1
- package/project/.sdk/tm/java/test/vendor/omni/Runner.java +1 -1
- package/project/.sdk/tm/java/test/vendor/omni/Util.java +1 -1
- package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +34 -11
- package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +1 -1
- package/project/.sdk/tm/js/src/utility/StructUtility.js +2 -2
- package/project/.sdk/tm/js/src/utility/TransformRequestUtility.js +49 -1
- package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +73 -0
- package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
- package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
- package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
- package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +32 -7
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +1 -1
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +1 -1
- package/project/.sdk/tm/kotlin/test/feature/secrets/SecretsTest.kt +69 -0
- package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +1 -1
- package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +1 -1
- package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +1 -1
- package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
- 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/lua/test/vendor/omni/json.lua +1 -1
- package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +1 -1
- package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +1 -1
- package/project/.sdk/tm/lua/test/vendor/omni/util.lua +1 -1
- package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
- package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
- 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/ocaml/test/vendor/omni/omni.ml +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +25 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +1 -1
- package/project/.sdk/tm/perl/feature/secrets_feature.pm +33 -12
- package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
- package/project/.sdk/tm/perl/t/feature/secrets/secrets.t +47 -0
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
- package/project/.sdk/tm/php/feature/SecretsFeature.php +30 -6
- package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +1 -1
- package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +1 -1
- package/project/.sdk/tm/php/test/feature/secrets/SecretsTest.php +98 -0
- package/project/.sdk/tm/php/test/vendor/omni/Runner.php +1 -1
- package/project/.sdk/tm/php/test/vendor/omni/Util.php +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +28 -6
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
- package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +114 -0
- package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +1 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +1 -1
- 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/rb/test/vendor/omni/runner.rb +1 -1
- package/project/.sdk/tm/rb/test/vendor/omni/util.rb +1 -1
- package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +1 -1
- package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +1 -1
- 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/rust/tests/vendor/omni/json.rs +1 -1
- package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +1 -1
- package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +1 -1
- package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1 -1
- package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +1 -1
- package/project/.sdk/tm/scala/feature/SecretsFeature.scala +29 -7
- package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +1 -1
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +1 -1
- package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +71 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +1 -1
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +1 -1
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +1 -1
- package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +1 -1
- package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +1 -1
- package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +35 -12
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +107 -1
- package/project/.sdk/tm/ts/src/utility/StructUtility.ts +2 -2
- package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +49 -1
- package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +73 -0
- package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
- 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/.sdk/tm/zig/test/vendor/omni/omni.zig +1 -1
- package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +1 -1
- package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +1 -1
- package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +1 -1
- package/project/sdkgen-package.json +1 -1
- package/src/action/resolve.ts +85 -1
- package/src/utility.ts +17 -0
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
// VENDORED: @voxgig/sekreto sdk-20260908-1556-0 (zig/plugins/httpjson.zig)
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 1267ee2e5f49566bc92695bc9eb3a60ef4924998 [tag: sdk-20260911-2013-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
//! One JSON round-trip, for the plugins that talk to a vault over HTTP -
|
|
5
|
+
//! and the small helpers every plugin shares: address trimming, the
|
|
6
|
+
//! environment fallback, token expiry, escaping, and JSON writing.
|
|
7
|
+
//!
|
|
8
|
+
//! FOR WRITING A PLUGIN, NEVER FOR THE CORE. Nothing under `src/` reaches
|
|
9
|
+
//! this file: it is the HTTP client, and what makes a kind built in is
|
|
10
|
+
//! that it needs no socket. A port of go/plugins/httpjson, which serves
|
|
11
|
+
//! the same nine plugins there.
|
|
12
|
+
//!
|
|
13
|
+
//! std ships both an HTTP client and TLS (std.crypto.tls), so this port
|
|
14
|
+
//! needs neither a third-party crate nor a hand-rolled protocol: the whole
|
|
15
|
+
//! file is a thin, opinionated wrapper that turns std.http.Client into the
|
|
16
|
+
//! `{status, body}` pair every port's `fetchjson` returns.
|
|
17
|
+
//!
|
|
18
|
+
//! Opinionated in three ways, all of them the canonical's:
|
|
19
|
+
//!
|
|
20
|
+
//! - A redirect is never followed. A vault API does not legitimately
|
|
21
|
+
//! redirect, and a followed one would carry X-Vault-Token to the
|
|
22
|
+
//! redirect's host (and could downgrade https to http), which
|
|
23
|
+
//! `checkaddr` - it only ever sees the CONFIGURED address - cannot see.
|
|
24
|
+
//! - A network failure is an ERROR, never a miss: an unreachable store is
|
|
25
|
+
//! a store that could not answer.
|
|
26
|
+
//! - A 200 whose body is not JSON is an error too. The status promised
|
|
27
|
+
//! JSON; treating an incoherent answer as a miss would fall through to
|
|
28
|
+
//! a weaker store. Error statuses may carry any body, so they are
|
|
29
|
+
//! decided on status alone.
|
|
30
|
+
|
|
31
|
+
const std = @import("std");
|
|
32
|
+
|
|
33
|
+
const sekreto = @import("sekreto");
|
|
34
|
+
|
|
35
|
+
const Allocator = std.mem.Allocator;
|
|
36
|
+
|
|
37
|
+
pub const Header = std.http.Header;
|
|
38
|
+
|
|
39
|
+
/// How long reaching a vault may take before it is treated as unreachable.
|
|
40
|
+
/// Ports carry the same bound.
|
|
41
|
+
///
|
|
42
|
+
/// Applied TWICE, in two different ways, because std applies it neither
|
|
43
|
+
/// time and the two halves of a request fail differently.
|
|
44
|
+
///
|
|
45
|
+
/// `ConnectTcpOptions` has a `timeout` field and `connectTcpOptions` never
|
|
46
|
+
/// reads it: in Zig 0.16 the whole of `std/http/Client.zig` mentions
|
|
47
|
+
/// `timeout` exactly once, at the field's own declaration, and the body
|
|
48
|
+
/// calls `host.connect(io, port, .{ .mode = .stream })` without it. Passing
|
|
49
|
+
/// it did nothing. This port therefore had NO bound of any kind while its
|
|
50
|
+
/// code and its README both said it had one - measured: still blocked at
|
|
51
|
+
/// 35s against a server that accepted and went silent, where every other
|
|
52
|
+
/// port gave up at 10.
|
|
53
|
+
///
|
|
54
|
+
/// - The CONNECT is bounded by racing it against a sleep of this length
|
|
55
|
+
/// and cancelling the loser: see `dial`. Nothing shorter works, because
|
|
56
|
+
/// until the connect returns there is no socket to bound.
|
|
57
|
+
/// - Everything AFTER the connect is bounded by `Watchdog`, which shuts
|
|
58
|
+
/// the socket down once this long has passed.
|
|
59
|
+
///
|
|
60
|
+
/// The watchdog's bound is TOTAL - it is wall-clock from the moment the
|
|
61
|
+
/// connection is up, not a per-read timer that a trickle of bytes resets.
|
|
62
|
+
/// That makes this port and Go the only two of the twelve that cut a server
|
|
63
|
+
/// answering 200 and then dribbling its body one byte at a time; measured
|
|
64
|
+
/// at 10.05s here against 30s-and-still-going for the other ten.
|
|
65
|
+
pub const CONNECT_TIMEOUT_MS = 10_000;
|
|
66
|
+
|
|
67
|
+
/// How much of a response body will be read before the store is treated as
|
|
68
|
+
/// having answered incoherently. Ports carry the same bound.
|
|
69
|
+
///
|
|
70
|
+
/// Far above anything real - the largest legitimate payload this library
|
|
71
|
+
/// fetches is Doppler's whole-config download, measured in kilobytes.
|
|
72
|
+
///
|
|
73
|
+
/// This port needs the bound most. It advertises gzip and deflate and
|
|
74
|
+
/// decompresses transparently (see readerDecompressing below), so a hostile
|
|
75
|
+
/// endpoint does not have to SEND gigabytes: a few hundred kilobytes of
|
|
76
|
+
/// zeros expands to gigabytes in this process's heap, and the watchdog only
|
|
77
|
+
/// bounds the time, not the allocation.
|
|
78
|
+
const MAXBODY: u64 = 8 * 1024 * 1024;
|
|
79
|
+
|
|
80
|
+
/// Bounds one request by shutting its socket down if it outlasts
|
|
81
|
+
/// CONNECT_TIMEOUT_MS.
|
|
82
|
+
///
|
|
83
|
+
/// A thread per request is a real cost, and it buys the only bound this
|
|
84
|
+
/// port can have: see CONNECT_TIMEOUT_MS for why the socket option and the
|
|
85
|
+
/// std timeout field are both unavailable. The wait is in short steps so a
|
|
86
|
+
/// request that finishes early is not held up by its own watchdog.
|
|
87
|
+
const Watchdog = struct {
|
|
88
|
+
stream: std.Io.net.Stream,
|
|
89
|
+
io: std.Io,
|
|
90
|
+
done: std.atomic.Value(bool) = .init(false),
|
|
91
|
+
|
|
92
|
+
const STEP_MS = 50;
|
|
93
|
+
|
|
94
|
+
fn run(self: *Watchdog) void {
|
|
95
|
+
var waited: u64 = 0;
|
|
96
|
+
while (waited < CONNECT_TIMEOUT_MS) : (waited += STEP_MS) {
|
|
97
|
+
if (self.done.load(.acquire)) return;
|
|
98
|
+
self.io.sleep(.fromMilliseconds(STEP_MS), .awake) catch return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (self.done.load(.acquire)) return;
|
|
102
|
+
|
|
103
|
+
// Ends the pending read the way a closed connection does. Errors are
|
|
104
|
+
// ignored: the socket may already have closed under us, which is the
|
|
105
|
+
// case this is racing and the harmless outcome.
|
|
106
|
+
self.stream.shutdown(self.io, .both) catch {};
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/// Connect, but give up after CONNECT_TIMEOUT_MS.
|
|
111
|
+
///
|
|
112
|
+
/// The watchdog cannot do this job: it works by shutting a socket down, and
|
|
113
|
+
/// during a connect there is no socket it can reach - `connectTcpOptions`
|
|
114
|
+
/// creates one internally and returns only once it is up. Against an
|
|
115
|
+
/// address that swallows SYNs that is however long the kernel retries,
|
|
116
|
+
/// which on Linux is a little over two minutes. Measured: still blocked at
|
|
117
|
+
/// 40s, where ten of the twelve ports gave up at 10.
|
|
118
|
+
///
|
|
119
|
+
/// So the connect is raced against a sleep, and the loser is cancelled.
|
|
120
|
+
/// `Io.Threaded` signals a thread that is blocked in a cancelable syscall,
|
|
121
|
+
/// so the cancel really does unblock a stuck connect rather than waiting
|
|
122
|
+
/// for it - measured cutting at the deadline to the millisecond.
|
|
123
|
+
///
|
|
124
|
+
/// A connect that lands in the same instant as the deadline is the case to
|
|
125
|
+
/// get right: its connection is already in the client's pool, marked used,
|
|
126
|
+
/// and `Client.deinit` ASSERTS that pool is empty. Dropping it would turn a
|
|
127
|
+
/// slow vault into a panic, which is the same trade this port already
|
|
128
|
+
/// refused once (see the note at the connect site). So the cancel is
|
|
129
|
+
/// drained and anything it hands back is closed.
|
|
130
|
+
fn dial(
|
|
131
|
+
client: *std.http.Client,
|
|
132
|
+
io: std.Io,
|
|
133
|
+
host: std.Io.net.HostName,
|
|
134
|
+
port: u16,
|
|
135
|
+
protocol: std.http.Client.Protocol,
|
|
136
|
+
) !*std.http.Client.Connection {
|
|
137
|
+
const Race = union(enum) {
|
|
138
|
+
reached: std.http.Client.ConnectTcpError!*std.http.Client.Connection,
|
|
139
|
+
expired: void,
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
const task = struct {
|
|
143
|
+
fn connect(
|
|
144
|
+
c: *std.http.Client,
|
|
145
|
+
h: std.Io.net.HostName,
|
|
146
|
+
p: u16,
|
|
147
|
+
proto: std.http.Client.Protocol,
|
|
148
|
+
) std.http.Client.ConnectTcpError!*std.http.Client.Connection {
|
|
149
|
+
return c.connectTcpOptions(.{ .host = h, .port = p, .protocol = proto });
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
fn countdown(i: std.Io) void {
|
|
153
|
+
i.sleep(.fromMilliseconds(CONNECT_TIMEOUT_MS), .awake) catch {};
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const direct: std.http.Client.ConnectTcpOptions =
|
|
158
|
+
.{ .host = host, .port = port, .protocol = protocol };
|
|
159
|
+
|
|
160
|
+
var slots: [2]Race = undefined;
|
|
161
|
+
var race: std.Io.Select(Race) = .init(io, &slots);
|
|
162
|
+
|
|
163
|
+
// No spare unit of concurrency to race with. Connecting unbounded is
|
|
164
|
+
// worse than connecting bounded and better than not connecting, so the
|
|
165
|
+
// bound is what gets dropped.
|
|
166
|
+
race.concurrent(.reached, task.connect, .{ client, host, port, protocol }) catch
|
|
167
|
+
return client.connectTcpOptions(direct);
|
|
168
|
+
|
|
169
|
+
// The connect is already running and must be awaited either way, so
|
|
170
|
+
// from here every path goes through the select.
|
|
171
|
+
race.concurrent(.expired, task.countdown, .{io}) catch {};
|
|
172
|
+
|
|
173
|
+
// Cancel whatever is left, closing a connection that arrived too late
|
|
174
|
+
// rather than leaving it in the pool for `Client.deinit` to assert on.
|
|
175
|
+
// Draining in a loop is what the Select contract asks of a task that
|
|
176
|
+
// allocates, and the connect is one.
|
|
177
|
+
const drain = struct {
|
|
178
|
+
fn all(r: *std.Io.Select(Race), c: *std.http.Client, i: std.Io) void {
|
|
179
|
+
while (r.cancel()) |late| switch (late) {
|
|
180
|
+
.reached => |result| if (result) |connection| {
|
|
181
|
+
connection.closing = true;
|
|
182
|
+
c.connection_pool.release(connection, i);
|
|
183
|
+
} else |_| {},
|
|
184
|
+
.expired => {},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
const first = race.await() catch {
|
|
190
|
+
drain.all(&race, client, io);
|
|
191
|
+
return error.Canceled;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
switch (first) {
|
|
195
|
+
.reached => |result| {
|
|
196
|
+
// Only the countdown is left, and it holds nothing.
|
|
197
|
+
race.cancelDiscard();
|
|
198
|
+
return result;
|
|
199
|
+
},
|
|
200
|
+
.expired => {
|
|
201
|
+
drain.all(&race, client, io);
|
|
202
|
+
return error.ConnectTimeout;
|
|
203
|
+
},
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/// What one round-trip returns. `body` is null when the response carried no
|
|
208
|
+
/// JSON - only possible for a non-200, which is decided on status alone.
|
|
209
|
+
pub const Response = struct {
|
|
210
|
+
status: u16,
|
|
211
|
+
body: ?std.json.Value,
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
/// The result of a round-trip, or the message of a failure.
|
|
215
|
+
pub const Result = union(enum) {
|
|
216
|
+
ok: Response,
|
|
217
|
+
err: []const u8,
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
/// The part of a URL a failure message may show. A query string can carry a
|
|
221
|
+
/// vault path or a filter, so messages name the URL without it.
|
|
222
|
+
pub fn nakedurl(url: []const u8) []const u8 {
|
|
223
|
+
const cut = std.mem.indexOfScalar(u8, url, '?') orelse return url;
|
|
224
|
+
return url[0..cut];
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/// One JSON round-trip.
|
|
228
|
+
pub fn fetchjson(
|
|
229
|
+
alloc: Allocator,
|
|
230
|
+
io: std.Io,
|
|
231
|
+
method: std.http.Method,
|
|
232
|
+
url: []const u8,
|
|
233
|
+
headers: []const Header,
|
|
234
|
+
body: ?[]const u8,
|
|
235
|
+
) Allocator.Error!Result {
|
|
236
|
+
var client: std.http.Client = .{ .allocator = alloc, .io = io };
|
|
237
|
+
defer client.deinit();
|
|
238
|
+
|
|
239
|
+
const uri = std.Uri.parse(url) catch {
|
|
240
|
+
return .{ .err = try std.fmt.allocPrint(
|
|
241
|
+
alloc,
|
|
242
|
+
"sekreto: cannot reach {s}: not a valid url",
|
|
243
|
+
.{nakedurl(url)},
|
|
244
|
+
) };
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
var text: std.Io.Writer.Allocating = .init(alloc);
|
|
248
|
+
|
|
249
|
+
const status = roundtrip(&client, io, method, uri, headers, body, &text) catch |err| {
|
|
250
|
+
// An endless body has its own message: "cannot reach" would be
|
|
251
|
+
// wrong, since the store was reached and answered - just not with
|
|
252
|
+
// anything this library will hold in memory.
|
|
253
|
+
if (error.OversizedResponse == err) {
|
|
254
|
+
return .{ .err = try std.fmt.allocPrint(
|
|
255
|
+
alloc,
|
|
256
|
+
"sekreto: oversized response from {s}",
|
|
257
|
+
.{nakedurl(url)},
|
|
258
|
+
) };
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return .{ .err = try std.fmt.allocPrint(
|
|
262
|
+
alloc,
|
|
263
|
+
"sekreto: cannot reach {s}: {s}",
|
|
264
|
+
.{ nakedurl(url), @errorName(err) },
|
|
265
|
+
) };
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
const raw = text.writer.buffered();
|
|
269
|
+
|
|
270
|
+
const parsed = std.json.parseFromSlice(std.json.Value, alloc, raw, .{}) catch {
|
|
271
|
+
// A success status promised JSON; a body that does not parse means
|
|
272
|
+
// the store could not answer coherently.
|
|
273
|
+
if (200 == status) {
|
|
274
|
+
return .{ .err = try std.fmt.allocPrint(
|
|
275
|
+
alloc,
|
|
276
|
+
"sekreto: malformed response from {s}",
|
|
277
|
+
.{nakedurl(url)},
|
|
278
|
+
) };
|
|
279
|
+
}
|
|
280
|
+
return .{ .ok = .{ .status = status, .body = null } };
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
return .{ .ok = .{ .status = status, .body = parsed.value } };
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// The request itself. Separated so that every way it can fail collapses
|
|
287
|
+
// into one "cannot reach" message, the way `fetch`'s error union would.
|
|
288
|
+
fn roundtrip(
|
|
289
|
+
client: *std.http.Client,
|
|
290
|
+
io: std.Io,
|
|
291
|
+
method: std.http.Method,
|
|
292
|
+
uri: std.Uri,
|
|
293
|
+
headers: []const Header,
|
|
294
|
+
body: ?[]const u8,
|
|
295
|
+
text: *std.Io.Writer.Allocating,
|
|
296
|
+
) !u16 {
|
|
297
|
+
const protocol = std.http.Client.Protocol.fromUri(uri) orelse return error.UnsupportedScheme;
|
|
298
|
+
const port = uri.port orelse @as(u16, if (.tls == protocol) 443 else 80);
|
|
299
|
+
|
|
300
|
+
var hostbuf: [std.Io.net.HostName.max_len]u8 = undefined;
|
|
301
|
+
const host = try uri.getHost(&hostbuf);
|
|
302
|
+
|
|
303
|
+
if (.tls == protocol) {
|
|
304
|
+
// std.http.Client scans the system trust store inside `request`, but
|
|
305
|
+
// ONLY on the path where it opens the connection itself. This
|
|
306
|
+
// request pre-connects - the one place std lets a timeout in - so
|
|
307
|
+
// the handshake would otherwise read an unset trust store and
|
|
308
|
+
// crash. Loading it here is what makes https work at all, which is
|
|
309
|
+
// in turn why this port needs no TLS dependency.
|
|
310
|
+
const now = std.Io.Clock.real.now(io);
|
|
311
|
+
client.ca_bundle.rescan(client.allocator, io, now) catch
|
|
312
|
+
return error.CertificateBundleLoadFailure;
|
|
313
|
+
client.now = now;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
const connection = try dial(client, io, host, port, protocol);
|
|
317
|
+
|
|
318
|
+
// The bound std would not apply, for the rest of the request. See
|
|
319
|
+
// CONNECT_TIMEOUT_MS: the `timeout` field on ConnectTcpOptions is
|
|
320
|
+
// declared and never read, so this port had none at all; `dial` above
|
|
321
|
+
// covers the connect, and this covers everything after it.
|
|
322
|
+
//
|
|
323
|
+
// Enforced with a watchdog rather than SO_RCVTIMEO. The socket option
|
|
324
|
+
// is the obvious move and it is wrong here: it makes recv return EAGAIN,
|
|
325
|
+
// and `Io.Threaded` treats EAGAIN on a socket read as a programmer bug
|
|
326
|
+
// and PANICS. That turns a hung vault into a crash, which is not an
|
|
327
|
+
// improvement. Shutting the socket down instead makes the pending read
|
|
328
|
+
// end the way a closed connection does, which the reader already
|
|
329
|
+
// handles, so a wedged vault surfaces as the ordinary "cannot reach"
|
|
330
|
+
// error every other port gives.
|
|
331
|
+
var watch: Watchdog = .{
|
|
332
|
+
.stream = connection.stream_reader.stream,
|
|
333
|
+
.io = io,
|
|
334
|
+
};
|
|
335
|
+
const watcher = std.Thread.spawn(.{}, Watchdog.run, .{&watch}) catch null;
|
|
336
|
+
defer if (watcher) |thread| {
|
|
337
|
+
watch.done.store(true, .release);
|
|
338
|
+
thread.join();
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
var req = try client.request(method, uri, .{
|
|
342
|
+
.connection = connection,
|
|
343
|
+
.keep_alive = false,
|
|
344
|
+
// Never follow a redirect: see the note at the top of this file.
|
|
345
|
+
.redirect_behavior = .unhandled,
|
|
346
|
+
.extra_headers = headers,
|
|
347
|
+
});
|
|
348
|
+
defer req.deinit();
|
|
349
|
+
|
|
350
|
+
if (body) |payload| {
|
|
351
|
+
req.transfer_encoding = .{ .content_length = payload.len };
|
|
352
|
+
var writer = try req.sendBodyUnflushed(&.{});
|
|
353
|
+
try writer.writer.writeAll(payload);
|
|
354
|
+
try writer.end();
|
|
355
|
+
try req.connection.?.flush();
|
|
356
|
+
} else {
|
|
357
|
+
try req.sendBodiless();
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
var response = try req.receiveHead(&.{});
|
|
361
|
+
|
|
362
|
+
var transfer: [1024]u8 = undefined;
|
|
363
|
+
var window: [std.compress.flate.max_window_len]u8 = undefined;
|
|
364
|
+
var decompress: std.http.Decompress = undefined;
|
|
365
|
+
|
|
366
|
+
// The client advertises gzip and deflate, so a server is entitled to
|
|
367
|
+
// use them; decoding is not optional.
|
|
368
|
+
const reader = response.readerDecompressing(&transfer, &decompress, &window);
|
|
369
|
+
|
|
370
|
+
// Bounded, not streamRemaining: an endless body would otherwise be
|
|
371
|
+
// accumulated until the watchdog fires, and a decompressing reader turns
|
|
372
|
+
// a small one into a large one. An endless body is a store that could
|
|
373
|
+
// not answer, so this is an error, never a miss.
|
|
374
|
+
var total: u64 = 0;
|
|
375
|
+
while (true) {
|
|
376
|
+
const got = reader.stream(&text.writer, .limited(64 * 1024)) catch |err| switch (err) {
|
|
377
|
+
error.EndOfStream => break,
|
|
378
|
+
error.ReadFailed => return response.bodyErr().?,
|
|
379
|
+
else => |rest| return rest,
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
total += got;
|
|
383
|
+
if (MAXBODY < total) {
|
|
384
|
+
return error.OversizedResponse;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
return @intFromEnum(response.head.status);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/// A map field of a JSON body, or null when anything on the way is absent
|
|
392
|
+
/// or not a map. The vault protocols nest their answers, and a chain of
|
|
393
|
+
/// `orelse return null` at every level is the same check written ten times.
|
|
394
|
+
pub fn jget(value: ?std.json.Value, key: []const u8) ?std.json.Value {
|
|
395
|
+
const entry = value orelse return null;
|
|
396
|
+
return switch (entry) {
|
|
397
|
+
.object => |map| map.get(key),
|
|
398
|
+
else => null,
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
/// A JSON string field, or null when it is absent or not a string.
|
|
403
|
+
pub fn jstr(value: ?std.json.Value) ?[]const u8 {
|
|
404
|
+
const entry = value orelse return null;
|
|
405
|
+
return switch (entry) {
|
|
406
|
+
.string => |found| found,
|
|
407
|
+
else => null,
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/// A JSON number field as an integer, whatever shape it arrived in. Lease
|
|
412
|
+
/// and expiry durations are the only numbers these protocols carry, and
|
|
413
|
+
/// servers disagree about whether they are integers or strings.
|
|
414
|
+
pub fn jnum(value: ?std.json.Value) ?i64 {
|
|
415
|
+
const entry = value orelse return null;
|
|
416
|
+
return switch (entry) {
|
|
417
|
+
.integer => |found| found,
|
|
418
|
+
.float => |found| @intFromFloat(found),
|
|
419
|
+
.number_string, .string => |found| std.fmt.parseInt(i64, found, 10) catch null,
|
|
420
|
+
else => null,
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
// ---- the helpers a plugin shares -------------------------------------
|
|
425
|
+
|
|
426
|
+
/// A base URL with one trailing slash removed, so paths join cleanly.
|
|
427
|
+
pub fn trimslash(addr: []const u8) []const u8 {
|
|
428
|
+
if (0 != addr.len and '/' == addr[addr.len - 1]) {
|
|
429
|
+
return addr[0 .. addr.len - 1];
|
|
430
|
+
}
|
|
431
|
+
return addr;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
/// The configured value, or the first non-empty of the named environment
|
|
435
|
+
/// variables. Those names are the ecosystem's own convention, so a pod or a
|
|
436
|
+
/// CI job that already has them set should just work.
|
|
437
|
+
pub fn firstof(config: sekreto.Config, given: []const u8, names: []const []const u8) []const u8 {
|
|
438
|
+
if (0 != given.len) {
|
|
439
|
+
return given;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
for (names) |name| {
|
|
443
|
+
if (config.env.get(name)) |value| {
|
|
444
|
+
if (0 != value.len) {
|
|
445
|
+
return value;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
return "";
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/// Now, in milliseconds since the epoch. Token expiry is the only clock
|
|
454
|
+
/// this library reads.
|
|
455
|
+
pub fn nowms(io: std.Io) i64 {
|
|
456
|
+
const stamp = std.Io.Timestamp.now(io, .real);
|
|
457
|
+
return @intCast(@divTrunc(stamp.nanoseconds, std.time.ns_per_ms));
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/// Never: a configured token is kept for the life of the process.
|
|
461
|
+
pub const NEVER: i64 = std.math.maxInt(i64);
|
|
462
|
+
|
|
463
|
+
/// When a lease of `seconds` should be renewed - a minute early, because a
|
|
464
|
+
/// long-running process must not keep presenting a token the vault already
|
|
465
|
+
/// expired.
|
|
466
|
+
pub fn renewafter(io: std.Io, seconds: ?i64) i64 {
|
|
467
|
+
const lease = seconds orelse return NEVER;
|
|
468
|
+
if (0 >= lease) {
|
|
469
|
+
return NEVER;
|
|
470
|
+
}
|
|
471
|
+
return nowms(io) + 1000 * @max(lease - 60, 1);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/// Percent-escape one query-string value.
|
|
475
|
+
pub fn escape(alloc: Allocator, text: []const u8) Allocator.Error![]const u8 {
|
|
476
|
+
var out: std.ArrayList(u8) = .empty;
|
|
477
|
+
|
|
478
|
+
for (text) |ch| {
|
|
479
|
+
const plain = ('A' <= ch and 'Z' >= ch) or ('a' <= ch and 'z' >= ch) or
|
|
480
|
+
('0' <= ch and '9' >= ch) or '-' == ch or '_' == ch or '.' == ch or '~' == ch;
|
|
481
|
+
|
|
482
|
+
if (plain) {
|
|
483
|
+
try out.append(alloc, ch);
|
|
484
|
+
} else {
|
|
485
|
+
try out.appendSlice(alloc, try std.fmt.allocPrint(alloc, "%{X:0>2}", .{ch}));
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
return out.items;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/// One JSON string literal. The bodies this library sends are flat maps of
|
|
493
|
+
/// strings, so a full writer would be more machinery than the job needs.
|
|
494
|
+
pub fn jsonstring(alloc: Allocator, text: []const u8) Allocator.Error![]const u8 {
|
|
495
|
+
var out: std.ArrayList(u8) = .empty;
|
|
496
|
+
try out.append(alloc, '"');
|
|
497
|
+
|
|
498
|
+
for (text) |ch| {
|
|
499
|
+
switch (ch) {
|
|
500
|
+
'"' => try out.appendSlice(alloc, "\\\""),
|
|
501
|
+
'\\' => try out.appendSlice(alloc, "\\\\"),
|
|
502
|
+
'\n' => try out.appendSlice(alloc, "\\n"),
|
|
503
|
+
'\r' => try out.appendSlice(alloc, "\\r"),
|
|
504
|
+
'\t' => try out.appendSlice(alloc, "\\t"),
|
|
505
|
+
else => {
|
|
506
|
+
if (0x20 > ch) {
|
|
507
|
+
try out.appendSlice(alloc, try std.fmt.allocPrint(alloc, "\\u{x:0>4}", .{ch}));
|
|
508
|
+
} else {
|
|
509
|
+
try out.append(alloc, ch);
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
try out.append(alloc, '"');
|
|
516
|
+
return out.items;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/// A flat JSON object of string fields.
|
|
520
|
+
pub fn jsonobject(alloc: Allocator, fields: []const sekreto.KeyValue) Allocator.Error![]const u8 {
|
|
521
|
+
var out: std.ArrayList(u8) = .empty;
|
|
522
|
+
try out.append(alloc, '{');
|
|
523
|
+
|
|
524
|
+
for (fields, 0..) |field, at| {
|
|
525
|
+
if (0 < at) {
|
|
526
|
+
try out.append(alloc, ',');
|
|
527
|
+
}
|
|
528
|
+
try out.appendSlice(alloc, try jsonstring(alloc, field.key));
|
|
529
|
+
try out.append(alloc, ':');
|
|
530
|
+
try out.appendSlice(alloc, try jsonstring(alloc, field.value));
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
try out.append(alloc, '}');
|
|
534
|
+
return out.items;
|
|
535
|
+
}
|