@ninedeploy/sdk 0.10.5 → 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,312 @@
1
+ import type { ConfigItem, ConfigListResponse, SetConfigInput, SecretProviderKind, SecretProviderTestRequest, SecretProviderTestResult, SecretProviderView, VaultProviderPut, AwsProviderPut } from '@ninedeploy/schemas';
2
+ import type { VaultAllowlistView, VaultSettings, EmailTemplateName, EmailTemplateEntry, EmailTemplateRender } from '../types.js';
3
+ import type { Transport } from '../transport.js';
4
+ export interface SettingsApi {
5
+ settings: {
6
+ get: () => Promise<{
7
+ allowRegistration: boolean;
8
+ acmeEmail: string | null;
9
+ templatesSource: string | null;
10
+ dnsProvider: string | null;
11
+ hasDnsToken: boolean;
12
+ wildcardApex: string | null;
13
+ panelDomain: string | null;
14
+ }>;
15
+ setPanelDomain: (domain: string) => Promise<{
16
+ ok: boolean;
17
+ panelDomain: string | null;
18
+ }>;
19
+ setAllowRegistration: (enabled: boolean) => Promise<{
20
+ ok: boolean;
21
+ allowRegistration: boolean;
22
+ }>;
23
+ setAcmeEmail: (email: string) => Promise<{
24
+ ok: boolean;
25
+ acmeEmail: string | null;
26
+ applied: string;
27
+ }>;
28
+ setTemplatesSource: (source: string) => Promise<{
29
+ ok: boolean;
30
+ templatesSource: string | null;
31
+ }>;
32
+ /** Configure the ACME DNS-01 challenge (wildcard certificates). */
33
+ setDns: (input: {
34
+ provider: string;
35
+ token?: string;
36
+ wildcardApex: string;
37
+ }) => Promise<{
38
+ ok: boolean;
39
+ dnsProvider: string | null;
40
+ wildcardApex: string | null;
41
+ applied: string;
42
+ }>;
43
+ /** Vault provider (deploy-time secret resolution). */
44
+ vault: {
45
+ get: () => Promise<VaultSettings>;
46
+ set: (input: {
47
+ provider: '' | 'infisical' | 'doppler';
48
+ token?: string;
49
+ projectId?: string;
50
+ environment?: string;
51
+ }) => Promise<{
52
+ ok: boolean;
53
+ provider: string | null;
54
+ }>;
55
+ test: () => Promise<{
56
+ ok: boolean;
57
+ secrets: number;
58
+ }>;
59
+ /** Which workspaces (and legacy un-tagged services) may resolve vault references. */
60
+ setAllowlist: (input: {
61
+ workspaceIds: number[];
62
+ serviceIds?: number[];
63
+ }) => Promise<{
64
+ ok: boolean;
65
+ } & VaultAllowlistView>;
66
+ };
67
+ /** Cloudflare DNS-record auto-provisioning for added domains. */
68
+ dnsRecords: {
69
+ get: () => Promise<{
70
+ enabled: boolean;
71
+ hasToken: boolean;
72
+ content: string | null;
73
+ }>;
74
+ set: (input: {
75
+ enabled: boolean;
76
+ token?: string;
77
+ content?: string;
78
+ }) => Promise<{
79
+ ok: boolean;
80
+ enabled: boolean;
81
+ }>;
82
+ test: () => Promise<{
83
+ ok: boolean;
84
+ status?: string;
85
+ error?: string;
86
+ }>;
87
+ };
88
+ /** Namecheap DNS-record auto-provisioning for added domains (G-07 PR-A). */
89
+ namecheap: {
90
+ get: () => Promise<{
91
+ configured: boolean;
92
+ apiUser: string | null;
93
+ clientIp: string | null;
94
+ hasKey: boolean;
95
+ }>;
96
+ set: (input: {
97
+ apiUser: string;
98
+ apiKey: string;
99
+ clientIp: string;
100
+ }) => Promise<{
101
+ ok: boolean;
102
+ apiUser: string;
103
+ }>;
104
+ };
105
+ /**
106
+ * Master-key rotation. `rotate` re-encrypts every stored secret onto the
107
+ * highest key version in `NINEDEPLOY_MASTER_KEYS`; it does NOT rewrite
108
+ * backup envelopes, which is what `warning` reports.
109
+ */
110
+ masterKey: {
111
+ get: () => Promise<{
112
+ activeVersion: number;
113
+ knownVersions: number[];
114
+ rotatable: boolean;
115
+ }>;
116
+ rotate: () => Promise<{
117
+ rotated: number;
118
+ activeVersion: number;
119
+ backupsNotRotated: number;
120
+ warning: string | null;
121
+ }>;
122
+ };
123
+ /**
124
+ * Node-enrolment token (r463): the secret an operator pastes into a
125
+ * remote agent's NINEDEPLOY_ENROLMENT_TOKEN. Returned in clear — the
126
+ * server routes are admin-only for exactly that reason.
127
+ */
128
+ enrolment: {
129
+ get: () => Promise<{
130
+ enabled: boolean;
131
+ token: string | null;
132
+ }>;
133
+ rotate: () => Promise<{
134
+ ok: boolean;
135
+ enabled: boolean;
136
+ token: string;
137
+ }>;
138
+ disable: () => Promise<{
139
+ ok: boolean;
140
+ enabled: boolean;
141
+ }>;
142
+ };
143
+ /**
144
+ * 0.14: HashiCorp Vault / OpenBao and AWS Secrets Manager (operator-only).
145
+ * Credentials are write-only: `list` never returns them, and an omitted
146
+ * credential field on `set` keeps the stored value.
147
+ */
148
+ secretProviders: {
149
+ list: () => Promise<SecretProviderView[]>;
150
+ set: <K extends SecretProviderKind>(kind: K, input: K extends 'vault' ? VaultProviderPut : AwsProviderPut) => Promise<SecretProviderView>;
151
+ delete: (kind: SecretProviderKind) => Promise<{
152
+ ok: boolean;
153
+ deleted: boolean;
154
+ }>;
155
+ test: (kind: SecretProviderKind, probe?: SecretProviderTestRequest) => Promise<SecretProviderTestResult>;
156
+ };
157
+ };
158
+ branding: {
159
+ /** Read the four operator-overridable branding fields. G-30. */
160
+ get: () => Promise<{
161
+ logoUrl: string | null;
162
+ primaryColor: string | null;
163
+ supportEmail: string | null;
164
+ footerHtml: string | null;
165
+ }>;
166
+ /** Set one or more branding fields. Empty strings are stored as `null`. */
167
+ set: (input: {
168
+ logoUrl?: string | null;
169
+ primaryColor?: string | null;
170
+ supportEmail?: string | null;
171
+ footerHtml?: string | null;
172
+ }) => Promise<{
173
+ ok: boolean;
174
+ }>;
175
+ };
176
+ configPresets: {
177
+ /** Every preset the kernel has registered. */
178
+ list: () => Promise<{
179
+ presets: string[];
180
+ }>;
181
+ /** Fetch a single preset's values + description. */
182
+ get: (id: string) => Promise<{
183
+ id: string;
184
+ description: string | null;
185
+ values: Record<string, unknown>;
186
+ createdAt: string;
187
+ }>;
188
+ /** Register a new preset. Throws if `id` already exists. */
189
+ register: (input: {
190
+ id: string;
191
+ description?: string;
192
+ values: Record<string, unknown>;
193
+ }) => Promise<{
194
+ ok: boolean;
195
+ id: string;
196
+ keyCount: number;
197
+ }>;
198
+ /** Write every value in the preset to the live configCenter. */
199
+ apply: (id: string, opts?: {
200
+ override?: Record<string, unknown>;
201
+ }) => Promise<{
202
+ ok: boolean;
203
+ id: string;
204
+ keyCount: number;
205
+ failureCount?: number;
206
+ failures?: Array<{
207
+ key: string;
208
+ status: 'failed';
209
+ reason?: string;
210
+ }>;
211
+ }>;
212
+ /** Unregister a preset. Does NOT undo the apply. */
213
+ remove: (id: string) => Promise<{
214
+ ok: boolean;
215
+ id: string;
216
+ }>;
217
+ };
218
+ config: {
219
+ list: (query?: {
220
+ category?: string;
221
+ pluginId?: string;
222
+ reveal?: boolean;
223
+ }) => Promise<ConfigListResponse>;
224
+ get: (key: string) => Promise<ConfigItem>;
225
+ set: (key: string, input: SetConfigInput) => Promise<{
226
+ ok: boolean;
227
+ key: string;
228
+ }>;
229
+ delete: (key: string) => Promise<{
230
+ ok: boolean;
231
+ key: string;
232
+ }>;
233
+ };
234
+ /**
235
+ * Per-workspace email template overrides (G-30).
236
+ * Read-side is open to members; write-side requires the
237
+ * workspace's admin role. The list / preview are safe
238
+ * to call from a CI script; `set` / `reset` mutate the
239
+ * panel's outbound email and should be operator-only.
240
+ */
241
+ emailTemplates: {
242
+ list: (workspaceId: number) => Promise<{
243
+ workspaceId: number;
244
+ templates: EmailTemplateEntry[];
245
+ }>;
246
+ preview: (workspaceId: number, name: EmailTemplateName, vars?: Record<string, string | number | null>) => Promise<EmailTemplateRender>;
247
+ set: (workspaceId: number, name: EmailTemplateName, subject: string, text: string) => Promise<{
248
+ ok: boolean;
249
+ }>;
250
+ reset: (workspaceId: number, name: EmailTemplateName) => Promise<{
251
+ ok: boolean;
252
+ }>;
253
+ };
254
+ notifications: {
255
+ /**
256
+ * r473: the provider config blob is encrypted at rest and WRITE-ONLY over
257
+ * the API for everything but the secret-free Discord shape — `configJson`
258
+ * is null with `hasConfig: true` for webhook/FCM channels. Never PATCH
259
+ * the read value back: send the full config, `''` to clear it, or omit
260
+ * the field.
261
+ *
262
+ * r552: the write side is `configJson?: string` — the server schema is
263
+ * `z.string().optional()`, so the `null` the type used to allow was a 400.
264
+ */
265
+ listChannels: () => Promise<Array<{
266
+ id: number;
267
+ name: string;
268
+ type: string;
269
+ eventFilter: string;
270
+ active: boolean;
271
+ configJson: string | null;
272
+ hasConfig: boolean;
273
+ createdAt: string;
274
+ }>>;
275
+ createChannel: (input: {
276
+ name: string;
277
+ type: string;
278
+ target: string;
279
+ eventFilter?: string;
280
+ configJson?: string;
281
+ }) => Promise<{
282
+ id: number;
283
+ name: string;
284
+ type: string;
285
+ }>;
286
+ updateChannel: (id: number, input: {
287
+ name?: string;
288
+ target?: string;
289
+ eventFilter?: string;
290
+ active?: boolean;
291
+ configJson?: string;
292
+ }) => Promise<{
293
+ id: number;
294
+ active: boolean;
295
+ }>;
296
+ removeChannel: (id: number) => Promise<void>;
297
+ testChannel: (id: number) => Promise<{
298
+ ok: boolean;
299
+ }>;
300
+ log: () => Promise<Array<{
301
+ id: number;
302
+ channelId: number | null;
303
+ event: string;
304
+ entity: string | null;
305
+ status: string;
306
+ error: string | null;
307
+ ts: string;
308
+ }>>;
309
+ };
310
+ }
311
+ export declare function settingsApi(t: Transport): SettingsApi;
312
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/resources/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ export function settingsApi(t) {
2
+ const { get, send, request } = t;
3
+ return {
4
+ settings: {
5
+ get: () => get('/v1/settings'),
6
+ setPanelDomain: (domain) => send('PUT', '/v1/settings/panel-domain', { domain }),
7
+ setAllowRegistration: (enabled) => send('PUT', '/v1/settings/allow-registration', { enabled }),
8
+ setAcmeEmail: (email) => send('PUT', '/v1/settings/acme-email', { email }),
9
+ setTemplatesSource: (source) => send('PUT', '/v1/settings/templates-source', { source }),
10
+ setDns: (input) => send('PUT', '/v1/settings/dns', input),
11
+ vault: {
12
+ get: () => get('/v1/settings/vault'),
13
+ set: (input) => send('PUT', '/v1/settings/vault', input),
14
+ test: () => send('POST', '/v1/settings/vault/test'),
15
+ setAllowlist: (input) => send('PUT', '/v1/settings/vault/allowlist', input),
16
+ },
17
+ dnsRecords: {
18
+ get: () => get('/v1/settings/dns-records'),
19
+ set: (input) => send('PUT', '/v1/settings/dns-records', input),
20
+ test: () => send('POST', '/v1/settings/dns-records/test'),
21
+ },
22
+ namecheap: {
23
+ get: () => get('/v1/settings/dns-records/namecheap'),
24
+ set: (input) => send('PUT', '/v1/settings/dns-records/namecheap', input),
25
+ },
26
+ masterKey: {
27
+ get: () => get('/v1/settings/master-key'),
28
+ rotate: () => send('POST', '/v1/settings/master-key/rotate'),
29
+ },
30
+ enrolment: {
31
+ get: () => get('/v1/settings/enrolment'),
32
+ rotate: () => send('POST', '/v1/settings/enrolment/rotate'),
33
+ disable: () => send('DELETE', '/v1/settings/enrolment'),
34
+ },
35
+ secretProviders: {
36
+ list: () => get('/v1/settings/secret-providers'),
37
+ set: (kind, input) => send('PUT', `/v1/settings/secret-providers/${kind}`, input),
38
+ delete: (kind) => send('DELETE', `/v1/settings/secret-providers/${kind}`),
39
+ test: (kind, probe) => send('POST', `/v1/settings/secret-providers/${kind}/test`, probe ?? {}),
40
+ },
41
+ },
42
+ branding: {
43
+ get: () => get('/v1/branding'),
44
+ set: (input) => send('PATCH', '/v1/branding', input),
45
+ },
46
+ configPresets: {
47
+ list: () => get('/v1/config-presets'),
48
+ get: (id) => get(`/v1/config-presets/${encodeURIComponent(id)}`),
49
+ register: (input) => send('POST', '/v1/config-presets', input),
50
+ apply: (id, opts) => send('PUT', `/v1/config-presets/${encodeURIComponent(id)}/apply`, opts ?? {}),
51
+ remove: (id) => send('DELETE', `/v1/config-presets/${encodeURIComponent(id)}`),
52
+ },
53
+ config: {
54
+ list: (query) => {
55
+ const parts = [];
56
+ if (query?.category)
57
+ parts.push(`category=${encodeURIComponent(query.category)}`);
58
+ if (query?.pluginId)
59
+ parts.push(`pluginId=${encodeURIComponent(query.pluginId)}`);
60
+ if (query?.reveal)
61
+ parts.push('reveal=true');
62
+ const qs = parts.length ? `?${parts.join('&')}` : '';
63
+ return get(`/v1/config${qs}`);
64
+ },
65
+ get: (key) => get(`/v1/config/${encodeURIComponent(key)}`),
66
+ set: (key, input) => send('POST', `/v1/config/${encodeURIComponent(key)}`, input),
67
+ delete: (key) => send('DELETE', `/v1/config/${encodeURIComponent(key)}`),
68
+ },
69
+ emailTemplates: {
70
+ list: (workspaceId) => get(`/v1/workspaces/${workspaceId}/email-templates`),
71
+ preview: (workspaceId, name, vars) => send('POST', `/v1/workspaces/${workspaceId}/email-templates/preview`, { name, vars: vars ?? {} }),
72
+ set: (workspaceId, name, subject, text) => send('PUT', `/v1/workspaces/${workspaceId}/email-templates/${name}`, { subject, text }),
73
+ reset: (workspaceId, name) => send('DELETE', `/v1/workspaces/${workspaceId}/email-templates/${name}`, {}),
74
+ },
75
+ notifications: {
76
+ listChannels: () => get('/v1/notifications/channels'),
77
+ createChannel: (input) => send('POST', '/v1/notifications/channels', input),
78
+ updateChannel: (id, input) => send('PATCH', `/v1/notifications/channels/${id}`, input),
79
+ removeChannel: async (id) => { await request(`/v1/notifications/channels/${id}`, { method: 'DELETE' }); },
80
+ testChannel: (id) => send('POST', `/v1/notifications/channels/${id}/test`),
81
+ log: () => get('/v1/notifications/log'),
82
+ },
83
+ };
84
+ }
85
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/resources/settings.ts"],"names":[],"mappings":"AA0JA,MAAM,UAAU,WAAW,CAAC,CAAY;IACtC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO;QACL,QAAQ,EAAE;YACR,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAsM,cAAc,CAAC;YACnO,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,IAAI,CAA8C,KAAK,EAAE,2BAA2B,EAAE,EAAE,MAAM,EAAE,CAAC;YACnG,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CAChC,IAAI,CAA8C,KAAK,EAAE,iCAAiC,EAAE,EAAE,OAAO,EAAE,CAAC;YAC1G,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CACtB,IAAI,CAA6D,KAAK,EAAE,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC;YAC/G,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAC7B,IAAI,CAAkD,KAAK,EAAE,+BAA+B,EAAE,EAAE,MAAM,EAAE,CAAC;YAC3G,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,IAAI,CAA4F,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC;YACnI,KAAK,EAAE;gBACL,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAgB,oBAAoB,CAAC;gBACnD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAA2C,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC;gBAClG,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAmC,MAAM,EAAE,yBAAyB,CAAC;gBACrF,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAuC,KAAK,EAAE,8BAA8B,EAAE,KAAK,CAAC;aAClH;YACD,UAAU,EAAE;gBACV,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAkE,0BAA0B,CAAC;gBAC3G,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAoC,KAAK,EAAE,0BAA0B,EAAE,KAAK,CAAC;gBACjG,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAmD,MAAM,EAAE,+BAA+B,CAAC;aAC5G;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAA4F,oCAAoC,CAAC;gBAC/I,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAmC,KAAK,EAAE,oCAAoC,EAAE,KAAK,CAAC;aAC3G;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAyE,yBAAyB,CAAC;gBACjH,MAAM,EAAE,GAAG,EAAE,CACX,IAAI,CACF,MAAM,EACN,gCAAgC,CACjC;aACJ;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAA6C,wBAAwB,CAAC;gBACpF,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAmD,MAAM,EAAE,+BAA+B,CAAC;gBAC7G,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAoC,QAAQ,EAAE,wBAAwB,CAAC;aAC3F;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAuB,+BAA+B,CAAC;gBACtE,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAqB,KAAK,EAAE,iCAAiC,IAAI,EAAE,EAAE,KAAK,CAAC;gBACrG,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAoC,QAAQ,EAAE,iCAAiC,IAAI,EAAE,CAAC;gBAC5G,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAI,CAA2B,MAAM,EAAE,iCAAiC,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;aACpG;SACF;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAKX,cAAc,CAAC;YAClB,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAkB,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC;SACtE;QACD,aAAa,EAAE;YACb,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAwB,oBAAoB,CAAC;YAC5D,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAKb,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;YAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAgD,MAAM,EAAE,oBAAoB,EAAE,KAAK,CAAC;YAC7G,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAMtB,KAAK,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;YAC3E,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAA8B,QAAQ,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;SAC5G;QACD,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACd,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,IAAI,KAAK,EAAE,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAClF,IAAI,KAAK,EAAE,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAClF,IAAI,KAAK,EAAE,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7C,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,OAAO,GAAG,CAAqB,aAAa,EAAE,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAa,cAAc,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAA+B,MAAM,EAAE,cAAc,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;YAC/G,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAA+B,QAAQ,EAAE,cAAc,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;SACvG;QACD,cAAc,EAAE;YACd,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CACpB,GAAG,CACD,kBAAkB,WAAW,kBAAkB,CAChD;YACH,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CACnC,IAAI,CACF,MAAM,EACN,kBAAkB,WAAW,0BAA0B,EACvD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAC3B;YACH,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CACxC,IAAI,CACF,KAAK,EACL,kBAAkB,WAAW,oBAAoB,IAAI,EAAE,EACvD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB;YACH,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAC3B,IAAI,CAAkB,QAAQ,EAAE,kBAAkB,WAAW,oBAAoB,IAAI,EAAE,EAAE,EAAE,CAAC;SAC/F;QACD,aAAa,EAAE;YACb,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAA4J,4BAA4B,CAAC;YAChN,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,4BAA4B,EAAE,KAAK,CAAC;YAC3E,aAAa,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,8BAA8B,EAAE,EAAE,EAAE,KAAK,CAAC;YACtF,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,8BAA8B,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YACzG,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,8BAA8B,EAAE,OAAO,CAAC;YAC1E,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC;SACxC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,87 @@
1
+ import type { CreateSourceInput, Source, GithubApp, GithubAppCreate, GithubAppInstallation, GithubAppManifestRequest, GithubAppManifestResponse, GithubAppPatch } from '@ninedeploy/schemas';
2
+ import type { GithubAppInstallationSync, SourceRepo, SourceUpdateInput } from '../types.js';
3
+ import type { Transport } from '../transport.js';
4
+ export interface SourcesApi {
5
+ sources: {
6
+ list: () => Promise<Source[]>;
7
+ create: (input: CreateSourceInput) => Promise<Source>;
8
+ update: (id: number, input: SourceUpdateInput) => Promise<Source>;
9
+ remove: (id: number) => Promise<void>;
10
+ repos: (id: number) => Promise<SourceRepo[]>;
11
+ /**
12
+ * `repos` plus the server's diagnostic for the list (F1010): a list capped
13
+ * at the page limit, a later page that failed, a classic token without the
14
+ * `repo` scope, or a provider error. The server sends it in the
15
+ * `x-nd-source-error` response header; `warning` is null when absent.
16
+ */
17
+ reposWithDiagnostics: (id: number) => Promise<{
18
+ repos: Awaited<ReturnType<SourcesApi['sources']['repos']>>;
19
+ warning: string | null;
20
+ }>;
21
+ branches: (id: number, repo: string) => Promise<string[]>;
22
+ /**
23
+ * Live credential check — proves a stored token still authenticates.
24
+ * GitHub successes also say what the token can see (F1008): `tokenKind`,
25
+ * the classic token's `scopes` (from `x-oauth-scopes`) and `warnings`
26
+ * explaining why private repositories may be missing. Never the token.
27
+ */
28
+ test: (id: number) => Promise<{
29
+ ok: boolean;
30
+ provider?: string;
31
+ login?: string;
32
+ name?: string | null;
33
+ status?: number;
34
+ error?: string;
35
+ tokenKind?: 'classic' | 'fine-grained' | 'oauth' | 'unknown';
36
+ scopes?: string[];
37
+ warnings?: string[];
38
+ /** GitHub App sources (0.13): the installation's repository selection, permissions and state. */
39
+ repositorySelection?: string;
40
+ permissions?: Record<string, string>;
41
+ suspended?: boolean;
42
+ }>;
43
+ /**
44
+ * Server-side generation of an ed25519 deploy key pair. The private key
45
+ * is encrypted into the source row and never leaves the server; only the
46
+ * public key and fingerprint are returned (the operator pastes the public
47
+ * key into the Git provider's "Deploy keys" UI).
48
+ */
49
+ generateDeployKey: (id: number) => Promise<{
50
+ publicKey: string;
51
+ fingerprint: string;
52
+ }>;
53
+ };
54
+ /**
55
+ * GitHub App registration and installations (0.13). Operator-only. No
56
+ * response carries the private key, webhook secret or client secret.
57
+ */
58
+ githubApps: {
59
+ list: () => Promise<GithubApp[]>;
60
+ get: (id: number) => Promise<GithubApp>;
61
+ /** Manual entry (GitHub Enterprise Server, or an existing App). Omit both base URLs for github.com. */
62
+ create: (input: GithubAppCreate) => Promise<GithubApp>;
63
+ /**
64
+ * Start the one-click manifest flow. Submit `manifest` (JSON-encoded) as
65
+ * the `manifest` field of a form POSTed to `postUrl`; GitHub then sends
66
+ * the browser to `/github-apps/callback?code&state`.
67
+ */
68
+ manifest: (input: GithubAppManifestRequest) => Promise<GithubAppManifestResponse>;
69
+ /** Finish the manifest flow with the `code` and `state` GitHub returned. Same user only, single use. */
70
+ completeManifest: (input: {
71
+ code: string;
72
+ state: string;
73
+ }) => Promise<GithubApp>;
74
+ patch: (id: number, input: GithubAppPatch) => Promise<GithubApp>;
75
+ /** Replace the private key; the server proves it with `GET /app` first. */
76
+ rotateKey: (id: number, privateKey: string) => Promise<GithubApp>;
77
+ /** Re-point the App's webhook at this panel (after a panel domain change). */
78
+ webhookSync: (id: number) => Promise<GithubApp>;
79
+ rotateWebhookSecret: (id: number) => Promise<GithubApp>;
80
+ /** Forget the App; its generated sources stay and their clones fail closed. */
81
+ remove: (id: number) => Promise<void>;
82
+ syncInstallations: (id: number) => Promise<GithubAppInstallationSync>;
83
+ installations: (id: number) => Promise<GithubAppInstallation[]>;
84
+ };
85
+ }
86
+ export declare function sourcesApi(t: Transport): SourcesApi;
87
+ //# sourceMappingURL=sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/resources/sources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export function sourcesApi(t) {
2
+ const { get, send, request, requestWithHeaders } = t;
3
+ return {
4
+ sources: {
5
+ list: () => get('/v1/sources'),
6
+ create: (input) => send('POST', '/v1/sources', input),
7
+ update: (id, input) => send('PATCH', `/v1/sources/${id}`, input),
8
+ remove: async (id) => {
9
+ await request(`/v1/sources/${id}`, { method: 'DELETE' });
10
+ },
11
+ repos: (id) => get(`/v1/sources/${id}/repos`),
12
+ reposWithDiagnostics: async (id) => {
13
+ const { data, header } = await requestWithHeaders(`/v1/sources/${id}/repos`);
14
+ const warning = header('x-nd-source-error')?.trim();
15
+ return { repos: Array.isArray(data) ? data : [], warning: warning ? warning : null };
16
+ },
17
+ branches: (id, repo) => get(`/v1/sources/${id}/branches?repo=${encodeURIComponent(repo)}`),
18
+ test: (id) => get(`/v1/sources/${id}/test`),
19
+ generateDeployKey: (id) => send('POST', `/v1/sources/${id}/generate-deploy-key`),
20
+ },
21
+ githubApps: {
22
+ list: () => get('/v1/github-apps'),
23
+ get: (id) => get(`/v1/github-apps/${id}`),
24
+ create: (input) => send('POST', '/v1/github-apps', input),
25
+ manifest: (input) => send('POST', '/v1/github-apps/manifest', input),
26
+ completeManifest: (input) => send('POST', '/v1/github-apps/manifest/complete', input),
27
+ patch: (id, input) => send('PATCH', `/v1/github-apps/${id}`, input),
28
+ rotateKey: (id, privateKey) => send('PUT', `/v1/github-apps/${id}/private-key`, { privateKey }),
29
+ webhookSync: (id) => send('POST', `/v1/github-apps/${id}/webhook/sync`),
30
+ rotateWebhookSecret: (id) => send('POST', `/v1/github-apps/${id}/webhook-secret/rotate`),
31
+ remove: async (id) => {
32
+ await request(`/v1/github-apps/${id}`, { method: 'DELETE' });
33
+ },
34
+ syncInstallations: (id) => send('POST', `/v1/github-apps/${id}/installations/sync`),
35
+ installations: (id) => get(`/v1/github-apps/${id}/installations`),
36
+ },
37
+ };
38
+ }
39
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/resources/sources.ts"],"names":[],"mappings":"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"}