@serve.zone/gitops 2.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.smartconfig.json +114 -0
- package/binary/gitops.ts +4 -0
- package/changelog.md +185 -0
- package/cli.child.js +4 -0
- package/cli.js +4 -0
- package/cli.ts.js +5 -0
- package/deno.json +10 -0
- package/dist_serve/bundle.js +36362 -0
- package/dist_serve/index.html +33 -0
- package/dist_ts/00_commitinfo_data.d.ts +8 -0
- package/dist_ts/00_commitinfo_data.js +9 -0
- package/dist_ts/cache/classes.cache.cleaner.d.ts +23 -0
- package/dist_ts/cache/classes.cache.cleaner.js +61 -0
- package/dist_ts/cache/classes.cached.document.d.ts +30 -0
- package/dist_ts/cache/classes.cached.document.js +101 -0
- package/dist_ts/cache/classes.cachedb.d.ts +22 -0
- package/dist_ts/cache/classes.cachedb.js +58 -0
- package/dist_ts/cache/classes.secrets.scan.service.d.ts +51 -0
- package/dist_ts/cache/classes.secrets.scan.service.js +237 -0
- package/dist_ts/cache/documents/classes.cached.project.d.ts +13 -0
- package/dist_ts/cache/documents/classes.cached.project.js +101 -0
- package/dist_ts/cache/documents/classes.cached.secret.d.ts +24 -0
- package/dist_ts/cache/documents/classes.cached.secret.js +158 -0
- package/dist_ts/cache/documents/index.d.ts +2 -0
- package/dist_ts/cache/documents/index.js +3 -0
- package/dist_ts/cache/index.d.ts +7 -0
- package/dist_ts/cache/index.js +6 -0
- package/dist_ts/classes/actionlog.d.ts +19 -0
- package/dist_ts/classes/actionlog.js +44 -0
- package/dist_ts/classes/connectionmanager.d.ts +57 -0
- package/dist_ts/classes/connectionmanager.js +247 -0
- package/dist_ts/classes/gitopsapp.d.ts +30 -0
- package/dist_ts/classes/gitopsapp.js +101 -0
- package/dist_ts/classes/jobmanager.d.ts +47 -0
- package/dist_ts/classes/jobmanager.js +301 -0
- package/dist_ts/classes/jobrunners/autobookstackdocs.runner.d.ts +29 -0
- package/dist_ts/classes/jobrunners/autobookstackdocs.runner.js +361 -0
- package/dist_ts/classes/jobrunners/base.jobrunner.d.ts +14 -0
- package/dist_ts/classes/jobrunners/base.jobrunner.js +3 -0
- package/dist_ts/classes/jobrunners/index.d.ts +5 -0
- package/dist_ts/classes/jobrunners/index.js +14 -0
- package/dist_ts/classes/managedsecrets.manager.d.ts +47 -0
- package/dist_ts/classes/managedsecrets.manager.js +247 -0
- package/dist_ts/classes/syncmanager.d.ts +189 -0
- package/dist_ts/classes/syncmanager.js +1787 -0
- package/dist_ts/index.d.ts +6 -0
- package/dist_ts/index.js +32 -0
- package/dist_ts/logging.d.ts +49 -0
- package/dist_ts/logging.js +134 -0
- package/dist_ts/opsserver/classes.opsserver.d.ts +25 -0
- package/dist_ts/opsserver/classes.opsserver.js +70 -0
- package/dist_ts/opsserver/handlers/actionlog.handler.d.ts +9 -0
- package/dist_ts/opsserver/handlers/actionlog.handler.js +24 -0
- package/dist_ts/opsserver/handlers/actions.handler.d.ts +9 -0
- package/dist_ts/opsserver/handlers/actions.handler.js +38 -0
- package/dist_ts/opsserver/handlers/admin.handler.d.ts +19 -0
- package/dist_ts/opsserver/handlers/admin.handler.js +96 -0
- package/dist_ts/opsserver/handlers/connections.handler.d.ts +10 -0
- package/dist_ts/opsserver/handlers/connections.handler.js +109 -0
- package/dist_ts/opsserver/handlers/groups.handler.d.ts +9 -0
- package/dist_ts/opsserver/handlers/groups.handler.js +24 -0
- package/dist_ts/opsserver/handlers/index.d.ts +13 -0
- package/dist_ts/opsserver/handlers/index.js +14 -0
- package/dist_ts/opsserver/handlers/jobs.handler.d.ts +16 -0
- package/dist_ts/opsserver/handlers/jobs.handler.js +146 -0
- package/dist_ts/opsserver/handlers/logs.handler.d.ts +9 -0
- package/dist_ts/opsserver/handlers/logs.handler.js +21 -0
- package/dist_ts/opsserver/handlers/managedsecrets.handler.d.ts +11 -0
- package/dist_ts/opsserver/handlers/managedsecrets.handler.js +110 -0
- package/dist_ts/opsserver/handlers/pipelines.handler.d.ts +31 -0
- package/dist_ts/opsserver/handlers/pipelines.handler.js +204 -0
- package/dist_ts/opsserver/handlers/projects.handler.d.ts +9 -0
- package/dist_ts/opsserver/handlers/projects.handler.js +24 -0
- package/dist_ts/opsserver/handlers/secrets.handler.d.ts +10 -0
- package/dist_ts/opsserver/handlers/secrets.handler.js +171 -0
- package/dist_ts/opsserver/handlers/sync.handler.d.ts +16 -0
- package/dist_ts/opsserver/handlers/sync.handler.js +166 -0
- package/dist_ts/opsserver/handlers/webhook.handler.d.ts +7 -0
- package/dist_ts/opsserver/handlers/webhook.handler.js +55 -0
- package/dist_ts/opsserver/helpers/guards.d.ts +5 -0
- package/dist_ts/opsserver/helpers/guards.js +12 -0
- package/dist_ts/opsserver/index.d.ts +1 -0
- package/dist_ts/opsserver/index.js +2 -0
- package/dist_ts/paths.d.ts +9 -0
- package/dist_ts/paths.js +13 -0
- package/dist_ts/plugins.d.ts +25 -0
- package/dist_ts/plugins.js +32 -0
- package/dist_ts/providers/classes.baseprovider.d.ts +51 -0
- package/dist_ts/providers/classes.baseprovider.js +17 -0
- package/dist_ts/providers/classes.giteaprovider.d.ts +40 -0
- package/dist_ts/providers/classes.giteaprovider.js +224 -0
- package/dist_ts/providers/classes.gitlabprovider.d.ts +39 -0
- package/dist_ts/providers/classes.gitlabprovider.js +207 -0
- package/dist_ts/providers/index.d.ts +3 -0
- package/dist_ts/providers/index.js +4 -0
- package/dist_ts/storage/classes.storagemanager.d.ts +33 -0
- package/dist_ts/storage/classes.storagemanager.js +135 -0
- package/dist_ts/storage/index.d.ts +2 -0
- package/dist_ts/storage/index.js +2 -0
- package/dist_ts/timers.d.ts +4 -0
- package/dist_ts/timers.js +24 -0
- package/dist_ts_bundled/bundle.d.ts +4 -0
- package/dist_ts_bundled/bundle.js +12 -0
- package/dist_ts_interfaces/data/actionlog.d.ts +12 -0
- package/dist_ts_interfaces/data/actionlog.js +2 -0
- package/dist_ts_interfaces/data/branch.d.ts +8 -0
- package/dist_ts_interfaces/data/branch.js +2 -0
- package/dist_ts_interfaces/data/connection.d.ts +12 -0
- package/dist_ts_interfaces/data/connection.js +2 -0
- package/dist_ts_interfaces/data/group.d.ts +10 -0
- package/dist_ts_interfaces/data/group.js +2 -0
- package/dist_ts_interfaces/data/identity.d.ts +7 -0
- package/dist_ts_interfaces/data/identity.js +2 -0
- package/dist_ts_interfaces/data/index.d.ts +11 -0
- package/dist_ts_interfaces/data/index.js +12 -0
- package/dist_ts_interfaces/data/job.d.ts +37 -0
- package/dist_ts_interfaces/data/job.js +2 -0
- package/dist_ts_interfaces/data/managedsecret.d.ts +37 -0
- package/dist_ts_interfaces/data/managedsecret.js +2 -0
- package/dist_ts_interfaces/data/pipeline.d.ts +22 -0
- package/dist_ts_interfaces/data/pipeline.js +2 -0
- package/dist_ts_interfaces/data/project.d.ts +12 -0
- package/dist_ts_interfaces/data/project.js +2 -0
- package/dist_ts_interfaces/data/secret.d.ts +11 -0
- package/dist_ts_interfaces/data/secret.js +2 -0
- package/dist_ts_interfaces/data/sync.d.ts +34 -0
- package/dist_ts_interfaces/data/sync.js +2 -0
- package/dist_ts_interfaces/index.d.ts +5 -0
- package/dist_ts_interfaces/index.js +8 -0
- package/dist_ts_interfaces/plugins.d.ts +2 -0
- package/dist_ts_interfaces/plugins.js +4 -0
- package/dist_ts_interfaces/requests/actionlog.d.ts +15 -0
- package/dist_ts_interfaces/requests/actionlog.js +3 -0
- package/dist_ts_interfaces/requests/actions.d.ts +31 -0
- package/dist_ts_interfaces/requests/actions.js +3 -0
- package/dist_ts_interfaces/requests/admin.d.ts +31 -0
- package/dist_ts_interfaces/requests/admin.js +3 -0
- package/dist_ts_interfaces/requests/connections.d.ts +71 -0
- package/dist_ts_interfaces/requests/connections.js +3 -0
- package/dist_ts_interfaces/requests/groups.d.ts +14 -0
- package/dist_ts_interfaces/requests/groups.js +3 -0
- package/dist_ts_interfaces/requests/index.d.ts +13 -0
- package/dist_ts_interfaces/requests/index.js +14 -0
- package/dist_ts_interfaces/requests/jobs.d.ts +86 -0
- package/dist_ts_interfaces/requests/jobs.js +3 -0
- package/dist_ts_interfaces/requests/logs.d.ts +14 -0
- package/dist_ts_interfaces/requests/logs.js +3 -0
- package/dist_ts_interfaces/requests/managedsecrets.d.ts +84 -0
- package/dist_ts_interfaces/requests/managedsecrets.js +3 -0
- package/dist_ts_interfaces/requests/pipelines.d.ts +55 -0
- package/dist_ts_interfaces/requests/pipelines.js +3 -0
- package/dist_ts_interfaces/requests/projects.d.ts +14 -0
- package/dist_ts_interfaces/requests/projects.js +3 -0
- package/dist_ts_interfaces/requests/secrets.d.ts +72 -0
- package/dist_ts_interfaces/requests/secrets.js +3 -0
- package/dist_ts_interfaces/requests/sync.d.ts +120 -0
- package/dist_ts_interfaces/requests/sync.js +3 -0
- package/dist_ts_interfaces/requests/webhook.d.ts +13 -0
- package/dist_ts_interfaces/requests/webhook.js +3 -0
- package/license +21 -0
- package/package.json +81 -0
- package/readme.md +177 -0
- package/readme.todo.md +3 -0
- package/ts/00_commitinfo_data.ts +8 -0
- package/ts/cache/classes.cache.cleaner.ts +69 -0
- package/ts/cache/classes.cached.document.ts +57 -0
- package/ts/cache/classes.cachedb.ts +72 -0
- package/ts/cache/classes.secrets.scan.service.ts +267 -0
- package/ts/cache/documents/classes.cached.project.ts +32 -0
- package/ts/cache/documents/classes.cached.secret.ts +81 -0
- package/ts/cache/documents/index.ts +2 -0
- package/ts/cache/index.ts +7 -0
- package/ts/classes/actionlog.ts +57 -0
- package/ts/classes/connectionmanager.ts +263 -0
- package/ts/classes/gitopsapp.ts +128 -0
- package/ts/classes/jobmanager.ts +337 -0
- package/ts/classes/jobrunners/autobookstackdocs.runner.ts +435 -0
- package/ts/classes/jobrunners/base.jobrunner.ts +16 -0
- package/ts/classes/jobrunners/index.ts +17 -0
- package/ts/classes/managedsecrets.manager.ts +322 -0
- package/ts/classes/syncmanager.ts +2117 -0
- package/ts/index.ts +37 -0
- package/ts/logging.ts +162 -0
- package/ts/opsserver/classes.opsserver.ts +86 -0
- package/ts/opsserver/handlers/actionlog.handler.ts +30 -0
- package/ts/opsserver/handlers/actions.handler.ts +50 -0
- package/ts/opsserver/handlers/admin.handler.ts +122 -0
- package/ts/opsserver/handlers/connections.handler.ts +162 -0
- package/ts/opsserver/handlers/groups.handler.ts +32 -0
- package/ts/opsserver/handlers/index.ts +13 -0
- package/ts/opsserver/handlers/jobs.handler.ts +189 -0
- package/ts/opsserver/handlers/logs.handler.ts +29 -0
- package/ts/opsserver/handlers/managedsecrets.handler.ts +158 -0
- package/ts/opsserver/handlers/pipelines.handler.ts +281 -0
- package/ts/opsserver/handlers/projects.handler.ts +32 -0
- package/ts/opsserver/handlers/secrets.handler.ts +224 -0
- package/ts/opsserver/handlers/sync.handler.ts +224 -0
- package/ts/opsserver/handlers/webhook.handler.ts +62 -0
- package/ts/opsserver/helpers/guards.ts +16 -0
- package/ts/opsserver/index.ts +1 -0
- package/ts/paths.ts +19 -0
- package/ts/plugins.ts +38 -0
- package/ts/providers/classes.baseprovider.ts +99 -0
- package/ts/providers/classes.giteaprovider.ts +279 -0
- package/ts/providers/classes.gitlabprovider.ts +265 -0
- package/ts/providers/index.ts +3 -0
- package/ts/storage/classes.storagemanager.ts +144 -0
- package/ts/storage/index.ts +2 -0
- package/ts/timers.ts +34 -0
- package/ts_interfaces/data/actionlog.ts +13 -0
- package/ts_interfaces/data/branch.ts +9 -0
- package/ts_interfaces/data/connection.ts +13 -0
- package/ts_interfaces/data/group.ts +10 -0
- package/ts_interfaces/data/identity.ts +7 -0
- package/ts_interfaces/data/index.ts +11 -0
- package/ts_interfaces/data/job.ts +42 -0
- package/ts_interfaces/data/managedsecret.ts +41 -0
- package/ts_interfaces/data/pipeline.ts +32 -0
- package/ts_interfaces/data/project.ts +12 -0
- package/ts_interfaces/data/secret.ts +11 -0
- package/ts_interfaces/data/sync.ts +37 -0
- package/ts_interfaces/index.ts +9 -0
- package/ts_interfaces/plugins.ts +6 -0
- package/ts_interfaces/requests/actionlog.ts +19 -0
- package/ts_interfaces/requests/actions.ts +39 -0
- package/ts_interfaces/requests/admin.ts +43 -0
- package/ts_interfaces/requests/connections.ts +95 -0
- package/ts_interfaces/requests/groups.ts +18 -0
- package/ts_interfaces/requests/index.ts +13 -0
- package/ts_interfaces/requests/jobs.ts +118 -0
- package/ts_interfaces/requests/logs.ts +18 -0
- package/ts_interfaces/requests/managedsecrets.ts +112 -0
- package/ts_interfaces/requests/pipelines.ts +71 -0
- package/ts_interfaces/requests/projects.ts +18 -0
- package/ts_interfaces/requests/secrets.ts +92 -0
- package/ts_interfaces/requests/sync.ts +157 -0
- package/ts_interfaces/requests/webhook.ts +18 -0
- package/ts_web/00_commitinfo_data.ts +8 -0
- package/ts_web/appstate.ts +1251 -0
- package/ts_web/elements/gitops-dashboard.ts +350 -0
- package/ts_web/elements/index.ts +10 -0
- package/ts_web/elements/shared/css.ts +29 -0
- package/ts_web/elements/shared/index.ts +1 -0
- package/ts_web/elements/views/actionlog/index.ts +101 -0
- package/ts_web/elements/views/actions/index.ts +209 -0
- package/ts_web/elements/views/buildlog/index.ts +196 -0
- package/ts_web/elements/views/connections/index.ts +260 -0
- package/ts_web/elements/views/groups/index.ts +134 -0
- package/ts_web/elements/views/jobs/index.ts +424 -0
- package/ts_web/elements/views/managedsecrets/index.ts +502 -0
- package/ts_web/elements/views/overview/index.ts +86 -0
- package/ts_web/elements/views/pipelines/index.ts +561 -0
- package/ts_web/elements/views/projects/index.ts +149 -0
- package/ts_web/elements/views/secrets/index.ts +310 -0
- package/ts_web/elements/views/sync/index.ts +512 -0
- package/ts_web/index.ts +7 -0
- package/ts_web/plugins.ts +15 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
3
|
+
import { requireValidIdentity } from '../helpers/guards.js';
|
|
4
|
+
export class ConnectionsHandler {
|
|
5
|
+
opsServerRef;
|
|
6
|
+
typedrouter = new plugins.typedrequest.TypedRouter();
|
|
7
|
+
constructor(opsServerRef) {
|
|
8
|
+
this.opsServerRef = opsServerRef;
|
|
9
|
+
this.opsServerRef.typedrouter.addTypedRouter(this.typedrouter);
|
|
10
|
+
this.registerHandlers();
|
|
11
|
+
}
|
|
12
|
+
get actionLog() {
|
|
13
|
+
return this.opsServerRef.gitopsAppRef.actionLog;
|
|
14
|
+
}
|
|
15
|
+
registerHandlers() {
|
|
16
|
+
// Get all connections
|
|
17
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('getConnections', async (dataArg) => {
|
|
18
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
19
|
+
const connections = this.opsServerRef.gitopsAppRef.connectionManager.getConnections();
|
|
20
|
+
return { connections };
|
|
21
|
+
}));
|
|
22
|
+
// Create connection
|
|
23
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('createConnection', async (dataArg) => {
|
|
24
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
25
|
+
const connection = await this.opsServerRef.gitopsAppRef.connectionManager.createConnection(dataArg.name, dataArg.providerType, dataArg.baseUrl, dataArg.token, dataArg.groupFilter);
|
|
26
|
+
this.actionLog.append({
|
|
27
|
+
actionType: 'create',
|
|
28
|
+
entityType: 'connection',
|
|
29
|
+
entityId: connection.id,
|
|
30
|
+
entityName: connection.name,
|
|
31
|
+
details: `Created ${dataArg.providerType} connection "${dataArg.name}" (${dataArg.baseUrl})`,
|
|
32
|
+
username: dataArg.identity.username,
|
|
33
|
+
});
|
|
34
|
+
return { connection };
|
|
35
|
+
}));
|
|
36
|
+
// Update connection
|
|
37
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('updateConnection', async (dataArg) => {
|
|
38
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
39
|
+
const connection = await this.opsServerRef.gitopsAppRef.connectionManager.updateConnection(dataArg.connectionId, {
|
|
40
|
+
name: dataArg.name,
|
|
41
|
+
baseUrl: dataArg.baseUrl,
|
|
42
|
+
token: dataArg.token,
|
|
43
|
+
groupFilter: dataArg.groupFilter,
|
|
44
|
+
});
|
|
45
|
+
const fields = [
|
|
46
|
+
dataArg.name && 'name',
|
|
47
|
+
dataArg.baseUrl && 'baseUrl',
|
|
48
|
+
dataArg.token && 'token',
|
|
49
|
+
dataArg.groupFilter !== undefined && 'groupFilter',
|
|
50
|
+
].filter(Boolean).join(', ');
|
|
51
|
+
this.actionLog.append({
|
|
52
|
+
actionType: 'update',
|
|
53
|
+
entityType: 'connection',
|
|
54
|
+
entityId: dataArg.connectionId,
|
|
55
|
+
entityName: connection.name,
|
|
56
|
+
details: `Updated connection "${connection.name}" (fields: ${fields})`,
|
|
57
|
+
username: dataArg.identity.username,
|
|
58
|
+
});
|
|
59
|
+
return { connection };
|
|
60
|
+
}));
|
|
61
|
+
// Pause/resume connection
|
|
62
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('pauseConnection', async (dataArg) => {
|
|
63
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
64
|
+
const connection = await this.opsServerRef.gitopsAppRef.connectionManager.pauseConnection(dataArg.connectionId, dataArg.paused);
|
|
65
|
+
this.actionLog.append({
|
|
66
|
+
actionType: dataArg.paused ? 'pause' : 'resume',
|
|
67
|
+
entityType: 'connection',
|
|
68
|
+
entityId: dataArg.connectionId,
|
|
69
|
+
entityName: connection.name,
|
|
70
|
+
details: `${dataArg.paused ? 'Paused' : 'Resumed'} connection "${connection.name}"`,
|
|
71
|
+
username: dataArg.identity.username,
|
|
72
|
+
});
|
|
73
|
+
return { connection };
|
|
74
|
+
}));
|
|
75
|
+
// Test connection
|
|
76
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('testConnection', async (dataArg) => {
|
|
77
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
78
|
+
const result = await this.opsServerRef.gitopsAppRef.connectionManager.testConnection(dataArg.connectionId);
|
|
79
|
+
const conn = this.opsServerRef.gitopsAppRef.connectionManager.getConnections()
|
|
80
|
+
.find((c) => c.id === dataArg.connectionId);
|
|
81
|
+
this.actionLog.append({
|
|
82
|
+
actionType: 'test',
|
|
83
|
+
entityType: 'connection',
|
|
84
|
+
entityId: dataArg.connectionId,
|
|
85
|
+
entityName: conn?.name || dataArg.connectionId,
|
|
86
|
+
details: `Tested connection: ${result.ok ? 'success' : `failed — ${result.error || 'unknown error'}`}`,
|
|
87
|
+
username: dataArg.identity.username,
|
|
88
|
+
});
|
|
89
|
+
return result;
|
|
90
|
+
}));
|
|
91
|
+
// Delete connection
|
|
92
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('deleteConnection', async (dataArg) => {
|
|
93
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
94
|
+
const conn = this.opsServerRef.gitopsAppRef.connectionManager.getConnections()
|
|
95
|
+
.find((c) => c.id === dataArg.connectionId);
|
|
96
|
+
await this.opsServerRef.gitopsAppRef.connectionManager.deleteConnection(dataArg.connectionId);
|
|
97
|
+
this.actionLog.append({
|
|
98
|
+
actionType: 'delete',
|
|
99
|
+
entityType: 'connection',
|
|
100
|
+
entityId: dataArg.connectionId,
|
|
101
|
+
entityName: conn?.name || dataArg.connectionId,
|
|
102
|
+
details: `Deleted connection "${conn?.name || dataArg.connectionId}"`,
|
|
103
|
+
username: dataArg.identity.username,
|
|
104
|
+
});
|
|
105
|
+
return { ok: true };
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbnMuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzL29wc3NlcnZlci9oYW5kbGVycy9jb25uZWN0aW9ucy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sa0JBQWtCO0lBR1Q7SUFGYixXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTVELFlBQW9CLFlBQXVCO1FBQXZCLGlCQUFZLEdBQVosWUFBWSxDQUFXO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FDOUIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDbkMsZ0JBQWdCLEVBQ2hCLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNoQixNQUFNLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RGLE9BQU8sRUFBRSxXQUFXLEVB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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import type { OpsServer } from '../classes.opsserver.js';
|
|
3
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
4
|
+
export declare class GroupsHandler {
|
|
5
|
+
private opsServerRef;
|
|
6
|
+
typedrouter: plugins.typedrequest.TypedRouter<interfaces.typedrequestInterfaces.ITypedRequest>;
|
|
7
|
+
constructor(opsServerRef: OpsServer);
|
|
8
|
+
private registerHandlers;
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
3
|
+
import { requireValidIdentity } from '../helpers/guards.js';
|
|
4
|
+
export class GroupsHandler {
|
|
5
|
+
opsServerRef;
|
|
6
|
+
typedrouter = new plugins.typedrequest.TypedRouter();
|
|
7
|
+
constructor(opsServerRef) {
|
|
8
|
+
this.opsServerRef = opsServerRef;
|
|
9
|
+
this.opsServerRef.typedrouter.addTypedRouter(this.typedrouter);
|
|
10
|
+
this.registerHandlers();
|
|
11
|
+
}
|
|
12
|
+
registerHandlers() {
|
|
13
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('getGroups', async (dataArg) => {
|
|
14
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
15
|
+
const provider = this.opsServerRef.gitopsAppRef.connectionManager.getProvider(dataArg.connectionId);
|
|
16
|
+
const groups = await provider.getGroups({
|
|
17
|
+
search: dataArg.search,
|
|
18
|
+
page: dataArg.page,
|
|
19
|
+
});
|
|
20
|
+
return { groups };
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9vcHNzZXJ2ZXIvaGFuZGxlcnMvZ3JvdXBzLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssVUFBVSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTVELE1BQU0sT0FBTyxhQUFhO0lBR0o7SUFGYixXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTVELFlBQW9CLFlBQXVCO1FBQXZCLGlCQUFZLEdBQVosWUFBWSxDQUFXO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FDOUIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDbkMsV0FBVyxFQUNYLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNoQixNQUFNLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FDM0UsT0FBTyxDQUFDLFlBQVksQ0FDckIsQ0FBQztZQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7YUFDbkIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { AdminHandler } from './admin.handler.js';
|
|
2
|
+
export { ConnectionsHandler } from './connections.handler.js';
|
|
3
|
+
export { ProjectsHandler } from './projects.handler.js';
|
|
4
|
+
export { GroupsHandler } from './groups.handler.js';
|
|
5
|
+
export { SecretsHandler } from './secrets.handler.js';
|
|
6
|
+
export { PipelinesHandler } from './pipelines.handler.js';
|
|
7
|
+
export { LogsHandler } from './logs.handler.js';
|
|
8
|
+
export { WebhookHandler } from './webhook.handler.js';
|
|
9
|
+
export { ActionsHandler } from './actions.handler.js';
|
|
10
|
+
export { ActionLogHandler } from './actionlog.handler.js';
|
|
11
|
+
export { SyncHandler } from './sync.handler.js';
|
|
12
|
+
export { ManagedSecretsHandler } from './managedsecrets.handler.js';
|
|
13
|
+
export { JobsHandler } from './jobs.handler.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { AdminHandler } from './admin.handler.js';
|
|
2
|
+
export { ConnectionsHandler } from './connections.handler.js';
|
|
3
|
+
export { ProjectsHandler } from './projects.handler.js';
|
|
4
|
+
export { GroupsHandler } from './groups.handler.js';
|
|
5
|
+
export { SecretsHandler } from './secrets.handler.js';
|
|
6
|
+
export { PipelinesHandler } from './pipelines.handler.js';
|
|
7
|
+
export { LogsHandler } from './logs.handler.js';
|
|
8
|
+
export { WebhookHandler } from './webhook.handler.js';
|
|
9
|
+
export { ActionsHandler } from './actions.handler.js';
|
|
10
|
+
export { ActionLogHandler } from './actionlog.handler.js';
|
|
11
|
+
export { SyncHandler } from './sync.handler.js';
|
|
12
|
+
export { ManagedSecretsHandler } from './managedsecrets.handler.js';
|
|
13
|
+
export { JobsHandler } from './jobs.handler.js';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9vcHNzZXJ2ZXIvaGFuZGxlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUMifQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import type { OpsServer } from '../classes.opsserver.js';
|
|
3
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
4
|
+
export declare class JobsHandler {
|
|
5
|
+
private opsServerRef;
|
|
6
|
+
typedrouter: plugins.typedrequest.TypedRouter<interfaces.typedrequestInterfaces.ITypedRequest>;
|
|
7
|
+
constructor(opsServerRef: OpsServer);
|
|
8
|
+
/**
|
|
9
|
+
* Wire the logger's job broadcast function to push log entries
|
|
10
|
+
* to all connected frontends via TypedSocket.
|
|
11
|
+
*/
|
|
12
|
+
private setupBroadcast;
|
|
13
|
+
private get jobManager();
|
|
14
|
+
private get actionLog();
|
|
15
|
+
private registerHandlers;
|
|
16
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
3
|
+
import { requireValidIdentity } from '../helpers/guards.js';
|
|
4
|
+
import { logger } from '../../logging.js';
|
|
5
|
+
export class JobsHandler {
|
|
6
|
+
opsServerRef;
|
|
7
|
+
typedrouter = new plugins.typedrequest.TypedRouter();
|
|
8
|
+
constructor(opsServerRef) {
|
|
9
|
+
this.opsServerRef = opsServerRef;
|
|
10
|
+
this.opsServerRef.typedrouter.addTypedRouter(this.typedrouter);
|
|
11
|
+
this.registerHandlers();
|
|
12
|
+
this.setupBroadcast();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Wire the logger's job broadcast function to push log entries
|
|
16
|
+
* to all connected frontends via TypedSocket.
|
|
17
|
+
*/
|
|
18
|
+
setupBroadcast() {
|
|
19
|
+
logger.setJobBroadcastFn((entry) => {
|
|
20
|
+
try {
|
|
21
|
+
const typedsocket = this.opsServerRef.server?.typedserver?.typedsocket;
|
|
22
|
+
if (!typedsocket)
|
|
23
|
+
return;
|
|
24
|
+
typedsocket.findAllTargetConnectionsByTag('jobLogClient').then((connections) => {
|
|
25
|
+
for (const conn of connections) {
|
|
26
|
+
typedsocket
|
|
27
|
+
.createTypedRequest('pushJobLog', conn)
|
|
28
|
+
.fire({ entry })
|
|
29
|
+
.catch(() => { });
|
|
30
|
+
}
|
|
31
|
+
}).catch(() => { });
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Server may not be ready yet — ignore
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
get jobManager() {
|
|
39
|
+
return this.opsServerRef.gitopsAppRef.jobManager;
|
|
40
|
+
}
|
|
41
|
+
get actionLog() {
|
|
42
|
+
return this.opsServerRef.gitopsAppRef.actionLog;
|
|
43
|
+
}
|
|
44
|
+
registerHandlers() {
|
|
45
|
+
// Get all jobs
|
|
46
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('getJobs', async (dataArg) => {
|
|
47
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
48
|
+
return { jobs: this.jobManager.getJobs() };
|
|
49
|
+
}));
|
|
50
|
+
// Create job
|
|
51
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('createJob', async (dataArg) => {
|
|
52
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
53
|
+
const job = await this.jobManager.createJob({
|
|
54
|
+
name: dataArg.name,
|
|
55
|
+
jobType: dataArg.jobType,
|
|
56
|
+
intervalMinutes: dataArg.intervalMinutes,
|
|
57
|
+
autoBookstackDocsConfig: dataArg.autoBookstackDocsConfig,
|
|
58
|
+
});
|
|
59
|
+
this.actionLog.append({
|
|
60
|
+
actionType: 'create',
|
|
61
|
+
entityType: 'job',
|
|
62
|
+
entityId: job.id,
|
|
63
|
+
entityName: job.name,
|
|
64
|
+
details: `Created ${job.jobType} job`,
|
|
65
|
+
username: dataArg.identity.username,
|
|
66
|
+
});
|
|
67
|
+
return { job };
|
|
68
|
+
}));
|
|
69
|
+
// Update job
|
|
70
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('updateJob', async (dataArg) => {
|
|
71
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
72
|
+
const job = await this.jobManager.updateJob(dataArg.jobId, {
|
|
73
|
+
name: dataArg.name,
|
|
74
|
+
intervalMinutes: dataArg.intervalMinutes,
|
|
75
|
+
autoBookstackDocsConfig: dataArg.autoBookstackDocsConfig,
|
|
76
|
+
});
|
|
77
|
+
this.actionLog.append({
|
|
78
|
+
actionType: 'update',
|
|
79
|
+
entityType: 'job',
|
|
80
|
+
entityId: job.id,
|
|
81
|
+
entityName: job.name,
|
|
82
|
+
details: 'Updated job configuration',
|
|
83
|
+
username: dataArg.identity.username,
|
|
84
|
+
});
|
|
85
|
+
return { job };
|
|
86
|
+
}));
|
|
87
|
+
// Delete job
|
|
88
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('deleteJob', async (dataArg) => {
|
|
89
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
90
|
+
const job = this.jobManager.getJob(dataArg.jobId);
|
|
91
|
+
await this.jobManager.deleteJob(dataArg.jobId);
|
|
92
|
+
this.actionLog.append({
|
|
93
|
+
actionType: 'delete',
|
|
94
|
+
entityType: 'job',
|
|
95
|
+
entityId: dataArg.jobId,
|
|
96
|
+
entityName: job?.name || dataArg.jobId,
|
|
97
|
+
details: 'Deleted job',
|
|
98
|
+
username: dataArg.identity.username,
|
|
99
|
+
});
|
|
100
|
+
return { ok: true };
|
|
101
|
+
}));
|
|
102
|
+
// Pause/resume job
|
|
103
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('pauseJob', async (dataArg) => {
|
|
104
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
105
|
+
const job = await this.jobManager.pauseJob(dataArg.jobId, dataArg.paused);
|
|
106
|
+
this.actionLog.append({
|
|
107
|
+
actionType: dataArg.paused ? 'pause' : 'resume',
|
|
108
|
+
entityType: 'job',
|
|
109
|
+
entityId: job.id,
|
|
110
|
+
entityName: job.name,
|
|
111
|
+
details: dataArg.paused ? 'Paused job' : 'Resumed job',
|
|
112
|
+
username: dataArg.identity.username,
|
|
113
|
+
});
|
|
114
|
+
return { job };
|
|
115
|
+
}));
|
|
116
|
+
// Trigger job manually
|
|
117
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('triggerJob', async (dataArg) => {
|
|
118
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
119
|
+
const job = this.jobManager.getJob(dataArg.jobId);
|
|
120
|
+
if (!job) {
|
|
121
|
+
return { ok: false, message: `Job not found: ${dataArg.jobId}` };
|
|
122
|
+
}
|
|
123
|
+
if (this.jobManager.isJobRunning(dataArg.jobId)) {
|
|
124
|
+
return { ok: false, message: 'Job is already running' };
|
|
125
|
+
}
|
|
126
|
+
// Fire-and-forget
|
|
127
|
+
this.jobManager.executeJob(dataArg.jobId, true).catch(() => { });
|
|
128
|
+
this.actionLog.append({
|
|
129
|
+
actionType: 'run',
|
|
130
|
+
entityType: 'job',
|
|
131
|
+
entityId: job.id,
|
|
132
|
+
entityName: job.name,
|
|
133
|
+
details: 'Manually triggered job execution',
|
|
134
|
+
username: dataArg.identity.username,
|
|
135
|
+
});
|
|
136
|
+
return { ok: true, message: 'Job triggered' };
|
|
137
|
+
}));
|
|
138
|
+
// Get job logs
|
|
139
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('getJobLogs', async (dataArg) => {
|
|
140
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
141
|
+
const logs = logger.getJobLogs(dataArg.limit || 200);
|
|
142
|
+
return { logs };
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHMvb3Bzc2VydmVyL2hhbmRsZXJzL2pvYnMuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sS0FBSyxVQUFVLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLE1BQU0sT0FBTyxXQUFXO0lBR0Y7SUFGYixXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTVELFlBQW9CLFlBQXVCO1FBQXZCLGlCQUFZLEdBQVosWUFBWSxDQUFXO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjO1FBQ3BCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQztnQkFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDO2dCQUN2RSxJQUFJLENBQUMsV0FBVztvQkFBRSxPQUFPO2dCQUN6QixXQUFXLENBQUMsNkJBQTZCLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQzdFLEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7d0JBQy9CLFdBQVc7NkJBQ1Is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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import type { OpsServer } from '../classes.opsserver.js';
|
|
3
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
4
|
+
export declare class LogsHandler {
|
|
5
|
+
private opsServerRef;
|
|
6
|
+
typedrouter: plugins.typedrequest.TypedRouter<interfaces.typedrequestInterfaces.ITypedRequest>;
|
|
7
|
+
constructor(opsServerRef: OpsServer);
|
|
8
|
+
private registerHandlers;
|
|
9
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
3
|
+
import { requireValidIdentity } from '../helpers/guards.js';
|
|
4
|
+
export class LogsHandler {
|
|
5
|
+
opsServerRef;
|
|
6
|
+
typedrouter = new plugins.typedrequest.TypedRouter();
|
|
7
|
+
constructor(opsServerRef) {
|
|
8
|
+
this.opsServerRef = opsServerRef;
|
|
9
|
+
this.opsServerRef.typedrouter.addTypedRouter(this.typedrouter);
|
|
10
|
+
this.registerHandlers();
|
|
11
|
+
}
|
|
12
|
+
registerHandlers() {
|
|
13
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('getJobLog', async (dataArg) => {
|
|
14
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
15
|
+
const provider = this.opsServerRef.gitopsAppRef.connectionManager.getProvider(dataArg.connectionId);
|
|
16
|
+
const log = await provider.getJobLog(dataArg.projectId, dataArg.jobId);
|
|
17
|
+
return { log };
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHMvb3Bzc2VydmVyL2hhbmRsZXJzL2xvZ3MuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sS0FBSyxVQUFVLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUQsTUFBTSxPQUFPLFdBQVc7SUFHRjtJQUZiLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFNUQsWUFBb0IsWUFBdUI7UUFBdkIsaUJBQVksR0FBWixZQUFZLENBQVc7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUM5QixJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUNuQyxXQUFXLEVBQ1gsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2hCLE1BQU0sb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDcEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUMzRSxPQUFPLENBQUMsWUFBWSxDQUNyQixDQUFDO1lBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import type { OpsServer } from '../classes.opsserver.js';
|
|
3
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
4
|
+
export declare class ManagedSecretsHandler {
|
|
5
|
+
private opsServerRef;
|
|
6
|
+
typedrouter: plugins.typedrequest.TypedRouter<interfaces.typedrequestInterfaces.ITypedRequest>;
|
|
7
|
+
constructor(opsServerRef: OpsServer);
|
|
8
|
+
private get actionLog();
|
|
9
|
+
private get manager();
|
|
10
|
+
private registerHandlers;
|
|
11
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
3
|
+
import { requireValidIdentity } from '../helpers/guards.js';
|
|
4
|
+
export class ManagedSecretsHandler {
|
|
5
|
+
opsServerRef;
|
|
6
|
+
typedrouter = new plugins.typedrequest.TypedRouter();
|
|
7
|
+
constructor(opsServerRef) {
|
|
8
|
+
this.opsServerRef = opsServerRef;
|
|
9
|
+
this.opsServerRef.typedrouter.addTypedRouter(this.typedrouter);
|
|
10
|
+
this.registerHandlers();
|
|
11
|
+
}
|
|
12
|
+
get actionLog() {
|
|
13
|
+
return this.opsServerRef.gitopsAppRef.actionLog;
|
|
14
|
+
}
|
|
15
|
+
get manager() {
|
|
16
|
+
return this.opsServerRef.gitopsAppRef.managedSecretsManager;
|
|
17
|
+
}
|
|
18
|
+
registerHandlers() {
|
|
19
|
+
// List all managed secrets
|
|
20
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('getManagedSecrets', async (dataArg) => {
|
|
21
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
22
|
+
const managedSecrets = await this.manager.getAll();
|
|
23
|
+
return { managedSecrets };
|
|
24
|
+
}));
|
|
25
|
+
// Get single managed secret
|
|
26
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('getManagedSecret', async (dataArg) => {
|
|
27
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
28
|
+
const managedSecret = await this.manager.getById(dataArg.managedSecretId);
|
|
29
|
+
if (!managedSecret)
|
|
30
|
+
throw new Error(`Managed secret not found: ${dataArg.managedSecretId}`);
|
|
31
|
+
return { managedSecret };
|
|
32
|
+
}));
|
|
33
|
+
// Create managed secret
|
|
34
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('createManagedSecret', async (dataArg) => {
|
|
35
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
36
|
+
const result = await this.manager.create(dataArg.key, dataArg.value, dataArg.description, dataArg.targets);
|
|
37
|
+
this.actionLog.append({
|
|
38
|
+
actionType: 'create',
|
|
39
|
+
entityType: 'managed-secret',
|
|
40
|
+
entityId: result.managedSecret.id,
|
|
41
|
+
entityName: `GITOPS_${dataArg.key}`,
|
|
42
|
+
details: `Created managed secret "${dataArg.key}" with ${dataArg.targets.length} target(s)`,
|
|
43
|
+
username: dataArg.identity.username,
|
|
44
|
+
});
|
|
45
|
+
return result;
|
|
46
|
+
}));
|
|
47
|
+
// Update managed secret
|
|
48
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('updateManagedSecret', async (dataArg) => {
|
|
49
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
50
|
+
const result = await this.manager.update(dataArg.managedSecretId, {
|
|
51
|
+
value: dataArg.value,
|
|
52
|
+
description: dataArg.description,
|
|
53
|
+
targets: dataArg.targets,
|
|
54
|
+
});
|
|
55
|
+
this.actionLog.append({
|
|
56
|
+
actionType: 'update',
|
|
57
|
+
entityType: 'managed-secret',
|
|
58
|
+
entityId: dataArg.managedSecretId,
|
|
59
|
+
entityName: `GITOPS_${result.managedSecret.key}`,
|
|
60
|
+
details: `Updated managed secret "${result.managedSecret.key}"`,
|
|
61
|
+
username: dataArg.identity.username,
|
|
62
|
+
});
|
|
63
|
+
return result;
|
|
64
|
+
}));
|
|
65
|
+
// Delete managed secret
|
|
66
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('deleteManagedSecret', async (dataArg) => {
|
|
67
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
68
|
+
const secret = await this.manager.getById(dataArg.managedSecretId);
|
|
69
|
+
const result = await this.manager.delete(dataArg.managedSecretId);
|
|
70
|
+
this.actionLog.append({
|
|
71
|
+
actionType: 'delete',
|
|
72
|
+
entityType: 'managed-secret',
|
|
73
|
+
entityId: dataArg.managedSecretId,
|
|
74
|
+
entityName: secret ? `GITOPS_${secret.key}` : dataArg.managedSecretId,
|
|
75
|
+
details: `Deleted managed secret${secret ? ` "${secret.key}"` : ''}`,
|
|
76
|
+
username: dataArg.identity.username,
|
|
77
|
+
});
|
|
78
|
+
return result;
|
|
79
|
+
}));
|
|
80
|
+
// Push single managed secret
|
|
81
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('pushManagedSecret', async (dataArg) => {
|
|
82
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
83
|
+
const result = await this.manager.pushOne(dataArg.managedSecretId);
|
|
84
|
+
this.actionLog.append({
|
|
85
|
+
actionType: 'push',
|
|
86
|
+
entityType: 'managed-secret',
|
|
87
|
+
entityId: dataArg.managedSecretId,
|
|
88
|
+
entityName: `GITOPS_${result.managedSecret.key}`,
|
|
89
|
+
details: `Pushed managed secret "${result.managedSecret.key}" to ${result.pushResults.length} target(s)`,
|
|
90
|
+
username: dataArg.identity.username,
|
|
91
|
+
});
|
|
92
|
+
return result;
|
|
93
|
+
}));
|
|
94
|
+
// Push all managed secrets
|
|
95
|
+
this.typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('pushAllManagedSecrets', async (dataArg) => {
|
|
96
|
+
await requireValidIdentity(this.opsServerRef.adminHandler, dataArg);
|
|
97
|
+
const results = await this.manager.pushAll();
|
|
98
|
+
this.actionLog.append({
|
|
99
|
+
actionType: 'push',
|
|
100
|
+
entityType: 'managed-secret',
|
|
101
|
+
entityId: 'all',
|
|
102
|
+
entityName: 'All managed secrets',
|
|
103
|
+
details: `Pushed ${results.length} managed secret(s) to their targets`,
|
|
104
|
+
username: dataArg.identity.username,
|
|
105
|
+
});
|
|
106
|
+
return { results };
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZHNlY3JldHMuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzL29wc3NlcnZlci9oYW5kbGVycy9tYW5hZ2Vkc2VjcmV0cy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8scUJBQXFCO0lBR1o7SUFGYixXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTVELFlBQW9CLFlBQXVCO1FBQXZCLGlCQUFZLEdBQVosWUFBWSxDQUFXO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7SUFDOUQsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQzlCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQ25DLG1CQUFtQixFQUNuQixLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRSxNQUFNLGNBQWMs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
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import type { OpsServer } from '../classes.opsserver.js';
|
|
3
|
+
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
4
|
+
export declare class PipelinesHandler {
|
|
5
|
+
private opsServerRef;
|
|
6
|
+
typedrouter: plugins.typedrequest.TypedRouter<interfaces.typedrequestInterfaces.ITypedRequest>;
|
|
7
|
+
constructor(opsServerRef: OpsServer);
|
|
8
|
+
private get actionLog();
|
|
9
|
+
private registerHandlers;
|
|
10
|
+
/**
|
|
11
|
+
* Current mode: running/pending always shown, plus recent pipelines within timeRange.
|
|
12
|
+
* Fetches a generous page of recent pipelines per project (100), then splits into
|
|
13
|
+
* active (running/pending/waiting) and the rest. Active are always shown; the rest
|
|
14
|
+
* is filtered by timeRange.
|
|
15
|
+
*/
|
|
16
|
+
private fetchCurrentPipelines;
|
|
17
|
+
/**
|
|
18
|
+
* Group mode: pipelines from all projects in a group
|
|
19
|
+
*/
|
|
20
|
+
private fetchGroupPipelines;
|
|
21
|
+
/**
|
|
22
|
+
* Error mode: only failed pipelines
|
|
23
|
+
*/
|
|
24
|
+
private fetchErrorPipelines;
|
|
25
|
+
/**
|
|
26
|
+
* Fetch pipelines from multiple projects in parallel (batched)
|
|
27
|
+
*/
|
|
28
|
+
private fetchAggregatedPipelines;
|
|
29
|
+
private filterByTimeRange;
|
|
30
|
+
private sortPipelines;
|
|
31
|
+
}
|