@vibesdotdev/integrations-digitalocean 0.0.0-stage → 1.0.0-rc.1

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 (323) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +78 -2
  3. package/dist/ai/index.d.ts +4 -0
  4. package/dist/ai/index.d.ts.map +1 -0
  5. package/dist/ai/index.js +4 -0
  6. package/dist/ai/index.js.map +1 -0
  7. package/dist/ai/inference.transport.impl.d.ts +5 -0
  8. package/dist/ai/inference.transport.impl.d.ts.map +1 -0
  9. package/dist/ai/inference.transport.impl.js +54 -0
  10. package/dist/ai/inference.transport.impl.js.map +1 -0
  11. package/dist/ai/provider.plugin.d.ts +6 -0
  12. package/dist/ai/provider.plugin.d.ts.map +1 -0
  13. package/dist/ai/provider.plugin.js +126 -0
  14. package/dist/ai/provider.plugin.js.map +1 -0
  15. package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.d.ts +62 -0
  16. package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.d.ts.map +1 -0
  17. package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.js +73 -0
  18. package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.js.map +1 -0
  19. package/dist/ai/providers/cloud/frontier/digitalocean/index.d.ts +2 -0
  20. package/dist/ai/providers/cloud/frontier/digitalocean/index.d.ts.map +1 -0
  21. package/dist/ai/providers/cloud/frontier/digitalocean/index.js +2 -0
  22. package/dist/ai/providers/cloud/frontier/digitalocean/index.js.map +1 -0
  23. package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.d.ts +183 -0
  24. package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.d.ts.map +1 -0
  25. package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.js +66 -0
  26. package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.js.map +1 -0
  27. package/dist/apps/api-client.d.ts +45 -0
  28. package/dist/apps/api-client.d.ts.map +1 -0
  29. package/dist/apps/api-client.js +47 -0
  30. package/dist/apps/api-client.js.map +1 -0
  31. package/dist/apps/build-spec.d.ts +44 -0
  32. package/dist/apps/build-spec.d.ts.map +1 -0
  33. package/dist/apps/build-spec.js +463 -0
  34. package/dist/apps/build-spec.js.map +1 -0
  35. package/dist/apps/deploy-client.d.ts +42 -0
  36. package/dist/apps/deploy-client.d.ts.map +1 -0
  37. package/dist/apps/deploy-client.js +300 -0
  38. package/dist/apps/deploy-client.js.map +1 -0
  39. package/dist/apps/index.d.ts +5 -0
  40. package/dist/apps/index.d.ts.map +1 -0
  41. package/dist/apps/index.js +4 -0
  42. package/dist/apps/index.js.map +1 -0
  43. package/dist/apps/types.d.ts +204 -0
  44. package/dist/apps/types.d.ts.map +1 -0
  45. package/dist/apps/types.js +13 -0
  46. package/dist/apps/types.js.map +1 -0
  47. package/dist/client/control-plane.d.ts +49 -0
  48. package/dist/client/control-plane.d.ts.map +1 -0
  49. package/dist/client/control-plane.js +85 -0
  50. package/dist/client/control-plane.js.map +1 -0
  51. package/dist/client/do-fetch.d.ts +41 -0
  52. package/dist/client/do-fetch.d.ts.map +1 -0
  53. package/dist/client/do-fetch.js +199 -0
  54. package/dist/client/do-fetch.js.map +1 -0
  55. package/dist/client/errors.d.ts +6 -0
  56. package/dist/client/errors.d.ts.map +1 -0
  57. package/dist/client/errors.js +34 -0
  58. package/dist/client/errors.js.map +1 -0
  59. package/dist/client/factory.d.ts +53 -0
  60. package/dist/client/factory.d.ts.map +1 -0
  61. package/dist/client/factory.js +220 -0
  62. package/dist/client/factory.js.map +1 -0
  63. package/dist/client/helpers.d.ts +5 -0
  64. package/dist/client/helpers.d.ts.map +1 -0
  65. package/dist/client/helpers.js +8 -0
  66. package/dist/client/helpers.js.map +1 -0
  67. package/dist/client/index.d.ts +12 -0
  68. package/dist/client/index.d.ts.map +1 -0
  69. package/dist/client/index.js +10 -0
  70. package/dist/client/index.js.map +1 -0
  71. package/dist/client/paginated.d.ts +19 -0
  72. package/dist/client/paginated.d.ts.map +1 -0
  73. package/dist/client/paginated.js +56 -0
  74. package/dist/client/paginated.js.map +1 -0
  75. package/dist/client/retry.d.ts +34 -0
  76. package/dist/client/retry.d.ts.map +1 -0
  77. package/dist/client/retry.js +53 -0
  78. package/dist/client/retry.js.map +1 -0
  79. package/dist/config/digitalocean.config.descriptor.d.ts +197 -0
  80. package/dist/config/digitalocean.config.descriptor.d.ts.map +1 -0
  81. package/dist/config/digitalocean.config.descriptor.js +59 -0
  82. package/dist/config/digitalocean.config.descriptor.js.map +1 -0
  83. package/dist/credentials/index.d.ts +38 -0
  84. package/dist/credentials/index.d.ts.map +1 -0
  85. package/dist/credentials/index.js +56 -0
  86. package/dist/credentials/index.js.map +1 -0
  87. package/dist/databases/index.d.ts +82 -0
  88. package/dist/databases/index.d.ts.map +1 -0
  89. package/dist/databases/index.js +57 -0
  90. package/dist/databases/index.js.map +1 -0
  91. package/dist/digitalocean-friction.policy.d.ts +29 -0
  92. package/dist/digitalocean-friction.policy.d.ts.map +1 -0
  93. package/dist/digitalocean-friction.policy.js +21 -0
  94. package/dist/digitalocean-friction.policy.js.map +1 -0
  95. package/dist/digitalocean.plugin.d.ts +3 -0
  96. package/dist/digitalocean.plugin.d.ts.map +1 -0
  97. package/dist/digitalocean.plugin.js +27 -0
  98. package/dist/digitalocean.plugin.js.map +1 -0
  99. package/dist/droplets/index.d.ts +106 -0
  100. package/dist/droplets/index.d.ts.map +1 -0
  101. package/dist/droplets/index.js +227 -0
  102. package/dist/droplets/index.js.map +1 -0
  103. package/dist/index.d.ts +35 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +32 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/inference-control-plane/index.d.ts +63 -0
  108. package/dist/inference-control-plane/index.d.ts.map +1 -0
  109. package/dist/inference-control-plane/index.js +93 -0
  110. package/dist/inference-control-plane/index.js.map +1 -0
  111. package/dist/infra/billing.d.ts +26 -0
  112. package/dist/infra/billing.d.ts.map +1 -0
  113. package/dist/infra/billing.js +43 -0
  114. package/dist/infra/billing.js.map +1 -0
  115. package/dist/infra/credentials.d.ts +11 -0
  116. package/dist/infra/credentials.d.ts.map +1 -0
  117. package/dist/infra/credentials.js +15 -0
  118. package/dist/infra/credentials.js.map +1 -0
  119. package/dist/infra/deployment-provider/deploy-secrets.d.ts +10 -0
  120. package/dist/infra/deployment-provider/deploy-secrets.d.ts.map +1 -0
  121. package/dist/infra/deployment-provider/deploy-secrets.js +66 -0
  122. package/dist/infra/deployment-provider/deploy-secrets.js.map +1 -0
  123. package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.d.ts +96 -0
  124. package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.d.ts.map +1 -0
  125. package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.js +242 -0
  126. package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.js.map +1 -0
  127. package/dist/infra/deployment-provider/image-publish.d.ts +39 -0
  128. package/dist/infra/deployment-provider/image-publish.d.ts.map +1 -0
  129. package/dist/infra/deployment-provider/image-publish.js +146 -0
  130. package/dist/infra/deployment-provider/image-publish.js.map +1 -0
  131. package/dist/infra/deployment-provider.descriptor.d.ts +34 -0
  132. package/dist/infra/deployment-provider.descriptor.d.ts.map +1 -0
  133. package/dist/infra/deployment-provider.descriptor.js +9 -0
  134. package/dist/infra/deployment-provider.descriptor.js.map +1 -0
  135. package/dist/infra/digitalocean-infra.plugin.d.ts +101 -0
  136. package/dist/infra/digitalocean-infra.plugin.d.ts.map +1 -0
  137. package/dist/infra/digitalocean-infra.plugin.js +283 -0
  138. package/dist/infra/digitalocean-infra.plugin.js.map +1 -0
  139. package/dist/infra/doks/clients.d.ts +183 -0
  140. package/dist/infra/doks/clients.d.ts.map +1 -0
  141. package/dist/infra/doks/clients.js +172 -0
  142. package/dist/infra/doks/clients.js.map +1 -0
  143. package/dist/infra/doks/digitalocean.d.ts +34 -0
  144. package/dist/infra/doks/digitalocean.d.ts.map +1 -0
  145. package/dist/infra/doks/digitalocean.js +267 -0
  146. package/dist/infra/doks/digitalocean.js.map +1 -0
  147. package/dist/infra/doks/service-release-schemas.d.ts +1037 -0
  148. package/dist/infra/doks/service-release-schemas.d.ts.map +1 -0
  149. package/dist/infra/doks/service-release-schemas.js +51 -0
  150. package/dist/infra/doks/service-release-schemas.js.map +1 -0
  151. package/dist/infra/doks/service-release.d.ts +415 -0
  152. package/dist/infra/doks/service-release.d.ts.map +1 -0
  153. package/dist/infra/doks/service-release.js +3201 -0
  154. package/dist/infra/doks/service-release.js.map +1 -0
  155. package/dist/infra/doks/worker.d.ts +14 -0
  156. package/dist/infra/doks/worker.d.ts.map +1 -0
  157. package/dist/infra/doks/worker.js +343 -0
  158. package/dist/infra/doks/worker.js.map +1 -0
  159. package/dist/infra/droplet.impl.d.ts +172 -0
  160. package/dist/infra/droplet.impl.d.ts.map +1 -0
  161. package/dist/infra/droplet.impl.js +379 -0
  162. package/dist/infra/droplet.impl.js.map +1 -0
  163. package/dist/infra/functions.impl.d.ts +123 -0
  164. package/dist/infra/functions.impl.d.ts.map +1 -0
  165. package/dist/infra/functions.impl.js +202 -0
  166. package/dist/infra/functions.impl.js.map +1 -0
  167. package/dist/infra/index.d.ts +15 -0
  168. package/dist/infra/index.d.ts.map +1 -0
  169. package/dist/infra/index.js +12 -0
  170. package/dist/infra/index.js.map +1 -0
  171. package/dist/infra/inventory.d.ts +7 -0
  172. package/dist/infra/inventory.d.ts.map +1 -0
  173. package/dist/infra/inventory.js +259 -0
  174. package/dist/infra/inventory.js.map +1 -0
  175. package/dist/infra/kubernetes-log-stream.d.ts +5 -0
  176. package/dist/infra/kubernetes-log-stream.d.ts.map +1 -0
  177. package/dist/infra/kubernetes-log-stream.js +186 -0
  178. package/dist/infra/kubernetes-log-stream.js.map +1 -0
  179. package/dist/infra/kubernetes-logs.d.ts +33 -0
  180. package/dist/infra/kubernetes-logs.d.ts.map +1 -0
  181. package/dist/infra/kubernetes-logs.descriptor.d.ts +14 -0
  182. package/dist/infra/kubernetes-logs.descriptor.d.ts.map +1 -0
  183. package/dist/infra/kubernetes-logs.descriptor.js +28 -0
  184. package/dist/infra/kubernetes-logs.descriptor.js.map +1 -0
  185. package/dist/infra/kubernetes-logs.js +196 -0
  186. package/dist/infra/kubernetes-logs.js.map +1 -0
  187. package/dist/infra/utilization.d.ts +44 -0
  188. package/dist/infra/utilization.d.ts.map +1 -0
  189. package/dist/infra/utilization.js +108 -0
  190. package/dist/infra/utilization.js.map +1 -0
  191. package/dist/kubernetes/authority.d.ts +40 -0
  192. package/dist/kubernetes/authority.d.ts.map +1 -0
  193. package/dist/kubernetes/authority.js +90 -0
  194. package/dist/kubernetes/authority.js.map +1 -0
  195. package/dist/kubernetes/encoding.d.ts +4 -0
  196. package/dist/kubernetes/encoding.d.ts.map +1 -0
  197. package/dist/kubernetes/encoding.js +8 -0
  198. package/dist/kubernetes/encoding.js.map +1 -0
  199. package/dist/kubernetes/index.d.ts +105 -0
  200. package/dist/kubernetes/index.d.ts.map +1 -0
  201. package/dist/kubernetes/index.js +99 -0
  202. package/dist/kubernetes/index.js.map +1 -0
  203. package/dist/kubernetes/transport.d.ts +11 -0
  204. package/dist/kubernetes/transport.d.ts.map +1 -0
  205. package/dist/kubernetes/transport.js +27 -0
  206. package/dist/kubernetes/transport.js.map +1 -0
  207. package/dist/network/index.d.ts +24 -0
  208. package/dist/network/index.d.ts.map +1 -0
  209. package/dist/network/index.js +16 -0
  210. package/dist/network/index.js.map +1 -0
  211. package/dist/registry/index.d.ts +39 -0
  212. package/dist/registry/index.d.ts.map +1 -0
  213. package/dist/registry/index.js +20 -0
  214. package/dist/registry/index.js.map +1 -0
  215. package/dist/schemas/app-deployment.d.ts +1472 -0
  216. package/dist/schemas/app-deployment.d.ts.map +1 -0
  217. package/dist/schemas/app-deployment.js +156 -0
  218. package/dist/schemas/app-deployment.js.map +1 -0
  219. package/dist/schemas/app-platform.d.ts +755 -0
  220. package/dist/schemas/app-platform.d.ts.map +1 -0
  221. package/dist/schemas/app-platform.js +253 -0
  222. package/dist/schemas/app-platform.js.map +1 -0
  223. package/dist/schemas/cache-database.d.ts +210 -0
  224. package/dist/schemas/cache-database.d.ts.map +1 -0
  225. package/dist/schemas/cache-database.js +105 -0
  226. package/dist/schemas/cache-database.js.map +1 -0
  227. package/dist/schemas/control-plane.d.ts +456 -0
  228. package/dist/schemas/control-plane.d.ts.map +1 -0
  229. package/dist/schemas/control-plane.js +123 -0
  230. package/dist/schemas/control-plane.js.map +1 -0
  231. package/dist/schemas/credential-use.d.ts +714 -0
  232. package/dist/schemas/credential-use.d.ts.map +1 -0
  233. package/dist/schemas/credential-use.js +73 -0
  234. package/dist/schemas/credential-use.js.map +1 -0
  235. package/dist/schemas/doks-worker.d.ts +4062 -0
  236. package/dist/schemas/doks-worker.d.ts.map +1 -0
  237. package/dist/schemas/doks-worker.js +330 -0
  238. package/dist/schemas/doks-worker.js.map +1 -0
  239. package/dist/schemas/droplet.d.ts +110 -0
  240. package/dist/schemas/droplet.d.ts.map +1 -0
  241. package/dist/schemas/droplet.js +22 -0
  242. package/dist/schemas/droplet.js.map +1 -0
  243. package/dist/schemas/functions.d.ts +22 -0
  244. package/dist/schemas/functions.d.ts.map +1 -0
  245. package/dist/schemas/functions.js +25 -0
  246. package/dist/schemas/functions.js.map +1 -0
  247. package/dist/schemas/gitea-git-hosting.d.ts +20 -0
  248. package/dist/schemas/gitea-git-hosting.d.ts.map +1 -0
  249. package/dist/schemas/gitea-git-hosting.js +26 -0
  250. package/dist/schemas/gitea-git-hosting.js.map +1 -0
  251. package/dist/schemas/http.d.ts +2594 -0
  252. package/dist/schemas/http.d.ts.map +1 -0
  253. package/dist/schemas/http.js +4548 -0
  254. package/dist/schemas/http.js.map +1 -0
  255. package/dist/schemas/infra-kinds.d.ts +113 -0
  256. package/dist/schemas/infra-kinds.d.ts.map +1 -0
  257. package/dist/schemas/infra-kinds.js +93 -0
  258. package/dist/schemas/infra-kinds.js.map +1 -0
  259. package/dist/schemas/kubernetes-responses.d.ts +457 -0
  260. package/dist/schemas/kubernetes-responses.d.ts.map +1 -0
  261. package/dist/schemas/kubernetes-responses.js +681 -0
  262. package/dist/schemas/kubernetes-responses.js.map +1 -0
  263. package/dist/schemas/kubernetes.d.ts +143 -0
  264. package/dist/schemas/kubernetes.d.ts.map +1 -0
  265. package/dist/schemas/kubernetes.js +68 -0
  266. package/dist/schemas/kubernetes.js.map +1 -0
  267. package/dist/schemas/logs.d.ts +15 -0
  268. package/dist/schemas/logs.d.ts.map +1 -0
  269. package/dist/schemas/logs.js +11 -0
  270. package/dist/schemas/logs.js.map +1 -0
  271. package/dist/schemas/object-storage.d.ts +167 -0
  272. package/dist/schemas/object-storage.d.ts.map +1 -0
  273. package/dist/schemas/object-storage.js +124 -0
  274. package/dist/schemas/object-storage.js.map +1 -0
  275. package/dist/schemas/service-settings.d.ts +9 -0
  276. package/dist/schemas/service-settings.d.ts.map +1 -0
  277. package/dist/schemas/service-settings.js +21 -0
  278. package/dist/schemas/service-settings.js.map +1 -0
  279. package/dist/schemas/utilization.d.ts +57 -0
  280. package/dist/schemas/utilization.d.ts.map +1 -0
  281. package/dist/schemas/utilization.js +58 -0
  282. package/dist/schemas/utilization.js.map +1 -0
  283. package/dist/schemas/worker-status.d.ts +22 -0
  284. package/dist/schemas/worker-status.d.ts.map +1 -0
  285. package/dist/schemas/worker-status.js +14 -0
  286. package/dist/schemas/worker-status.js.map +1 -0
  287. package/dist/schemas/worker.d.ts +125 -0
  288. package/dist/schemas/worker.d.ts.map +1 -0
  289. package/dist/schemas/worker.js +129 -0
  290. package/dist/schemas/worker.js.map +1 -0
  291. package/dist/secrets/app-platform/app-credentials.impl.d.ts +14 -0
  292. package/dist/secrets/app-platform/app-credentials.impl.d.ts.map +1 -0
  293. package/dist/secrets/app-platform/app-credentials.impl.js +237 -0
  294. package/dist/secrets/app-platform/app-credentials.impl.js.map +1 -0
  295. package/dist/secrets/container-registry/image-publish-settings.descriptor.d.ts +6 -0
  296. package/dist/secrets/container-registry/image-publish-settings.descriptor.d.ts.map +1 -0
  297. package/dist/secrets/container-registry/image-publish-settings.descriptor.js +14 -0
  298. package/dist/secrets/container-registry/image-publish-settings.descriptor.js.map +1 -0
  299. package/dist/secrets/doks-secret.descriptor.d.ts +18 -0
  300. package/dist/secrets/doks-secret.descriptor.d.ts.map +1 -0
  301. package/dist/secrets/doks-secret.descriptor.js +35 -0
  302. package/dist/secrets/doks-secret.descriptor.js.map +1 -0
  303. package/dist/secrets/doks-secret.impl.d.ts +98 -0
  304. package/dist/secrets/doks-secret.impl.d.ts.map +1 -0
  305. package/dist/secrets/doks-secret.impl.js +451 -0
  306. package/dist/secrets/doks-secret.impl.js.map +1 -0
  307. package/dist/secrets/index.d.ts +4 -0
  308. package/dist/secrets/index.d.ts.map +1 -0
  309. package/dist/secrets/index.js +4 -0
  310. package/dist/secrets/index.js.map +1 -0
  311. package/dist/secrets/secrets-backend-doks.plugin.d.ts +3 -0
  312. package/dist/secrets/secrets-backend-doks.plugin.d.ts.map +1 -0
  313. package/dist/secrets/secrets-backend-doks.plugin.js +35 -0
  314. package/dist/secrets/secrets-backend-doks.plugin.js.map +1 -0
  315. package/dist/storage/index.d.ts +50 -0
  316. package/dist/storage/index.d.ts.map +1 -0
  317. package/dist/storage/index.js +92 -0
  318. package/dist/storage/index.js.map +1 -0
  319. package/dist/storage/spaces-keys.d.ts +25 -0
  320. package/dist/storage/spaces-keys.d.ts.map +1 -0
  321. package/dist/storage/spaces-keys.js +32 -0
  322. package/dist/storage/spaces-keys.js.map +1 -0
  323. package/package.json +172 -4
@@ -0,0 +1,197 @@
1
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
2
+ import { type DigitalOceanCredentialSettings } from '../schemas/control-plane.ts';
3
+ import { type DoksServiceSettings } from '../schemas/service-settings.ts';
4
+ export declare const digitalOceanServiceSettingsDescriptor: {
5
+ allowedAdapters: readonly ["storage.localdb", "storage.json"];
6
+ defaultAdapter: "storage.localdb";
7
+ scope: "auto";
8
+ customTables: false;
9
+ version: 1;
10
+ internal: false;
11
+ enabled: true;
12
+ kind: "config/manifest";
13
+ id: string;
14
+ name: string;
15
+ namespace: string;
16
+ description: string;
17
+ tier: string;
18
+ category: string;
19
+ schema: import("zod/v4").ZodObject<{
20
+ sourceBrokerOrigin: import("zod/v4").ZodOptional<import("zod/v4").ZodPipe<import("zod/v4").ZodURL, import("zod/v4").ZodTransform<string, string>>>;
21
+ packageRegistryOrigin: import("zod/v4").ZodOptional<import("zod/v4").ZodPipe<import("zod/v4").ZodURL, import("zod/v4").ZodTransform<string, string>>>;
22
+ packageScope: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
23
+ }, import("zod/v4/core").$strip>;
24
+ fields: {
25
+ sourceBrokerOrigin: {
26
+ ui: {
27
+ label: string;
28
+ component: string;
29
+ };
30
+ };
31
+ packageRegistryOrigin: {
32
+ ui: {
33
+ label: string;
34
+ component: string;
35
+ };
36
+ };
37
+ packageScope: {
38
+ ui: {
39
+ label: string;
40
+ component: string;
41
+ };
42
+ };
43
+ };
44
+ };
45
+ export declare const defaultDigitalOceanServiceSettings: {
46
+ sourceBrokerOrigin?: string | undefined;
47
+ packageRegistryOrigin?: string | undefined;
48
+ packageScope?: string | undefined;
49
+ };
50
+ export declare const digitalOceanCredentialSettingsDescriptor: {
51
+ allowedAdapters: readonly ["storage.localdb", "storage.json"];
52
+ defaultAdapter: "storage.localdb";
53
+ scope: "auto";
54
+ customTables: false;
55
+ version: 1;
56
+ internal: false;
57
+ enabled: true;
58
+ kind: "config/manifest";
59
+ id: string;
60
+ name: string;
61
+ namespace: string;
62
+ description: string;
63
+ tier: string;
64
+ category: string;
65
+ schema: import("zod/v4").ZodObject<{
66
+ modelAccessKeyCandidates: import("zod/v4").ZodDefault<import("zod/v4").ZodPipe<import("zod/v4").ZodPipe<import("zod/v4").ZodCustom<readonly {
67
+ source: "secret";
68
+ key: string;
69
+ store?: string | undefined;
70
+ operation?: object | undefined;
71
+ }[], readonly {
72
+ source: "secret";
73
+ key: string;
74
+ store?: string | undefined;
75
+ operation?: object | undefined;
76
+ }[]>, import("zod/v4").ZodArray<import("zod/v4").ZodDiscriminatedUnion<[import("zod/v4").ZodObject<{
77
+ source: import("zod/v4").ZodLiteral<"secret">;
78
+ key: import("zod/v4").ZodString;
79
+ store: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
80
+ operation: import("zod/v4").ZodOptional<import("zod/v4").ZodCustom<object, object>>;
81
+ }, import("zod/v4/core").$strict>], "source">>>, import("zod/v4").ZodTransform<readonly {
82
+ source: "secret";
83
+ key: string;
84
+ store?: string | undefined;
85
+ operation?: object | undefined;
86
+ }[], {
87
+ source: "secret";
88
+ key: string;
89
+ store?: string | undefined;
90
+ operation?: object | undefined;
91
+ }[]>>>;
92
+ spacesAccessKeyIdCandidates: import("zod/v4").ZodDefault<import("zod/v4").ZodPipe<import("zod/v4").ZodPipe<import("zod/v4").ZodCustom<readonly {
93
+ source: "secret";
94
+ key: string;
95
+ store?: string | undefined;
96
+ operation?: object | undefined;
97
+ }[], readonly {
98
+ source: "secret";
99
+ key: string;
100
+ store?: string | undefined;
101
+ operation?: object | undefined;
102
+ }[]>, import("zod/v4").ZodArray<import("zod/v4").ZodDiscriminatedUnion<[import("zod/v4").ZodObject<{
103
+ source: import("zod/v4").ZodLiteral<"secret">;
104
+ key: import("zod/v4").ZodString;
105
+ store: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
106
+ operation: import("zod/v4").ZodOptional<import("zod/v4").ZodCustom<object, object>>;
107
+ }, import("zod/v4/core").$strict>], "source">>>, import("zod/v4").ZodTransform<readonly {
108
+ source: "secret";
109
+ key: string;
110
+ store?: string | undefined;
111
+ operation?: object | undefined;
112
+ }[], {
113
+ source: "secret";
114
+ key: string;
115
+ store?: string | undefined;
116
+ operation?: object | undefined;
117
+ }[]>>>;
118
+ spacesSecretKeyCandidates: import("zod/v4").ZodDefault<import("zod/v4").ZodPipe<import("zod/v4").ZodPipe<import("zod/v4").ZodCustom<readonly {
119
+ source: "secret";
120
+ key: string;
121
+ store?: string | undefined;
122
+ operation?: object | undefined;
123
+ }[], readonly {
124
+ source: "secret";
125
+ key: string;
126
+ store?: string | undefined;
127
+ operation?: object | undefined;
128
+ }[]>, import("zod/v4").ZodArray<import("zod/v4").ZodDiscriminatedUnion<[import("zod/v4").ZodObject<{
129
+ source: import("zod/v4").ZodLiteral<"secret">;
130
+ key: import("zod/v4").ZodString;
131
+ store: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
132
+ operation: import("zod/v4").ZodOptional<import("zod/v4").ZodCustom<object, object>>;
133
+ }, import("zod/v4/core").$strict>], "source">>>, import("zod/v4").ZodTransform<readonly {
134
+ source: "secret";
135
+ key: string;
136
+ store?: string | undefined;
137
+ operation?: object | undefined;
138
+ }[], {
139
+ source: "secret";
140
+ key: string;
141
+ store?: string | undefined;
142
+ operation?: object | undefined;
143
+ }[]>>>;
144
+ apiTokenCandidates: import("zod/v4").ZodDefault<import("zod/v4").ZodPipe<import("zod/v4").ZodPipe<import("zod/v4").ZodCustom<readonly {
145
+ reference: {
146
+ source: "secret";
147
+ key: string;
148
+ store?: string | undefined;
149
+ operation?: object | undefined;
150
+ };
151
+ kind: "vibes-system" | "user-token" | "user-api-token" | "user-api-key" | "explicit";
152
+ }[], readonly {
153
+ reference: {
154
+ source: "secret";
155
+ key: string;
156
+ store?: string | undefined;
157
+ operation?: object | undefined;
158
+ };
159
+ kind: "vibes-system" | "user-token" | "user-api-token" | "user-api-key" | "explicit";
160
+ }[]>, import("zod/v4").ZodArray<import("zod/v4").ZodObject<{
161
+ reference: import("zod/v4").ZodDiscriminatedUnion<[import("zod/v4").ZodObject<{
162
+ source: import("zod/v4").ZodLiteral<"secret">;
163
+ key: import("zod/v4").ZodString;
164
+ store: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
165
+ operation: import("zod/v4").ZodOptional<import("zod/v4").ZodCustom<object, object>>;
166
+ }, import("zod/v4/core").$strict>], "source">;
167
+ kind: import("zod/v4").ZodEnum<{
168
+ "vibes-system": "vibes-system";
169
+ "user-token": "user-token";
170
+ "user-api-token": "user-api-token";
171
+ "user-api-key": "user-api-key";
172
+ explicit: "explicit";
173
+ }>;
174
+ }, import("zod/v4/core").$strict>>>, import("zod/v4").ZodTransform<readonly {
175
+ reference: {
176
+ source: "secret";
177
+ key: string;
178
+ store?: string | undefined;
179
+ operation?: object | undefined;
180
+ };
181
+ kind: "vibes-system" | "user-token" | "user-api-token" | "user-api-key" | "explicit";
182
+ }[], {
183
+ reference: {
184
+ source: "secret";
185
+ key: string;
186
+ store?: string | undefined;
187
+ operation?: object | undefined;
188
+ };
189
+ kind: "vibes-system" | "user-token" | "user-api-token" | "user-api-key" | "explicit";
190
+ }[]>>>;
191
+ }, import("zod/v4/core").$strict>;
192
+ fields: {};
193
+ };
194
+ export declare function loadDigitalOceanServiceSettings(runtime: RuntimeRef): Promise<DoksServiceSettings>;
195
+ /** Settings default to the vendor's generic candidates; hosts can compose any ordered secret references. */
196
+ export declare function loadDigitalOceanCredentialSettings(runtime: RuntimeRef): Promise<DigitalOceanCredentialSettings>;
197
+ //# sourceMappingURL=digitalocean.config.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalocean.config.descriptor.d.ts","sourceRoot":"","sources":["../../src/config/digitalocean.config.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAEN,KAAK,8BAA8B,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,gCAAgC,CAAC;AAYxC,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBhD,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;CACQ,CAAC;AAExD,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWnD,CAAC;AAEH,wBAAsB,+BAA+B,CACpD,OAAO,EAAE,UAAU,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,4GAA4G;AAC5G,wBAAsB,kCAAkC,CACvD,OAAO,EAAE,UAAU,GACjB,OAAO,CAAC,8BAA8B,CAAC,CAWzC"}
@@ -0,0 +1,59 @@
1
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
2
+ import { ConfigManifest } from '@vibesdotdev/config';
3
+ import { DigitalOceanCredentialSettingsSchema } from "../schemas/control-plane.js";
4
+ import { DoksServiceSettingsSchema } from "../schemas/service-settings.js";
5
+ const configManifestDefaults = {
6
+ allowedAdapters: ['storage.localdb', 'storage.json'],
7
+ defaultAdapter: 'storage.localdb',
8
+ scope: 'auto',
9
+ customTables: false,
10
+ version: 1,
11
+ internal: false,
12
+ enabled: true
13
+ };
14
+ export const digitalOceanServiceSettingsDescriptor = createRuntimeAsset({
15
+ kind: 'config/manifest',
16
+ id: 'integrations.digitalocean.services',
17
+ name: 'DigitalOcean service authority',
18
+ // The namespace is the manifest's storage address; one per manifest id, so
19
+ // sibling DigitalOcean manifests never overwrite each other's stored layer.
20
+ namespace: 'integrations.digitalocean.services',
21
+ description: 'Source credential broker and package registry used by declared DOKS workers.',
22
+ tier: 'user',
23
+ category: 'integrations',
24
+ schema: DoksServiceSettingsSchema,
25
+ fields: {
26
+ sourceBrokerOrigin: { ui: { label: 'Source credential broker origin', component: 'text' } },
27
+ packageRegistryOrigin: { ui: { label: 'Package registry origin', component: 'text' } },
28
+ packageScope: { ui: { label: 'Package registry scope', component: 'text' } }
29
+ },
30
+ ...configManifestDefaults
31
+ });
32
+ export const defaultDigitalOceanServiceSettings = digitalOceanServiceSettingsDescriptor.schema.parse({});
33
+ export const digitalOceanCredentialSettingsDescriptor = createRuntimeAsset({
34
+ kind: 'config/manifest',
35
+ id: 'integrations.digitalocean.credentials',
36
+ name: 'DigitalOcean credential references',
37
+ namespace: 'integrations.digitalocean.credentials',
38
+ description: 'Ordered complete secret references for DigitalOcean API, model, and Spaces credential use.',
39
+ tier: 'user',
40
+ category: 'integrations',
41
+ schema: DigitalOceanCredentialSettingsSchema,
42
+ fields: {},
43
+ ...configManifestDefaults
44
+ });
45
+ export async function loadDigitalOceanServiceSettings(runtime) {
46
+ if (!runtime.hasKind('config/manifest')) {
47
+ return defaultDigitalOceanServiceSettings;
48
+ }
49
+ return ConfigManifest.forRuntime(runtime, digitalOceanServiceSettingsDescriptor.id).load();
50
+ }
51
+ /** Settings default to the vendor's generic candidates; hosts can compose any ordered secret references. */
52
+ export async function loadDigitalOceanCredentialSettings(runtime) {
53
+ if (!runtime.hasKind('config/manifest') ||
54
+ !runtime.query('config/manifest').withId(digitalOceanCredentialSettingsDescriptor.id).descriptors().length) {
55
+ return DigitalOceanCredentialSettingsSchema.parse({});
56
+ }
57
+ return ConfigManifest.forRuntime(runtime, digitalOceanCredentialSettingsDescriptor.id).load();
58
+ }
59
+ //# sourceMappingURL=digitalocean.config.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalocean.config.descriptor.js","sourceRoot":"","sources":["../../src/config/digitalocean.config.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAmB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACN,oCAAoC,EAEpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,yBAAyB,EAEzB,MAAM,gCAAgC,CAAC;AAExC,MAAM,sBAAsB,GAAG;IAC9B,eAAe,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACpD,cAAc,EAAE,iBAAiB;IACjC,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,IAAI;CACJ,CAAC;AAEX,MAAM,CAAC,MAAM,qCAAqC,GAAG,kBAAkB,CAAC;IACvE,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,oCAAoC;IACxC,IAAI,EAAE,gCAAgC;IACtC,2EAA2E;IAC3E,4EAA4E;IAC5E,SAAS,EAAE,oCAAoC;IAC/C,WAAW,EAAE,8EAA8E;IAC3F,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE;QACP,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QAC3F,qBAAqB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QACtF,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;KAC5E;IACD,GAAG,sBAAsB;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAC9C,qCAAqC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,wCAAwC,GAAG,kBAAkB,CAAC;IAC1E,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,uCAAuC;IAC3C,IAAI,EAAE,oCAAoC;IAC1C,SAAS,EAAE,uCAAuC;IAClD,WAAW,EAAE,4FAA4F;IACzG,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,oCAAoC;IAC5C,MAAM,EAAE,EAAE;IACV,GAAG,sBAAsB;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACpD,OAAmB;IAEnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACzC,OAAO,kCAAkC,CAAC;IAC3C,CAAC;IACD,OAAO,cAAc,CAAC,UAAU,CAC/B,OAAO,EACP,qCAAqC,CAAC,EAAE,CACxC,CAAC,IAAI,EAAE,CAAC;AACV,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACvD,OAAmB;IAEnB,IACC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACnC,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,EACzG,CAAC;QACF,OAAO,oCAAoC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,cAAc,CAAC,UAAU,CAC/B,OAAO,EACP,wCAAwC,CAAC,EAAE,CAC3C,CAAC,IAAI,EAAE,CAAC;AACV,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * DigitalOcean credential references and explicit caller-supplied credentials.
3
+ *
4
+ * API tokens use the registered digitalocean-client-factory and the Secrets
5
+ * authenticated-request operation; model calls use the AI connection's secret
6
+ * reference. This module only constructs references. Spaces candidates are
7
+ * configurable, but no Spaces request-signing operation consumes them yet;
8
+ * hosts declare alternative names in composition rather than relying on a
9
+ * package compatibility list.
10
+ */
11
+ import type { CredentialReference } from '@vibesdotdev/kernel/credentials';
12
+ import { type DigitalOceanApiToken } from '../schemas/control-plane.ts';
13
+ export type { DigitalOceanTokenKind, DigitalOceanApiToken, DigitalOceanTokenCredentialCandidate, DigitalOceanCredentialSettings, DigitalOceanCredentialUseSettings, DigitalOceanCredentialUseOutcome, DigitalOceanSpacesCredentialUseOutcome } from '../schemas/control-plane.ts';
14
+ export { DigitalOceanCredentialSettingsSchema, DigitalOceanCredentialUseSettingsSchema, DigitalOceanTokenCredentialCandidateSchema, DigitalOceanTokenCredentialCandidatesSchema, DigitalOceanCredentialUseOutcomeSchema, DigitalOceanSpacesCredentialUseOutcomeSchema } from '../schemas/control-plane.ts';
15
+ /** Generic references; application composition may replace or reorder them. */
16
+ export declare const DIGITALOCEAN_TOKEN_CREDENTIAL_CANDIDATES: readonly {
17
+ reference: {
18
+ source: "secret";
19
+ key: string;
20
+ store?: string | undefined;
21
+ operation?: object | undefined;
22
+ };
23
+ kind: "vibes-system" | "user-token" | "user-api-token" | "user-api-key" | "explicit";
24
+ }[];
25
+ export declare const DIGITALOCEAN_TOKEN_CREDENTIAL_KEYS: {
26
+ key: string;
27
+ kind: "vibes-system" | "user-token" | "user-api-token" | "user-api-key" | "explicit";
28
+ }[];
29
+ /** Credential references for declaring a DigitalOcean credential in a descriptor. */
30
+ export declare const digitalOceanCredentialReferences: {
31
+ readonly apiToken: (key?: string, store?: string) => CredentialReference;
32
+ readonly spacesAccessKeyId: (key?: string, store?: string) => CredentialReference;
33
+ readonly spacesSecretKey: (key?: string, store?: string) => CredentialReference;
34
+ readonly modelAccessKey: (key?: string, store?: string) => CredentialReference;
35
+ };
36
+ /** Validate an API token explicitly supplied by the caller. */
37
+ export declare function requireApiToken(token: DigitalOceanApiToken | undefined): DigitalOceanApiToken;
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credentials/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAGN,KAAK,oBAAoB,EACzB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACX,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,8BAA8B,EAC9B,iCAAiC,EACjC,gCAAgC,EAChC,sCAAsC,EACtC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,oCAAoC,EACpC,uCAAuC,EACvC,0CAA0C,EAC1C,2CAA2C,EAC3C,sCAAsC,EACtC,4CAA4C,EAC5C,MAAM,6BAA6B,CAAC;AAErC,+EAA+E;AAC/E,eAAO,MAAM,wCAAwC;;;;;;;;GAA+C,CAAC;AACrG,eAAO,MAAM,kCAAkC;;;GAE9C,CAAC;AAQF,qFAAqF;AACrF,eAAO,MAAM,gCAAgC;8CACK,MAAM,KAAG,mBAAmB;uDAGR,MAAM,KAAG,mBAAmB;qDAGjC,MAAM,KAAG,mBAAmB;oDAG9B,MAAM,KAAG,mBAAmB;CAGjF,CAAC;AAEX,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,SAAS,GAAG,oBAAoB,CAgB7F"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * DigitalOcean credential references and explicit caller-supplied credentials.
3
+ *
4
+ * API tokens use the registered digitalocean-client-factory and the Secrets
5
+ * authenticated-request operation; model calls use the AI connection's secret
6
+ * reference. This module only constructs references. Spaces candidates are
7
+ * configurable, but no Spaces request-signing operation consumes them yet;
8
+ * hosts declare alternative names in composition rather than relying on a
9
+ * package compatibility list.
10
+ */
11
+ import { CapabilityError } from '@vibesdotdev/kernel';
12
+ import { DigitalOceanTokenSchema, DigitalOceanDefaultTokenCredentialCandidates } from "../schemas/control-plane.js";
13
+ export { DigitalOceanCredentialSettingsSchema, DigitalOceanCredentialUseSettingsSchema, DigitalOceanTokenCredentialCandidateSchema, DigitalOceanTokenCredentialCandidatesSchema, DigitalOceanCredentialUseOutcomeSchema, DigitalOceanSpacesCredentialUseOutcomeSchema } from "../schemas/control-plane.js";
14
+ /** Generic references; application composition may replace or reorder them. */
15
+ export const DIGITALOCEAN_TOKEN_CREDENTIAL_CANDIDATES = DigitalOceanDefaultTokenCredentialCandidates;
16
+ export const DIGITALOCEAN_TOKEN_CREDENTIAL_KEYS = DIGITALOCEAN_TOKEN_CREDENTIAL_CANDIDATES.map(({ reference, kind }) => ({ key: reference.key, kind }));
17
+ function secretReference(key, store) {
18
+ const reference = { source: 'secret', key };
19
+ if (store)
20
+ return { ...reference, store };
21
+ return reference;
22
+ }
23
+ /** Credential references for declaring a DigitalOcean credential in a descriptor. */
24
+ export const digitalOceanCredentialReferences = {
25
+ apiToken(key = 'DIGITALOCEAN_API_TOKEN', store) {
26
+ return secretReference(key, store);
27
+ },
28
+ spacesAccessKeyId(key = 'DIGITALOCEAN_SPACES_ACCESS_KEY_ID', store) {
29
+ return secretReference(key, store);
30
+ },
31
+ spacesSecretKey(key = 'DIGITALOCEAN_SPACES_SECRET_KEY', store) {
32
+ return secretReference(key, store);
33
+ },
34
+ modelAccessKey(key = 'DIGITALOCEAN_MODEL_ACCESS_KEY', store) {
35
+ return secretReference(key, store);
36
+ }
37
+ };
38
+ /** Validate an API token explicitly supplied by the caller. */
39
+ export function requireApiToken(token) {
40
+ if (!token) {
41
+ throw new CapabilityError('No DigitalOcean API token was supplied.', 'AUTH_REQUIRED', {
42
+ reason: 'digitalocean-credential-missing',
43
+ recoveryHint: 'Compose DigitalOcean credential references or supply caller authority.',
44
+ details: { candidates: DIGITALOCEAN_TOKEN_CREDENTIAL_KEYS.map((candidate) => candidate.key) }
45
+ });
46
+ }
47
+ const parsed = DigitalOceanTokenSchema.safeParse(token);
48
+ if (!parsed.success) {
49
+ throw new CapabilityError('DigitalOcean credential is invalid.', 'AUTH_REQUIRED', {
50
+ reason: 'digitalocean-credential-invalid',
51
+ cause: parsed.error
52
+ });
53
+ }
54
+ return parsed.data;
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/credentials/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACN,uBAAuB,EACvB,4CAA4C,EAE5C,MAAM,6BAA6B,CAAC;AAUrC,OAAO,EACN,oCAAoC,EACpC,uCAAuC,EACvC,0CAA0C,EAC1C,2CAA2C,EAC3C,sCAAsC,EACtC,4CAA4C,EAC5C,MAAM,6BAA6B,CAAC;AAErC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wCAAwC,GAAG,4CAA4C,CAAC;AACrG,MAAM,CAAC,MAAM,kCAAkC,GAAG,wCAAwC,CAAC,GAAG,CAC7F,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CACvD,CAAC;AAEF,SAAS,eAAe,CAAC,GAAW,EAAE,KAAc;IACnD,MAAM,SAAS,GAAwB,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACjE,IAAI,KAAK;QAAE,OAAO,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1C,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C,QAAQ,CAAC,GAAG,GAAG,wBAAwB,EAAE,KAAc;QACtD,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,iBAAiB,CAAC,GAAG,GAAG,mCAAmC,EAAE,KAAc;QAC1E,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,eAAe,CAAC,GAAG,GAAG,gCAAgC,EAAE,KAAc;QACrE,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,cAAc,CAAC,GAAG,GAAG,+BAA+B,EAAE,KAAc;QACnE,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;CACQ,CAAC;AAEX,+DAA+D;AAC/D,MAAM,UAAU,eAAe,CAAC,KAAuC;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,eAAe,CAAC,yCAAyC,EAAE,eAAe,EAAE;YACrF,MAAM,EAAE,iCAAiC;YACzC,YAAY,EAAE,wEAAwE;YACtF,OAAO,EAAE,EAAE,UAAU,EAAE,kCAAkC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;SAC7F,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,qCAAqC,EAAE,eAAe,EAAE;YACjF,MAAM,EAAE,iCAAiC;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK;SACnB,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACpB,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { TopicsResponseSchema, IndexesResponseSchema } from '../schemas/http.ts';
2
+ /**
3
+ * DigitalOcean Managed Databases: Postgres, Valkey/Redis, Kafka, OpenSearch,
4
+ * MySQL/MongoDB (passthrough).
5
+ *
6
+ * The v2 API uses a single `/databases` family of endpoints with an `engine`
7
+ * field that determines which subresources (connection pools, topics,
8
+ * indexes) are available. We expose typed methods only for the operations
9
+ * the roadmap explicitly calls out; everything else can use the underlying
10
+ * `client` for arbitrary control-plane requests.
11
+ */
12
+ import type { DigitalOceanControlPlaneClient } from '../client/control-plane.ts';
13
+ export type DoDatabaseEngine = 'pg' | 'mysql' | 'redis' | 'valkey' | 'kafka' | 'mongodb' | 'opensearch';
14
+ export interface DoDatabaseConnection {
15
+ uri: string;
16
+ database?: string;
17
+ host: string;
18
+ port: number;
19
+ user: string;
20
+ password?: string;
21
+ ssl: boolean;
22
+ }
23
+ export interface DoDatabaseMaintenance {
24
+ day: string;
25
+ hour: string;
26
+ pending?: boolean;
27
+ description?: string[];
28
+ }
29
+ export type DoDatabaseCluster = import('zod/v4').infer<typeof import('../schemas/http.ts').DoDatabaseClusterSchema>;
30
+ export interface CreateDatabaseClusterOptions {
31
+ name: string;
32
+ engine: DoDatabaseEngine;
33
+ version?: string;
34
+ size: string;
35
+ region: string;
36
+ num_nodes: number;
37
+ tags?: string[];
38
+ private_network_uuid?: string;
39
+ backup_restore?: {
40
+ database_name: string;
41
+ backup_created_at?: string;
42
+ };
43
+ storage_size_mib?: number;
44
+ }
45
+ export interface DoConnectionPool {
46
+ name: string;
47
+ mode: 'transaction' | 'session' | 'statement';
48
+ size: number;
49
+ db: string;
50
+ user: string;
51
+ connection?: DoDatabaseConnection;
52
+ private_connection?: DoDatabaseConnection;
53
+ }
54
+ export declare class DigitalOceanDatabasesClient {
55
+ private readonly client;
56
+ constructor(client: DigitalOceanControlPlaneClient);
57
+ list(filters?: {
58
+ tag?: string;
59
+ }): Promise<DoDatabaseCluster[]>;
60
+ get(databaseId: string): Promise<DoDatabaseCluster>;
61
+ getOrNull(databaseId: string): Promise<DoDatabaseCluster | null>;
62
+ create(options: CreateDatabaseClusterOptions): Promise<DoDatabaseCluster>;
63
+ delete(databaseId: string): Promise<void>;
64
+ resize(databaseId: string, options: {
65
+ size?: string;
66
+ num_nodes?: number;
67
+ storage_size_mib?: number;
68
+ }): Promise<void>;
69
+ listConnectionPools(databaseId: string): Promise<DoConnectionPool[]>;
70
+ createConnectionPool(databaseId: string, pool: DoConnectionPool): Promise<DoConnectionPool>;
71
+ updateTrustedSources(databaseId: string, sources: Array<{
72
+ type: string;
73
+ value: string;
74
+ }>): Promise<void>;
75
+ updateStorageAutoscaling(databaseId: string, policy: {
76
+ enabled: boolean;
77
+ increase_amount_percent?: number;
78
+ }): Promise<void>;
79
+ listKafkaTopics(databaseId: string): Promise<import('zod/v4').infer<typeof TopicsResponseSchema>['topics']>;
80
+ listOpenSearchIndexes(databaseId: string): Promise<import('zod/v4').infer<typeof IndexesResponseSchema>['indexes']>;
81
+ }
82
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/databases/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { DatabaseListResponseSchema, DoDatabaseClusterSchema, DatabaseResponseSchema, ConnectionPoolsResponseSchema, ConnectionPoolResponseSchema, TopicsResponseSchema, IndexesResponseSchema } from "../schemas/http.js";
2
+ export class DigitalOceanDatabasesClient {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ async list(filters = {}) {
8
+ return this.client.collect({
9
+ path: '/databases',
10
+ request: { query: { tag_name: filters.tag } },
11
+ extract: (page) => page.databases ?? [],
12
+ schema: DatabaseListResponseSchema,
13
+ itemSchema: DoDatabaseClusterSchema
14
+ });
15
+ }
16
+ async get(databaseId) {
17
+ const res = await this.client.get(`/databases/${databaseId}`, {}, DatabaseResponseSchema);
18
+ return res.database;
19
+ }
20
+ async getOrNull(databaseId) {
21
+ const res = await this.client.getOrNull(`/databases/${databaseId}`, {}, DatabaseResponseSchema);
22
+ return res?.database ?? null;
23
+ }
24
+ async create(options) {
25
+ const res = await this.client.post('/databases', options, {}, DatabaseResponseSchema);
26
+ return res.database;
27
+ }
28
+ async delete(databaseId) {
29
+ await this.client.delete(`/databases/${databaseId}`);
30
+ }
31
+ async resize(databaseId, options) {
32
+ await this.client.put(`/databases/${databaseId}/resize`, options);
33
+ }
34
+ async listConnectionPools(databaseId) {
35
+ const res = await this.client.get(`/databases/${databaseId}/pools`, {}, ConnectionPoolsResponseSchema);
36
+ return res.pools;
37
+ }
38
+ async createConnectionPool(databaseId, pool) {
39
+ const res = await this.client.post(`/databases/${databaseId}/pools`, pool, {}, ConnectionPoolResponseSchema);
40
+ return res.pool;
41
+ }
42
+ async updateTrustedSources(databaseId, sources) {
43
+ await this.client.put(`/databases/${databaseId}/firewall`, { rules: sources });
44
+ }
45
+ async updateStorageAutoscaling(databaseId, policy) {
46
+ await this.client.put(`/databases/${databaseId}/storage_autoscaling`, policy);
47
+ }
48
+ async listKafkaTopics(databaseId) {
49
+ const res = await this.client.get(`/databases/${databaseId}/topics`, {}, TopicsResponseSchema);
50
+ return res.topics;
51
+ }
52
+ async listOpenSearchIndexes(databaseId) {
53
+ const res = await this.client.get(`/databases/${databaseId}/indexes`, {}, IndexesResponseSchema);
54
+ return res.indexes;
55
+ }
56
+ }
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/databases/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export declare const digitalOceanFrictionPolicy: {
2
+ readonly id: "digitalocean.friction";
3
+ readonly kind: "friction/policy";
4
+ readonly name: "DigitalOcean bright lines";
5
+ readonly description: "DigitalOcean mutations run through the integration clients, never a direct doctl invocation.";
6
+ readonly paths: [];
7
+ readonly commands: [{
8
+ readonly pattern: "doctl";
9
+ readonly kind: "exact";
10
+ readonly reason: "DigitalOcean mutation";
11
+ }];
12
+ readonly args: [];
13
+ readonly argExemptions: [];
14
+ };
15
+ export declare const digitalOceanKubernetesFrictionPolicy: {
16
+ readonly id: "digitalocean.kubernetes.friction";
17
+ readonly kind: "friction/policy";
18
+ readonly name: "Kubernetes bright lines";
19
+ readonly description: "Kubernetes mutations run through the managed-Kubernetes client, never a direct kubectl invocation.";
20
+ readonly paths: [];
21
+ readonly commands: [{
22
+ readonly pattern: "kubectl";
23
+ readonly kind: "exact";
24
+ readonly reason: "kubernetes mutation";
25
+ }];
26
+ readonly args: [];
27
+ readonly argExemptions: [];
28
+ };
29
+ //# sourceMappingURL=digitalocean-friction.policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalocean-friction.policy.d.ts","sourceRoot":"","sources":["../src/digitalocean-friction.policy.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CASM,CAAC;AAE9C,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;CASJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ export const digitalOceanFrictionPolicy = {
2
+ id: 'digitalocean.friction',
3
+ kind: 'friction/policy',
4
+ name: 'DigitalOcean bright lines',
5
+ description: 'DigitalOcean mutations run through the integration clients, never a direct doctl invocation.',
6
+ paths: [],
7
+ commands: [{ pattern: 'doctl', kind: 'exact', reason: 'DigitalOcean mutation' }],
8
+ args: [],
9
+ argExemptions: []
10
+ };
11
+ export const digitalOceanKubernetesFrictionPolicy = {
12
+ id: 'digitalocean.kubernetes.friction',
13
+ kind: 'friction/policy',
14
+ name: 'Kubernetes bright lines',
15
+ description: 'Kubernetes mutations run through the managed-Kubernetes client, never a direct kubectl invocation.',
16
+ paths: [],
17
+ commands: [{ pattern: 'kubectl', kind: 'exact', reason: 'kubernetes mutation' }],
18
+ args: [],
19
+ argExemptions: []
20
+ };
21
+ //# sourceMappingURL=digitalocean-friction.policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalocean-friction.policy.js","sourceRoot":"","sources":["../src/digitalocean-friction.policy.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACzC,EAAE,EAAE,uBAAuB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,8FAA8F;IAC3G,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAChF,IAAI,EAAE,EAAE;IACR,aAAa,EAAE,EAAE;CAC2B,CAAC;AAE9C,MAAM,CAAC,MAAM,oCAAoC,GAAG;IACnD,EAAE,EAAE,kCAAkC;IACtC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,oGAAoG;IACjH,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChF,IAAI,EAAE,EAAE;IACR,aAAa,EAAE,EAAE;CAC2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const digitalOceanConnectorPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
2
+ export default digitalOceanConnectorPlugin;
3
+ //# sourceMappingURL=digitalocean.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalocean.plugin.d.ts","sourceRoot":"","sources":["../src/digitalocean.plugin.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,2BAA2B,6CAyBtC,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
2
+ import { digitalOceanFrictionPolicy, digitalOceanKubernetesFrictionPolicy } from "./digitalocean-friction.policy.js";
3
+ import { DIGITALOCEAN_APP_CREDENTIALS_CLIENT_ID } from "./schemas/app-deployment.js";
4
+ export const digitalOceanConnectorPlugin = createRuntimePlugin({
5
+ id: 'integrations-digitalocean',
6
+ name: 'Connector DigitalOcean',
7
+ description: 'DigitalOcean control-plane and deploy client constructors.',
8
+ dependencies: ['integrations/base'],
9
+ descriptors: [
10
+ digitalOceanFrictionPolicy, digitalOceanKubernetesFrictionPolicy,
11
+ {
12
+ id: 'digitalocean-client-factory', kind: 'runtime/client',
13
+ description: 'Runtime-owned DigitalOcean client constructors.'
14
+ },
15
+ {
16
+ id: DIGITALOCEAN_APP_CREDENTIALS_CLIENT_ID,
17
+ kind: 'runtime/client',
18
+ description: 'Resolves DigitalOcean App credentials through the canonical runtime owners.'
19
+ }
20
+ ],
21
+ loaders: [
22
+ loader('digitalocean-client-factory', { kind: 'runtime/client' }, async () => ({ impl: (await import("./client/factory.js")).DigitalOceanClientFactory })),
23
+ loader(DIGITALOCEAN_APP_CREDENTIALS_CLIENT_ID, { kind: 'runtime/client' }, async () => ({ impl: (await import("./secrets/app-platform/app-credentials.impl.js")).DigitalOceanAppCredentialsClient }))
24
+ ]
25
+ });
26
+ export default digitalOceanConnectorPlugin;
27
+ //# sourceMappingURL=digitalocean.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalocean.plugin.js","sourceRoot":"","sources":["../src/digitalocean.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AACrH,OAAO,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AAErF,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;IAC9D,EAAE,EAAE,2BAA2B;IAC/B,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,4DAA4D;IACzE,YAAY,EAAE,CAAC,mBAAmB,CAAC;IACnC,WAAW,EAAE;QACZ,0BAA0B,EAAE,oCAAoC;QAChE;YACC,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,gBAAgB;YACzD,WAAW,EAAE,iDAAiD;SAC9D;QACD;YACC,EAAE,EAAE,sCAAsC;YAC1C,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,6EAA6E;SAC1F;KACD;IACD,OAAO,EAAE;QACR,MAAM,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAC/D,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CACvF;QACD,MAAM,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EACxE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,gCAAgC,EAAE,CAAC,CACzH;KACD;CACD,CAAC,CAAC;AAEH,eAAe,2BAA2B,CAAC"}