@voxgig/sdkgen 4.19.1 → 4.21.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.
Files changed (1034) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/helpers/applicability.js +11 -6
  3. package/dist/helpers/applicability.js.map +1 -1
  4. package/dist/helpers/collectDeps.js +31 -6
  5. package/dist/helpers/collectDeps.js.map +1 -1
  6. package/dist/helpers/naming.js +2 -2
  7. package/dist/helpers/naming.js.map +1 -1
  8. package/dist/sdkgen.d.ts +2 -2
  9. package/dist/sdkgen.js +6 -3
  10. package/dist/sdkgen.js.map +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/dist/utility.d.ts +4 -1
  13. package/dist/utility.js +60 -0
  14. package/dist/utility.js.map +1 -1
  15. package/model/sdkgen.aon +59 -3
  16. package/package.json +1 -1
  17. package/project/.sdk/model/feature/secrets.aon +128 -0
  18. package/project/.sdk/model/feature/validate.aon +3 -2
  19. package/project/.sdk/model/target/c.aon +1 -1
  20. package/project/.sdk/model/target/clojure.aon +1 -1
  21. package/project/.sdk/model/target/cpp.aon +1 -1
  22. package/project/.sdk/model/target/csharp.aon +1 -1
  23. package/project/.sdk/model/target/elixir.aon +1 -1
  24. package/project/.sdk/model/target/go.aon +1 -1
  25. package/project/.sdk/model/target/java.aon +1 -1
  26. package/project/.sdk/model/target/kotlin.aon +1 -1
  27. package/project/.sdk/model/target/lua.aon +1 -1
  28. package/project/.sdk/model/target/ocaml.aon +1 -1
  29. package/project/.sdk/model/target/perl.aon +1 -1
  30. package/project/.sdk/model/target/php.aon +1 -1
  31. package/project/.sdk/model/target/py.aon +1 -1
  32. package/project/.sdk/model/target/rb.aon +1 -1
  33. package/project/.sdk/model/target/rust.aon +1 -1
  34. package/project/.sdk/model/target/scala.aon +1 -1
  35. package/project/.sdk/model/target/swift.aon +1 -1
  36. package/project/.sdk/model/target/zig.aon +1 -1
  37. package/project/.sdk/src/cmp/c/Config_c.ts +15 -0
  38. package/project/.sdk/src/cmp/c/Main_c.ts +18 -0
  39. package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +371 -0
  40. package/project/.sdk/src/cmp/c/Schema_c.ts +106 -0
  41. package/project/.sdk/src/cmp/clojure/Config_clojure.ts +47 -1
  42. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +13 -1
  43. package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +374 -0
  44. package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +1 -0
  45. package/project/.sdk/src/cmp/clojure/Schema_clojure.ts +73 -0
  46. package/project/.sdk/src/cmp/cpp/Config_cpp.ts +40 -0
  47. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +20 -0
  48. package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +441 -0
  49. package/project/.sdk/src/cmp/cpp/Schema_cpp.ts +105 -0
  50. package/project/.sdk/src/cmp/csharp/Config_csharp.ts +42 -1
  51. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +21 -0
  52. package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +392 -0
  53. package/project/.sdk/src/cmp/csharp/Schema_csharp.ts +85 -0
  54. package/project/.sdk/src/cmp/elixir/Config_elixir.ts +36 -1
  55. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +17 -0
  56. package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +418 -0
  57. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +1 -0
  58. package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +88 -0
  59. package/project/.sdk/src/cmp/go/Config_go.ts +12 -1
  60. package/project/.sdk/src/cmp/go/Main_go.ts +16 -0
  61. package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +322 -0
  62. package/project/.sdk/src/cmp/go/Schema_go.ts +93 -0
  63. package/project/.sdk/src/cmp/java/Config_java.ts +20 -1
  64. package/project/.sdk/src/cmp/java/Main_java.ts +16 -0
  65. package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +298 -0
  66. package/project/.sdk/src/cmp/java/Schema_java.ts +125 -0
  67. package/project/.sdk/src/cmp/js/Config_js.ts +12 -1
  68. package/project/.sdk/src/cmp/js/Main_js.ts +6 -0
  69. package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +244 -0
  70. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +23 -1
  71. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +22 -0
  72. package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +440 -0
  73. package/project/.sdk/src/cmp/kotlin/Schema_kotlin.ts +111 -0
  74. package/project/.sdk/src/cmp/lua/Config_lua.ts +15 -1
  75. package/project/.sdk/src/cmp/lua/Main_lua.ts +57 -9
  76. package/project/.sdk/src/cmp/lua/Package_lua.ts +1 -0
  77. package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +364 -0
  78. package/project/.sdk/src/cmp/lua/ReadmeExplanation_lua.ts +1 -0
  79. package/project/.sdk/src/cmp/lua/Schema_lua.ts +72 -0
  80. package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +55 -2
  81. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +53 -13
  82. package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +454 -0
  83. package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +1 -0
  84. package/project/.sdk/src/cmp/ocaml/Schema_ocaml.ts +99 -0
  85. package/project/.sdk/src/cmp/perl/Config_perl.ts +30 -0
  86. package/project/.sdk/src/cmp/perl/Main_perl.ts +16 -0
  87. package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +387 -0
  88. package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +1 -0
  89. package/project/.sdk/src/cmp/perl/Schema_perl.ts +107 -0
  90. package/project/.sdk/src/cmp/php/Config_php.ts +12 -1
  91. package/project/.sdk/src/cmp/php/Main_php.ts +9 -0
  92. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  93. package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +325 -0
  94. package/project/.sdk/src/cmp/php/ReadmeExplanation_php.ts +1 -0
  95. package/project/.sdk/src/cmp/php/Schema_php.ts +129 -0
  96. package/project/.sdk/src/cmp/py/Config_py.ts +12 -1
  97. package/project/.sdk/src/cmp/py/Main_py.ts +14 -0
  98. package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +389 -0
  99. package/project/.sdk/src/cmp/py/ReadmeExplanation_py.ts +1 -0
  100. package/project/.sdk/src/cmp/py/Schema_py.ts +72 -0
  101. package/project/.sdk/src/cmp/rb/Config_rb.ts +18 -1
  102. package/project/.sdk/src/cmp/rb/Main_rb.ts +12 -0
  103. package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +305 -0
  104. package/project/.sdk/src/cmp/rb/ReadmeExplanation_rb.ts +1 -0
  105. package/project/.sdk/src/cmp/rb/Schema_rb.ts +70 -0
  106. package/project/.sdk/src/cmp/rust/Config_rust.ts +41 -1
  107. package/project/.sdk/src/cmp/rust/Main_rust.ts +19 -0
  108. package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +410 -0
  109. package/project/.sdk/src/cmp/rust/Schema_rust.ts +107 -0
  110. package/project/.sdk/src/cmp/scala/Config_scala.ts +21 -1
  111. package/project/.sdk/src/cmp/scala/Main_scala.ts +17 -0
  112. package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +415 -0
  113. package/project/.sdk/src/cmp/scala/Schema_scala.ts +108 -0
  114. package/project/.sdk/src/cmp/swift/Config_swift.ts +37 -1
  115. package/project/.sdk/src/cmp/swift/Main_swift.ts +13 -0
  116. package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +439 -0
  117. package/project/.sdk/src/cmp/swift/Schema_swift.ts +92 -0
  118. package/project/.sdk/src/cmp/ts/Config_ts.ts +12 -1
  119. package/project/.sdk/src/cmp/ts/Main_ts.ts +5 -0
  120. package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +237 -0
  121. package/project/.sdk/src/cmp/zig/Config_zig.ts +33 -1
  122. package/project/.sdk/src/cmp/zig/Main_zig.ts +19 -0
  123. package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +545 -0
  124. package/project/.sdk/src/cmp/zig/Schema_zig.ts +114 -0
  125. package/project/.sdk/tm/c/core/context.c +3 -0
  126. package/project/.sdk/tm/c/core/sdk.h +14 -0
  127. package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +2 -2
  128. package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +2 -2
  129. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +2 -2
  130. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +2 -2
  131. package/project/.sdk/tm/c/feature/secrets/plugin/config.c +2 -2
  132. package/project/.sdk/tm/c/feature/secrets/plugin/config.h +2 -2
  133. package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +2 -2
  134. package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +2 -2
  135. package/project/.sdk/tm/c/feature/secrets/plugin/env.c +2 -2
  136. package/project/.sdk/tm/c/feature/secrets/plugin/env.h +2 -2
  137. package/project/.sdk/tm/c/feature/secrets/plugin/export.c +3 -3
  138. package/project/.sdk/tm/c/feature/secrets/plugin/export.h +2 -2
  139. package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +2 -2
  140. package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +2 -2
  141. package/project/.sdk/tm/c/feature/secrets/plugin/host.c +25 -2
  142. package/project/.sdk/tm/c/feature/secrets/plugin/host.h +3 -2
  143. package/project/.sdk/tm/c/feature/secrets/plugin/order.c +2 -2
  144. package/project/.sdk/tm/c/feature/secrets/plugin/order.h +2 -2
  145. package/project/.sdk/tm/c/feature/secrets/plugin/point.c +2 -2
  146. package/project/.sdk/tm/c/feature/secrets/plugin/point.h +2 -2
  147. package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +2 -2
  148. package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +2 -2
  149. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +2 -2
  150. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +2 -2
  151. package/project/.sdk/tm/c/feature/secrets/plugin/types.c +2 -2
  152. package/project/.sdk/tm/c/feature/secrets/plugin/types.h +2 -2
  153. package/project/.sdk/tm/c/feature/secrets/plugin/value.c +2 -2
  154. package/project/.sdk/tm/c/feature/secrets/plugin/value.h +2 -2
  155. package/project/.sdk/tm/c/feature/secrets/plugin/version.c +2 -2
  156. package/project/.sdk/tm/c/feature/secrets/plugin/version.h +2 -2
  157. package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +2 -2
  158. package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +2 -2
  159. package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +2 -2
  160. package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +2 -2
  161. package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +2 -2
  162. package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +2 -2
  163. package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +2 -2
  164. package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +2 -2
  165. package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +2 -2
  166. package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +2 -2
  167. package/project/.sdk/tm/c/feature/secrets/plugins/minivault.c +2072 -0
  168. package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +2 -2
  169. package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +2 -2
  170. package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +2 -2
  171. package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +151 -10
  172. package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +16 -10
  173. package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +2 -2
  174. package/project/.sdk/tm/c/feature/secrets/plugins/support.h +12 -8
  175. package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +2 -2
  176. package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +17 -2
  177. package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +5 -5
  178. package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +37 -9
  179. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +2 -2
  180. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +17 -2
  181. package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +16 -2
  182. package/project/.sdk/tm/c/feature/validate.c +364 -0
  183. package/project/.sdk/tm/c/feature/validate.h +29 -0
  184. package/project/.sdk/tm/c/src/feature/validate/.gitkeep +0 -0
  185. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  186. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  187. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  188. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  189. package/project/.sdk/tm/c/utility/make_options.c +12 -24
  190. package/project/.sdk/tm/c/utility/make_spec.c +8 -0
  191. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +2 -2
  192. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +2 -2
  193. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +2 -2
  194. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +2 -2
  195. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +2 -2
  196. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +3 -3
  197. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +2 -2
  198. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +17 -2
  199. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +2 -2
  200. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +2 -2
  201. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +2 -2
  202. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +2 -2
  203. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +2 -2
  204. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +2 -2
  205. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +2 -2
  206. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +2 -2
  207. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +2 -2
  208. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +2 -2
  209. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +2 -2
  210. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +2 -2
  211. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +2 -2
  212. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +2 -2
  213. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +2 -2
  214. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +2 -2
  215. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +2 -2
  216. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +2 -2
  217. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +2 -2
  218. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +2 -2
  219. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/minivault.clj +837 -0
  220. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +2 -2
  221. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +2 -2
  222. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +2 -2
  223. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +2 -2
  224. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +2 -2
  225. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +6 -4
  226. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +2 -2
  227. package/project/.sdk/tm/clojure/src/feature/validate/.gitkeep +0 -0
  228. package/project/.sdk/tm/clojure/src/sdk/core.clj +52 -51
  229. package/project/.sdk/tm/clojure/src/sdk/features.clj +202 -0
  230. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  231. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  232. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  233. package/project/.sdk/tm/cpp/core/types.hpp +4 -0
  234. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +2 -2
  235. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +2 -2
  236. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +2 -2
  237. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +2 -2
  238. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +2 -2
  239. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +2 -2
  240. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +2 -2
  241. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +2 -2
  242. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +2 -2
  243. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +2 -2
  244. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +3 -3
  245. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +2 -2
  246. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +2 -2
  247. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +2 -2
  248. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +21 -2
  249. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +3 -2
  250. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +2 -2
  251. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +2 -2
  252. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +2 -2
  253. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +2 -2
  254. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +2 -2
  255. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +2 -2
  256. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +2 -2
  257. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +2 -2
  258. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +2 -2
  259. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +2 -2
  260. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +2 -2
  261. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +2 -2
  262. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +2 -2
  263. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +2 -2
  264. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +2 -2
  265. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +2 -2
  266. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +2 -2
  267. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +2 -2
  268. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +2 -2
  269. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +2 -2
  270. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +2 -2
  271. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +9 -7
  272. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +2 -2
  273. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +2 -2
  274. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +2 -2
  275. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +2 -2
  276. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +2 -2
  277. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +2 -2
  278. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +2 -2
  279. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +2 -2
  280. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +2 -2
  281. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +2 -2
  282. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.cpp +1345 -0
  283. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.hpp +219 -0
  284. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +2 -2
  285. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +2 -2
  286. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +2 -2
  287. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +2 -2
  288. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +2 -2
  289. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +2 -2
  290. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +2 -2
  291. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +2 -2
  292. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +2 -2
  293. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +2 -2
  294. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +2 -2
  295. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +2 -2
  296. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +22 -2
  297. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +12 -2
  298. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +3 -3
  299. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +2 -2
  300. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +2 -2
  301. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +2 -2
  302. package/project/.sdk/tm/cpp/feature/validate.hpp +301 -0
  303. package/project/.sdk/tm/cpp/src/feature/validate/.gitkeep +0 -0
  304. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  305. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  306. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  307. package/project/.sdk/tm/cpp/utility/pipeline.hpp +42 -63
  308. package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +343 -0
  309. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +2 -2
  310. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +2 -2
  311. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +2 -2
  312. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +2 -2
  313. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +2 -2
  314. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +2 -2
  315. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +2 -2
  316. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +3 -3
  317. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +2 -2
  318. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +9 -2
  319. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +21 -2
  320. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +2 -2
  321. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +2 -2
  322. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +2 -2
  323. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +2 -2
  324. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +2 -2
  325. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +2 -2
  326. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +2 -2
  327. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +2 -2
  328. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +2 -2
  329. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +2 -2
  330. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +2 -2
  331. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +2 -2
  332. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +2 -2
  333. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +2 -2
  334. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +2 -2
  335. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +2 -2
  336. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +2 -2
  337. package/project/.sdk/tm/csharp/feature/secrets/plugins/MiniVault.cs +1572 -0
  338. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +2 -2
  339. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +2 -2
  340. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +2 -2
  341. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +2 -2
  342. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +3 -2
  343. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +2 -2
  344. package/project/.sdk/tm/csharp/src/feature/validate/.gitkeep +0 -0
  345. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  346. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  347. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +12 -74
  348. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +24 -3
  349. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +2 -2
  350. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +2 -2
  351. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +2 -2
  352. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +2 -2
  353. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +2 -2
  354. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +2 -2
  355. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +7 -4
  356. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +2 -2
  357. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +13 -2
  358. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +15 -2
  359. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +2 -2
  360. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +2 -2
  361. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +2 -2
  362. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +2 -2
  363. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +2 -2
  364. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +2 -2
  365. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +2 -2
  366. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +2 -2
  367. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +2 -2
  368. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +2 -2
  369. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +2 -2
  370. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +2 -2
  371. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +2 -2
  372. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +2 -2
  373. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +2 -2
  374. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +3 -3
  375. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +3 -3
  376. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +2 -2
  377. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/minivault.ex +1033 -0
  378. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +2 -2
  379. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +2 -2
  380. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +2 -2
  381. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +2 -2
  382. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +2 -2
  383. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +17 -5
  384. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +2 -2
  385. package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +320 -0
  386. package/project/.sdk/tm/elixir/lib/projectname/utility.ex +17 -66
  387. package/project/.sdk/tm/elixir/src/feature/validate/.gitkeep +0 -0
  388. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  389. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  390. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  391. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  392. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  393. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  394. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  395. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  396. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +2 -2
  397. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  398. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +25 -1
  399. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  400. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  401. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  402. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  403. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  404. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  405. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  406. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
  407. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  408. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  409. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  410. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  411. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  412. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
  413. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
  414. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
  415. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/format.go +493 -0
  416. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/minivault.go +1131 -0
  417. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  418. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  419. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  420. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +14 -2
  421. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
  422. package/project/.sdk/tm/go/feature/validate_feature.go +346 -0
  423. package/project/.sdk/tm/go/src/feature/validate/.gitkeep +0 -0
  424. package/project/.sdk/tm/go/test/omni/omni.go +2 -2
  425. package/project/.sdk/tm/go/test/omni/util.go +2 -2
  426. package/project/.sdk/tm/go/utility/make_options.go +13 -54
  427. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +24 -8
  428. package/project/.sdk/tm/java/feature/ValidateFeature.java +330 -0
  429. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +2 -2
  430. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +2 -2
  431. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +2 -2
  432. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +2 -2
  433. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +2 -2
  434. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +2 -2
  435. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +2 -2
  436. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +3 -3
  437. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +2 -2
  438. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +3 -3
  439. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +21 -2
  440. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +2 -2
  441. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +2 -2
  442. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +2 -2
  443. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +2 -2
  444. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +2 -2
  445. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +2 -2
  446. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +2 -2
  447. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +2 -2
  448. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +2 -2
  449. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +2 -2
  450. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +4 -3
  451. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +2 -2
  452. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +2 -2
  453. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +2 -2
  454. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +2 -2
  455. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +2 -2
  456. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +2 -2
  457. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +2 -2
  458. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +2 -2
  459. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +2 -2
  460. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +2 -2
  461. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +2 -2
  462. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +2 -2
  463. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Minivault.java +1448 -0
  464. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +2 -2
  465. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +2 -2
  466. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +2 -2
  467. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +2 -2
  468. package/project/.sdk/tm/java/src/feature/validate/.gitkeep +0 -0
  469. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  470. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  471. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  472. package/project/.sdk/tm/java/utility/MakeOptions.java +13 -33
  473. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  474. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +2 -2
  475. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +2 -2
  476. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +2 -2
  477. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +2 -2
  478. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +2 -2
  479. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +3 -3
  480. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +2 -2
  481. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +17 -2
  482. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +2 -2
  483. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +2 -2
  484. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +2 -2
  485. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +2 -2
  486. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +2 -2
  487. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +2 -2
  488. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +2 -2
  489. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +2 -2
  490. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +2 -2
  491. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +2 -2
  492. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +2 -2
  493. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +2 -2
  494. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +2 -2
  495. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +2 -2
  496. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +2 -2
  497. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +2 -2
  498. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +2 -2
  499. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/minivault.js +866 -0
  500. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +2 -2
  501. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +2 -2
  502. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +2 -2
  503. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +2 -2
  504. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +3 -2
  505. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +2 -2
  506. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +2 -2
  507. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +2 -2
  508. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +2 -2
  509. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +2 -2
  510. package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
  511. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  512. package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
  513. package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
  514. package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +297 -0
  515. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +2 -2
  516. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +2 -2
  517. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +2 -2
  518. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +2 -2
  519. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +2 -2
  520. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +3 -3
  521. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +2 -2
  522. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +21 -2
  523. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +2 -2
  524. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +2 -2
  525. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +2 -2
  526. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +2 -2
  527. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +2 -2
  528. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +2 -2
  529. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +2 -2
  530. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +2 -2
  531. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +2 -2
  532. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +2 -2
  533. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +3 -2
  534. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +2 -2
  535. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +14 -2
  536. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +10 -2
  537. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +2 -2
  538. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +2 -2
  539. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +2 -2
  540. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +2 -2
  541. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +2 -2
  542. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +2 -2
  543. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +2 -2
  544. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +2 -2
  545. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Minivault.kt +1095 -0
  546. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +2 -2
  547. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +2 -2
  548. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +2 -2
  549. package/project/.sdk/tm/kotlin/src/feature/validate/.gitkeep +0 -0
  550. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  551. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  552. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  553. package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +13 -22
  554. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -0
  555. package/project/.sdk/tm/kotlin/utility/Prepare.kt +13 -46
  556. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  557. package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +2 -2
  558. package/project/.sdk/tm/lua/feature/secrets/native/sekretovault.c +240 -0
  559. package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +2 -2
  560. package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +2 -2
  561. package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +2 -2
  562. package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +2 -2
  563. package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +2 -2
  564. package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +12 -3
  565. package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +2 -2
  566. package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +18 -2
  567. package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +2 -2
  568. package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +2 -2
  569. package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +2 -2
  570. package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +2 -2
  571. package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +2 -2
  572. package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +2 -2
  573. package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +2 -2
  574. package/project/.sdk/tm/lua/feature/secrets/plugin.lua +2 -2
  575. package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +2 -2
  576. package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +2 -2
  577. package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +2 -2
  578. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +2 -2
  579. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +2 -2
  580. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +2 -2
  581. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +2 -2
  582. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +2 -2
  583. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +2 -2
  584. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +2 -2
  585. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +2 -2
  586. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +2 -2
  587. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +2 -2
  588. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/minivault.lua +1227 -0
  589. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +2 -2
  590. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +2 -2
  591. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +2 -2
  592. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +2 -2
  593. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +2 -2
  594. package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +3 -2
  595. package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +2 -2
  596. package/project/.sdk/tm/lua/feature/validate_feature.lua +333 -0
  597. package/project/.sdk/tm/lua/src/feature/validate/.gitkeep +0 -0
  598. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  599. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  600. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  601. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  602. package/project/.sdk/tm/lua/utility/make_options.lua +74 -55
  603. package/project/.sdk/tm/lua/utility/make_spec.lua +8 -1
  604. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  605. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  606. package/project/.sdk/tm/ocaml/Makefile +16 -1
  607. package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +2 -2
  608. package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +2 -2
  609. package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +2 -2
  610. package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +2 -2
  611. package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +2 -2
  612. package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +2 -2
  613. package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +5 -3
  614. package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +2 -2
  615. package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +18 -2
  616. package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +2 -2
  617. package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +2 -2
  618. package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +2 -2
  619. package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +2 -2
  620. package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +2 -2
  621. package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +2 -2
  622. package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +2 -2
  623. package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +2 -2
  624. package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +2 -2
  625. package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +2 -2
  626. package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +2 -2
  627. package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +2 -2
  628. package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +2 -2
  629. package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +2 -2
  630. package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +2 -2
  631. package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +2 -2
  632. package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +2 -2
  633. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault.ml +1086 -0
  634. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault_stubs.c +222 -0
  635. package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +2 -2
  636. package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +2 -2
  637. package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +2 -2
  638. package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +2 -2
  639. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +2 -2
  640. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +2 -2
  641. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +2 -2
  642. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +33 -3
  643. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +2 -2
  644. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +4 -3
  645. package/project/.sdk/tm/ocaml/sdk_features.ml +174 -0
  646. package/project/.sdk/tm/ocaml/sdk_helpers.ml +15 -0
  647. package/project/.sdk/tm/ocaml/sdk_runtime.ml +30 -49
  648. package/project/.sdk/tm/ocaml/src/feature/validate/.gitkeep +0 -0
  649. package/project/.sdk/tm/ocaml/test/feature/secrets/t_secrets.ml +125 -12
  650. package/project/.sdk/tm/ocaml/test/t_pipeline.ml +64 -6
  651. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  652. package/project/.sdk/tm/perl/core/helpers.pm +64 -16
  653. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +2 -2
  654. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +2 -2
  655. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +2 -2
  656. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +2 -2
  657. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +2 -2
  658. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +3 -3
  659. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +2 -2
  660. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +19 -2
  661. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +2 -2
  662. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +2 -2
  663. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +2 -2
  664. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +2 -2
  665. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +2 -2
  666. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +2 -2
  667. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +2 -2
  668. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +2 -2
  669. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +2 -2
  670. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +2 -2
  671. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +2 -2
  672. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +2 -2
  673. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +2 -2
  674. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +2 -2
  675. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +2 -2
  676. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Minivault.pm +1380 -0
  677. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +2 -2
  678. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +2 -2
  679. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +2 -2
  680. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +2 -2
  681. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +2 -2
  682. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +4 -3
  683. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +2 -2
  684. package/project/.sdk/tm/perl/feature/validate_feature.pm +319 -0
  685. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  686. package/project/.sdk/tm/perl/src/feature/validate/.gitkeep +0 -0
  687. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  688. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  689. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  690. package/project/.sdk/tm/perl/utility/make_options.pm +25 -34
  691. package/project/.sdk/tm/php/feature/ValidateFeature.php +361 -0
  692. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +2 -2
  693. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +2 -2
  694. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +2 -2
  695. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +2 -2
  696. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +2 -2
  697. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +3 -3
  698. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +2 -2
  699. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +26 -2
  700. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +2 -2
  701. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +2 -2
  702. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +2 -2
  703. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +2 -2
  704. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +2 -2
  705. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +2 -2
  706. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +2 -2
  707. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +2 -2
  708. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +2 -2
  709. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +2 -2
  710. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +2 -2
  711. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +2 -2
  712. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +2 -2
  713. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +2 -2
  714. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +2 -2
  715. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/minivault.php +1250 -0
  716. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +2 -2
  717. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +2 -2
  718. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +2 -2
  719. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +2 -2
  720. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +2 -2
  721. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +5 -3
  722. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +2 -2
  723. package/project/.sdk/tm/php/src/feature/validate/.gitkeep +0 -0
  724. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  725. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  726. package/project/.sdk/tm/php/utility/MakeOptions.php +15 -24
  727. package/project/.sdk/tm/php/utility/struct/Struct.php +56 -7
  728. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  729. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  730. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  731. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  732. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  733. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  734. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +2 -2
  735. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  736. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +17 -1
  737. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  738. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  739. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  740. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  741. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  742. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  743. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +1 -1
  744. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  745. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
  746. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  747. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  748. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  749. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  750. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
  751. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  752. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
  753. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/minivault.py +1202 -0
  754. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  755. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  756. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  757. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +2 -1
  758. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
  759. package/project/.sdk/tm/py/pkg/feature/validate_feature.py +273 -0
  760. package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -53
  761. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  762. package/project/.sdk/tm/py/src/feature/validate/.gitkeep +0 -0
  763. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  764. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
  765. package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
  766. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +2 -2
  767. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +2 -2
  768. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +2 -2
  769. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +2 -2
  770. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +2 -2
  771. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +3 -3
  772. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +2 -2
  773. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +16 -2
  774. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +2 -2
  775. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +2 -2
  776. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +2 -2
  777. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +2 -2
  778. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +2 -2
  779. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +2 -2
  780. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +2 -2
  781. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +2 -2
  782. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +2 -2
  783. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +2 -2
  784. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +2 -2
  785. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +2 -2
  786. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +2 -2
  787. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +2 -2
  788. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +2 -2
  789. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +2 -2
  790. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/minivault.rb +979 -0
  791. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +2 -2
  792. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +2 -2
  793. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +2 -2
  794. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +6 -5
  795. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +2 -2
  796. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +2 -2
  797. package/project/.sdk/tm/rb/feature/validate_feature.rb +265 -0
  798. package/project/.sdk/tm/rb/src/feature/validate/.gitkeep +0 -0
  799. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  800. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  801. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  802. package/project/.sdk/tm/rb/utility/make_options.rb +15 -32
  803. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +24 -1
  804. package/project/.sdk/tm/rust/core/mod.rs +3 -2
  805. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +2 -2
  806. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +2 -2
  807. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +2 -2
  808. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +2 -2
  809. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +2 -2
  810. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +3 -3
  811. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +2 -2
  812. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +24 -2
  813. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +2 -2
  814. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +2 -2
  815. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +2 -2
  816. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +2 -2
  817. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +2 -2
  818. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +2 -2
  819. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +2 -2
  820. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +2 -2
  821. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +2 -2
  822. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +2 -2
  823. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +2 -2
  824. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +2 -2
  825. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +2 -2
  826. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +2 -2
  827. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +2 -2
  828. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +2 -2
  829. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +2 -2
  830. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +2 -2
  831. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +2 -2
  832. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +2 -2
  833. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault/format.rs +425 -0
  834. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault.rs +1076 -0
  835. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +2 -2
  836. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +2 -2
  837. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +2 -2
  838. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +2 -2
  839. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +30 -4
  840. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +2 -2
  841. package/project/.sdk/tm/rust/feature/validate.rs +387 -0
  842. package/project/.sdk/tm/rust/src/feature/validate/.gitkeep +0 -0
  843. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  844. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  845. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  846. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  847. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  848. package/project/.sdk/tm/rust/utility/make_options.rs +12 -51
  849. package/project/.sdk/tm/rust/utility/make_spec.rs +10 -3
  850. package/project/.sdk/tm/scala/feature/ValidateFeature.scala +286 -0
  851. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +2 -2
  852. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +2 -2
  853. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +2 -2
  854. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +2 -2
  855. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +3 -3
  856. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +2 -2
  857. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +19 -2
  858. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +2 -2
  859. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +2 -2
  860. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +2 -2
  861. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +2 -2
  862. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +2 -2
  863. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +2 -2
  864. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +2 -2
  865. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +2 -2
  866. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +2 -2
  867. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +2 -2
  868. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +2 -2
  869. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +3 -2
  870. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +2 -2
  871. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +13 -2
  872. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +11 -2
  873. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +2 -2
  874. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +2 -2
  875. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +2 -2
  876. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +2 -2
  877. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +2 -2
  878. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +2 -2
  879. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +2 -2
  880. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +2 -2
  881. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Minivault.scala +979 -0
  882. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +2 -2
  883. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +2 -2
  884. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +2 -2
  885. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  886. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  887. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  888. package/project/.sdk/tm/scala/src/feature/validate/.gitkeep +0 -0
  889. package/project/.sdk/tm/scala/utility/Make.scala +12 -28
  890. package/project/.sdk/tm/scala/utility/MakeSpec.scala +8 -1
  891. package/project/.sdk/tm/scala/utility/Prepare.scala +16 -40
  892. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +273 -0
  893. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +2 -2
  894. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +2 -2
  895. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +2 -2
  896. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +2 -2
  897. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +2 -2
  898. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +3 -3
  899. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +2 -2
  900. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +17 -2
  901. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +2 -2
  902. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +2 -2
  903. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +2 -2
  904. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +2 -2
  905. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +2 -2
  906. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +2 -2
  907. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +2 -2
  908. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +2 -2
  909. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +2 -2
  910. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +2 -2
  911. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +2 -2
  912. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +2 -2
  913. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +2 -2
  914. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +2 -2
  915. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +2 -2
  916. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +2 -2
  917. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +2 -2
  918. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +2 -2
  919. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +2 -2
  920. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +2 -2
  921. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +2 -2
  922. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +2 -2
  923. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +2 -2
  924. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +2 -2
  925. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +2 -2
  926. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +2 -2
  927. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +9 -3
  928. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +12 -60
  929. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +21 -39
  930. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +3 -3
  931. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  932. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  933. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  934. package/project/.sdk/tm/swift/src/feature/validate/.gitkeep +0 -0
  935. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  936. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  937. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  938. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  939. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  940. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +13 -2
  941. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  942. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  943. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +27 -1
  944. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  945. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  946. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  947. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  948. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  949. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  950. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  951. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  952. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  953. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  954. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  955. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  956. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  957. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  958. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  959. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  960. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  961. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/minivault.ts +1034 -0
  962. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  963. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  964. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  965. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  966. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +2 -1
  967. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  968. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  969. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  970. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  971. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +11 -1
  972. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
  973. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  974. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  975. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  976. package/project/.sdk/tm/zig/core/utility.zig +45 -77
  977. package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +2 -2
  978. package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +2 -2
  979. package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +2 -2
  980. package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +2 -2
  981. package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +2 -2
  982. package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +3 -3
  983. package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +2 -2
  984. package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +18 -2
  985. package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +2 -2
  986. package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +2 -2
  987. package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +2 -2
  988. package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +2 -2
  989. package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +2 -2
  990. package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +2 -2
  991. package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +2 -2
  992. package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +2 -2
  993. package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +2 -2
  994. package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +2 -2
  995. package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +2 -2
  996. package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +2 -2
  997. package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +2 -2
  998. package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +2 -2
  999. package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +2 -2
  1000. package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +2 -2
  1001. package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +2 -2
  1002. package/project/.sdk/tm/zig/feature/secrets/plugins/minivault.zig +1930 -0
  1003. package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +2 -2
  1004. package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +2 -2
  1005. package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +2 -2
  1006. package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +2 -2
  1007. package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +3 -2
  1008. package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +19 -2
  1009. package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +2 -2
  1010. package/project/.sdk/tm/zig/feature/validate.zig +293 -0
  1011. package/project/.sdk/tm/zig/src/feature/validate/.gitkeep +0 -0
  1012. package/project/.sdk/tm/zig/test/pipeline_test.zig +34 -0
  1013. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
  1014. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
  1015. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
  1016. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
  1017. package/project/sdkgen-package.json +1 -1
  1018. package/src/helpers/applicability.ts +11 -6
  1019. package/src/helpers/collectDeps.ts +30 -5
  1020. package/src/helpers/naming.ts +2 -2
  1021. package/src/sdkgen.ts +4 -1
  1022. package/src/utility.ts +75 -0
  1023. package/project/.sdk/tm/c/utility/prepare_auth.c +0 -65
  1024. package/project/.sdk/tm/csharp/utility/PrepareAuth.cs +0 -54
  1025. package/project/.sdk/tm/go/utility/prepare_auth.go +0 -59
  1026. package/project/.sdk/tm/java/utility/PrepareAuth.java +0 -66
  1027. package/project/.sdk/tm/js/src/utility/PrepareAuthUtility.js +0 -49
  1028. package/project/.sdk/tm/lua/utility/prepare_auth.lua +0 -52
  1029. package/project/.sdk/tm/perl/utility/prepare_auth.pm +0 -56
  1030. package/project/.sdk/tm/php/utility/PrepareAuth.php +0 -45
  1031. package/project/.sdk/tm/py/pkg/utility/prepare_auth.py +0 -46
  1032. package/project/.sdk/tm/rb/utility/prepare_auth.rb +0 -35
  1033. package/project/.sdk/tm/rust/utility/prepare_auth.rs +0 -65
  1034. package/project/.sdk/tm/ts/src/utility/PrepareAuthUtility.ts +0 -78
@@ -0,0 +1,1033 @@
1
+ # VENDORED: @voxgig/sekreto sdk-20260917-1242-0 (elixir/plugins/minivault.ex)
2
+ # Source: https://github.com/voxgig/sekreto @ 108c4a914bee7b6534c30d1c68c25cd1b9377696 [tag: sdk-20260917-1242-0]
3
+ # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ # The mini vault, as a voxgig/plugin definition.
5
+ #
6
+ # A port of typescript/plugins/minivault.ts, which is canonical.
7
+ #
8
+ # A PLUGIN, not a built-in: it needs crypto, which is the line the four
9
+ # built-ins stay behind. See docs/design/plugin-providers.md.
10
+ #
11
+ # THE KEY DECIDES WHAT THE VAULT HOLDS. A master key reads and writes
12
+ # every name and mints restricted keys. A restricted key reads the names
13
+ # it was granted and CANNOT DERIVE ANY OTHER - the restriction is the
14
+ # cryptography rather than a check this code performs. What that does and
15
+ # does not protect is set out in DOCS.md under "What the mini vault
16
+ # protects".
17
+ #
18
+ # Erlang's `:crypto` carries all four primitives, so nothing here is
19
+ # hand-rolled (AGENTS.md rule 3).
20
+
21
+ defmodule Sekreto.Plugins.Minivault do
22
+ @moduledoc """
23
+ A mini vault: every secret a project owns, encrypted, in ONE FILE.
24
+
25
+ The format:
26
+
27
+ magic 4 'SKMV'
28
+ version 1 FORMAT
29
+ kdf 1 1 = PBKDF2-HMAC-SHA256
30
+ cipher 1 1 = AES-256-GCM
31
+ reserved 1 0
32
+ keycount 4 uint32
33
+ per key:
34
+ id 1 + bytes the key id, PLAINTEXT
35
+ salt 1 + bytes
36
+ iters 4 PBKDF2 rounds for this key
37
+ ring 1 + iv, 4 + bytes sealed under the passphrase
38
+ meta 1 + iv, 4 + bytes sealed under the vault's meta key
39
+ entrycount 4 uint32
40
+ per entry:
41
+ id 1 + bytes the blinded lookup id
42
+ name 1 + iv, 4 + bytes sealed under the vault's name key
43
+ value 1 + iv, 4 + bytes sealed under that secret's own key
44
+
45
+ Integers are big-endian, and every length precedes its bytes. A file one
46
+ port writes is read by every other; `test/fixture` pins that with a
47
+ committed vault rather than with agreement.
48
+
49
+ THE HANDLE IS A PROCESS. Every other port keeps the derived keys in a
50
+ closure or a field and mutates them; a vault handle here is an Agent,
51
+ because a handle that caches what it derived and a handle that notices a
52
+ revoked key are the same handle, and elixir has no other way to be both.
53
+ """
54
+
55
+ alias Sekreto.Error
56
+ alias Sekreto.Json
57
+ alias Sekreto.Providers
58
+ alias Sekreto.ProviderSpec
59
+ alias Voxgig.Plugin.Types
60
+ alias Voxgig.Plugin.Host
61
+ alias Voxgig.Plugin.Inst
62
+
63
+ @magic "SKMV"
64
+ @format 1
65
+ @kdf_pbkdf2 1
66
+ @cipher_aesgcm 1
67
+
68
+ # AES-256-GCM: 32-byte keys, 12-byte nonces, 16-byte tags.
69
+ @keylen 32
70
+ @ivlen 12
71
+ @taglen 16
72
+ @saltlen 16
73
+
74
+ @doc "PBKDF2-HMAC-SHA256 rounds when a caller names none."
75
+ def iterations, do: 210_000
76
+
77
+ @doc "The key id a vault gets when a caller names none."
78
+ def masterkey, do: "master"
79
+
80
+ # Additional authenticated data. Every blob is bound to its PLACE in the
81
+ # file, so no ciphertext can be moved.
82
+ @aad_ring "skmv1:ring:"
83
+ @aad_meta "skmv1:meta:"
84
+ @aad_name "skmv1:name"
85
+ @aad_secret "skmv1:secret:"
86
+
87
+ # Everything a master can reach is derived from the root key, so a
88
+ # rotation is one new random value rather than a re-wrap of each part.
89
+ @label_names "skmv1:names"
90
+ @label_meta "skmv1:meta"
91
+ @label_id "skmv1:id"
92
+
93
+ # The largest key id the format can record.
94
+ #
95
+ # `small` writes a length in ONE byte. A longer id wrapped that byte and
96
+ # the writer then appended the whole thing, so every field after it
97
+ # shifted. Checked where an id is ACCEPTED, so the refusal names the id
98
+ # rather than the file.
99
+ @idmax 255
100
+
101
+ @doc "The export key the vault API is published under, beside `provider`."
102
+ def vault_export, do: "vault"
103
+
104
+ defp fail(text) do
105
+ raise Error, message: "sekreto: minivault: " <> text
106
+ end
107
+
108
+ # THE LOCK EVERY HANDLE ON ONE FILE SHARES.
109
+ #
110
+ # Each handle is its own map, so two of them on one path did not
111
+ # coordinate: both could finish `load` before either saved, and the
112
+ # second rename then discarded the first one's change while reporting
113
+ # success. Keyed by the ABSOLUTE path, so two handles spelled
114
+ # differently still meet.
115
+ #
116
+ # `:global.trans/2` rather than a mutex, because the BEAM has no shared
117
+ # memory to put one in: processes are the unit here, and this is OTP's
118
+ # own per-key lock over them. Given `[node()]` it is a lock within one
119
+ # node, which is what DOCS.md promises and what the go port arranges
120
+ # with a mutex. Two OS processes still race, and the format's answer to
121
+ # that is the exclusive create and the atomic rename: a reader sees one
122
+ # whole vault or the other, never half of one.
123
+ #
124
+ # It is RE-ENTRANT per process, so a mutating call that ever reached
125
+ # another would wait rather than deadlock; none of them does.
126
+ defp locked(file, body) do
127
+ key =
128
+ case File.cwd() do
129
+ {:ok, _} -> Path.expand(file)
130
+ _ -> file
131
+ end
132
+
133
+ :global.trans({{:sekreto_minivault, key}, self()}, body, [node()])
134
+ end
135
+
136
+ # The key a caller asked for, or `masterkey()`: an EMPTY key is no key.
137
+ # The canonical's `opts.key || MASTERKEY` answers for both nil and
138
+ # empty, where elixir's `||` answers for nil alone - `""` is truthy
139
+ # here. A CLI reaches this with SEKRETO_VAULT_KEY set and empty, which
140
+ # is what an unset shell variable expands to.
141
+ defp wantkey(nil), do: masterkey()
142
+ defp wantkey(""), do: masterkey()
143
+ defp wantkey(value), do: value
144
+
145
+ defp checkid(id, _what) when is_binary(id) and id != "" do
146
+ if byte_size(id) > @idmax do
147
+ fail("key id is longer than #{@idmax} bytes: #{String.slice(id, 0, 32)}...")
148
+ end
149
+
150
+ id
151
+ end
152
+
153
+ defp checkid(_id, what), do: fail(what)
154
+
155
+ # --- keys ------------------------------------------------------------
156
+
157
+ defp hmac(key, text), do: :crypto.mac(:hmac, :sha256, key, text)
158
+
159
+ # The key-encryption key a passphrase unwraps a ring with.
160
+ defp kek(passphrase, salt, iters) do
161
+ :crypto.pbkdf2_hmac(:sha256, passphrase, salt, iters, @keylen)
162
+ end
163
+
164
+ # The key one named secret's value is encrypted with.
165
+ #
166
+ # DERIVED, never stored, for a master: it holds the root key and so
167
+ # reaches every name, including ones written after it was made. A
168
+ # restricted key holds the derived keys it was granted and nothing that
169
+ # produces another.
170
+ defp secretkey(root, name), do: hmac(root, @aad_secret <> name)
171
+
172
+ # Where a secret lives in the file, derived from its own key so that
173
+ # finding it needs no plaintext name.
174
+ defp entryid(key), do: hmac(key, @label_id)
175
+
176
+ defp random(len), do: :crypto.strong_rand_bytes(len)
177
+
178
+ # --- sealing ---------------------------------------------------------
179
+
180
+ defp seal(key, plain, aad) do
181
+ iv = random(@ivlen)
182
+
183
+ {body, tag} =
184
+ :crypto.crypto_one_time_aead(:aes_256_gcm, key, iv, plain, aad, @taglen, true)
185
+
186
+ %{"iv" => iv, "blob" => body <> tag}
187
+ end
188
+
189
+ # The plaintext, or a refusal. A GCM tag that fails to verify is the only
190
+ # evidence there is, and it cannot tell a wrong passphrase from a damaged
191
+ # file, so `what` names the attempt and the message admits both.
192
+ defp unseal(key, sealed, aad, what) do
193
+ blob = sealed["blob"]
194
+ iv = sealed["iv"]
195
+
196
+ if byte_size(blob) < @taglen or byte_size(iv) != @ivlen do
197
+ fail(what <> ": truncated")
198
+ end
199
+
200
+ bodylen = byte_size(blob) - @taglen
201
+ <<body::binary-size(bodylen), tag::binary>> = blob
202
+
203
+ # `crypto_one_time_aead` ANSWERS :error rather than raising when the
204
+ # tag does not verify, and raises on a nonce of the wrong length. Both
205
+ # are the same refusal to a caller.
206
+ try do
207
+ case :crypto.crypto_one_time_aead(:aes_256_gcm, key, iv, body, aad, tag, false) do
208
+ :error -> fail(what)
209
+ plain when is_binary(plain) -> plain
210
+ end
211
+ rescue
212
+ err in Error -> reraise err, __STACKTRACE__
213
+ _ -> fail(what)
214
+ end
215
+ end
216
+
217
+ # THE JSON IS TAGGED HERE and plain everywhere else. This port's Json
218
+ # carries `{:obj, pairs}` / `{:str, text}` rather than a bare map, so a
219
+ # ring crosses the boundary twice: `plainof` on the way in, `tagged` on
220
+ # the way out. The bytes are the same either way - the tag is this
221
+ # port's representation, not the format's.
222
+ defp jsonof(plain, what) do
223
+ case Json.parse(plain) do
224
+ {:ok, {:obj, pairs}} -> plainof({:obj, pairs})
225
+ _ -> fail("unreadable " <> what)
226
+ end
227
+ end
228
+
229
+ defp plainof({:obj, pairs}), do: Map.new(pairs, fn {key, value} -> {key, plainof(value)} end)
230
+ defp plainof({:arr, entries}), do: Enum.map(entries, &plainof/1)
231
+ defp plainof({:str, text}), do: text
232
+ defp plainof({:num, value}), do: value
233
+ defp plainof({:bool, value}), do: value
234
+ defp plainof(:null), do: nil
235
+ defp plainof(:none), do: nil
236
+
237
+ defp tagged(value) when is_map(value) do
238
+ {:obj, Enum.map(value, fn {key, one} -> {key, tagged(one)} end)}
239
+ end
240
+
241
+ defp tagged(value) when is_list(value), do: {:arr, Enum.map(value, &tagged/1)}
242
+ defp tagged(value) when is_binary(value), do: {:str, value}
243
+ defp tagged(value) when is_boolean(value), do: {:bool, value}
244
+ defp tagged(value) when is_number(value), do: {:num, value}
245
+ defp tagged(nil), do: :null
246
+
247
+ defp stringify(value), do: Json.stringify(tagged(value))
248
+
249
+ defp b64(bytes), do: Base.encode64(bytes)
250
+
251
+ defp unb64(text, what) when is_binary(text) do
252
+ case Base.decode64(text) do
253
+ {:ok, bytes} -> bytes
254
+ :error -> fail("missing " <> what)
255
+ end
256
+ end
257
+
258
+ defp unb64(_text, what), do: fail("missing " <> what)
259
+
260
+ # --- the file --------------------------------------------------------
261
+
262
+ # A cursor, so that every length check is in one place: a truncated vault
263
+ # is refused rather than read as a short one.
264
+ defp take(bytes, len) when byte_size(bytes) >= len do
265
+ <<out::binary-size(len), rest::binary>> = bytes
266
+ {out, rest}
267
+ end
268
+
269
+ defp take(_bytes, _len), do: fail("the vault file is truncated")
270
+
271
+ defp u8(bytes) do
272
+ {one, rest} = take(bytes, 1)
273
+ <<value>> = one
274
+ {value, rest}
275
+ end
276
+
277
+ defp u32(bytes) do
278
+ {four, rest} = take(bytes, 4)
279
+ <<value::unsigned-big-integer-size(32)>> = four
280
+ {value, rest}
281
+ end
282
+
283
+ defp small(bytes) do
284
+ {len, rest} = u8(bytes)
285
+ take(rest, len)
286
+ end
287
+
288
+ defp large(bytes) do
289
+ {len, rest} = u32(bytes)
290
+ take(rest, len)
291
+ end
292
+
293
+ defp sealed(bytes) do
294
+ {iv, rest} = small(bytes)
295
+ {blob, rest} = large(rest)
296
+ {%{"iv" => iv, "blob" => blob}, rest}
297
+ end
298
+
299
+ defp readfile(bytes) do
300
+ {magic, rest} = take(bytes, 4)
301
+ if magic != @magic, do: fail("not a vault file")
302
+
303
+ {version, rest} = u8(rest)
304
+ if version != @format, do: fail("unsupported format version: #{version}")
305
+
306
+ {kdf, rest} = u8(rest)
307
+ {cipher, rest} = u8(rest)
308
+
309
+ if kdf != @kdf_pbkdf2 or cipher != @cipher_aesgcm do
310
+ fail("unsupported kdf or cipher: #{kdf}/#{cipher}")
311
+ end
312
+
313
+ {_reserved, rest} = u8(rest)
314
+
315
+ {keycount, rest} = u32(rest)
316
+ {keys, rest} = readkeys(rest, keycount, [])
317
+
318
+ {entrycount, rest} = u32(rest)
319
+ {entries, rest} = readentries(rest, entrycount, [])
320
+
321
+ if rest != "", do: fail("the vault file has trailing bytes")
322
+
323
+ %{"keys" => keys, "entries" => entries}
324
+ end
325
+
326
+ defp readkeys(bytes, 0, out), do: {Enum.reverse(out), bytes}
327
+
328
+ defp readkeys(bytes, left, out) do
329
+ {id, rest} = small(bytes)
330
+ {salt, rest} = small(rest)
331
+ {iters, rest} = u32(rest)
332
+ {ring, rest} = sealed(rest)
333
+ {meta, rest} = sealed(rest)
334
+
335
+ readkeys(rest, left - 1, [
336
+ %{"id" => id, "salt" => salt, "iters" => iters, "ring" => ring, "meta" => meta} | out
337
+ ])
338
+ end
339
+
340
+ defp readentries(bytes, 0, out), do: {Enum.reverse(out), bytes}
341
+
342
+ defp readentries(bytes, left, out) do
343
+ {id, rest} = small(bytes)
344
+ {name, rest} = sealed(rest)
345
+ {value, rest} = sealed(rest)
346
+
347
+ readentries(rest, left - 1, [
348
+ %{"id" => id, "name" => name, "value" => value} | out
349
+ ])
350
+ end
351
+
352
+ defp putsmall(bytes), do: <<byte_size(bytes)::unsigned-big-integer-size(8)>> <> bytes
353
+ defp putlarge(bytes), do: <<byte_size(bytes)::unsigned-big-integer-size(32)>> <> bytes
354
+ defp putsealed(value), do: putsmall(value["iv"]) <> putlarge(value["blob"])
355
+ defp putu32(value), do: <<value::unsigned-big-integer-size(32)>>
356
+
357
+ defp writefile(vault) do
358
+ head =
359
+ @magic <>
360
+ <<@format::8, @kdf_pbkdf2::8, @cipher_aesgcm::8, 0::8>> <>
361
+ putu32(length(vault["keys"]))
362
+
363
+ keys =
364
+ Enum.map_join(vault["keys"], "", fn key ->
365
+ putsmall(key["id"]) <>
366
+ putsmall(key["salt"]) <>
367
+ putu32(key["iters"]) <>
368
+ putsealed(key["ring"]) <> putsealed(key["meta"])
369
+ end)
370
+
371
+ # SORTED BY ID, which is a blinded value: the file therefore records
372
+ # nothing about the order secrets were written in.
373
+ entries = Enum.sort_by(vault["entries"], & &1["id"], :asc)
374
+
375
+ body =
376
+ Enum.map_join(entries, "", fn entry ->
377
+ putsmall(entry["id"]) <> putsealed(entry["name"]) <> putsealed(entry["value"])
378
+ end)
379
+
380
+ head <> keys <> putu32(length(entries)) <> body
381
+ end
382
+
383
+ # --- creating --------------------------------------------------------
384
+
385
+ # A new vault: one master key, no secrets.
386
+ defp newvault(keyid, passphrase, iters) do
387
+ root = random(@keylen)
388
+ salt = random(@saltlen)
389
+
390
+ ring = %{"v" => @format, "write" => true, "root" => b64(root)}
391
+ meta = %{"v" => @format, "master" => true, "write" => true, "grants" => []}
392
+
393
+ %{
394
+ "keys" => [
395
+ %{
396
+ "id" => keyid,
397
+ "salt" => salt,
398
+ "iters" => iters,
399
+ "ring" =>
400
+ seal(kek(passphrase, salt, iters), stringify(ring), @aad_ring <> keyid),
401
+ "meta" => seal(hmac(root, @label_meta), stringify(meta), @aad_meta <> keyid)
402
+ }
403
+ ],
404
+ "entries" => []
405
+ }
406
+ end
407
+
408
+ # Write a vault file that is not there yet, and REFUSE one that is.
409
+ #
410
+ # `:exclusive` is O_CREAT|O_EXCL, rather than a temporary and a rename.
411
+ # A rename REPLACES its destination, so two processes creating the same
412
+ # vault both succeeded and the second discarded the first one's secrets.
413
+ defp putnew(file, vault) do
414
+ case File.open(file, [:write, :binary, :exclusive]) do
415
+ {:ok, handle} ->
416
+ IO.binwrite(handle, writefile(vault))
417
+ File.close(handle)
418
+ File.chmod(file, 0o600)
419
+ :ok
420
+
421
+ {:error, :eexist} ->
422
+ fail("vault file already exists: " <> file)
423
+
424
+ {:error, why} ->
425
+ fail("cannot write " <> file <> ": " <> to_string(:file.format_error(why)))
426
+ end
427
+ end
428
+
429
+ # --- the handle ------------------------------------------------------
430
+
431
+ @doc """
432
+ Open a vault file as one key.
433
+
434
+ The handle is lazy. Nothing is read, and no passphrase is stretched,
435
+ until a call needs the file.
436
+ """
437
+ def openvault(options) do
438
+ opts = options || %{}
439
+ file = opts["file"]
440
+ passphrase = opts["passphrase"]
441
+
442
+ if not is_binary(file) or file == "", do: fail("a vault needs a file")
443
+ if not is_binary(passphrase) or passphrase == "", do: fail("a vault needs a passphrase")
444
+
445
+ keyid = checkid(wantkey(opts["key"]), "a vault needs a key id")
446
+
447
+ {:ok, agent} = Agent.start_link(fn -> nil end)
448
+
449
+ %{
450
+ file: file,
451
+ key: keyid,
452
+ passphrase: passphrase,
453
+ iterations: opts["iterations"] || iterations(),
454
+ create: opts["create"] == true,
455
+ agent: agent
456
+ }
457
+ end
458
+
459
+ @doc """
460
+ Make a vault file and return a handle on its master key.
461
+
462
+ Refuses a file that is already there: a vault is created once, and
463
+ overwriting one discards every secret in it.
464
+ """
465
+ def createvault(options) do
466
+ opts = options || %{}
467
+ file = opts["file"]
468
+ passphrase = opts["passphrase"]
469
+
470
+ if not is_binary(file) or file == "", do: fail("a vault needs a file")
471
+ if not is_binary(passphrase) or passphrase == "", do: fail("a vault needs a passphrase")
472
+
473
+ keyid = checkid(wantkey(opts["key"]), "a vault needs a key id")
474
+
475
+ # No existence check first: the check and the write would be two
476
+ # steps, and `putnew` refuses an existing file in ONE.
477
+ putnew(file, newvault(keyid, passphrase, opts["iterations"] || iterations()))
478
+
479
+ openvault(opts)
480
+ end
481
+
482
+ @doc "The file this handle reads."
483
+ def file(vault), do: vault.file
484
+
485
+ @doc "The key id this handle opens with."
486
+ def key(vault), do: vault.key
487
+
488
+ @doc """
489
+ Derive the key and read the file NOW rather than at first use.
490
+
491
+ A COPY, so that what a caller is handed cannot become what this vault
492
+ believes: `open(v) |> Map.put("write", true)` changes a map nobody reads.
493
+ """
494
+ def open(vault) do
495
+ {_file, opened} = load(vault)
496
+
497
+ %{
498
+ "key" => opened["info"]["key"],
499
+ "master" => opened["info"]["master"],
500
+ "write" => opened["info"]["write"],
501
+ "grants" => opened["info"]["grants"]
502
+ }
503
+ end
504
+
505
+ @doc "Forget the derived keys. The next call opens again."
506
+ def close(vault) do
507
+ Agent.update(vault.agent, fn _ -> nil end)
508
+ :ok
509
+ end
510
+
511
+ @doc "The names this key can read, sorted."
512
+ def list(vault) do
513
+ {file, opened} = load(vault)
514
+
515
+ if opened["root"] do
516
+ namekey = hmac(opened["root"], @label_names)
517
+
518
+ file["entries"]
519
+ |> Enum.map(&unseal(namekey, &1["name"], @aad_name, "a secret name is damaged"))
520
+ |> Enum.sort()
521
+ else
522
+ # A restricted key has no name key, so it reports the grants it can
523
+ # actually find: the vault never tells it what else is in there.
524
+ opened["info"]["grants"]
525
+ |> Enum.filter(&(nil != findentry(file, opened["grants"][&1])))
526
+ |> Enum.sort()
527
+ end
528
+ end
529
+
530
+ @doc "Does this key hold a value for `name`?"
531
+ def has?(vault, name), do: nil != get(vault, name)
532
+
533
+ @doc """
534
+ The value, or nil when the vault does not hold that name or this key was
535
+ not granted it.
536
+ """
537
+ def get(vault, name) do
538
+ Sekreto.checkname(name)
539
+ {file, opened} = load(vault)
540
+
541
+ case keyfor(opened, name) do
542
+ # OUTSIDE THE GRANT IS A MISS, deliberately. The vault answers as the
543
+ # key that opened it, so a name this key cannot read is a name this
544
+ # store does not hold for this caller.
545
+ nil ->
546
+ nil
547
+
548
+ key ->
549
+ case findentry(file, key) do
550
+ nil ->
551
+ nil
552
+
553
+ entry ->
554
+ unseal(key, entry["value"], @aad_secret <> name,
555
+ "the value of " <> name <> " is damaged")
556
+ end
557
+ end
558
+ end
559
+
560
+ @doc """
561
+ Write a value. A master writes any name; a restricted key holding
562
+ `write` overwrites the names it was granted, and creates none.
563
+ """
564
+ def set(vault, name, value) do
565
+ # Every write on this file, from any handle in this process,
566
+ # serializes here; see locked.
567
+ locked(vault.file, fn ->
568
+ Sekreto.checkname(name)
569
+ if not is_binary(value), do: fail("a secret value must be text: " <> name)
570
+
571
+ {file, opened} = load(vault)
572
+
573
+ if not opened["info"]["write"] do
574
+ fail("key " <> opened["info"]["key"] <> " is read-only")
575
+ end
576
+
577
+ key = keyfor(opened, name)
578
+
579
+ if nil == key do
580
+ fail("key " <> opened["info"]["key"] <> " was not granted " <> name)
581
+ end
582
+
583
+ sealedvalue = seal(key, value, @aad_secret <> name)
584
+ id = entryid(key)
585
+
586
+ entries =
587
+ if Enum.any?(file["entries"], &(&1["id"] == id)) do
588
+ Enum.map(file["entries"], fn entry ->
589
+ if entry["id"] == id, do: Map.put(entry, "value", sealedvalue), else: entry
590
+ end)
591
+ else
592
+ # A NEW NAME NEEDS THE NAME KEY, which only a master holds. So a
593
+ # restricted key with `write` updates what it was granted and
594
+ # cannot grow the vault.
595
+ root = rootof(opened, "creating the secret " <> name)
596
+
597
+ file["entries"] ++
598
+ [
599
+ %{
600
+ "id" => id,
601
+ "name" => seal(hmac(root, @label_names), name, @aad_name),
602
+ "value" => sealedvalue
603
+ }
604
+ ]
605
+ end
606
+
607
+ save(vault, Map.put(file, "entries", entries))
608
+ end)
609
+ end
610
+
611
+ @doc "Drop a name. Master only."
612
+ def remove(vault, name) do
613
+ # Every write on this file, from any handle in this process,
614
+ # serializes here; see locked.
615
+ locked(vault.file, fn ->
616
+ Sekreto.checkname(name)
617
+ {file, opened} = load(vault)
618
+ root = rootof(opened, "removing a secret")
619
+
620
+ wanted = entryid(secretkey(root, name))
621
+
622
+ if not Enum.any?(file["entries"], &(&1["id"] == wanted)) do
623
+ fail("no such secret: " <> name)
624
+ end
625
+
626
+ save(vault, Map.put(file, "entries", Enum.reject(file["entries"], &(&1["id"] == wanted))))
627
+ end)
628
+ end
629
+
630
+ @doc "Every key in the file, with what it may do. Master only."
631
+ def keys(vault) do
632
+ {file, opened} = load(vault)
633
+ rootof(opened, "listing the keys")
634
+
635
+ Enum.map(file["keys"], fn record ->
636
+ case metaof(opened, record) do
637
+ nil ->
638
+ %{"key" => record["id"], "master" => false, "write" => false, "grants" => []}
639
+
640
+ meta ->
641
+ %{
642
+ "key" => record["id"],
643
+ "master" => meta["master"] == true,
644
+ "write" => meta["write"] == true,
645
+ "grants" => Enum.sort(meta["grants"] || [])
646
+ }
647
+ end
648
+ end)
649
+ end
650
+
651
+ @doc "Mint a restricted key. Master only."
652
+ def grant(vault, spec) do
653
+ # Every write on this file, from any handle in this process,
654
+ # serializes here; see locked.
655
+ locked(vault.file, fn ->
656
+ {file, opened} = load(vault)
657
+ root = rootof(opened, "granting a key")
658
+
659
+ want = spec || %{}
660
+ id = checkid(want["key"], "a grant needs a key id")
661
+ phrase = want["passphrase"]
662
+
663
+ if not is_binary(phrase) or phrase == "", do: fail("a grant needs a passphrase")
664
+ if Enum.any?(file["keys"], &(&1["id"] == id)), do: fail("key already exists: " <> id)
665
+
666
+ names = Enum.sort(want["names"] || [])
667
+
668
+ grants =
669
+ Enum.reduce(names, %{}, fn name, out ->
670
+ Sekreto.checkname(name)
671
+ Map.put(out, name, b64(secretkey(root, name)))
672
+ end)
673
+
674
+ write = want["write"] == true
675
+
676
+ record =
677
+ sealkey(root, id, phrase, want["iterations"] || vault.iterations,
678
+ %{"v" => @format, "write" => write, "grants" => grants},
679
+ %{"v" => @format, "master" => false, "write" => write, "grants" => names})
680
+
681
+ save(vault, Map.put(file, "keys", file["keys"] ++ [record]))
682
+ end)
683
+ end
684
+
685
+ @doc """
686
+ Drop a key. Master only.
687
+
688
+ Anyone who already copied the file keeps whatever that key could read,
689
+ so revoking bars future reads of the LIVE file and `rotate` is what
690
+ takes a secret back.
691
+ """
692
+ def revoke(vault, key) do
693
+ # Every write on this file, from any handle in this process,
694
+ # serializes here; see locked.
695
+ locked(vault.file, fn ->
696
+ {file, opened} = load(vault)
697
+ rootof(opened, "revoking a key")
698
+
699
+ if key == opened["info"]["key"], do: fail("a key cannot revoke itself: " <> key)
700
+ if not Enum.any?(file["keys"], &(&1["id"] == key)), do: fail("no such key: " <> key)
701
+
702
+ save(vault, Map.put(file, "keys", Enum.reject(file["keys"], &(&1["id"] == key))))
703
+ end)
704
+ end
705
+
706
+ @doc """
707
+ A new root key, every value re-encrypted under it, and EVERY OTHER KEY
708
+ DROPPED. Master only.
709
+
710
+ The other keys go because they must: their rings are sealed under
711
+ passphrases this process does not have. Re-grant afterwards.
712
+ """
713
+ def rotate(vault) do
714
+ # Every write on this file, from any handle in this process,
715
+ # serializes here; see locked.
716
+ locked(vault.file, fn ->
717
+ {file, opened} = load(vault)
718
+ rootof(opened, "rotating the vault")
719
+
720
+ # Read everything out under the old root before anything changes: once
721
+ # the root is replaced the old derived keys are unreachable.
722
+ plain = Enum.map(list(vault), fn name -> {name, get(vault, name)} end)
723
+
724
+ root = random(@keylen)
725
+ namekey = hmac(root, @label_names)
726
+
727
+ entries =
728
+ Enum.map(plain, fn {name, value} ->
729
+ key = secretkey(root, name)
730
+
731
+ %{
732
+ "id" => entryid(key),
733
+ "name" => seal(namekey, name, @aad_name),
734
+ "value" => seal(key, value, @aad_secret <> name)
735
+ }
736
+ end)
737
+
738
+ iters =
739
+ case Enum.find(file["keys"], &(&1["id"] == vault.key)) do
740
+ nil -> vault.iterations
741
+ record -> record["iters"]
742
+ end
743
+
744
+ fresh =
745
+ sealkey(root, vault.key, vault.passphrase, iters,
746
+ %{"v" => @format, "write" => true, "root" => b64(root)},
747
+ %{"v" => @format, "master" => true, "write" => true, "grants" => []})
748
+
749
+ # SAVE FIRST, adopt second. A handle holding the new root over a file
750
+ # that still holds the old one reads nothing and says the vault is
751
+ # damaged.
752
+ :ok = write(vault, %{"keys" => [fresh], "entries" => entries})
753
+
754
+ Agent.update(vault.agent, fn _ ->
755
+ %{
756
+ "info" => %{
757
+ "key" => vault.key,
758
+ "master" => true,
759
+ "write" => true,
760
+ "grants" => []
761
+ },
762
+ "root" => root,
763
+ "grants" => %{},
764
+ "ring" => fresh["ring"]
765
+ }
766
+ end)
767
+
768
+ :ok
769
+ end)
770
+ end
771
+
772
+ # --- the inside ------------------------------------------------------
773
+
774
+ defp bytes(vault) do
775
+ case File.read(vault.file) do
776
+ {:ok, raw} ->
777
+ raw
778
+
779
+ {:error, :enoent} ->
780
+ # A vault is configured deliberately, with a key. Its absence is a
781
+ # broken deployment and never "no secrets here": answering a miss
782
+ # would send the chain on to a weaker store.
783
+ if not vault.create, do: fail("no vault file: " <> vault.file)
784
+
785
+ putnew(vault.file, newvault(vault.key, vault.passphrase, vault.iterations))
786
+ File.read!(vault.file)
787
+
788
+ {:error, why} ->
789
+ fail("cannot read " <> vault.file <> ": " <> to_string(:file.format_error(why)))
790
+ end
791
+ end
792
+
793
+ defp load(vault) do
794
+ file = readfile(bytes(vault))
795
+ record = Enum.find(file["keys"], &(&1["id"] == vault.key))
796
+
797
+ if nil == record do
798
+ # REVOKED, or never there. Either way this handle is finished, and
799
+ # dropping what it derived is what stops the next call answering from
800
+ # memory.
801
+ Agent.update(vault.agent, fn _ -> nil end)
802
+ fail("no such key: " <> vault.key)
803
+ end
804
+
805
+ held = Agent.get(vault.agent, & &1)
806
+
807
+ # The file still holds this key, and holds the SAME ring: a key revoked
808
+ # and re-granted under another passphrase is a different key wearing
809
+ # the id, and re-deriving is what refuses it.
810
+ if held && held["ring"] == record["ring"] do
811
+ {file, held}
812
+ else
813
+ Agent.update(vault.agent, fn _ -> nil end)
814
+
815
+ plain =
816
+ unseal(
817
+ kek(vault.passphrase, record["salt"], record["iters"]),
818
+ record["ring"],
819
+ @aad_ring <> vault.key,
820
+ "wrong passphrase for key " <> vault.key <> ", or a damaged vault"
821
+ )
822
+
823
+ ring = jsonof(plain, "key ring for " <> vault.key)
824
+
825
+ grants =
826
+ Enum.reduce(ring["grants"] || %{}, %{}, fn {name, key}, out ->
827
+ Map.put(out, name, unb64(key, "a granted key"))
828
+ end)
829
+
830
+ root = ring["root"]
831
+
832
+ opened = %{
833
+ "info" => %{
834
+ "key" => vault.key,
835
+ "master" => nil != root,
836
+ "write" => nil != root or ring["write"] == true,
837
+ "grants" => Enum.sort(Map.keys(grants))
838
+ },
839
+ "root" => if(nil == root, do: nil, else: unb64(root, "the root key")),
840
+ "grants" => grants,
841
+ "ring" => record["ring"]
842
+ }
843
+
844
+ Agent.update(vault.agent, fn _ -> opened end)
845
+ {file, opened}
846
+ end
847
+ end
848
+
849
+ defp rootof(opened, what) do
850
+ if nil == opened["root"] do
851
+ fail(what <> " needs a master key, and " <> opened["info"]["key"] <> " is restricted")
852
+ end
853
+
854
+ opened["root"]
855
+ end
856
+
857
+ # The key for one name, or nil when this key cannot reach it.
858
+ defp keyfor(opened, name) do
859
+ if opened["root"] do
860
+ secretkey(opened["root"], name)
861
+ else
862
+ opened["grants"][name]
863
+ end
864
+ end
865
+
866
+ defp findentry(_file, nil), do: nil
867
+
868
+ defp findentry(file, key) do
869
+ id = entryid(key)
870
+ Enum.find(file["entries"], &(&1["id"] == id))
871
+ end
872
+
873
+ defp metaof(opened, record) do
874
+ root = rootof(opened, "reading key metadata")
875
+ what = "metadata for key " <> record["id"]
876
+
877
+ jsonof(
878
+ unseal(hmac(root, @label_meta), record["meta"], @aad_meta <> record["id"], what),
879
+ what
880
+ )
881
+ rescue
882
+ # A record written under a root key this one has replaced. The key is
883
+ # still in the file and still opens with its own passphrase, so it is
884
+ # reported rather than hidden - with what it can do unknown.
885
+ Error -> nil
886
+ end
887
+
888
+ defp sealkey(root, id, phrase, iters, ring, meta) do
889
+ salt = random(@saltlen)
890
+
891
+ %{
892
+ "id" => id,
893
+ "salt" => salt,
894
+ "iters" => iters,
895
+ "ring" => seal(kek(phrase, salt, iters), stringify(ring), @aad_ring <> id),
896
+ "meta" => seal(hmac(root, @label_meta), stringify(meta), @aad_meta <> id)
897
+ }
898
+ end
899
+
900
+ defp save(vault, file) do
901
+ :ok = write(vault, file)
902
+ # The next call re-reads and re-checks the ring, which is what makes a
903
+ # revoked key stop answering.
904
+ :ok
905
+ end
906
+
907
+ # Read, change, and REPLACE - never edit in place.
908
+ #
909
+ # THE TEMPORARY IS RANDOM AND EXCLUSIVE. `<vault>.<pid>.tmp` is a name
910
+ # anyone can predict, so anyone who can write the vault's directory could
911
+ # put a symlink there and have the next save truncate whatever it pointed
912
+ # at.
913
+ defp write(vault, file) do
914
+ temp = vault.file <> "." <> Base.encode16(random(8), case: :lower) <> ".tmp"
915
+
916
+ case File.open(temp, [:write, :binary, :exclusive]) do
917
+ {:ok, handle} ->
918
+ IO.binwrite(handle, writefile(file))
919
+ File.close(handle)
920
+ File.chmod(temp, 0o600)
921
+
922
+ case File.rename(temp, vault.file) do
923
+ :ok ->
924
+ :ok
925
+
926
+ {:error, why} ->
927
+ File.rm(temp)
928
+ fail("cannot write " <> vault.file <> ": " <> to_string(:file.format_error(why)))
929
+ end
930
+
931
+ {:error, why} ->
932
+ fail("cannot write " <> vault.file <> ": " <> to_string(:file.format_error(why)))
933
+ end
934
+ end
935
+
936
+ # --- the provider ----------------------------------------------------
937
+
938
+ @doc """
939
+ Read a vault as one store in a chain.
940
+
941
+ The provider is the READ half and nothing more: a chain resolves
942
+ secrets, and writing one is a deliberate act with an API of its own.
943
+ """
944
+ def providerof(vault) do
945
+ %{
946
+ lookup: fn name -> get(vault, name) end,
947
+ describe: fn -> "minivault:" <> vault.file end
948
+ }
949
+ end
950
+
951
+ @doc "A vault provider from options, for a chain built by hand."
952
+ def minivaultprovider(options), do: providerof(openvault(options))
953
+
954
+ # The options arrive as a `ProviderSpec` STRUCT here, not as a map: this
955
+ # port types the chain rather than passing dictionaries around, so a
956
+ # field is read by name and a typo does not compile.
957
+ defp vaultoptions(%ProviderSpec{} = spec) do
958
+ %{
959
+ "file" => blankor(spec.file, ""),
960
+ "key" => blankor(spec.vaultkey, nil),
961
+ "passphrase" => blankor(spec.passphrase, ""),
962
+ "iterations" => spec.iterations,
963
+ "create" => spec.create == true
964
+ }
965
+ end
966
+
967
+ defp blankor(value, fallback) do
968
+ if is_binary(value) and value != "", do: value, else: fallback
969
+ end
970
+
971
+ @doc """
972
+ The `minivault` provider kind, as a voxgig/plugin definition.
973
+
974
+ Written out rather than built by `providerplugin`, because this
975
+ definition publishes TWO exports: `provider`, the read half every kind
976
+ publishes, and `vault`, the programmatic API.
977
+ """
978
+ def minivault do
979
+ %{
980
+ "name" => "minivault",
981
+ "define" => fn inst ->
982
+ options = vaultoptions(Inst.options(inst))
983
+
984
+ vault =
985
+ try do
986
+ # `openvault` refuses bad configuration HERE, so a mistyped
987
+ # chain fails at construction. Reaching the FILE is not
988
+ # configuration: the handle is lazy.
989
+ openvault(options)
990
+ rescue
991
+ err in Error ->
992
+ Types.fail(Providers.error_code(), Exception.message(err), %{
993
+ "ref" => Inst.ref(inst),
994
+ "cause" => Exception.message(err)
995
+ })
996
+ end
997
+
998
+ Inst.export(inst, Providers.provider_export(), providerof(vault))
999
+ Inst.export(inst, vault_export(), vault)
1000
+ end
1001
+ }
1002
+ end
1003
+
1004
+ @doc """
1005
+ The vault behind a store in a chain, as its programmatic API.
1006
+
1007
+ With no store named, the unqualified alias answers: one vault in the
1008
+ chain resolves whatever it is called, and two raise rather than picking
1009
+ one.
1010
+ """
1011
+ def vaultof(secrets), do: vaultof(secrets, nil)
1012
+
1013
+ def vaultof(secrets, nil) do
1014
+ case Host.exports(secrets.host, "minivault/" <> vault_export()) do
1015
+ nil -> fail("no minivault store in this chain")
1016
+ found -> found
1017
+ end
1018
+ end
1019
+
1020
+ def vaultof(secrets, store) do
1021
+ # A NAMED STORE MUST EXIST, and the alias must not stand in for it.
1022
+ # `host.exports` falls back to the alias when the exact ref misses, so
1023
+ # asking for `minivault` in a chain whose only vault is named `app`
1024
+ # used to hand back the `app` vault - and then write to it.
1025
+ ref = if store == "minivault", do: "minivault", else: "minivault$" <> store
1026
+
1027
+ if nil == Host.instance(secrets.host, ref) do
1028
+ fail("no minivault store named " <> store <> " in this chain")
1029
+ end
1030
+
1031
+ Host.exports(secrets.host, ref <> "/" <> vault_export())
1032
+ end
1033
+ end