@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.
- package/LICENSE +21 -21
- package/dist/apiPath.d.ts +5 -0
- package/dist/apiPath.d.ts.map +1 -0
- package/dist/apiPath.js +18 -0
- package/dist/apiPath.js.map +1 -0
- package/dist/client.d.ts +29 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +51 -0
- package/dist/client.js.map +1 -0
- package/dist/databaseImport.d.ts +138 -0
- package/dist/databaseImport.d.ts.map +1 -0
- package/dist/databaseImport.js +126 -0
- package/dist/databaseImport.js.map +1 -0
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +12 -1973
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -641
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +25 -21
- package/dist/manifest.js.map +1 -1
- package/dist/resources/auth.d.ts +282 -0
- package/dist/resources/auth.d.ts.map +1 -0
- package/dist/resources/auth.js +111 -0
- package/dist/resources/auth.js.map +1 -0
- package/dist/resources/databases.d.ts +178 -0
- package/dist/resources/databases.d.ts.map +1 -0
- package/dist/resources/databases.js +82 -0
- package/dist/resources/databases.js.map +1 -0
- package/dist/resources/deploys.d.ts +125 -0
- package/dist/resources/deploys.d.ts.map +1 -0
- package/dist/resources/deploys.js +46 -0
- package/dist/resources/deploys.js.map +1 -0
- package/dist/resources/domains.d.ts +101 -0
- package/dist/resources/domains.d.ts.map +1 -0
- package/dist/resources/domains.js +28 -0
- package/dist/resources/domains.js.map +1 -0
- package/dist/resources/env.d.ts +55 -0
- package/dist/resources/env.d.ts.map +1 -0
- package/dist/resources/env.js +33 -0
- package/dist/resources/env.js.map +1 -0
- package/dist/resources/logs.d.ts +27 -0
- package/dist/resources/logs.d.ts.map +1 -0
- package/dist/resources/logs.js +18 -0
- package/dist/resources/logs.js.map +1 -0
- package/dist/resources/network.d.ts +134 -0
- package/dist/resources/network.d.ts.map +1 -0
- package/dist/resources/network.js +33 -0
- package/dist/resources/network.js.map +1 -0
- package/dist/resources/plugins.d.ts +42 -0
- package/dist/resources/plugins.d.ts.map +1 -0
- package/dist/resources/plugins.js +22 -0
- package/dist/resources/plugins.js.map +1 -0
- package/dist/resources/servers.d.ts +130 -0
- package/dist/resources/servers.d.ts.map +1 -0
- package/dist/resources/servers.js +37 -0
- package/dist/resources/servers.js.map +1 -0
- package/dist/resources/services.d.ts +185 -0
- package/dist/resources/services.d.ts.map +1 -0
- package/dist/resources/services.js +83 -0
- package/dist/resources/services.js.map +1 -0
- package/dist/resources/settings.d.ts +312 -0
- package/dist/resources/settings.d.ts.map +1 -0
- package/dist/resources/settings.js +85 -0
- package/dist/resources/settings.js.map +1 -0
- package/dist/resources/sources.d.ts +87 -0
- package/dist/resources/sources.d.ts.map +1 -0
- package/dist/resources/sources.js +39 -0
- package/dist/resources/sources.js.map +1 -0
- package/dist/resources/system.d.ts +240 -0
- package/dist/resources/system.d.ts.map +1 -0
- package/dist/resources/system.js +86 -0
- package/dist/resources/system.js.map +1 -0
- package/dist/resources/templates.d.ts +36 -0
- package/dist/resources/templates.d.ts.map +1 -0
- package/dist/resources/templates.js +17 -0
- package/dist/resources/templates.js.map +1 -0
- package/dist/resources/terminals.d.ts +60 -0
- package/dist/resources/terminals.d.ts.map +1 -0
- package/dist/resources/terminals.js +35 -0
- package/dist/resources/terminals.js.map +1 -0
- package/dist/resources/traefik.d.ts +84 -0
- package/dist/resources/traefik.d.ts.map +1 -0
- package/dist/resources/traefik.js +35 -0
- package/dist/resources/traefik.js.map +1 -0
- package/dist/resources/volumes.d.ts +114 -0
- package/dist/resources/volumes.d.ts.map +1 -0
- package/dist/resources/volumes.js +47 -0
- package/dist/resources/volumes.js.map +1 -0
- package/dist/terminal.d.ts +98 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +180 -0
- package/dist/terminal.js.map +1 -0
- package/dist/transport.d.ts +61 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +90 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +539 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +5 -4
- package/src/apiPath.ts +23 -0
- package/src/client.ts +70 -0
- package/src/databaseImport.ts +174 -0
- package/src/errors.ts +27 -0
- package/src/index.ts +118 -0
- package/src/manifest.ts +414 -0
- package/src/resources/auth.ts +357 -0
- package/src/resources/databases.ts +227 -0
- package/src/resources/deploys.ts +161 -0
- package/src/resources/domains.ts +142 -0
- package/src/resources/env.ts +84 -0
- package/src/resources/logs.ts +48 -0
- package/src/resources/network.ts +126 -0
- package/src/resources/plugins.ts +52 -0
- package/src/resources/servers.ts +141 -0
- package/src/resources/services.ts +250 -0
- package/src/resources/settings.ts +275 -0
- package/src/resources/sources.ts +131 -0
- package/src/resources/system.ts +281 -0
- package/src/resources/templates.ts +55 -0
- package/src/resources/terminals.ts +112 -0
- package/src/resources/traefik.ts +116 -0
- package/src/resources/volumes.ts +138 -0
- package/src/terminal.ts +254 -0
- package/src/transport.ts +154 -0
- package/src/types.ts +588 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import type { ActivityEntry, AlertRule, CreateAlertRuleInput, DoctorFixRequestInput, DoctorFixResponse, DoctorReport, DemoSeedResult, DockerResources, MetricSeries, StatsSnapshot, TopologyGraph, UpdateCheckResult, SelfUpdateStatus, AutoPruneConfigUpdateInput, AutoPruneStatus, AutoPruneRunResult, PanelBackupObject, PanelBackupRestore, PanelBackupSettingsPatch, PanelBackupStatus } from '@ninedeploy/schemas';
|
|
2
|
+
import type { HealthStatus, ImageInfo, PruneImagesInput, PruneImagesResult } from '../types.js';
|
|
3
|
+
import type { Transport } from '../transport.js';
|
|
4
|
+
export interface SystemApi {
|
|
5
|
+
system: {
|
|
6
|
+
resources: () => Promise<DockerResources>;
|
|
7
|
+
pruneImages: () => Promise<{
|
|
8
|
+
ok: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
exportUrl: () => string;
|
|
11
|
+
/** Latest-release check (admin). updateAvailable is null when offline/disabled. */
|
|
12
|
+
updateCheck: (force?: boolean) => Promise<UpdateCheckResult>;
|
|
13
|
+
/** State of a panel-initiated upgrade (idle/running/success/failed/unsupported). */
|
|
14
|
+
updateStatus: () => Promise<SelfUpdateStatus>;
|
|
15
|
+
/**
|
|
16
|
+
* Start upgrading the panel itself to an exact release tag; the updater survives the restart it performs.
|
|
17
|
+
* Refused with 409 `deploys_in_flight` while deployments are executing unless `force` is set (r572).
|
|
18
|
+
*/
|
|
19
|
+
updateStart: (version: string, opts?: {
|
|
20
|
+
force?: boolean;
|
|
21
|
+
}) => Promise<{
|
|
22
|
+
ok: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
/** Recent docker daemon events (single-shot, for the Docker dashboard feed). */
|
|
25
|
+
dockerEvents: (minutes?: number) => Promise<{
|
|
26
|
+
events: Array<{
|
|
27
|
+
time: string;
|
|
28
|
+
type: string;
|
|
29
|
+
action: string;
|
|
30
|
+
name: string;
|
|
31
|
+
}>;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Panel self-backup (0.12, operator-only): the `/system/export` archive sealed with a
|
|
35
|
+
* recovery passphrase and written to a backup destination on a schedule.
|
|
36
|
+
*/
|
|
37
|
+
panelBackup: {
|
|
38
|
+
/** Settings, last run, next run (passphrase never returned — only `hasPassphrase`). */
|
|
39
|
+
get: () => Promise<PanelBackupStatus>;
|
|
40
|
+
/** Omitted fields keep their stored value; `passphrase` omitted = keep the stored one. */
|
|
41
|
+
update: (input: PanelBackupSettingsPatch) => Promise<PanelBackupStatus>;
|
|
42
|
+
/** "Back up now": starts a run in the background (409 while one is running); poll `get()`. */
|
|
43
|
+
run: () => Promise<{
|
|
44
|
+
ok: boolean;
|
|
45
|
+
started: boolean;
|
|
46
|
+
}>;
|
|
47
|
+
/** Panel backups in a destination (default: the configured one), newest first. */
|
|
48
|
+
list: (destinationId?: number) => Promise<{
|
|
49
|
+
destinationId: number;
|
|
50
|
+
items: PanelBackupObject[];
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* DESTRUCTIVE: replaces this panel's database, master key, .env and Traefik config with
|
|
54
|
+
* the backup's. `confirm` must repeat the object's file name. Restart the panel afterwards.
|
|
55
|
+
*/
|
|
56
|
+
restore: (input: PanelBackupRestore) => Promise<{
|
|
57
|
+
ok: boolean;
|
|
58
|
+
message: string;
|
|
59
|
+
meta: unknown;
|
|
60
|
+
backupPath: string;
|
|
61
|
+
}>;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
health: () => Promise<HealthStatus>;
|
|
65
|
+
about: {
|
|
66
|
+
get: () => Promise<{
|
|
67
|
+
name: string;
|
|
68
|
+
version: string;
|
|
69
|
+
description: string;
|
|
70
|
+
license: string;
|
|
71
|
+
repo: string;
|
|
72
|
+
docs: string;
|
|
73
|
+
techStack: Array<{
|
|
74
|
+
category: string;
|
|
75
|
+
items: string[];
|
|
76
|
+
}>;
|
|
77
|
+
changelog: Array<{
|
|
78
|
+
version: string;
|
|
79
|
+
date: string;
|
|
80
|
+
title: string;
|
|
81
|
+
changes: string[];
|
|
82
|
+
}>;
|
|
83
|
+
/** Instance counts are only returned for authenticated requests. */
|
|
84
|
+
stats?: {
|
|
85
|
+
services: number;
|
|
86
|
+
databases: number;
|
|
87
|
+
deployments: number;
|
|
88
|
+
users: number;
|
|
89
|
+
};
|
|
90
|
+
}>;
|
|
91
|
+
};
|
|
92
|
+
dashboard: {
|
|
93
|
+
get: () => Promise<{
|
|
94
|
+
stats: {
|
|
95
|
+
services: number;
|
|
96
|
+
databases: number;
|
|
97
|
+
deployments: number;
|
|
98
|
+
domains: number;
|
|
99
|
+
webhooks: number;
|
|
100
|
+
running: number;
|
|
101
|
+
stopped: number;
|
|
102
|
+
errored: number;
|
|
103
|
+
dbRunning: number; /** Whole-node count — operators only, null for members (r470). */
|
|
104
|
+
containers: number | null;
|
|
105
|
+
};
|
|
106
|
+
health: Array<{
|
|
107
|
+
serviceId: number;
|
|
108
|
+
name: string;
|
|
109
|
+
slug: string;
|
|
110
|
+
type: string;
|
|
111
|
+
status: string;
|
|
112
|
+
healthy: boolean | null;
|
|
113
|
+
responseMs: number | null;
|
|
114
|
+
port: number | null;
|
|
115
|
+
runtimeId: string | null;
|
|
116
|
+
commitSha: string | null;
|
|
117
|
+
lastDeploy: string | null;
|
|
118
|
+
}>;
|
|
119
|
+
recentDeploys: Array<{
|
|
120
|
+
id: number;
|
|
121
|
+
serviceId: number;
|
|
122
|
+
serviceName: string;
|
|
123
|
+
status: string;
|
|
124
|
+
commitSha: string | null;
|
|
125
|
+
message: string | null;
|
|
126
|
+
trigger: string;
|
|
127
|
+
finishedAt: string | null;
|
|
128
|
+
createdAt: string;
|
|
129
|
+
}>;
|
|
130
|
+
}>;
|
|
131
|
+
};
|
|
132
|
+
stats: {
|
|
133
|
+
snapshot: () => Promise<StatsSnapshot>;
|
|
134
|
+
metrics: (serviceId: number, opts?: {
|
|
135
|
+
kind?: 'cpu' | 'memory';
|
|
136
|
+
minutes?: number;
|
|
137
|
+
}) => Promise<MetricSeries>;
|
|
138
|
+
};
|
|
139
|
+
topology: {
|
|
140
|
+
get: () => Promise<TopologyGraph>;
|
|
141
|
+
};
|
|
142
|
+
activity: {
|
|
143
|
+
/**
|
|
144
|
+
* Filter + paginate the audit trail. Omitted filters return the newest page.
|
|
145
|
+
* `entity` matches the bare name and `<name> #<id>`; `serviceId` (with the
|
|
146
|
+
* service name as `entity`) narrows to one service's trail.
|
|
147
|
+
*/
|
|
148
|
+
list: (query?: {
|
|
149
|
+
entity?: string;
|
|
150
|
+
serviceId?: number;
|
|
151
|
+
action?: string;
|
|
152
|
+
userId?: number;
|
|
153
|
+
before?: number;
|
|
154
|
+
}) => Promise<{
|
|
155
|
+
entries: ActivityEntry[];
|
|
156
|
+
nextCursor: number | null;
|
|
157
|
+
}>;
|
|
158
|
+
};
|
|
159
|
+
alerts: {
|
|
160
|
+
list: () => Promise<AlertRule[]>;
|
|
161
|
+
create: (input: CreateAlertRuleInput) => Promise<AlertRule>;
|
|
162
|
+
update: (id: number, input: Partial<CreateAlertRuleInput>) => Promise<AlertRule>;
|
|
163
|
+
remove: (id: number) => Promise<void>;
|
|
164
|
+
};
|
|
165
|
+
metricHistory: {
|
|
166
|
+
/** Current configuration snapshot (backend choice, enabled flag, retention, last-flush). */
|
|
167
|
+
get: () => Promise<{
|
|
168
|
+
enabled: boolean;
|
|
169
|
+
backend: 'builtin' | 'prometheus' | 'influxdb';
|
|
170
|
+
events: string[];
|
|
171
|
+
retentionDays: number;
|
|
172
|
+
lastFlush: {
|
|
173
|
+
ts: number;
|
|
174
|
+
backend: string;
|
|
175
|
+
count: number;
|
|
176
|
+
};
|
|
177
|
+
}>;
|
|
178
|
+
/** Run the built-in backend's retention sweep. Returns the row count trimmed. */
|
|
179
|
+
flush: () => Promise<{
|
|
180
|
+
ok: boolean;
|
|
181
|
+
backend: 'builtin';
|
|
182
|
+
deleted: number;
|
|
183
|
+
}>;
|
|
184
|
+
};
|
|
185
|
+
buildCache: {
|
|
186
|
+
/** Per-backend counters + merged totals. G-01 PR-A. */
|
|
187
|
+
stats: () => Promise<{
|
|
188
|
+
backends: Array<{
|
|
189
|
+
name: string;
|
|
190
|
+
entries: number;
|
|
191
|
+
totalBytes: number;
|
|
192
|
+
hits: number;
|
|
193
|
+
misses: number;
|
|
194
|
+
stores: number;
|
|
195
|
+
evictions: number;
|
|
196
|
+
}>;
|
|
197
|
+
totals: {
|
|
198
|
+
entries: number;
|
|
199
|
+
totalBytes: number;
|
|
200
|
+
hits: number;
|
|
201
|
+
misses: number;
|
|
202
|
+
stores: number;
|
|
203
|
+
evictions: number;
|
|
204
|
+
};
|
|
205
|
+
}>;
|
|
206
|
+
};
|
|
207
|
+
housekeeping: {
|
|
208
|
+
getAutoPrune: () => Promise<AutoPruneStatus>;
|
|
209
|
+
updateAutoPrune: (input: AutoPruneConfigUpdateInput) => Promise<AutoPruneStatus>;
|
|
210
|
+
runPrune: () => Promise<AutoPruneRunResult>;
|
|
211
|
+
/**
|
|
212
|
+
* List every image on the host with repo / tag / size /
|
|
213
|
+
* created / dangling / inUse metadata. The companion to
|
|
214
|
+
* the auto-prune cron: this is what the operator
|
|
215
|
+
* inspects before `pruneImages({ keepLast: 5 })`.
|
|
216
|
+
*/
|
|
217
|
+
listImages: () => Promise<{
|
|
218
|
+
images: ImageInfo[];
|
|
219
|
+
totalCount: number;
|
|
220
|
+
totalBytes: number;
|
|
221
|
+
}>;
|
|
222
|
+
/**
|
|
223
|
+
* Prune images with operator-supplied filters. `dryRun`
|
|
224
|
+
* returns the candidate set without deleting. Refused
|
|
225
|
+
* when no filter is supplied (a naked prune would
|
|
226
|
+
* delete every unused image).
|
|
227
|
+
*/
|
|
228
|
+
pruneImages: (input: PruneImagesInput) => Promise<PruneImagesResult>;
|
|
229
|
+
};
|
|
230
|
+
/** Host-wide analysis + guarded cleanup. */
|
|
231
|
+
doctor: {
|
|
232
|
+
scan: () => Promise<DoctorReport>;
|
|
233
|
+
fix: (input: DoctorFixRequestInput) => Promise<DoctorFixResponse>;
|
|
234
|
+
};
|
|
235
|
+
demo: {
|
|
236
|
+
seed: () => Promise<DemoSeedResult>;
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
export declare function systemApi(t: Transport): SystemApi;
|
|
240
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/resources/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export function systemApi(t) {
|
|
2
|
+
const { get, send, request } = t;
|
|
3
|
+
return {
|
|
4
|
+
system: {
|
|
5
|
+
resources: () => get('/v1/system/resources'),
|
|
6
|
+
pruneImages: () => send('POST', '/v1/system/prune-images'),
|
|
7
|
+
updateCheck: (force) => get(`/v1/system/update-check${force ? '?force=1' : ''}`),
|
|
8
|
+
updateStatus: () => get('/v1/system/update-status'),
|
|
9
|
+
updateStart: (version, opts) => send('POST', '/v1/system/update-start', { version, ...opts }),
|
|
10
|
+
exportUrl: () => '/v1/system/export',
|
|
11
|
+
dockerEvents: (minutes) => get(`/v1/system/docker-events?minutes=${minutes ?? 60}`),
|
|
12
|
+
panelBackup: {
|
|
13
|
+
get: () => get('/v1/system/panel-backup'),
|
|
14
|
+
update: (input) => send('PUT', '/v1/system/panel-backup', input),
|
|
15
|
+
run: () => send('POST', '/v1/system/panel-backup/run'),
|
|
16
|
+
list: (destinationId) => get(`/v1/system/panel-backup/remote${destinationId != null ? `?destinationId=${destinationId}` : ''}`),
|
|
17
|
+
restore: (input) => send('POST', '/v1/system/panel-backup/restore', input),
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
health: () => get('/health'),
|
|
21
|
+
about: {
|
|
22
|
+
get: () => get('/v1/about'),
|
|
23
|
+
},
|
|
24
|
+
dashboard: {
|
|
25
|
+
get: () => get('/v1/dashboard'),
|
|
26
|
+
},
|
|
27
|
+
stats: {
|
|
28
|
+
snapshot: () => get('/v1/stats'),
|
|
29
|
+
metrics: (serviceId, opts) => get(`/v1/services/${serviceId}/metrics?kind=${opts?.kind ?? 'cpu'}&minutes=${opts?.minutes ?? 60}`),
|
|
30
|
+
},
|
|
31
|
+
topology: {
|
|
32
|
+
get: () => get('/v1/topology'),
|
|
33
|
+
},
|
|
34
|
+
activity: {
|
|
35
|
+
list: (query) => {
|
|
36
|
+
const parts = [];
|
|
37
|
+
if (query?.entity)
|
|
38
|
+
parts.push(`entity=${encodeURIComponent(query.entity)}`);
|
|
39
|
+
if (query?.serviceId)
|
|
40
|
+
parts.push(`serviceId=${query.serviceId}`);
|
|
41
|
+
if (query?.action)
|
|
42
|
+
parts.push(`action=${encodeURIComponent(query.action)}`);
|
|
43
|
+
if (query?.userId)
|
|
44
|
+
parts.push(`userId=${query.userId}`);
|
|
45
|
+
if (query?.before)
|
|
46
|
+
parts.push(`before=${query.before}`);
|
|
47
|
+
const qs = parts.join('&');
|
|
48
|
+
return get(`/v1/activity${qs ? `?${qs}` : ''}`);
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
alerts: {
|
|
52
|
+
list: () => get('/v1/alerts'),
|
|
53
|
+
create: (input) => send('POST', '/v1/alerts', input),
|
|
54
|
+
update: (id, input) => send('PATCH', `/v1/alerts/${id}`, input),
|
|
55
|
+
remove: async (id) => {
|
|
56
|
+
await request(`/v1/alerts/${id}`, { method: 'DELETE' });
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
metricHistory: {
|
|
60
|
+
get: () => get('/v1/metric-history'),
|
|
61
|
+
flush: () => send('POST', '/v1/metric-history/flush'),
|
|
62
|
+
},
|
|
63
|
+
buildCache: {
|
|
64
|
+
stats: () => get('/v1/build-cache/stats'),
|
|
65
|
+
},
|
|
66
|
+
housekeeping: {
|
|
67
|
+
getAutoPrune: () => get('/v1/housekeeping/prune/config'),
|
|
68
|
+
updateAutoPrune: (input) => send('PATCH', '/v1/housekeeping/prune/config', input),
|
|
69
|
+
runPrune: () => send('POST', '/v1/housekeeping/prune'),
|
|
70
|
+
listImages: () => get('/v1/housekeeping/images'),
|
|
71
|
+
pruneImages: (input) => send('POST', '/v1/housekeeping/images/prune', input),
|
|
72
|
+
},
|
|
73
|
+
doctor: {
|
|
74
|
+
/** Full host scan: dead containers, orphan volumes/networks, row-vs-runtime
|
|
75
|
+
* desyncs, dangling images, disk pressure — with guarded repair actions. */
|
|
76
|
+
scan: () => get('/v1/doctor'),
|
|
77
|
+
/** Execute one finding's repair. The server re-scans and re-locates the
|
|
78
|
+
* finding first; a stale finding answers 409 instead of acting. */
|
|
79
|
+
fix: (input) => send('POST', '/v1/doctor/fix', input),
|
|
80
|
+
},
|
|
81
|
+
demo: {
|
|
82
|
+
seed: () => send('POST', '/v1/demo/seed'),
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/resources/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DeployTemplateInput, Template, TemplateSummary, CommunityTemplateListResult } from '@ninedeploy/schemas';
|
|
2
|
+
import type { TemplateDeployResult, TemplatePrepareResult } from '../types.js';
|
|
3
|
+
import type { Transport } from '../transport.js';
|
|
4
|
+
export interface TemplatesApi {
|
|
5
|
+
templates: {
|
|
6
|
+
list: () => Promise<TemplateSummary[]>;
|
|
7
|
+
get: (id: string) => Promise<Template>;
|
|
8
|
+
prepare: (id: string, input?: DeployTemplateInput) => Promise<TemplatePrepareResult>;
|
|
9
|
+
deploy: (id: string, input?: DeployTemplateInput) => Promise<TemplateDeployResult>;
|
|
10
|
+
/**
|
|
11
|
+
* Community contributions (G-13). The `list` call
|
|
12
|
+
* already merges community entries with the curated
|
|
13
|
+
* catalog; the dedicated `community` namespace lets
|
|
14
|
+
* the panel surface errors and the operator import
|
|
15
|
+
* a new template from a PR comment or a file.
|
|
16
|
+
*/
|
|
17
|
+
community: {
|
|
18
|
+
list: () => Promise<CommunityTemplateListResult>;
|
|
19
|
+
import: (content: string, opts?: {
|
|
20
|
+
replace?: boolean;
|
|
21
|
+
}) => Promise<{
|
|
22
|
+
ok: boolean;
|
|
23
|
+
id: string;
|
|
24
|
+
file: string;
|
|
25
|
+
bytes: number;
|
|
26
|
+
}>;
|
|
27
|
+
remove: (id: string) => Promise<{
|
|
28
|
+
ok: boolean;
|
|
29
|
+
id: string;
|
|
30
|
+
removed: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export declare function templatesApi(t: Transport): TemplatesApi;
|
|
36
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QACvC,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACrF,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACnF;;;;;;WAMG;QACH,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,OAAO,CAAC,2BAA2B,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,OAAO,CAAA;aAAE,KAAK,OAAO,CAAC;gBAAE,EAAE,EAAE,OAAO,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAC7H,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;gBAAE,EAAE,EAAE,OAAO,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;SAChF,CAAC;KACH,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,CAqBvD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function templatesApi(t) {
|
|
2
|
+
const { get, send } = t;
|
|
3
|
+
return {
|
|
4
|
+
templates: {
|
|
5
|
+
list: () => get('/v1/templates'),
|
|
6
|
+
get: (id) => get(`/v1/templates/${encodeURIComponent(id)}`),
|
|
7
|
+
prepare: (id, input) => send('POST', `/v1/templates/${encodeURIComponent(id)}/prepare`, input ?? {}),
|
|
8
|
+
deploy: (id, input) => send('POST', `/v1/templates/${encodeURIComponent(id)}/deploy`, input ?? {}),
|
|
9
|
+
community: {
|
|
10
|
+
list: () => get('/v1/templates/community'),
|
|
11
|
+
import: (content, opts) => send('POST', '/v1/templates/community/import', { content, ...(opts ?? {}) }),
|
|
12
|
+
remove: (id) => send('DELETE', `/v1/templates/community/${encodeURIComponent(id)}`),
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AAiCA,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxB,OAAO;QACL,SAAS,EAAE;YACT,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAoB,eAAe,CAAC;YACnD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAW,iBAAiB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;YACrE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAwB,MAAM,EAAE,iBAAiB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;YAC3H,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAuB,MAAM,EAAE,iBAAiB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;YACxH,SAAS,EAAE;gBACT,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAA8B,yBAAyB,CAAC;gBACvE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACxB,IAAI,CACF,MAAM,EACN,gCAAgC,EAChC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAC7B;gBACH,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CACb,IAAI,CAAgD,QAAQ,EAAE,2BAA2B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;aACrH;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { CreateTerminalSessionInput, ServiceTrafficSummary, TerminalSession, TerminalSessionCreated, TerminalSessionList, TerminalSettingsInput, TerminalSettingsView, TerminalTerminateResult, TrafficSettingsUpdate, TrafficSettingsView, TrafficSummary } from '@ninedeploy/schemas';
|
|
2
|
+
import { type ApiQuery } from '../apiPath.js';
|
|
3
|
+
import { type TerminalAttachSource, type WebSocketLocation, type TerminalAttachInfo, type TerminalHandlers, type TerminalConnectOptions, type TerminalConnection } from '../terminal.js';
|
|
4
|
+
import type { TerminalListQuery, TrafficQuery } from '../types.js';
|
|
5
|
+
import type { Transport } from '../transport.js';
|
|
6
|
+
export interface TerminalsApi {
|
|
7
|
+
/**
|
|
8
|
+
* Interactive terminals (0.15, operator only). A session is created over
|
|
9
|
+
* HTTP and attached over a WebSocket with its single-use ticket (valid 30s).
|
|
10
|
+
* Host shells (`target.kind: 'host'`) are off by default and need an
|
|
11
|
+
* interactive session plus the account password in `password`.
|
|
12
|
+
*/
|
|
13
|
+
terminals: {
|
|
14
|
+
create: (input: CreateTerminalSessionInput) => Promise<TerminalSessionCreated>;
|
|
15
|
+
/** History, newest first; page back with `before: list.nextBefore`. */
|
|
16
|
+
list: (query?: TerminalListQuery) => Promise<TerminalSessionList>;
|
|
17
|
+
get: (id: number) => Promise<TerminalSession>;
|
|
18
|
+
/** Close a live session (close 4410) or revoke a pending ticket. */
|
|
19
|
+
terminate: (id: number) => Promise<TerminalTerminateResult>;
|
|
20
|
+
settings: {
|
|
21
|
+
get: () => Promise<TerminalSettingsView>;
|
|
22
|
+
/** Partial. Turning host shells on needs `password` (step-up). */
|
|
23
|
+
set: (input: TerminalSettingsInput) => Promise<TerminalSettingsView>;
|
|
24
|
+
};
|
|
25
|
+
/** The WebSocket URL and subprotocols that attach a created session. */
|
|
26
|
+
attachInfo: (created: TerminalAttachSource, location?: WebSocketLocation) => TerminalAttachInfo;
|
|
27
|
+
/** Attach a created session over protocol v1 (see `connectTerminal`). */
|
|
28
|
+
connect: (created: TerminalAttachSource, handlers?: TerminalHandlers, options?: TerminalConnectOptions) => TerminalConnection;
|
|
29
|
+
};
|
|
30
|
+
/** Traffic analytics (0.15, opt-in). Settings and the summary are operator only. */
|
|
31
|
+
traffic: {
|
|
32
|
+
settings: {
|
|
33
|
+
get: () => Promise<TrafficSettingsView>;
|
|
34
|
+
/**
|
|
35
|
+
* Enabling or disabling recreates Traefik once (about 1–2s of refused
|
|
36
|
+
* connections). A browser behind Traefik may lose this response; read
|
|
37
|
+
* `settings.get()` again on a network error.
|
|
38
|
+
*/
|
|
39
|
+
set: (input: TrafficSettingsUpdate) => Promise<TrafficSettingsView>;
|
|
40
|
+
};
|
|
41
|
+
summary: (query?: TrafficQuery) => Promise<TrafficSummary>;
|
|
42
|
+
/** One service's series (any seat on the service). Empty series, never 404, without data. */
|
|
43
|
+
service: (serviceId: number, query?: TrafficQuery) => Promise<ServiceTrafficSummary>;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Raw access to the documented API (0.15, see `GET /v1/openapi.json`).
|
|
47
|
+
* Read-only on purpose: there is no generic write method. The generated MCP
|
|
48
|
+
* read tools call through here.
|
|
49
|
+
*/
|
|
50
|
+
api: {
|
|
51
|
+
/**
|
|
52
|
+
* GET any `/v1/…` route. The path must match `^/v1/[A-Za-z0-9/_.-]+$` and
|
|
53
|
+
* may not contain a `..` segment; query values are URL-encoded and
|
|
54
|
+
* `undefined` values are dropped.
|
|
55
|
+
*/
|
|
56
|
+
get: <T = unknown>(path: `/v1/${string}`, query?: ApiQuery) => Promise<T>;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export declare function terminalsApi(t: Transport): TerminalsApi;
|
|
60
|
+
//# sourceMappingURL=terminals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminals.d.ts","sourceRoot":"","sources":["../../src/resources/terminals.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAuC,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC9N,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAG3B;;;;;OAKG;IACH,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC/E,uEAAuE;QACvE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAClE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,oEAAoE;QACpE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC5D,QAAQ,EAAE;YACR,GAAG,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACzC,kEAAkE;YAClE,GAAG,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;SACtE,CAAC;QACF,wEAAwE;QACxE,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,iBAAiB,KAAK,kBAAkB,CAAC;QAChG,yEAAyE;QACzE,OAAO,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,kBAAkB,CAAC;KAC/H,CAAC;IACF,oFAAoF;IACpF,OAAO,EAAE;QACP,QAAQ,EAAE;YACR,GAAG,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACxC;;;;eAIG;YACH,GAAG,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;SACrE,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3D,6FAA6F;QAC7F,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;KACtF,CAAC;IAEF;;;;OAIG;IACH,GAAG,EAAE;QACH;;;;WAIG;QACH,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;KAC3E,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,CAiCvD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { apiGetUrl } from '../apiPath.js';
|
|
2
|
+
import { terminalAttachInfo, connectTerminal } from '../terminal.js';
|
|
3
|
+
export function terminalsApi(t) {
|
|
4
|
+
const { get, send, baseUrl } = t;
|
|
5
|
+
return {
|
|
6
|
+
// ── end 0.15 T4 ──
|
|
7
|
+
// ── 0.15 T6 surfaces ──
|
|
8
|
+
terminals: {
|
|
9
|
+
create: (input) => send('POST', '/v1/terminals', input),
|
|
10
|
+
list: (query) => get(apiGetUrl('/v1/terminals', { ...query })),
|
|
11
|
+
get: (id) => get(`/v1/terminals/${id}`),
|
|
12
|
+
terminate: (id) => send('DELETE', `/v1/terminals/${id}`),
|
|
13
|
+
settings: {
|
|
14
|
+
get: () => get('/v1/terminals/settings'),
|
|
15
|
+
set: (input) => send('PUT', '/v1/terminals/settings', input),
|
|
16
|
+
},
|
|
17
|
+
attachInfo: (created, location) => terminalAttachInfo(baseUrl, created, location),
|
|
18
|
+
connect: (created, handlers, options) => connectTerminal(terminalAttachInfo(baseUrl, created, options?.location), handlers, options),
|
|
19
|
+
},
|
|
20
|
+
traffic: {
|
|
21
|
+
settings: {
|
|
22
|
+
get: () => get('/v1/traffic/settings'),
|
|
23
|
+
set: (input) => send('PUT', '/v1/traffic/settings', input),
|
|
24
|
+
},
|
|
25
|
+
summary: (query) => get(apiGetUrl('/v1/traffic/summary', { ...query })),
|
|
26
|
+
service: (serviceId, query) => get(apiGetUrl(`/v1/services/${serviceId}/traffic`, { ...query })),
|
|
27
|
+
},
|
|
28
|
+
// ── 0.15 T4 api ──
|
|
29
|
+
api: {
|
|
30
|
+
// async: a refused path rejects like any other failed call, never throws synchronously.
|
|
31
|
+
get: async (path, query) => get(apiGetUrl(path, query)),
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=terminals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminals.js","sourceRoot":"","sources":["../../src/resources/terminals.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAA2J,MAAM,gBAAgB,CAAC;AA6D9N,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO;QACL,oBAAoB;QACpB,yBAAyB;QACzB,SAAS,EAAE;YACT,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAyB,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC;YAC/E,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAsB,SAAS,CAAC,eAAe,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACnF,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAkB,iBAAiB,EAAE,EAAE,CAAC;YACxD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAA0B,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAAC;YACjF,QAAQ,EAAE;gBACR,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAuB,wBAAwB,CAAC;gBAC9D,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAuB,KAAK,EAAE,wBAAwB,EAAE,KAAK,CAAC;aACnF;YACD,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;YACjF,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CACtC,eAAe,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC;SAC9F;QACD,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAsB,sBAAsB,CAAC;gBAC3D,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAsB,KAAK,EAAE,sBAAsB,EAAE,KAAK,CAAC;aAChF;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAiB,SAAS,CAAC,qBAAqB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACvF,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAC5B,GAAG,CAAwB,SAAS,CAAC,gBAAgB,SAAS,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;SAC3F;QACD,oBAAoB;QACpB,GAAG,EAAE;YACH,wFAAwF;YACxF,GAAG,EAAE,KAAK,EAAe,IAAqB,EAAE,KAAgB,EAAE,EAAE,CAAC,GAAG,CAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACpG;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { TraefikCertificate, CertificateInventoryEntry, CertificateInventoryReport, TraefikInfo, TraefikStatus, TraefikCustomConfig, TraefikCustomConfigApplied, TraefikCustomConfigValidation, CustomCertificate, CustomCertificateReplace, CustomCertificateSaved, CustomCertificateUpload } from '@ninedeploy/schemas';
|
|
2
|
+
import type { TraefikVersionInfo, TraefikRoutingConfig } from '../types.js';
|
|
3
|
+
import type { Transport } from '../transport.js';
|
|
4
|
+
export interface TraefikApi {
|
|
5
|
+
traefik: {
|
|
6
|
+
get: () => Promise<TraefikInfo>;
|
|
7
|
+
status: () => Promise<TraefikStatus>;
|
|
8
|
+
certificates: () => Promise<TraefikCertificate[]>;
|
|
9
|
+
/**
|
|
10
|
+
* Richer certificate inventory (G-15). Same
|
|
11
|
+
* underlying data as `certificates()` but adds a
|
|
12
|
+
* `status` classification (valid / expiring-soon /
|
|
13
|
+
* expired), a `summary` block, and the full set of
|
|
14
|
+
* fields the Certificates page renders.
|
|
15
|
+
* `threshold` is the days-out cutoff for the
|
|
16
|
+
* `expiring-soon` bucket; default 30.
|
|
17
|
+
*/
|
|
18
|
+
certificateInventory: (opts?: {
|
|
19
|
+
threshold?: number;
|
|
20
|
+
}) => Promise<CertificateInventoryReport>;
|
|
21
|
+
/**
|
|
22
|
+
* Focused "expiring within N days" filter. Default
|
|
23
|
+
* 30. Used by the alert engine and by the panel's
|
|
24
|
+
* "About to expire" widget.
|
|
25
|
+
*/
|
|
26
|
+
expiringCertificates: (opts?: {
|
|
27
|
+
days?: number;
|
|
28
|
+
}) => Promise<{
|
|
29
|
+
threshold: number;
|
|
30
|
+
count: number;
|
|
31
|
+
certificates: CertificateInventoryEntry[];
|
|
32
|
+
}>;
|
|
33
|
+
logs: (lines?: number) => Promise<{
|
|
34
|
+
logs: string[];
|
|
35
|
+
}>;
|
|
36
|
+
restart: () => Promise<{
|
|
37
|
+
ok: boolean;
|
|
38
|
+
message?: string;
|
|
39
|
+
}>;
|
|
40
|
+
/** r334: the server answers the host path of the copied acme.json. */
|
|
41
|
+
backupCerts: () => Promise<{
|
|
42
|
+
ok: boolean;
|
|
43
|
+
backupPath: string;
|
|
44
|
+
}>;
|
|
45
|
+
/** r557: routers / services / middlewares from the dynamic config (operator-only). */
|
|
46
|
+
config: () => Promise<TraefikRoutingConfig>;
|
|
47
|
+
/** r557: running vs latest Traefik version (operator-only). */
|
|
48
|
+
version: () => Promise<TraefikVersionInfo>;
|
|
49
|
+
/**
|
|
50
|
+
* r557: pull the pinned Traefik image and recreate the proxy container
|
|
51
|
+
* (operator-only). An image pull outlasts the default request budget, so
|
|
52
|
+
* this call allows up to 10 minutes unless the client disabled timeouts.
|
|
53
|
+
*/
|
|
54
|
+
update: () => Promise<{
|
|
55
|
+
ok: boolean;
|
|
56
|
+
newVersion: string | null;
|
|
57
|
+
}>;
|
|
58
|
+
/**
|
|
59
|
+
* 0.14: the operator's custom dynamic config (`custom.yml`). `set` throws
|
|
60
|
+
* a NineDeployError whose `details` is `{ errors, warnings }` on a refusal.
|
|
61
|
+
*/
|
|
62
|
+
customConfig: {
|
|
63
|
+
get: () => Promise<TraefikCustomConfig>;
|
|
64
|
+
/** No state change. */
|
|
65
|
+
validate: (content: string) => Promise<TraefikCustomConfigValidation>;
|
|
66
|
+
set: (content: string) => Promise<TraefikCustomConfigApplied>;
|
|
67
|
+
clear: () => Promise<{
|
|
68
|
+
ok: boolean;
|
|
69
|
+
cleared: boolean;
|
|
70
|
+
}>;
|
|
71
|
+
};
|
|
72
|
+
/** 0.14: uploaded TLS certificates (operator-only). No response carries a private key. */
|
|
73
|
+
customCertificates: {
|
|
74
|
+
list: () => Promise<CustomCertificate[]>;
|
|
75
|
+
upload: (input: CustomCertificateUpload) => Promise<CustomCertificateSaved>;
|
|
76
|
+
replace: (id: number, input: CustomCertificateReplace) => Promise<CustomCertificateSaved>;
|
|
77
|
+
delete: (id: number) => Promise<{
|
|
78
|
+
ok: boolean;
|
|
79
|
+
}>;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export declare function traefikApi(t: Transport): TraefikApi;
|
|
84
|
+
//# sourceMappingURL=traefik.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traefik.d.ts","sourceRoot":"","sources":["../../src/resources/traefik.ts"],"names":[],"mappings":"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"}
|