@ninedeploy/sdk 0.10.6 → 0.16.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 (129) hide show
  1. package/LICENSE +21 -21
  2. package/dist/apiPath.d.ts +5 -0
  3. package/dist/apiPath.d.ts.map +1 -0
  4. package/dist/apiPath.js +18 -0
  5. package/dist/apiPath.js.map +1 -0
  6. package/dist/client.d.ts +29 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +51 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/databaseImport.d.ts +138 -0
  11. package/dist/databaseImport.d.ts.map +1 -0
  12. package/dist/databaseImport.js +126 -0
  13. package/dist/databaseImport.js.map +1 -0
  14. package/dist/errors.js +1 -1
  15. package/dist/errors.js.map +1 -1
  16. package/dist/index.d.ts +12 -1973
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +9 -641
  19. package/dist/index.js.map +1 -1
  20. package/dist/manifest.d.ts.map +1 -1
  21. package/dist/manifest.js +25 -21
  22. package/dist/manifest.js.map +1 -1
  23. package/dist/resources/auth.d.ts +282 -0
  24. package/dist/resources/auth.d.ts.map +1 -0
  25. package/dist/resources/auth.js +111 -0
  26. package/dist/resources/auth.js.map +1 -0
  27. package/dist/resources/databases.d.ts +178 -0
  28. package/dist/resources/databases.d.ts.map +1 -0
  29. package/dist/resources/databases.js +82 -0
  30. package/dist/resources/databases.js.map +1 -0
  31. package/dist/resources/deploys.d.ts +125 -0
  32. package/dist/resources/deploys.d.ts.map +1 -0
  33. package/dist/resources/deploys.js +46 -0
  34. package/dist/resources/deploys.js.map +1 -0
  35. package/dist/resources/domains.d.ts +101 -0
  36. package/dist/resources/domains.d.ts.map +1 -0
  37. package/dist/resources/domains.js +28 -0
  38. package/dist/resources/domains.js.map +1 -0
  39. package/dist/resources/env.d.ts +55 -0
  40. package/dist/resources/env.d.ts.map +1 -0
  41. package/dist/resources/env.js +33 -0
  42. package/dist/resources/env.js.map +1 -0
  43. package/dist/resources/logs.d.ts +27 -0
  44. package/dist/resources/logs.d.ts.map +1 -0
  45. package/dist/resources/logs.js +18 -0
  46. package/dist/resources/logs.js.map +1 -0
  47. package/dist/resources/network.d.ts +134 -0
  48. package/dist/resources/network.d.ts.map +1 -0
  49. package/dist/resources/network.js +33 -0
  50. package/dist/resources/network.js.map +1 -0
  51. package/dist/resources/plugins.d.ts +42 -0
  52. package/dist/resources/plugins.d.ts.map +1 -0
  53. package/dist/resources/plugins.js +22 -0
  54. package/dist/resources/plugins.js.map +1 -0
  55. package/dist/resources/servers.d.ts +130 -0
  56. package/dist/resources/servers.d.ts.map +1 -0
  57. package/dist/resources/servers.js +37 -0
  58. package/dist/resources/servers.js.map +1 -0
  59. package/dist/resources/services.d.ts +185 -0
  60. package/dist/resources/services.d.ts.map +1 -0
  61. package/dist/resources/services.js +83 -0
  62. package/dist/resources/services.js.map +1 -0
  63. package/dist/resources/settings.d.ts +312 -0
  64. package/dist/resources/settings.d.ts.map +1 -0
  65. package/dist/resources/settings.js +85 -0
  66. package/dist/resources/settings.js.map +1 -0
  67. package/dist/resources/sources.d.ts +87 -0
  68. package/dist/resources/sources.d.ts.map +1 -0
  69. package/dist/resources/sources.js +39 -0
  70. package/dist/resources/sources.js.map +1 -0
  71. package/dist/resources/system.d.ts +240 -0
  72. package/dist/resources/system.d.ts.map +1 -0
  73. package/dist/resources/system.js +86 -0
  74. package/dist/resources/system.js.map +1 -0
  75. package/dist/resources/templates.d.ts +36 -0
  76. package/dist/resources/templates.d.ts.map +1 -0
  77. package/dist/resources/templates.js +17 -0
  78. package/dist/resources/templates.js.map +1 -0
  79. package/dist/resources/terminals.d.ts +60 -0
  80. package/dist/resources/terminals.d.ts.map +1 -0
  81. package/dist/resources/terminals.js +35 -0
  82. package/dist/resources/terminals.js.map +1 -0
  83. package/dist/resources/traefik.d.ts +84 -0
  84. package/dist/resources/traefik.d.ts.map +1 -0
  85. package/dist/resources/traefik.js +35 -0
  86. package/dist/resources/traefik.js.map +1 -0
  87. package/dist/resources/volumes.d.ts +114 -0
  88. package/dist/resources/volumes.d.ts.map +1 -0
  89. package/dist/resources/volumes.js +47 -0
  90. package/dist/resources/volumes.js.map +1 -0
  91. package/dist/terminal.d.ts +98 -0
  92. package/dist/terminal.d.ts.map +1 -0
  93. package/dist/terminal.js +180 -0
  94. package/dist/terminal.js.map +1 -0
  95. package/dist/transport.d.ts +61 -0
  96. package/dist/transport.d.ts.map +1 -0
  97. package/dist/transport.js +90 -0
  98. package/dist/transport.js.map +1 -0
  99. package/dist/types.d.ts +539 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +5 -0
  102. package/dist/types.js.map +1 -0
  103. package/package.json +5 -4
  104. package/src/apiPath.ts +23 -0
  105. package/src/client.ts +70 -0
  106. package/src/databaseImport.ts +174 -0
  107. package/src/errors.ts +27 -0
  108. package/src/index.ts +118 -0
  109. package/src/manifest.ts +414 -0
  110. package/src/resources/auth.ts +357 -0
  111. package/src/resources/databases.ts +227 -0
  112. package/src/resources/deploys.ts +161 -0
  113. package/src/resources/domains.ts +142 -0
  114. package/src/resources/env.ts +84 -0
  115. package/src/resources/logs.ts +48 -0
  116. package/src/resources/network.ts +126 -0
  117. package/src/resources/plugins.ts +52 -0
  118. package/src/resources/servers.ts +141 -0
  119. package/src/resources/services.ts +250 -0
  120. package/src/resources/settings.ts +275 -0
  121. package/src/resources/sources.ts +131 -0
  122. package/src/resources/system.ts +281 -0
  123. package/src/resources/templates.ts +55 -0
  124. package/src/resources/terminals.ts +112 -0
  125. package/src/resources/traefik.ts +116 -0
  126. package/src/resources/volumes.ts +138 -0
  127. package/src/terminal.ts +254 -0
  128. package/src/transport.ts +154 -0
  129. package/src/types.ts +588 -0
@@ -0,0 +1,90 @@
1
+ // HTTP request core shared by every resource module.
2
+ // Split out of the former single-file SDK entry (src/index.ts); the public
3
+ // surface is re-exported unchanged from there.
4
+ import { NineDeployError } from './errors.js';
5
+ const NO_FETCH = () => Promise.reject(new NineDeployError(0, 'no_fetch', 'No fetch implementation is available'));
6
+ export function createTransport(opts) {
7
+ const baseUrl = opts.baseUrl.replace(/\/$/, '');
8
+ const fetchImpl = opts.fetch ?? (globalThis.fetch ?? NO_FETCH);
9
+ /** Default per-request budget when the caller does not configure one. */
10
+ const DEFAULT_TIMEOUT_MS = 30_000;
11
+ /** A call's parsed body plus read access to its response headers (F1010). */
12
+ async function requestWithHeaders(path, init = {}, minTimeoutMs) {
13
+ const token = opts.getToken?.();
14
+ const headers = { ...(init.headers ?? {}) };
15
+ if (token)
16
+ headers['Authorization'] = `Bearer ${token}`;
17
+ if (init.body !== undefined && headers['Content-Type'] === undefined) {
18
+ headers['Content-Type'] = 'application/json';
19
+ }
20
+ const body = init.body === undefined ? undefined : JSON.stringify(init.body);
21
+ const configured = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
22
+ // A long-running call (image pull) may widen the budget, never narrow it;
23
+ // `0` (timeouts disabled) stays disabled.
24
+ const timeoutMs = configured > 0 && minTimeoutMs !== undefined ? Math.max(configured, minTimeoutMs) : configured;
25
+ // AbortSignal.timeout exists everywhere the SDK runs (Node 17.3+, all
26
+ // modern browsers); it is resolved off globalThis and attached opaquely —
27
+ // FetchLike's shape stays untouched (widening it with `signal: unknown`
28
+ // breaks assigning a real `typeof fetch` at the call sites).
29
+ const out = {
30
+ method: init.method ?? 'GET',
31
+ headers,
32
+ body,
33
+ };
34
+ if (init.credentials !== undefined)
35
+ out.credentials = init.credentials;
36
+ if (init.raw !== undefined) {
37
+ // Attached opaquely, like the signal: FetchLike's `body` stays `string`.
38
+ headers['Content-Type'] = 'application/octet-stream';
39
+ out.body = init.raw;
40
+ }
41
+ if (timeoutMs > 0) {
42
+ const abort = globalThis.AbortSignal;
43
+ if (abort)
44
+ out.signal = abort.timeout(timeoutMs);
45
+ }
46
+ const res = await fetchImpl(`${baseUrl}${path}`, out);
47
+ const header = (name) => (typeof res.headers?.get === 'function' ? res.headers.get(name) : null);
48
+ const text = await res.text();
49
+ // Guard the parse: proxies (HTML 502 pages, empty bodies) must surface as a
50
+ // typed error, not an opaque SyntaxError.
51
+ let parsed;
52
+ try {
53
+ parsed = text ? JSON.parse(text) : undefined;
54
+ }
55
+ catch {
56
+ parsed = undefined;
57
+ }
58
+ if (!res.ok) {
59
+ if (parsed === undefined)
60
+ throw new NineDeployError(res.status, 'http_error', `Request failed (${res.status})`);
61
+ const failure = NineDeployError.fromBody(res.status, parsed);
62
+ const findings = parsed;
63
+ if (init.findings && Array.isArray(findings.errors)) {
64
+ throw new NineDeployError(failure.status, failure.code, failure.message, {
65
+ errors: findings.errors,
66
+ warnings: Array.isArray(findings.warnings) ? findings.warnings : [],
67
+ });
68
+ }
69
+ throw failure;
70
+ }
71
+ // An ok response with an empty/unparseable body (204s, HTML pages from a
72
+ // misconfigured proxy) must never resolve to `undefined` — query functions
73
+ // built on this client would crash TanStack Query ("Query data cannot be
74
+ // undefined"). Empty 2xx bodies resolve to {}; non-JSON bodies surface as
75
+ // a typed error so callers see the real problem instead of a crash.
76
+ if (parsed === undefined) {
77
+ if (text === '')
78
+ return { data: {}, header };
79
+ throw new NineDeployError(res.status, 'invalid_response', `Expected JSON but received a non-JSON body (status ${res.status})`);
80
+ }
81
+ return { data: parsed, header };
82
+ }
83
+ async function request(path, init = {}, minTimeoutMs) {
84
+ return (await requestWithHeaders(path, init, minTimeoutMs)).data;
85
+ }
86
+ const get = (path) => request(path);
87
+ const send = (method, path, body) => request(path, { method, body });
88
+ return { baseUrl, requestWithHeaders, request, get, send };
89
+ }
90
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,2EAA2E;AAC3E,+CAA+C;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAmD9C,MAAM,QAAQ,GAAG,GAAmB,EAAE,CACpC,OAAO,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,sCAAsC,CAAC,CAAC,CAAC;AAW7F,MAAM,UAAU,eAAe,CAAC,IAA6B;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc,IAAI,CAAC,KAAK,IAAI,CAAE,UAAoC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;IACrG,yEAAyE;IACzE,MAAM,kBAAkB,GAAG,MAAM,CAAC;IAElC,6EAA6E;IAC7E,KAAK,UAAU,kBAAkB,CAC/B,IAAY,EACZ,IAAI,GAAgB,EAAE,EACtB,YAAqB;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChC,MAAM,OAAO,GAA2B,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,IAAI,KAAK;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;YACrE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACxD,0EAA0E;QAC1E,0CAA0C;QAC1C,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACjH,sEAAsE;QACtE,0EAA0E;QAC1E,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,GAAG,GAA2H;YAClI,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;YAC5B,OAAO;YACP,IAAI;SACL,CAAC;QACF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACvE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,yEAAyE;YACzE,OAAO,CAAC,cAAc,CAAC,GAAG,0BAA0B,CAAC;YACpD,GAA0B,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QAC9C,CAAC;QACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,KAAK,GAAI,UAAqE,CAAC,WAAW,CAAC;YACjG,IAAI,KAAK;gBAAG,GAA4B,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,4EAA4E;QAC5E,0CAA0C;QAC1C,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAChH,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAkD,CAAC;YACpE,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;oBACvE,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;iBACpE,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,CAAC;QAChB,CAAC;QACD,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,EAAE,IAAI,EAAE,EAAO,EAAE,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,sDAAsD,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACjI,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAW,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,UAAU,OAAO,CAAI,IAAY,EAAE,IAAI,GAAgB,EAAE,EAAE,YAAqB;QACnF,OAAO,CAAC,MAAM,kBAAkB,CAAI,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IAED,MAAM,GAAG,GAAG,CAAI,IAAY,EAAE,EAAE,CAAC,OAAO,CAAI,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,EAAE,CAAC,OAAO,CAAI,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAErG,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,539 @@
1
+ import type { CreateSourceInput, Domain, DatabaseCredentials, Service, TraefikMiddleware, TraefikRouter, TraefikService, VolumeEntry, NinedeployManifest, GithubAppInstallation, TerminalSessionStatus, TerminalTargetKind, TrafficRange, ServerAgentInfo, ServerFeatures, ServicePlacementView, SourcePatch, SwarmNodeRole } from '@ninedeploy/schemas';
2
+ /** Scheduled-job kind (`scheduled_jobs.kind`). */
3
+ export type JobKind = 'deploy' | 'exec' | 'backup';
4
+ /** A scheduled (cron) job as serialized by `GET/POST/PATCH /v1/services/:id/jobs`. */
5
+ export interface ScheduledJob {
6
+ id: number;
7
+ serviceId: number;
8
+ name: string;
9
+ cron: string;
10
+ kind: JobKind;
11
+ /** Empty for exec jobs when the caller is not an operator (r280). */
12
+ command: string;
13
+ enabled: boolean;
14
+ lastRunAt: string | null;
15
+ createdAt: string;
16
+ }
17
+ /** One run of a scheduled job (`GET /v1/services/:id/jobs/:jobId/runs`). */
18
+ export interface JobRun {
19
+ id: number;
20
+ jobId: number;
21
+ status: string;
22
+ output: string;
23
+ exitCode: number | null;
24
+ startedAt: string | null;
25
+ finishedAt: string | null;
26
+ createdAt: string;
27
+ }
28
+ /** `GET /v1/traefik/version` — running vs latest Traefik release. */
29
+ export interface TraefikVersionInfo {
30
+ current: string | null;
31
+ latest: string | null;
32
+ outdated: boolean;
33
+ image: string;
34
+ }
35
+ /** `GET /v1/traefik/config` — the routing table the proxy is serving. */
36
+ export interface TraefikRoutingConfig {
37
+ routers: TraefikRouter[];
38
+ services: TraefikService[];
39
+ middlewares: TraefikMiddleware[];
40
+ }
41
+ export interface HealthStatus {
42
+ status: string;
43
+ db?: string;
44
+ version?: string;
45
+ time?: string;
46
+ }
47
+ /**
48
+ * Who may resolve `${{infisical|doppler:KEY}}` references (0.10.36): services
49
+ * owned by an instance operator always may; others only when one of their
50
+ * workspaces is listed — or, for legacy un-tagged services grandfathered at
51
+ * upgrade, their own id. `workspaces` / `allowedServices` carry display names.
52
+ */
53
+ export interface VaultAllowlistView {
54
+ allowlist: {
55
+ workspaceIds: number[];
56
+ serviceIds: number[];
57
+ };
58
+ workspaces: Array<{
59
+ id: number;
60
+ name: string;
61
+ }>;
62
+ allowedServices: Array<{
63
+ id: number;
64
+ name: string;
65
+ }>;
66
+ }
67
+ /** `GET /v1/settings/vault`. The allowlist fields are additive (0.10.36). */
68
+ export interface VaultSettings extends Partial<VaultAllowlistView> {
69
+ provider: string | null;
70
+ hasToken: boolean;
71
+ projectId: string | null;
72
+ environment: string | null;
73
+ }
74
+ /**
75
+ * Result of `GET /v1/auth/token`. Tells the caller what
76
+ * the current bearer credential is and what it can do.
77
+ * `kind` is `'session'` for JWTs and `'api'` for opaque
78
+ * API tokens. `scopes` lists the resource-scoped
79
+ * authorities (or the legacy `read` / `write` / `operator`
80
+ * shorthand); an interactive session reports
81
+ * `['session']` which is implicit full authority.
82
+ */
83
+ export interface TokenIntrospection {
84
+ kind: 'session' | 'api';
85
+ userId: number;
86
+ scopes: string[];
87
+ expiresAt: string | null;
88
+ isOperator: boolean;
89
+ /** API tokens only. */
90
+ tokenId?: number;
91
+ name?: string;
92
+ }
93
+ export interface TemplateDeployResult {
94
+ serviceId: number;
95
+ serviceName: string;
96
+ serviceSlug: string;
97
+ deploymentId: number;
98
+ databaseId: number | null;
99
+ generatedSecrets: Array<{
100
+ key: string;
101
+ value: string;
102
+ }>;
103
+ stages: Array<{
104
+ id: 'service' | 'environment' | 'database' | 'attachment' | 'deployment';
105
+ status: 'success' | 'skipped';
106
+ message: string;
107
+ }>;
108
+ alreadyInProgress: boolean;
109
+ }
110
+ export interface TemplatePrepareResult {
111
+ serviceId: number;
112
+ serviceName: string;
113
+ serviceSlug: string;
114
+ deploymentId: number;
115
+ generatedSecrets: Array<{
116
+ key: string;
117
+ value: string;
118
+ }>;
119
+ stages: TemplateDeployResult['stages'];
120
+ }
121
+ /**
122
+ * Response from `services.manifest.apply`. The server returns the
123
+ * subset of fields the manifest actually changed under each
124
+ * section; untouched fields stay in the panel-managed column
125
+ * and do not appear in `diff`.
126
+ */
127
+ export interface ApplyManifestResult {
128
+ ok: boolean;
129
+ serviceId: number;
130
+ /** Sections the server actually wrote: `service`, `build_config`. */
131
+ touched: string[];
132
+ diff: {
133
+ service: {
134
+ port?: number;
135
+ healthPath?: string;
136
+ publishedPort?: number | null;
137
+ };
138
+ build: {
139
+ installCmd?: string;
140
+ buildCmd?: string;
141
+ startCmd?: string;
142
+ baseDir?: string;
143
+ dockerfilePath?: string | null;
144
+ restartPolicy?: string;
145
+ stopGraceSeconds?: number;
146
+ };
147
+ };
148
+ }
149
+ /** Body for `services.manifest.apply`. The manifest shape itself
150
+ * comes from `@ninedeploy/schemas`'s `ninedeployManifest` parser. */
151
+ export interface ApplyManifestInput {
152
+ manifest: NinedeployManifest;
153
+ /** `merge` (default) preserves fields the manifest omits;
154
+ * `replace` is per-field (not per-row) and still leaves
155
+ * unmentioned sections alone. */
156
+ strategy?: 'merge' | 'replace';
157
+ }
158
+ /**
159
+ * Single row from `GET /v1/databases/:id/drills`. The drill
160
+ * is an engine-specific smoke check (pg_restore --list,
161
+ * redis-check-rdb, mysqldump header parse, ...) that proves
162
+ * a backup is at least parseable without spinning up a real
163
+ * database container. `details` is the engine-specific
164
+ * output (object counts, banner, ...).
165
+ */
166
+ export interface BackupDrillResult {
167
+ drillId: number;
168
+ ok: true;
169
+ /** `unverifiable` (r356): the check could not run — docker, the engine
170
+ * image or its tool unavailable, or a timeout. Not a verdict on the backup. */
171
+ status: 'passed' | 'failed' | 'unverifiable';
172
+ durationMs: number;
173
+ details: Record<string, unknown> | null;
174
+ error: string | null;
175
+ }
176
+ /** History row from `GET /v1/databases/:id/drills`. */
177
+ export interface BackupDrillEntry {
178
+ id: number;
179
+ databaseId: number;
180
+ backupId: number;
181
+ status: 'pending' | 'running' | 'passed' | 'failed' | 'unverifiable';
182
+ engine: string;
183
+ durationMs: number;
184
+ error: string | null;
185
+ details: Record<string, unknown> | null;
186
+ startedAt: number;
187
+ completedAt: number | null;
188
+ }
189
+ /**
190
+ * Body for `POST /v1/log-drains/search` (G-16). The
191
+ * search round-trips to the configured Loki drain.
192
+ */
193
+ export interface LogSearchInput {
194
+ /** Free-text search (case-insensitive substring). */
195
+ query: string;
196
+ /** Restrict to one service. */
197
+ serviceId?: number;
198
+ /** Window length in minutes (default 15). */
199
+ sinceMinutes?: number;
200
+ /** Hard cap on returned lines (default 200, max 1000). */
201
+ limit?: number;
202
+ /** Query a specific drain. */
203
+ drainId?: number;
204
+ }
205
+ export interface LogSearchLine {
206
+ ts: number;
207
+ line: string;
208
+ service: string | null;
209
+ }
210
+ export interface LogSearchResult {
211
+ drain: {
212
+ id: number;
213
+ name: string;
214
+ type: string;
215
+ };
216
+ serviceId: number | null;
217
+ window: {
218
+ since: string;
219
+ until: string;
220
+ };
221
+ lines: LogSearchLine[];
222
+ }
223
+ /**
224
+ * Built-in email template names (G-30). The full set
225
+ * lives in `apps/server/src/lib/emailTemplates.ts`; the
226
+ * union here is the closed set the SDK can name. The
227
+ * server validates on the wire (zod enum) — a string
228
+ * the SDK does not know about returns 400.
229
+ */
230
+ export type EmailTemplateName = 'password-reset' | 'workspace-invitation' | 'domain-transfer' | 'backup-drill-failed';
231
+ /** One row from `GET /v1/workspaces/:wid/email-templates`. */
232
+ export interface EmailTemplateEntry {
233
+ name: EmailTemplateName;
234
+ /**
235
+ * 'workspace': the workspace's override is what gets sent. 'instance': the
236
+ * email is about the account (password reset), always sent with the built-in
237
+ * text — a workspace override is refused. Absent from servers before 0.10.38.
238
+ */
239
+ scope?: 'workspace' | 'instance';
240
+ /** False when nothing sends this email yet (override is stored, not used). */
241
+ sent?: boolean;
242
+ /** True when the workspace has an override for this name. */
243
+ overridden: boolean;
244
+ /** Override subject; null when the built-in default applies. */
245
+ subject: string | null;
246
+ /** Override text body; null when the built-in default applies. */
247
+ text: string | null;
248
+ }
249
+ /** Result of `POST /v1/workspaces/:wid/email-templates/preview`. */
250
+ export interface EmailTemplateRender {
251
+ subject: string;
252
+ text: string;
253
+ /** True when the rendered text came from a tenant override. */
254
+ overridden: boolean;
255
+ }
256
+ /**
257
+ * Result of `GET /v1/databases/:id/pgbouncer` (and the
258
+ * post-mutation body of the enable / disable routes).
259
+ * `pooledConnectionString` is non-null only when `running`
260
+ * is true — a `docker inspect` failure on the sidecar
261
+ * reports `enabled: true, running: false` so the panel
262
+ * can surface the discrepancy.
263
+ */
264
+ export interface PgbouncerStatus {
265
+ enabled: boolean;
266
+ containerName: string | null;
267
+ port: number;
268
+ running: boolean;
269
+ poolMode: string | null;
270
+ pooledConnectionString: string | null;
271
+ }
272
+ /**
273
+ * Single image row from `GET /v1/housekeeping/images`. Both
274
+ * the human-readable `size` ("1.2GB") and a parsed byte
275
+ * count are returned so the panel can sort without
276
+ * re-parsing. `inUse` is true when at least one container
277
+ * is currently using the image id.
278
+ */
279
+ export interface ImageInfo {
280
+ repository: string;
281
+ tag: string;
282
+ id: string;
283
+ size: string;
284
+ sizeBytes: number;
285
+ createdAt: string;
286
+ ageHours: number;
287
+ dangling: boolean;
288
+ inUse: boolean;
289
+ }
290
+ /** Body for `POST /v1/housekeeping/images/prune`. The server
291
+ * refuses the empty-options combination (it would delete
292
+ * every image not currently in use). */
293
+ export interface PruneImagesInput {
294
+ keepLast?: number;
295
+ olderThanHours?: number;
296
+ danglingOnly?: boolean;
297
+ dryRun?: boolean;
298
+ }
299
+ export interface PruneImagesResult {
300
+ freedBytes: number;
301
+ removed: string[];
302
+ removedLabels: string[];
303
+ dryRun: boolean;
304
+ output: string;
305
+ }
306
+ /**
307
+ * r332: the DNS challenge that proves control of a hostname outside this
308
+ * instance's own zone. Publish a TXT record named `recordName` whose value is
309
+ * `recordValue`, then call `domains.verify` — until then the domain is
310
+ * `status: 'pending'` and Traefik does not route it.
311
+ */
312
+ export interface DomainVerificationChallenge {
313
+ recordName: string;
314
+ recordType: 'TXT';
315
+ recordValue: string;
316
+ }
317
+ /** Response of `POST /v1/services/:id/domains`. `verification` is non-null
318
+ * exactly when the new domain is `pending` ownership proof. */
319
+ export type CreatedDomain = Domain & {
320
+ verifiedAt: string | null;
321
+ dnsRecordId: string | null;
322
+ dnsWarning: string | null;
323
+ verification: DomainVerificationChallenge | null;
324
+ };
325
+ /**
326
+ * Response of `POST /v1/services/:id/domains/:domainId/verify`. Safe to poll:
327
+ * a failed check (`verified: false`) keeps the challenge and says what DNS
328
+ * answered in `error` / `found`; a success flips the domain `active`.
329
+ */
330
+ export type DomainVerifyResult = Domain & {
331
+ verifiedAt: string | null;
332
+ verified: boolean;
333
+ verification: DomainVerificationChallenge | null;
334
+ /** Why the check failed (only when `verified` is false). */
335
+ error?: string;
336
+ /** TXT values DNS returned at `recordName` (only when `verified` is false). */
337
+ found?: string[];
338
+ /** Provider DNS-record failure after a successful verify (the domain is live regardless). */
339
+ dnsWarning?: string | null;
340
+ };
341
+ /**
342
+ * Result of `POST /v1/domains/:id/transfer` (start a
343
+ * transfer). The caller forwards `acceptUrl` to the target
344
+ * user out-of-band; the token is the only secret embedded
345
+ * in the URL.
346
+ */
347
+ export interface StartDomainTransferResult {
348
+ ok: boolean;
349
+ transferId: number;
350
+ acceptUrl: string;
351
+ expiresAt: number;
352
+ }
353
+ /**
354
+ * Result of `GET /v1/domain-transfers/:token` (preview).
355
+ * `effectivelyExpired` is true when the row is still
356
+ * `pending` server-side but `expiresAt` is in the past;
357
+ * the route reports it as `expired` and refuses accept.
358
+ */
359
+ export interface DomainTransferPreview {
360
+ id: number;
361
+ status: 'pending' | 'accepted' | 'cancelled' | 'expired';
362
+ hostname: string;
363
+ sourceEmail: string;
364
+ targetEmail: string;
365
+ expiresAt: number;
366
+ createdAt: number;
367
+ acceptedAt: number | null;
368
+ cancelledAt: number | null;
369
+ effectivelyExpired: boolean;
370
+ }
371
+ /** Body for `POST /v1/domain-transfers/:token/accept`. */
372
+ export interface AcceptDomainTransferInput {
373
+ targetServiceId: number;
374
+ }
375
+ export interface AcceptDomainTransferResult {
376
+ ok: boolean;
377
+ transferId: number;
378
+ domainId: number;
379
+ serviceId: number;
380
+ hostname: string;
381
+ }
382
+ /** 0.14: the credentials route adds the public endpoint while public access is on. */
383
+ export type DatabaseCredentialsWithPublic = DatabaseCredentials & {
384
+ /** Present when public access is enabled; `?sslmode=require` (postgres) in terminate mode. */
385
+ publicConnectionString?: string | null;
386
+ };
387
+ /** `POST /v1/github-apps/:id/installations/sync` (0.13). */
388
+ export interface GithubAppInstallationSync {
389
+ created: number;
390
+ updated: number;
391
+ removed: number;
392
+ sourcesCreated: number;
393
+ /** The installation list hit the page cap; nothing was marked removed. */
394
+ truncated: boolean;
395
+ installations: GithubAppInstallation[];
396
+ }
397
+ /** A repository row from `sources.repos` (`repoId` only for GitHub App sources, 0.13). */
398
+ export interface SourceRepo {
399
+ name: string;
400
+ fullName: string;
401
+ url: string;
402
+ defaultBranch: string;
403
+ isPrivate: boolean;
404
+ repoId?: number;
405
+ }
406
+ /** `sources.update` input: create fields, plus `baseUrl: null` to clear a Gitea base URL (0.13). */
407
+ /**
408
+ * `PATCH /v1/sources/:id`. 0.16 T8: `allowOnNodes` (multi-node) lets a PAT or
409
+ * deploy key be sent to a node for one clone; turning it on needs an
410
+ * interactive session and `password` (step-up). Turning it off never does.
411
+ */
412
+ export type SourceUpdateInput = Omit<Partial<CreateSourceInput>, 'baseUrl'> & {
413
+ baseUrl?: string | null;
414
+ } & Pick<SourcePatch, 'allowOnNodes' | 'pinHostKeys' | 'resetHostKeys' | 'password'>;
415
+ /** The node agent's Swarm opt-in: unset, `servers.swarmJoin` answers 422 `node_swarm_not_enabled`. */
416
+ export declare const AGENT_SWARM_MANAGER_VAR = "NINEDEPLOY_AGENT_SWARM_MANAGER";
417
+ /**
418
+ * One `GET /v1/servers` entry. Every field after `lastSeenAt` is additive and
419
+ * absent on older panels: `terminal` (0.15), `agent`, `features`, the build
420
+ * role and `databases` (multi-node), the Swarm membership (0.16 T8).
421
+ */
422
+ export interface ServerListEntry {
423
+ id: number;
424
+ name: string;
425
+ host: string;
426
+ port: number;
427
+ status: string;
428
+ lastSeenAt: string | null;
429
+ createdAt?: string;
430
+ terminal?: NodeTerminalCapability;
431
+ /** The persisted capability cache; null until a sealed `agent.ping` answered. */
432
+ agent?: ServerAgentInfo | null;
433
+ /** What the node can do today; `reason` is the "update the node agent" hint. */
434
+ features?: ServerFeatures;
435
+ isBuildServer?: boolean;
436
+ buildConcurrency?: number;
437
+ /** Managed databases hosted on the node. */
438
+ databases?: number;
439
+ /** The node's swarm id once it joined; null = not in the swarm. */
440
+ swarmNodeId?: string | null;
441
+ swarmRole?: SwarmNodeRole | null;
442
+ }
443
+ /** `PATCH /v1/servers/:id`: the role after the change and the services that build there. */
444
+ export interface ServerRolesResult {
445
+ id: number;
446
+ name: string;
447
+ isBuildServer: boolean;
448
+ buildConcurrency: number;
449
+ buildServiceIds: number[];
450
+ }
451
+ /** `POST /v1/servers/:id/swarm/join`. */
452
+ export interface SwarmJoinResult {
453
+ serverId: number;
454
+ nodeId: string;
455
+ role: 'worker';
456
+ /** e.g. the join token could not be rotated, or the member label could not be set. */
457
+ warnings?: string[];
458
+ }
459
+ /** `POST /v1/servers/:id/swarm/leave`. */
460
+ export interface SwarmLeaveResult {
461
+ serverId: number;
462
+ nodeId: string;
463
+ /** false when its tasks had not moved within 5 minutes. */
464
+ drained: boolean;
465
+ warnings?: string[];
466
+ }
467
+ /** `GET /v1/volumes` entry: node entries (`?serverId=`) carry `serverId`. */
468
+ export type VolumeListEntry = VolumeEntry & {
469
+ serverId?: number | null;
470
+ };
471
+ /** `POST /v1/volumes`. */
472
+ export interface VolumeCreateResult {
473
+ ok: boolean;
474
+ name: string;
475
+ serverId: number | null;
476
+ }
477
+ /** `GET /v1/services/:id`: the service plus `placement` (additive). */
478
+ export type ServiceDetail = Service & {
479
+ placement?: ServicePlacementView;
480
+ };
481
+ /** `GET /v1/servers` per node (0.15): what the node's agent offers terminals. */
482
+ export interface NodeTerminalCapability {
483
+ host: boolean;
484
+ container: boolean;
485
+ /** Why a capability is missing (an older agent, an unreachable node). */
486
+ reason?: string;
487
+ }
488
+ /** `terminals.list` query. */
489
+ export interface TerminalListQuery {
490
+ status?: TerminalSessionStatus;
491
+ userId?: number;
492
+ targetKind?: TerminalTargetKind;
493
+ /** 1–200, default 50. */
494
+ limit?: number;
495
+ /** Page backwards from this session id (`nextBefore` of the previous page). */
496
+ before?: number;
497
+ }
498
+ /** `traffic.summary` / `traffic.service` query. */
499
+ export interface TrafficQuery {
500
+ /** Default 24h. 1h/24h answer minute buckets, 7d/30d hour buckets. */
501
+ range?: TrafficRange;
502
+ /** Top domains, 1–50 (default 10). */
503
+ top?: number;
504
+ }
505
+ export interface ContainerInspectData {
506
+ id: string;
507
+ name: string;
508
+ image: string;
509
+ state: {
510
+ status: string;
511
+ running: boolean;
512
+ startedAt: string;
513
+ finishedAt: string;
514
+ exitCode: number;
515
+ error: string;
516
+ };
517
+ labels: Record<string, string>;
518
+ traefikTags: Record<string, string>;
519
+ env: string[];
520
+ ports: Record<string, unknown>;
521
+ mounts: Array<{
522
+ source: string;
523
+ destination: string;
524
+ mode: string;
525
+ rw: boolean;
526
+ }>;
527
+ networks: string[];
528
+ resources: {
529
+ memoryLimitBytes: number;
530
+ cpuShares: number;
531
+ restartPolicy: string;
532
+ };
533
+ raw: unknown;
534
+ }
535
+ export interface ContainerComposeData {
536
+ yaml: string;
537
+ inspect: ContainerInspectData;
538
+ }
539
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ // ── end 0.15 T4 ──
2
+ // ── 0.16 T8 surfaces ──
3
+ /** The node agent's Swarm opt-in: unset, `servers.swarmJoin` answers 422 `node_swarm_not_enabled`. */
4
+ export const AGENT_SWARM_MANAGER_VAR = 'NINEDEPLOY_AGENT_SWARM_MANAGER';
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqcA,oBAAoB;AAEpB,yBAAyB;AACzB,sGAAsG;AACtG,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC"}