liara-mcp 0.1.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 +22 -0
- package/README.md +353 -0
- package/dist/api/client.d.ts +49 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +145 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/types.d.ts +256 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +25 -0
- package/dist/api/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3102 -0
- package/dist/index.js.map +1 -0
- package/dist/services/apps.d.ts +39 -0
- package/dist/services/apps.d.ts.map +1 -0
- package/dist/services/apps.js +83 -0
- package/dist/services/apps.js.map +1 -0
- package/dist/services/databases.d.ts +74 -0
- package/dist/services/databases.d.ts.map +1 -0
- package/dist/services/databases.js +120 -0
- package/dist/services/databases.js.map +1 -0
- package/dist/services/deployment.d.ts +57 -0
- package/dist/services/deployment.d.ts.map +1 -0
- package/dist/services/deployment.js +70 -0
- package/dist/services/deployment.js.map +1 -0
- package/dist/services/disks.d.ts +35 -0
- package/dist/services/disks.d.ts.map +1 -0
- package/dist/services/disks.js +88 -0
- package/dist/services/disks.js.map +1 -0
- package/dist/services/dns.d.ts +43 -0
- package/dist/services/dns.d.ts.map +1 -0
- package/dist/services/dns.js +80 -0
- package/dist/services/dns.js.map +1 -0
- package/dist/services/domains.d.ts +23 -0
- package/dist/services/domains.d.ts.map +1 -0
- package/dist/services/domains.js +42 -0
- package/dist/services/domains.js.map +1 -0
- package/dist/services/environment.d.ts +31 -0
- package/dist/services/environment.d.ts.map +1 -0
- package/dist/services/environment.js +59 -0
- package/dist/services/environment.js.map +1 -0
- package/dist/services/iaas.d.ts +80 -0
- package/dist/services/iaas.d.ts.map +1 -0
- package/dist/services/iaas.js +161 -0
- package/dist/services/iaas.js.map +1 -0
- package/dist/services/mail.d.ts +38 -0
- package/dist/services/mail.d.ts.map +1 -0
- package/dist/services/mail.js +65 -0
- package/dist/services/mail.js.map +1 -0
- package/dist/services/network.d.ts +19 -0
- package/dist/services/network.d.ts.map +1 -0
- package/dist/services/network.js +35 -0
- package/dist/services/network.js.map +1 -0
- package/dist/services/observability.d.ts +24 -0
- package/dist/services/observability.d.ts.map +1 -0
- package/dist/services/observability.js +41 -0
- package/dist/services/observability.js.map +1 -0
- package/dist/services/plans.d.ts +12 -0
- package/dist/services/plans.d.ts.map +1 -0
- package/dist/services/plans.js +17 -0
- package/dist/services/plans.js.map +1 -0
- package/dist/services/settings.d.ts +28 -0
- package/dist/services/settings.d.ts.map +1 -0
- package/dist/services/settings.js +37 -0
- package/dist/services/settings.js.map +1 -0
- package/dist/services/storage.d.ts +60 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +96 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/user.d.ts +32 -0
- package/dist/services/user.d.ts.map +1 -0
- package/dist/services/user.js +16 -0
- package/dist/services/user.js.map +1 -0
- package/dist/utils/errors.d.ts +30 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +63 -0
- package/dist/utils/errors.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { paginationToParams, } from '../api/types.js';
|
|
3
|
+
import { validateRequired } from '../utils/errors.js';
|
|
4
|
+
/**
|
|
5
|
+
* Create a specialized IaaS client with the IaaS API base URL
|
|
6
|
+
*/
|
|
7
|
+
function createIaaSClient(client) {
|
|
8
|
+
// Access the internal client to get the API token
|
|
9
|
+
const internalClient = client.client;
|
|
10
|
+
const apiToken = internalClient?.defaults?.headers?.Authorization?.replace('Bearer ', '') ||
|
|
11
|
+
process.env.LIARA_API_TOKEN;
|
|
12
|
+
const teamId = client.teamId || process.env.LIARA_TEAM_ID;
|
|
13
|
+
if (!apiToken) {
|
|
14
|
+
throw new Error('API token is required for IaaS operations');
|
|
15
|
+
}
|
|
16
|
+
// Create new client with IaaS base URL
|
|
17
|
+
// Import LiaraClient class dynamically
|
|
18
|
+
return new LiaraClient({
|
|
19
|
+
apiToken,
|
|
20
|
+
teamId,
|
|
21
|
+
baseURL: 'https://iaas-api.liara.ir',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List all virtual machines
|
|
26
|
+
*/
|
|
27
|
+
export async function listVMs(client, pagination) {
|
|
28
|
+
const iaasClient = createIaaSClient(client);
|
|
29
|
+
const params = paginationToParams(pagination);
|
|
30
|
+
return await iaasClient.get('/vm', params);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get details of a specific VM
|
|
34
|
+
*/
|
|
35
|
+
export async function getVM(client, vmId) {
|
|
36
|
+
validateRequired(vmId, 'VM ID');
|
|
37
|
+
const iaasClient = createIaaSClient(client);
|
|
38
|
+
return await iaasClient.get(`/vm/${vmId}`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create a new virtual machine
|
|
42
|
+
*/
|
|
43
|
+
export async function createVM(client, request) {
|
|
44
|
+
validateRequired(request.name, 'VM name');
|
|
45
|
+
validateRequired(request.planID, 'Plan ID');
|
|
46
|
+
validateRequired(request.os, 'Operating system');
|
|
47
|
+
const iaasClient = createIaaSClient(client);
|
|
48
|
+
return await iaasClient.post('/vm', request);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Start a VM
|
|
52
|
+
*/
|
|
53
|
+
export async function startVM(client, vmId) {
|
|
54
|
+
validateRequired(vmId, 'VM ID');
|
|
55
|
+
const iaasClient = createIaaSClient(client);
|
|
56
|
+
await iaasClient.post(`/vm/${vmId}/actions/start`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Stop a VM
|
|
60
|
+
*/
|
|
61
|
+
export async function stopVM(client, vmId) {
|
|
62
|
+
validateRequired(vmId, 'VM ID');
|
|
63
|
+
const iaasClient = createIaaSClient(client);
|
|
64
|
+
await iaasClient.post(`/vm/${vmId}/actions/stop`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Restart a VM
|
|
68
|
+
*/
|
|
69
|
+
export async function restartVM(client, vmId) {
|
|
70
|
+
validateRequired(vmId, 'VM ID');
|
|
71
|
+
const iaasClient = createIaaSClient(client);
|
|
72
|
+
await iaasClient.post(`/vm/${vmId}/actions/restart`);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Shutdown a VM
|
|
76
|
+
*/
|
|
77
|
+
export async function shutdownVM(client, vmId) {
|
|
78
|
+
validateRequired(vmId, 'VM ID');
|
|
79
|
+
const iaasClient = createIaaSClient(client);
|
|
80
|
+
await iaasClient.post(`/vm/${vmId}/actions/shutdown`);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Power off a VM
|
|
84
|
+
*/
|
|
85
|
+
export async function powerOffVM(client, vmId) {
|
|
86
|
+
validateRequired(vmId, 'VM ID');
|
|
87
|
+
const iaasClient = createIaaSClient(client);
|
|
88
|
+
await iaasClient.post(`/vm/${vmId}/actions/poweroff`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Delete a VM
|
|
92
|
+
*/
|
|
93
|
+
export async function deleteVM(client, vmId) {
|
|
94
|
+
validateRequired(vmId, 'VM ID');
|
|
95
|
+
const iaasClient = createIaaSClient(client);
|
|
96
|
+
await iaasClient.delete(`/vm/${vmId}`);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Resize a VM (change plan)
|
|
100
|
+
*/
|
|
101
|
+
export async function resizeVM(client, vmId, planID) {
|
|
102
|
+
validateRequired(vmId, 'VM ID');
|
|
103
|
+
validateRequired(planID, 'Plan ID');
|
|
104
|
+
const iaasClient = createIaaSClient(client);
|
|
105
|
+
return await iaasClient.post(`/vm/${vmId}/resize`, { planID });
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create a VM snapshot
|
|
109
|
+
*/
|
|
110
|
+
export async function createSnapshot(client, vmId, name) {
|
|
111
|
+
validateRequired(vmId, 'VM ID');
|
|
112
|
+
const iaasClient = createIaaSClient(client);
|
|
113
|
+
const body = name ? { name } : {};
|
|
114
|
+
return await iaasClient.post(`/vm/${vmId}/snapshots`, body);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* List VM snapshots
|
|
118
|
+
*/
|
|
119
|
+
export async function listSnapshots(client, vmId, pagination) {
|
|
120
|
+
validateRequired(vmId, 'VM ID');
|
|
121
|
+
const iaasClient = createIaaSClient(client);
|
|
122
|
+
const params = paginationToParams(pagination);
|
|
123
|
+
return await iaasClient.get(`/vm/${vmId}/snapshots`, params);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Restore a VM from a snapshot
|
|
127
|
+
*/
|
|
128
|
+
export async function restoreSnapshot(client, vmId, snapshotId) {
|
|
129
|
+
validateRequired(vmId, 'VM ID');
|
|
130
|
+
validateRequired(snapshotId, 'Snapshot ID');
|
|
131
|
+
const iaasClient = createIaaSClient(client);
|
|
132
|
+
return await iaasClient.post(`/vm/${vmId}/snapshots/${snapshotId}/restore`);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Delete a VM snapshot
|
|
136
|
+
*/
|
|
137
|
+
export async function deleteSnapshot(client, vmId, snapshotId) {
|
|
138
|
+
validateRequired(vmId, 'VM ID');
|
|
139
|
+
validateRequired(snapshotId, 'Snapshot ID');
|
|
140
|
+
const iaasClient = createIaaSClient(client);
|
|
141
|
+
await iaasClient.delete(`/vm/${vmId}/snapshots/${snapshotId}`);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Attach a network to a VM
|
|
145
|
+
*/
|
|
146
|
+
export async function attachNetwork(client, vmId, networkId) {
|
|
147
|
+
validateRequired(vmId, 'VM ID');
|
|
148
|
+
validateRequired(networkId, 'Network ID');
|
|
149
|
+
const iaasClient = createIaaSClient(client);
|
|
150
|
+
return await iaasClient.post(`/vm/${vmId}/networks/${networkId}/attach`);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Detach a network from a VM
|
|
154
|
+
*/
|
|
155
|
+
export async function detachNetwork(client, vmId, networkId) {
|
|
156
|
+
validateRequired(vmId, 'VM ID');
|
|
157
|
+
validateRequired(networkId, 'Network ID');
|
|
158
|
+
const iaasClient = createIaaSClient(client);
|
|
159
|
+
await iaasClient.delete(`/vm/${vmId}/networks/${networkId}`);
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=iaas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iaas.js","sourceRoot":"","sources":["../../src/services/iaas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { MailServer, SendEmailRequest, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all mail servers
|
|
5
|
+
*/
|
|
6
|
+
export declare function listMailServers(client: LiaraClient, pagination?: PaginationOptions): Promise<MailServer[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get details of a specific mail server
|
|
9
|
+
*/
|
|
10
|
+
export declare function getMailServer(client: LiaraClient, mailId: string): Promise<MailServer>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new mail server
|
|
13
|
+
*/
|
|
14
|
+
export declare function createMailServer(client: LiaraClient, name: string, mode?: 'smtp' | 'api'): Promise<MailServer>;
|
|
15
|
+
/**
|
|
16
|
+
* Delete a mail server
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteMailServer(client: LiaraClient, mailId: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Send an email
|
|
21
|
+
*/
|
|
22
|
+
export declare function sendEmail(client: LiaraClient, mailId: string, request: SendEmailRequest): Promise<{
|
|
23
|
+
message: string;
|
|
24
|
+
messageId?: string;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Start a mail server
|
|
28
|
+
*/
|
|
29
|
+
export declare function startMailServer(client: LiaraClient, mailId: string): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Stop a mail server
|
|
32
|
+
*/
|
|
33
|
+
export declare function stopMailServer(client: LiaraClient, mailId: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Restart a mail server
|
|
36
|
+
*/
|
|
37
|
+
export declare function restartMailServer(client: LiaraClient, mailId: string): Promise<void>;
|
|
38
|
+
//# sourceMappingURL=mail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/services/mail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,UAAU,EAAE,CAAC,CAGvB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,GAAG,KAAa,GAC7B,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAclD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { paginationToParams, } from '../api/types.js';
|
|
2
|
+
import { validateRequired } from '../utils/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all mail servers
|
|
5
|
+
*/
|
|
6
|
+
export async function listMailServers(client, pagination) {
|
|
7
|
+
const params = paginationToParams(pagination);
|
|
8
|
+
return await client.get('/v1/mails', params);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get details of a specific mail server
|
|
12
|
+
*/
|
|
13
|
+
export async function getMailServer(client, mailId) {
|
|
14
|
+
validateRequired(mailId, 'Mail server ID');
|
|
15
|
+
return await client.get(`/v1/mails/${mailId}`);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a new mail server
|
|
19
|
+
*/
|
|
20
|
+
export async function createMailServer(client, name, mode = 'api') {
|
|
21
|
+
validateRequired(name, 'Mail server name');
|
|
22
|
+
return await client.post('/v1/mails', { name, mode });
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Delete a mail server
|
|
26
|
+
*/
|
|
27
|
+
export async function deleteMailServer(client, mailId) {
|
|
28
|
+
validateRequired(mailId, 'Mail server ID');
|
|
29
|
+
await client.delete(`/v1/mails/${mailId}`);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Send an email
|
|
33
|
+
*/
|
|
34
|
+
export async function sendEmail(client, mailId, request) {
|
|
35
|
+
validateRequired(mailId, 'Mail server ID');
|
|
36
|
+
validateRequired(request.from, 'From address');
|
|
37
|
+
validateRequired(request.to, 'To address');
|
|
38
|
+
validateRequired(request.subject, 'Subject');
|
|
39
|
+
if (!request.html && !request.text) {
|
|
40
|
+
throw new Error('Either html or text content is required');
|
|
41
|
+
}
|
|
42
|
+
return await client.post(`/v1/mails/${mailId}/send`, request);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Start a mail server
|
|
46
|
+
*/
|
|
47
|
+
export async function startMailServer(client, mailId) {
|
|
48
|
+
validateRequired(mailId, 'Mail server ID');
|
|
49
|
+
await client.post(`/v1/mails/${mailId}/actions/start`);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Stop a mail server
|
|
53
|
+
*/
|
|
54
|
+
export async function stopMailServer(client, mailId) {
|
|
55
|
+
validateRequired(mailId, 'Mail server ID');
|
|
56
|
+
await client.post(`/v1/mails/${mailId}/actions/stop`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Restart a mail server
|
|
60
|
+
*/
|
|
61
|
+
export async function restartMailServer(client, mailId) {
|
|
62
|
+
validateRequired(mailId, 'Mail server ID');
|
|
63
|
+
await client.post(`/v1/mails/${mailId}/actions/restart`);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=mail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/services/mail.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,UAA8B;IAE9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAe,WAAW,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAmB,EACnB,IAAY,EACZ,OAAuB,KAAK;IAE5B,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC3C,OAAO,MAAM,MAAM,CAAC,IAAI,CAAa,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,MAAc,EACd,OAAyB;IAEzB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC3C,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE7C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,aAAa,MAAM,OAAO,EAC1B,OAAO,CACV,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,eAAe,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,kBAAkB,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { Network, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all networks
|
|
5
|
+
*/
|
|
6
|
+
export declare function listNetworks(client: LiaraClient, pagination?: PaginationOptions): Promise<Network[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get details of a specific network
|
|
9
|
+
*/
|
|
10
|
+
export declare function getNetwork(client: LiaraClient, networkId: string): Promise<Network>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new network
|
|
13
|
+
*/
|
|
14
|
+
export declare function createNetwork(client: LiaraClient, name: string, cidr?: string): Promise<Network>;
|
|
15
|
+
/**
|
|
16
|
+
* Delete a network
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteNetwork(client: LiaraClient, networkId: string): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=network.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/services/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,OAAO,EACP,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,CAGpB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { paginationToParams, } from '../api/types.js';
|
|
2
|
+
import { validateRequired } from '../utils/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all networks
|
|
5
|
+
*/
|
|
6
|
+
export async function listNetworks(client, pagination) {
|
|
7
|
+
const params = paginationToParams(pagination);
|
|
8
|
+
return await client.get('/v1/networks', params);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get details of a specific network
|
|
12
|
+
*/
|
|
13
|
+
export async function getNetwork(client, networkId) {
|
|
14
|
+
validateRequired(networkId, 'Network ID');
|
|
15
|
+
return await client.get(`/v1/networks/${networkId}`);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a new network
|
|
19
|
+
*/
|
|
20
|
+
export async function createNetwork(client, name, cidr) {
|
|
21
|
+
validateRequired(name, 'Network name');
|
|
22
|
+
const request = { name };
|
|
23
|
+
if (cidr) {
|
|
24
|
+
request.cidr = cidr;
|
|
25
|
+
}
|
|
26
|
+
return await client.post('/v1/networks', request);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Delete a network
|
|
30
|
+
*/
|
|
31
|
+
export async function deleteNetwork(client, networkId) {
|
|
32
|
+
validateRequired(networkId, 'Network ID');
|
|
33
|
+
await client.delete(`/v1/networks/${networkId}`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/services/network.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAmB,EACnB,UAA8B;IAE9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAY,cAAc,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,SAAiB;IAEjB,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAU,gBAAgB,SAAS,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,IAAY,EACZ,IAAa;IAEb,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAU,cAAc,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,SAAiB;IAEjB,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { MetricsSummary, LogEntry } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get app metrics summary
|
|
5
|
+
*/
|
|
6
|
+
export declare function getAppMetrics(client: LiaraClient, appName: string, period?: string): Promise<MetricsSummary>;
|
|
7
|
+
/**
|
|
8
|
+
* Get app logs
|
|
9
|
+
* @param limit - Maximum number of log entries to return (default: 100)
|
|
10
|
+
* @param since - ISO timestamp to fetch logs since
|
|
11
|
+
* @param until - ISO timestamp to fetch logs until
|
|
12
|
+
*/
|
|
13
|
+
export declare function getAppLogs(client: LiaraClient, appName: string, options?: {
|
|
14
|
+
limit?: number;
|
|
15
|
+
since?: string;
|
|
16
|
+
until?: string;
|
|
17
|
+
}): Promise<LogEntry[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Stream app logs (real-time)
|
|
20
|
+
* Note: This would typically use WebSocket, but for MCP we return recent logs
|
|
21
|
+
* For true streaming, consider implementing WebSocket support separately
|
|
22
|
+
*/
|
|
23
|
+
export declare function streamAppLogs(client: LiaraClient, appName: string): Promise<LogEntry[]>;
|
|
24
|
+
//# sourceMappingURL=observability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/services/observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,cAAc,EACd,QAAQ,EACX,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAQzB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,GACF,OAAO,CAAC,QAAQ,EAAE,CAAC,CAkBrB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAMrB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { validateAppName } from '../utils/errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get app metrics summary
|
|
4
|
+
*/
|
|
5
|
+
export async function getAppMetrics(client, appName, period) {
|
|
6
|
+
validateAppName(appName);
|
|
7
|
+
const params = period ? { period } : {};
|
|
8
|
+
return await client.get(`/v1/projects/${appName}/metrics/summary`, params);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get app logs
|
|
12
|
+
* @param limit - Maximum number of log entries to return (default: 100)
|
|
13
|
+
* @param since - ISO timestamp to fetch logs since
|
|
14
|
+
* @param until - ISO timestamp to fetch logs until
|
|
15
|
+
*/
|
|
16
|
+
export async function getAppLogs(client, appName, options) {
|
|
17
|
+
validateAppName(appName);
|
|
18
|
+
const params = {};
|
|
19
|
+
if (options?.limit) {
|
|
20
|
+
params.limit = options.limit;
|
|
21
|
+
}
|
|
22
|
+
if (options?.since) {
|
|
23
|
+
params.since = options.since;
|
|
24
|
+
}
|
|
25
|
+
if (options?.until) {
|
|
26
|
+
params.until = options.until;
|
|
27
|
+
}
|
|
28
|
+
return await client.get(`/v1/projects/${appName}/logs`, params);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Stream app logs (real-time)
|
|
32
|
+
* Note: This would typically use WebSocket, but for MCP we return recent logs
|
|
33
|
+
* For true streaming, consider implementing WebSocket support separately
|
|
34
|
+
*/
|
|
35
|
+
export async function streamAppLogs(client, appName) {
|
|
36
|
+
validateAppName(appName);
|
|
37
|
+
// For now, return recent logs
|
|
38
|
+
// WebSocket streaming would require separate implementation
|
|
39
|
+
return await getAppLogs(client, appName, { limit: 100 });
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=observability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/services/observability.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe,EACf,MAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,MAAM,MAAM,CAAC,GAAG,CACnB,gBAAgB,OAAO,kBAAkB,EACzC,MAAM,CACT,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,OAAe,EACf,OAIC;IAED,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,GAAG,CACnB,gBAAgB,OAAO,OAAO,EAC9B,MAAM,CACT,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,8BAA8B;IAC9B,4DAA4D;IAC5D,OAAO,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { Plan, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List available plans
|
|
5
|
+
* @param planType - Optional filter by plan type ('app', 'database', 'vm')
|
|
6
|
+
*/
|
|
7
|
+
export declare function listPlans(client: LiaraClient, planType?: 'app' | 'database' | 'vm', pagination?: PaginationOptions): Promise<Plan[]>;
|
|
8
|
+
/**
|
|
9
|
+
* Get a specific plan by ID
|
|
10
|
+
*/
|
|
11
|
+
export declare function getPlan(client: LiaraClient, planId: string): Promise<Plan>;
|
|
12
|
+
//# sourceMappingURL=plans.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAsB,MAAM,iBAAiB,CAAC;AAE9E;;;GAGG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,IAAI,EACpC,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,IAAI,EAAE,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { paginationToParams } from '../api/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* List available plans
|
|
4
|
+
* @param planType - Optional filter by plan type ('app', 'database', 'vm')
|
|
5
|
+
*/
|
|
6
|
+
export async function listPlans(client, planType, pagination) {
|
|
7
|
+
const params = planType ? { type: planType } : {};
|
|
8
|
+
Object.assign(params, paginationToParams(pagination));
|
|
9
|
+
return await client.get('/v1/plans', params);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get a specific plan by ID
|
|
13
|
+
*/
|
|
14
|
+
export async function getPlan(client, planId) {
|
|
15
|
+
return await client.get(`/v1/plans/${planId}`);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=plans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,QAAoC,EACpC,UAA8B;IAE9B,MAAM,MAAM,GAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,OAAO,MAAM,MAAM,CAAC,GAAG,CAAS,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,MAAmB,EACnB,MAAc;IAEd,OAAO,MAAM,MAAM,CAAC,GAAG,CAAO,aAAa,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Enable or disable zero-downtime deployment for an app
|
|
4
|
+
*/
|
|
5
|
+
export declare function setZeroDowntime(client: LiaraClient, appName: string, enabled: boolean): Promise<{
|
|
6
|
+
message: string;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Enable or disable default subdomain for an app
|
|
10
|
+
*/
|
|
11
|
+
export declare function setDefaultSubdomain(client: LiaraClient, appName: string, enabled: boolean): Promise<{
|
|
12
|
+
message: string;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Enable or disable static IP for an app
|
|
16
|
+
* Returns the IP address when enabling
|
|
17
|
+
*/
|
|
18
|
+
export declare function setFixedIP(client: LiaraClient, appName: string, enabled: boolean): Promise<{
|
|
19
|
+
message: string;
|
|
20
|
+
IP?: string;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Enable or disable read-only mode for an app
|
|
24
|
+
*/
|
|
25
|
+
export declare function setReadOnly(client: LiaraClient, appName: string, enabled: boolean): Promise<{
|
|
26
|
+
message: string;
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAO9B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAO9B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { validateAppName } from '../utils/errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Enable or disable zero-downtime deployment for an app
|
|
4
|
+
*/
|
|
5
|
+
export async function setZeroDowntime(client, appName, enabled) {
|
|
6
|
+
validateAppName(appName);
|
|
7
|
+
const status = enabled ? 'enable' : 'disable';
|
|
8
|
+
// Note: API uses project ID, but we'll use name and let the API handle it
|
|
9
|
+
// If needed, we might need to get the project ID first
|
|
10
|
+
return await client.post(`/v1/projects/${appName}/zero-downtime/${status}`);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Enable or disable default subdomain for an app
|
|
14
|
+
*/
|
|
15
|
+
export async function setDefaultSubdomain(client, appName, enabled) {
|
|
16
|
+
validateAppName(appName);
|
|
17
|
+
const status = enabled ? 'enable' : 'disable';
|
|
18
|
+
return await client.post(`/v1/projects/${appName}/default-subdomain/${status}`);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Enable or disable static IP for an app
|
|
22
|
+
* Returns the IP address when enabling
|
|
23
|
+
*/
|
|
24
|
+
export async function setFixedIP(client, appName, enabled) {
|
|
25
|
+
validateAppName(appName);
|
|
26
|
+
const status = enabled ? 'enable' : 'disable';
|
|
27
|
+
return await client.post(`/v1/projects/${appName}/fixed-ip/${status}`);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Enable or disable read-only mode for an app
|
|
31
|
+
*/
|
|
32
|
+
export async function setReadOnly(client, appName, enabled) {
|
|
33
|
+
validateAppName(appName);
|
|
34
|
+
const status = enabled ? 'enable' : 'disable';
|
|
35
|
+
return await client.post(`/v1/projects/${appName}/read-only/${status}`);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,0EAA0E;IAC1E,uDAAuD;IACvD,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,kBAAkB,MAAM,EAAE,CACpD,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,sBAAsB,MAAM,EAAE,CACxD,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,aAAa,MAAM,EAAE,CAC/C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,cAAc,MAAM,EAAE,CAChD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { Bucket, BucketCredentials, CreateBucketRequest, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all buckets
|
|
5
|
+
*/
|
|
6
|
+
export declare function listBuckets(client: LiaraClient, pagination?: PaginationOptions): Promise<Bucket[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get details of a specific bucket
|
|
9
|
+
*/
|
|
10
|
+
export declare function getBucket(client: LiaraClient, name: string): Promise<Bucket>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new bucket
|
|
13
|
+
*/
|
|
14
|
+
export declare function createBucket(client: LiaraClient, request: CreateBucketRequest): Promise<Bucket>;
|
|
15
|
+
/**
|
|
16
|
+
* Delete a bucket
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteBucket(client: LiaraClient, name: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Get bucket credentials (S3-compatible access keys)
|
|
21
|
+
*/
|
|
22
|
+
export declare function getBucketCredentials(client: LiaraClient, name: string): Promise<BucketCredentials>;
|
|
23
|
+
/**
|
|
24
|
+
* List objects in a bucket
|
|
25
|
+
*/
|
|
26
|
+
export declare function listObjects(client: LiaraClient, bucketName: string, prefix?: string, maxKeys?: number): Promise<Array<{
|
|
27
|
+
key: string;
|
|
28
|
+
size: number;
|
|
29
|
+
lastModified: string;
|
|
30
|
+
etag?: string;
|
|
31
|
+
}>>;
|
|
32
|
+
/**
|
|
33
|
+
* Upload an object to a bucket
|
|
34
|
+
*/
|
|
35
|
+
export declare function uploadObject(client: LiaraClient, bucketName: string, objectKey: string, filePath: string): Promise<{
|
|
36
|
+
message: string;
|
|
37
|
+
etag?: string;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Get download URL for an object
|
|
41
|
+
*/
|
|
42
|
+
export declare function getObjectDownloadUrl(client: LiaraClient, bucketName: string, objectKey: string, expiresIn?: number): Promise<{
|
|
43
|
+
url: string;
|
|
44
|
+
expiresAt?: string;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Delete an object from a bucket
|
|
48
|
+
*/
|
|
49
|
+
export declare function deleteObject(client: LiaraClient, bucketName: string, objectKey: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Get object metadata
|
|
52
|
+
*/
|
|
53
|
+
export declare function getObjectMetadata(client: LiaraClient, bucketName: string, objectKey: string): Promise<{
|
|
54
|
+
key: string;
|
|
55
|
+
size: number;
|
|
56
|
+
lastModified: string;
|
|
57
|
+
contentType?: string;
|
|
58
|
+
etag?: string;
|
|
59
|
+
}>;
|
|
60
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,MAAM,EACN,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAG5B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC,CAYF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB7C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAW9C;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAWD"}
|