@sashido/mcp-server 0.0.0-stage → 0.2.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 -0
- package/README.md +201 -2
- package/dist/access.d.ts +47 -0
- package/dist/access.d.ts.map +1 -0
- package/dist/access.js +156 -0
- package/dist/access.js.map +1 -0
- package/dist/advice/format.d.ts +22 -0
- package/dist/advice/format.d.ts.map +1 -0
- package/dist/advice/format.js +70 -0
- package/dist/advice/format.js.map +1 -0
- package/dist/advice/schemaChecks.d.ts +17 -0
- package/dist/advice/schemaChecks.d.ts.map +1 -0
- package/dist/advice/schemaChecks.js +64 -0
- package/dist/advice/schemaChecks.js.map +1 -0
- package/dist/audit.d.ts +32 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +41 -0
- package/dist/audit.js.map +1 -0
- package/dist/auth.d.ts +17 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +72 -0
- package/dist/auth.js.map +1 -0
- package/dist/bin/login.d.ts +3 -0
- package/dist/bin/login.d.ts.map +1 -0
- package/dist/bin/login.js +16 -0
- package/dist/bin/login.js.map +1 -0
- package/dist/bin/mcp-server.d.ts +3 -0
- package/dist/bin/mcp-server.d.ts.map +1 -0
- package/dist/bin/mcp-server.js +27 -0
- package/dist/bin/mcp-server.js.map +1 -0
- package/dist/client/parse.d.ts +219 -0
- package/dist/client/parse.d.ts.map +1 -0
- package/dist/client/parse.js +414 -0
- package/dist/client/parse.js.map +1 -0
- package/dist/client/sashido.d.ts +213 -0
- package/dist/client/sashido.d.ts.map +1 -0
- package/dist/client/sashido.js +289 -0
- package/dist/client/sashido.js.map +1 -0
- package/dist/config.d.ts +27 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +70 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +33 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +132 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +60 -0
- package/dist/server.js.map +1 -0
- package/dist/session/redis-client.d.ts +23 -0
- package/dist/session/redis-client.d.ts.map +1 -0
- package/dist/session/redis-client.js +136 -0
- package/dist/session/redis-client.js.map +1 -0
- package/dist/session/session-manager.d.ts +6 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +68 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/sse-pubsub.d.ts +23 -0
- package/dist/session/sse-pubsub.d.ts.map +1 -0
- package/dist/session/sse-pubsub.js +121 -0
- package/dist/session/sse-pubsub.js.map +1 -0
- package/dist/session/types.d.ts +43 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +2 -0
- package/dist/session/types.js.map +1 -0
- package/dist/tools/advisor/index.d.ts +3 -0
- package/dist/tools/advisor/index.d.ts.map +1 -0
- package/dist/tools/advisor/index.js +149 -0
- package/dist/tools/advisor/index.js.map +1 -0
- package/dist/tools/apps/index.d.ts +3 -0
- package/dist/tools/apps/index.d.ts.map +1 -0
- package/dist/tools/apps/index.js +113 -0
- package/dist/tools/apps/index.js.map +1 -0
- package/dist/tools/audit/index.d.ts +6 -0
- package/dist/tools/audit/index.d.ts.map +1 -0
- package/dist/tools/audit/index.js +69 -0
- package/dist/tools/audit/index.js.map +1 -0
- package/dist/tools/builds/index.d.ts +3 -0
- package/dist/tools/builds/index.d.ts.map +1 -0
- package/dist/tools/builds/index.js +85 -0
- package/dist/tools/builds/index.js.map +1 -0
- package/dist/tools/classes/index.d.ts +3 -0
- package/dist/tools/classes/index.d.ts.map +1 -0
- package/dist/tools/classes/index.js +223 -0
- package/dist/tools/classes/index.js.map +1 -0
- package/dist/tools/cloud-functions/index.d.ts +3 -0
- package/dist/tools/cloud-functions/index.d.ts.map +1 -0
- package/dist/tools/cloud-functions/index.js +154 -0
- package/dist/tools/cloud-functions/index.js.map +1 -0
- package/dist/tools/deployments/index.d.ts +3 -0
- package/dist/tools/deployments/index.d.ts.map +1 -0
- package/dist/tools/deployments/index.js +124 -0
- package/dist/tools/deployments/index.js.map +1 -0
- package/dist/tools/engines/index.d.ts +3 -0
- package/dist/tools/engines/index.d.ts.map +1 -0
- package/dist/tools/engines/index.js +68 -0
- package/dist/tools/engines/index.js.map +1 -0
- package/dist/tools/env/index.d.ts +3 -0
- package/dist/tools/env/index.d.ts.map +1 -0
- package/dist/tools/env/index.js +116 -0
- package/dist/tools/env/index.js.map +1 -0
- package/dist/tools/files/index.d.ts +3 -0
- package/dist/tools/files/index.d.ts.map +1 -0
- package/dist/tools/files/index.js +132 -0
- package/dist/tools/files/index.js.map +1 -0
- package/dist/tools/health/index.d.ts +3 -0
- package/dist/tools/health/index.d.ts.map +1 -0
- package/dist/tools/health/index.js +47 -0
- package/dist/tools/health/index.js.map +1 -0
- package/dist/tools/infrastructure/deployments.d.ts +23 -0
- package/dist/tools/infrastructure/deployments.d.ts.map +1 -0
- package/dist/tools/infrastructure/deployments.js +76 -0
- package/dist/tools/infrastructure/deployments.js.map +1 -0
- package/dist/tools/infrastructure/index.d.ts +9 -0
- package/dist/tools/infrastructure/index.d.ts.map +1 -0
- package/dist/tools/infrastructure/index.js +164 -0
- package/dist/tools/infrastructure/index.js.map +1 -0
- package/dist/tools/jobs/index.d.ts +3 -0
- package/dist/tools/jobs/index.d.ts.map +1 -0
- package/dist/tools/jobs/index.js +338 -0
- package/dist/tools/jobs/index.js.map +1 -0
- package/dist/tools/logs/index.d.ts +3 -0
- package/dist/tools/logs/index.d.ts.map +1 -0
- package/dist/tools/logs/index.js +133 -0
- package/dist/tools/logs/index.js.map +1 -0
- package/dist/tools/objects/index.d.ts +3 -0
- package/dist/tools/objects/index.d.ts.map +1 -0
- package/dist/tools/objects/index.js +185 -0
- package/dist/tools/objects/index.js.map +1 -0
- package/dist/tools/push/index.d.ts +3 -0
- package/dist/tools/push/index.d.ts.map +1 -0
- package/dist/tools/push/index.js +434 -0
- package/dist/tools/push/index.js.map +1 -0
- package/dist/tools/types/index.d.ts +3 -0
- package/dist/tools/types/index.d.ts.map +1 -0
- package/dist/tools/types/index.js +45 -0
- package/dist/tools/types/index.js.map +1 -0
- package/dist/tools/webhooks/index.d.ts +3 -0
- package/dist/tools/webhooks/index.d.ts.map +1 -0
- package/dist/tools/webhooks/index.js +443 -0
- package/dist/tools/webhooks/index.js.map +1 -0
- package/dist/transports/http.d.ts +4 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +241 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/stdio.d.ts +7 -0
- package/dist/transports/stdio.d.ts.map +1 -0
- package/dist/transports/stdio.js +29 -0
- package/dist/transports/stdio.js.map +1 -0
- package/dist/typegen/dart.d.ts +3 -0
- package/dist/typegen/dart.d.ts.map +1 -0
- package/dist/typegen/dart.js +84 -0
- package/dist/typegen/dart.js.map +1 -0
- package/dist/typegen/kotlin.d.ts +3 -0
- package/dist/typegen/kotlin.d.ts.map +1 -0
- package/dist/typegen/kotlin.js +84 -0
- package/dist/typegen/kotlin.js.map +1 -0
- package/dist/typegen/model.d.ts +37 -0
- package/dist/typegen/model.d.ts.map +1 -0
- package/dist/typegen/model.js +82 -0
- package/dist/typegen/model.js.map +1 -0
- package/dist/typegen/swift.d.ts +3 -0
- package/dist/typegen/swift.d.ts.map +1 -0
- package/dist/typegen/swift.js +105 -0
- package/dist/typegen/swift.js.map +1 -0
- package/dist/typegen/typescript.d.ts +3 -0
- package/dist/typegen/typescript.d.ts.map +1 -0
- package/dist/typegen/typescript.js +73 -0
- package/dist/typegen/typescript.js.map +1 -0
- package/dist/upgrade/rules.d.ts +27 -0
- package/dist/upgrade/rules.d.ts.map +1 -0
- package/dist/upgrade/rules.js +133 -0
- package/dist/upgrade/rules.js.map +1 -0
- package/dist/upgrade/scan.d.ts +18 -0
- package/dist/upgrade/scan.d.ts.map +1 -0
- package/dist/upgrade/scan.js +38 -0
- package/dist/upgrade/scan.js.map +1 -0
- package/dist/upgrade/versions.d.ts +8 -0
- package/dist/upgrade/versions.d.ts.map +1 -0
- package/dist/upgrade/versions.js +25 -0
- package/dist/upgrade/versions.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +67 -4
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { appConfig } from '../config.js';
|
|
3
|
+
import { auditHeaders } from '../audit.js';
|
|
4
|
+
/**
|
|
5
|
+
* The Parse Server of an app, through the SashiDo API's Parse proxy
|
|
6
|
+
* (/apps/{appObjectId}/parse/...). The API adds the app's master key, checks
|
|
7
|
+
* the access token's scopes and app limit, and strips app users' credentials
|
|
8
|
+
* from responses: the master key never reaches this server or the AI client.
|
|
9
|
+
*/
|
|
10
|
+
const enc = encodeURIComponent;
|
|
11
|
+
// The SashiDo routes return { response: body } to Parse Server's
|
|
12
|
+
// PromiseRouter, which sends res.json(body): the body arrives unwrapped.
|
|
13
|
+
// Older code expected the wrapper; accept both.
|
|
14
|
+
function unwrap(data) {
|
|
15
|
+
const wrapped = data;
|
|
16
|
+
return wrapped && wrapped.response !== undefined ? wrapped.response : data;
|
|
17
|
+
}
|
|
18
|
+
export class ParseClient {
|
|
19
|
+
client;
|
|
20
|
+
constructor(token, appObjectId, apiUrl = appConfig.sashido.apiUrl) {
|
|
21
|
+
this.client = axios.create({
|
|
22
|
+
baseURL: `${apiUrl.replace(/\/+$/, '')}/apps/${encodeURIComponent(appObjectId)}/parse`,
|
|
23
|
+
headers: {
|
|
24
|
+
'Content-Type': 'application/json',
|
|
25
|
+
Authorization: `Bearer ${token}`,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
// the tool call this request belongs to, for the API's audit log
|
|
29
|
+
this.client.interceptors.request.use((config) => {
|
|
30
|
+
for (const [name, value] of Object.entries(auditHeaders())) {
|
|
31
|
+
config.headers.set(name, value);
|
|
32
|
+
}
|
|
33
|
+
return config;
|
|
34
|
+
});
|
|
35
|
+
// say why a call failed: the API's message ({message}) or the app's
|
|
36
|
+
// Parse Server error ({error}), not only the status code
|
|
37
|
+
this.client.interceptors.response.use((response) => response, (error) => {
|
|
38
|
+
if (error.response) {
|
|
39
|
+
const data = error.response.data;
|
|
40
|
+
const raw = data && (data.message || data.error);
|
|
41
|
+
// cloud code may reject with an object
|
|
42
|
+
const reason = raw && typeof raw !== 'string' ? JSON.stringify(raw) : raw;
|
|
43
|
+
throw new Error(reason ? `${reason} (HTTP ${error.response.status})` : error.message);
|
|
44
|
+
}
|
|
45
|
+
throw error;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// === SCHEMA / CLASSES ===
|
|
49
|
+
async listClasses() {
|
|
50
|
+
const response = await this.client.get('/schemas');
|
|
51
|
+
return response.data.results;
|
|
52
|
+
}
|
|
53
|
+
async getClass(className) {
|
|
54
|
+
const response = await this.client.get(`/schemas/${enc(className)}`);
|
|
55
|
+
return response.data;
|
|
56
|
+
}
|
|
57
|
+
async createClass(className, fields) {
|
|
58
|
+
const response = await this.client.post(`/schemas/${enc(className)}`, {
|
|
59
|
+
className,
|
|
60
|
+
fields: fields ?? {},
|
|
61
|
+
});
|
|
62
|
+
return response.data;
|
|
63
|
+
}
|
|
64
|
+
async deleteClass(className) {
|
|
65
|
+
await this.client.delete(`/schemas/${enc(className)}`);
|
|
66
|
+
}
|
|
67
|
+
async addField(className, fieldName, fieldType, targetClass) {
|
|
68
|
+
const fieldDef = { type: fieldType };
|
|
69
|
+
if (targetClass) {
|
|
70
|
+
fieldDef['targetClass'] = targetClass;
|
|
71
|
+
}
|
|
72
|
+
const response = await this.client.put(`/schemas/${enc(className)}`, {
|
|
73
|
+
fields: {
|
|
74
|
+
[fieldName]: fieldDef,
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
return response.data;
|
|
78
|
+
}
|
|
79
|
+
async deleteField(className, fieldName) {
|
|
80
|
+
const response = await this.client.put(`/schemas/${enc(className)}`, {
|
|
81
|
+
fields: {
|
|
82
|
+
[fieldName]: { __op: 'Delete' },
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
return response.data;
|
|
86
|
+
}
|
|
87
|
+
// === CLASS LEVEL PERMISSIONS (CLP) ===
|
|
88
|
+
async updateClassLevelPermissions(className, clp) {
|
|
89
|
+
const response = await this.client.put(`/schemas/${enc(className)}`, {
|
|
90
|
+
classLevelPermissions: clp,
|
|
91
|
+
});
|
|
92
|
+
return response.data;
|
|
93
|
+
}
|
|
94
|
+
// === OBJECTS ===
|
|
95
|
+
async queryObjects(className, options) {
|
|
96
|
+
const params = {};
|
|
97
|
+
if (options?.where) {
|
|
98
|
+
params['where'] = JSON.stringify(options.where);
|
|
99
|
+
}
|
|
100
|
+
if (options?.limit !== undefined) {
|
|
101
|
+
params['limit'] = String(options.limit);
|
|
102
|
+
}
|
|
103
|
+
if (options?.skip !== undefined) {
|
|
104
|
+
params['skip'] = String(options.skip);
|
|
105
|
+
}
|
|
106
|
+
if (options?.order) {
|
|
107
|
+
params['order'] = options.order;
|
|
108
|
+
}
|
|
109
|
+
if (options?.keys) {
|
|
110
|
+
params['keys'] = options.keys;
|
|
111
|
+
}
|
|
112
|
+
if (options?.include) {
|
|
113
|
+
params['include'] = options.include;
|
|
114
|
+
}
|
|
115
|
+
if (options?.count) {
|
|
116
|
+
params['count'] = '1';
|
|
117
|
+
}
|
|
118
|
+
const response = await this.client.get(`/classes/${enc(className)}`, { params });
|
|
119
|
+
return response.data;
|
|
120
|
+
}
|
|
121
|
+
async getObject(className, objectId) {
|
|
122
|
+
const response = await this.client.get(`/classes/${enc(className)}/${enc(objectId)}`);
|
|
123
|
+
return response.data;
|
|
124
|
+
}
|
|
125
|
+
async createObject(className, data) {
|
|
126
|
+
const response = await this.client.post(`/classes/${enc(className)}`, data);
|
|
127
|
+
return response.data;
|
|
128
|
+
}
|
|
129
|
+
async updateObject(className, objectId, data) {
|
|
130
|
+
const response = await this.client.put(`/classes/${enc(className)}/${enc(objectId)}`, data);
|
|
131
|
+
return response.data;
|
|
132
|
+
}
|
|
133
|
+
async deleteObject(className, objectId) {
|
|
134
|
+
await this.client.delete(`/classes/${enc(className)}/${enc(objectId)}`);
|
|
135
|
+
}
|
|
136
|
+
// === FILES ===
|
|
137
|
+
async uploadFile(fileName, fileData, contentType) {
|
|
138
|
+
const response = await this.client.post(`/files/${enc(fileName)}`, fileData, {
|
|
139
|
+
headers: {
|
|
140
|
+
'Content-Type': contentType,
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
return response.data;
|
|
144
|
+
}
|
|
145
|
+
// === CLOUD FUNCTIONS ===
|
|
146
|
+
async callCloudFunction(functionName, params) {
|
|
147
|
+
const response = await this.client.post(`/functions/${enc(functionName)}`, params ?? {});
|
|
148
|
+
return response.data.result;
|
|
149
|
+
}
|
|
150
|
+
async listCloudFunctions() {
|
|
151
|
+
// Parse Server doesn't have a built-in endpoint to list cloud functions
|
|
152
|
+
// This would need to be implemented via a custom cloud function or config
|
|
153
|
+
// For now, return empty array - users can invoke functions by name
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
// === CLOUD CODE FILES ===
|
|
157
|
+
// SashiDo routes of the app servers: GET /releases/latest, GET /scripts/*
|
|
158
|
+
async listCloudCodeFiles() {
|
|
159
|
+
const response = await this.client.get('/releases/latest');
|
|
160
|
+
const data = response.data;
|
|
161
|
+
// Helper to normalize file arrays - handles various possible formats
|
|
162
|
+
const normalizeFiles = (files) => {
|
|
163
|
+
// Handle object format: { "main.js": "checksum123", "functions.js": "checksum456" }
|
|
164
|
+
if (files && typeof files === 'object' && !Array.isArray(files)) {
|
|
165
|
+
return Object.entries(files).map(([path, checksum]) => ({
|
|
166
|
+
path,
|
|
167
|
+
checksum: typeof checksum === 'string' ? checksum : '',
|
|
168
|
+
}));
|
|
169
|
+
}
|
|
170
|
+
// Handle array format
|
|
171
|
+
if (!Array.isArray(files))
|
|
172
|
+
return [];
|
|
173
|
+
return files.map((f) => {
|
|
174
|
+
if (typeof f === 'string') {
|
|
175
|
+
return { path: f, checksum: '' };
|
|
176
|
+
}
|
|
177
|
+
if (typeof f === 'object' && f !== null) {
|
|
178
|
+
const obj = f;
|
|
179
|
+
// Try various property names
|
|
180
|
+
const path = obj.path || obj.name || obj.filename || obj.file || '';
|
|
181
|
+
const checksum = obj.checksum || obj.hash || obj.md5 || '';
|
|
182
|
+
return { path: String(path), checksum: String(checksum) };
|
|
183
|
+
}
|
|
184
|
+
return { path: '', checksum: '' };
|
|
185
|
+
}).filter(f => f.path);
|
|
186
|
+
};
|
|
187
|
+
// Parse checksums - it may be a JSON string containing { cloud: {...}, public: {...} }
|
|
188
|
+
let parsedChecksums = {};
|
|
189
|
+
if (typeof data.checksums === 'string') {
|
|
190
|
+
try {
|
|
191
|
+
parsedChecksums = JSON.parse(data.checksums);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// Ignore parse errors
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
else if (data.checksums && typeof data.checksums === 'object') {
|
|
198
|
+
parsedChecksums = data.checksums;
|
|
199
|
+
}
|
|
200
|
+
// Try various possible response structures
|
|
201
|
+
const cloudFiles = normalizeFiles(parsedChecksums.cloud || data.cloudFiles || data.cloud || data.scripts || data.cloudCode || []);
|
|
202
|
+
const userFiles = normalizeFiles(parsedChecksums.public || data.userFiles || data.public || data.publicFiles || data.files || []);
|
|
203
|
+
return { cloudFiles, userFiles };
|
|
204
|
+
}
|
|
205
|
+
async readCloudCodeFile(filePath) {
|
|
206
|
+
// e.g. "main.js" or "cloud/main.js": the server reads it under cloud/
|
|
207
|
+
const relative = filePath.replace(/^\/+/, '').replace(/^cloud\//, '');
|
|
208
|
+
const segments = relative.split('/').filter(Boolean).map(enc).join('/');
|
|
209
|
+
const response = await this.client.get(`/scripts/${segments}`, {
|
|
210
|
+
responseType: 'text',
|
|
211
|
+
transformResponse: [(data) => data], // the file as it is
|
|
212
|
+
});
|
|
213
|
+
// the route returns { response: content }, which Parse Server's
|
|
214
|
+
// PromiseRouter sends as res.json(content): a JSON string
|
|
215
|
+
try {
|
|
216
|
+
const parsed = JSON.parse(response.data);
|
|
217
|
+
return typeof parsed === 'string' ? parsed : response.data;
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return response.data;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// === PUSH NOTIFICATIONS ===
|
|
224
|
+
async sendPush(data) {
|
|
225
|
+
const response = await this.client.post('/push', data);
|
|
226
|
+
return response.data;
|
|
227
|
+
}
|
|
228
|
+
// === PUSH AUDIENCES ===
|
|
229
|
+
async listAudiences(limit) {
|
|
230
|
+
const response = await this.client.get('/push_audience', { params: { limit: limit || 100 } });
|
|
231
|
+
return { audiences: unwrap(response.data).audiences || [] };
|
|
232
|
+
}
|
|
233
|
+
async createAudience(name, query) {
|
|
234
|
+
const response = await this.client.put('/push_audience', { name, query });
|
|
235
|
+
const body = unwrap(response.data);
|
|
236
|
+
return {
|
|
237
|
+
success: body.success,
|
|
238
|
+
objectId: body.new_audience.objectId,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
async deleteAudience(objectId) {
|
|
242
|
+
const response = await this.client.delete('/push_audience', { params: { objectId } });
|
|
243
|
+
return unwrap(response.data);
|
|
244
|
+
}
|
|
245
|
+
async listAvailableDevices() {
|
|
246
|
+
const response = await this.client.get('/available_devices');
|
|
247
|
+
return unwrap(response.data).available_devices || [];
|
|
248
|
+
}
|
|
249
|
+
// === CONFIG ===
|
|
250
|
+
async getConfig() {
|
|
251
|
+
const response = await this.client.get('/config');
|
|
252
|
+
return response.data.params;
|
|
253
|
+
}
|
|
254
|
+
async updateConfig(params) {
|
|
255
|
+
const response = await this.client.put('/config', { params });
|
|
256
|
+
return response.data;
|
|
257
|
+
}
|
|
258
|
+
// === HEALTH ===
|
|
259
|
+
/**
|
|
260
|
+
* The app server's own production checks (Parse Server 6.5.11+): security,
|
|
261
|
+
* users and sessions, database; each with what to change
|
|
262
|
+
*/
|
|
263
|
+
async getAppChecks() {
|
|
264
|
+
const response = await this.client.get('/app_checks');
|
|
265
|
+
return unwrap(response.data);
|
|
266
|
+
}
|
|
267
|
+
async checkHealth() {
|
|
268
|
+
const response = await this.client.get('/health');
|
|
269
|
+
return response.data;
|
|
270
|
+
}
|
|
271
|
+
// === LOGS ===
|
|
272
|
+
async getLogs(options) {
|
|
273
|
+
const level = options?.level || 'info';
|
|
274
|
+
const limit = options?.limit || 100;
|
|
275
|
+
const response = await this.client.get('/scriptlog', { params: { level, n: limit } });
|
|
276
|
+
return response.data;
|
|
277
|
+
}
|
|
278
|
+
// === BACKGROUND JOBS ===
|
|
279
|
+
// SashiDo routes of the app servers; they read their parameters from the
|
|
280
|
+
// body, which the API's proxy takes care of (POST with _method)
|
|
281
|
+
async listScheduledJobs(limit) {
|
|
282
|
+
// Parse SDK-style request
|
|
283
|
+
const response = await this.client.get('/job', { params: { limit: limit || 100 } });
|
|
284
|
+
return { jobs: response.data.jobs || [] };
|
|
285
|
+
}
|
|
286
|
+
async listAvailableJobs() {
|
|
287
|
+
const response = await this.client.get('/job/available');
|
|
288
|
+
return {
|
|
289
|
+
jobs: response.data.jobs || [],
|
|
290
|
+
inUse: response.data.in_use || [],
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
async getJobStatus(limit) {
|
|
294
|
+
return (await this.latestJobRuns({}, limit || 30));
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* The newest job runs. Neither the app servers' GET /job/status (it reads
|
|
298
|
+
* its limit from the body) nor sorting _JobStatus by createdAt works on
|
|
299
|
+
* apps whose older runs stored createdAt as a Date and newer ones as a
|
|
300
|
+
* string: Mongo sorts by type first. Runs are inserted in order, so take
|
|
301
|
+
* the last ones and sort them here.
|
|
302
|
+
*/
|
|
303
|
+
async latestJobRuns(where, limit) {
|
|
304
|
+
const counted = await this.queryObjects('_JobStatus', { where, limit: 0, count: true });
|
|
305
|
+
const total = counted.count || 0;
|
|
306
|
+
const window = Math.max(limit, 100);
|
|
307
|
+
const page = await this.queryObjects('_JobStatus', {
|
|
308
|
+
where,
|
|
309
|
+
skip: Math.max(0, total - window),
|
|
310
|
+
limit: window,
|
|
311
|
+
});
|
|
312
|
+
const time = (o) => Date.parse(String(o.createdAt)) || 0;
|
|
313
|
+
return page.results.sort((a, b) => time(b) - time(a)).slice(0, limit);
|
|
314
|
+
}
|
|
315
|
+
async scheduleJob(params) {
|
|
316
|
+
const response = await this.client.post('/job/schedule', {
|
|
317
|
+
jobName: params.jobName,
|
|
318
|
+
description: params.description,
|
|
319
|
+
startAfter: params.startAfter,
|
|
320
|
+
repeatMinutes: params.repeatMinutes,
|
|
321
|
+
params: JSON.stringify(params.params || {}),
|
|
322
|
+
objectId: params.objectId,
|
|
323
|
+
});
|
|
324
|
+
return response.data;
|
|
325
|
+
}
|
|
326
|
+
async deleteJob(objectId) {
|
|
327
|
+
const response = await this.client.delete('/job', { params: { objectId } });
|
|
328
|
+
return response.data;
|
|
329
|
+
}
|
|
330
|
+
async runJob(jobName, params) {
|
|
331
|
+
// Running a job uses the /jobs/:jobName endpoint
|
|
332
|
+
const startedAt = Date.now();
|
|
333
|
+
const response = await this.client.post(`/jobs/${enc(jobName)}`, {
|
|
334
|
+
jobName: jobName,
|
|
335
|
+
description: 'Executing from MCP server.',
|
|
336
|
+
input: params || {},
|
|
337
|
+
when: 0, // 0 = run immediately
|
|
338
|
+
});
|
|
339
|
+
// Parse Server sends the run's id in X-Parse-Job-Status-Id; the API's
|
|
340
|
+
// proxy doesn't forward it, so look up the newest run of the job
|
|
341
|
+
const headers = (response.headers || {});
|
|
342
|
+
let statusId = headers['x-parse-job-status-id'];
|
|
343
|
+
if (!statusId) {
|
|
344
|
+
// its record shows up a moment later; earlier runs don't count (10s
|
|
345
|
+
// of leeway for the clocks of this machine and the app's)
|
|
346
|
+
for (let attempt = 0; attempt < 5 && !statusId; attempt++) {
|
|
347
|
+
if (attempt) {
|
|
348
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
349
|
+
}
|
|
350
|
+
const [latest] = await this.latestJobRuns({ jobName }, 1);
|
|
351
|
+
if (latest && Date.parse(String(latest.createdAt)) >= startedAt - 10000) {
|
|
352
|
+
statusId = latest.objectId;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return { statusId: statusId || 'unknown' };
|
|
357
|
+
}
|
|
358
|
+
// === WEBHOOKS - FUNCTIONS ===
|
|
359
|
+
// Parse Server webhooks allow registering external URLs as cloud functions
|
|
360
|
+
async listFunctionWebhooks() {
|
|
361
|
+
const response = await this.client.get('/hooks/functions');
|
|
362
|
+
return response.data || [];
|
|
363
|
+
}
|
|
364
|
+
async getFunctionWebhook(functionName) {
|
|
365
|
+
const response = await this.client.get(`/hooks/functions/${enc(functionName)}`);
|
|
366
|
+
return response.data;
|
|
367
|
+
}
|
|
368
|
+
async createFunctionWebhook(functionName, url) {
|
|
369
|
+
const response = await this.client.post('/hooks/functions', {
|
|
370
|
+
functionName,
|
|
371
|
+
url,
|
|
372
|
+
});
|
|
373
|
+
return response.data;
|
|
374
|
+
}
|
|
375
|
+
async updateFunctionWebhook(functionName, url) {
|
|
376
|
+
const response = await this.client.put(`/hooks/functions/${enc(functionName)}`, {
|
|
377
|
+
url,
|
|
378
|
+
});
|
|
379
|
+
return response.data;
|
|
380
|
+
}
|
|
381
|
+
async deleteFunctionWebhook(functionName) {
|
|
382
|
+
await this.client.put(`/hooks/functions/${enc(functionName)}`, {
|
|
383
|
+
__op: 'Delete',
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
// === WEBHOOKS - TRIGGERS ===
|
|
387
|
+
// Parse Server webhooks for class lifecycle events
|
|
388
|
+
async listTriggerWebhooks() {
|
|
389
|
+
const response = await this.client.get('/hooks/triggers');
|
|
390
|
+
return response.data || [];
|
|
391
|
+
}
|
|
392
|
+
async getTriggerWebhook(className, triggerName) {
|
|
393
|
+
const response = await this.client.get(`/hooks/triggers/${enc(className)}/${enc(triggerName)}`);
|
|
394
|
+
return response.data;
|
|
395
|
+
}
|
|
396
|
+
async createTriggerWebhook(className, triggerName, url) {
|
|
397
|
+
const response = await this.client.post('/hooks/triggers', {
|
|
398
|
+
className,
|
|
399
|
+
triggerName,
|
|
400
|
+
url,
|
|
401
|
+
});
|
|
402
|
+
return response.data;
|
|
403
|
+
}
|
|
404
|
+
async updateTriggerWebhook(className, triggerName, url) {
|
|
405
|
+
const response = await this.client.put(`/hooks/triggers/${enc(className)}/${enc(triggerName)}`, { url });
|
|
406
|
+
return response.data;
|
|
407
|
+
}
|
|
408
|
+
async deleteTriggerWebhook(className, triggerName) {
|
|
409
|
+
await this.client.put(`/hooks/triggers/${enc(className)}/${enc(triggerName)}`, {
|
|
410
|
+
__op: 'Delete',
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/client/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgE3C;;;;;GAKG;AACH,MAAM,GAAG,GAAG,kBAAkB,CAAC;AAE/B,iEAAiE;AACjE,yEAAyE;AACzE,gDAAgD;AAChD,SAAS,MAAM,CAAI,IAAyB;IAC1C,MAAM,OAAO,GAAG,IAAwB,CAAC;IACzC,OAAO,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAE,OAAO,CAAC,QAAc,CAAC,CAAC,CAAE,IAAU,CAAC;AAC3F,CAAC;AAED,MAAM,OAAO,WAAW;IACd,MAAM,CAAgB;IAE9B,YAAY,KAAa,EAAE,WAAmB,EAAE,SAAiB,SAAS,CAAC,OAAO,CAAC,MAAM;QACvF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,kBAAkB,CAAC,WAAW,CAAC,QAAQ;YACtF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;SACF,CAAC,CAAC;QACH,iEAAiE;QACjE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,oEAAoE;QACpE,yDAAyD;QACzD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAyD,EAAE,EAAE;YAC5D,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjD,uCAAuC;gBACvC,MAAM,MAAM,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC1E,MAAM,IAAI,KAAK,CACb,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,UAAU,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CACrE,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAA6B,UAAU,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,MAAyC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE;YACjF,SAAS;YACT,MAAM,EAAE,MAAM,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,SAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,WAAoB;QAEpB,MAAM,QAAQ,GAA4B,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;QACxC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE;YAChF,MAAM,EAAE;gBACN,CAAC,SAAS,CAAC,EAAE,QAAQ;aACtB;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,SAAiB;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE;YAChF,MAAM,EAAE;gBACN,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAChC;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,wCAAwC;IAExC,KAAK,CAAC,2BAA2B,CAC/B,SAAiB,EACjB,GAA4C;QAE5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE;YAChF,qBAAqB,EAAE,GAAG;SAC3B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB;IAElB,KAAK,CAAC,YAAY,CAChB,SAAiB,EACjB,OAQC;QAED,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;QACxB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAmB,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnG,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,QAAgB;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnG,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,IAA6B;QACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,SAAiB,EACjB,QAAgB,EAChB,IAA6B;QAE7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,YAAY,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,QAAgB;QACpD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB;IAEhB,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB,EAAE,WAAmB;QACtE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAY,UAAU,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE;YACtF,OAAO,EAAE;gBACP,cAAc,EAAE,WAAW;aAC5B;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,0BAA0B;IAE1B,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,MAAgC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QACzF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,wEAAwE;QACxE,0EAA0E;QAC1E,mEAAmE;QACnE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2BAA2B;IAC3B,0EAA0E;IAE1E,KAAK,CAAC,kBAAkB;QAUtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAA0B,kBAAkB,CAAC,CAAC;QAEpF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE3B,qEAAqE;QACrE,MAAM,cAAc,GAAG,CAAC,KAAc,EAA6C,EAAE;YACnF,oFAAoF;YACpF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjF,IAAI;oBACJ,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;iBACvD,CAAC,CAAC,CAAC;YACN,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE;gBAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACnC,CAAC;gBACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxC,MAAM,GAAG,GAAG,CAA4B,CAAC;oBACzC,6BAA6B;oBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;oBACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;oBAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,uFAAuF;QACvF,IAAI,eAAe,GAAwE,EAAE,CAAC;QAC9F,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChE,eAAe,GAAG,IAAI,CAAC,SAAmC,CAAC;QAC7D,CAAC;QAED,2CAA2C;QAC3C,MAAM,UAAU,GAAG,cAAc,CAC/B,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAC/F,CAAC;QACF,MAAM,SAAS,GAAG,cAAc,CAC9B,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAChG,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,sEAAsE;QACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,YAAY,QAAQ,EAAE,EAAE;YACrE,YAAY,EAAE,MAAM;YACpB,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,oBAAoB;SAC1D,CAAC,CAAC;QACH,gEAAgE;QAChE,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,6BAA6B;IAE7B,KAAK,CAAC,QAAQ,CAAC,IAYd;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAsB,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,yBAAyB;IAEzB,KAAK,CAAC,aAAa,CAAC,KAAc;QAWhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAYnC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,KAA8B;QAI/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAKnC,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ;SACrC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAEtC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAEnC,oBAAoB,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACvD,CAAC;IAED,iBAAiB;IAEjB,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAsC,SAAS,CAAC,CAAC;QACvF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA+B;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAsB,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,iBAAiB;IAEjB;;;OAGG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAsC,aAAa,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAA6C,SAAS,CAAC,CAAC;QAC9F,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,eAAe;IAEf,KAAK,CAAC,OAAO,CAAC,OAGb;QAMC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAKlC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAEnD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,0BAA0B;IAC1B,yEAAyE;IACzE,gEAAgE;IAEhE,KAAK,CAAC,iBAAiB,CAAC,KAAc;QAepC,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAcnC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,iBAAiB;QAIrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAGnC,gBAAgB,CAAC,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;YAC9B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAc;QAQ/B,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAO/C,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,aAAa,CAAC,KAA8B,EAAE,KAAa;QACvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACjD,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;YACjC,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAOjB;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAGpC,eAAe,EAAE;YAClB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAEtC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,MAAgC;QAG5D,iDAAiD;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAU,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;YACxE,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,4BAA4B;YACzC,KAAK,EAAE,MAAM,IAAI,EAAE;YACnB,IAAI,EAAE,CAAC,EAAE,sBAAsB;SAChC,CAAC,CAAC;QACH,sEAAsE;QACtE,iEAAiE;QACjE,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAuC,CAAC;QAC/E,IAAI,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,oEAAoE;YACpE,0DAA0D;YAC1D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC1D,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;oBACxE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED,+BAA+B;IAC/B,2EAA2E;IAE3E,KAAK,CAAC,oBAAoB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAoB,kBAAkB,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAkB,oBAAoB,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACjG,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB,EAAE,GAAW;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAkB,kBAAkB,EAAE;YAC3E,YAAY;YACZ,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB,EAAE,GAAW;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAkB,oBAAoB,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE;YAC/F,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE;YAC7D,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,mDAAmD;IAEnD,KAAK,CAAC,mBAAmB;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAmB,iBAAiB,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,WAAwB;QACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,mBAAmB,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CACxD,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,SAAiB,EACjB,WAAwB,EACxB,GAAW;QAEX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAiB,iBAAiB,EAAE;YACzE,SAAS;YACT,WAAW;YACX,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,SAAiB,EACjB,WAAwB,EACxB,GAAW;QAEX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,mBAAmB,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,EACvD,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,WAAwB;QACpE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE;YAC7E,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
export interface Replicas {
|
|
2
|
+
auto: boolean;
|
|
3
|
+
min: number;
|
|
4
|
+
max: number;
|
|
5
|
+
}
|
|
6
|
+
export interface Deployment {
|
|
7
|
+
objectId: string;
|
|
8
|
+
name: string;
|
|
9
|
+
number: number;
|
|
10
|
+
/** Active: serves traffic; Running: rolling out; Complete, Cancelled, Failed */
|
|
11
|
+
phase: string;
|
|
12
|
+
region?: string;
|
|
13
|
+
replicas?: Replicas;
|
|
14
|
+
duration?: number;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
updatedAt?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface AppSettingsForToken {
|
|
19
|
+
/** per region: {name, billingPolicy} */
|
|
20
|
+
engine?: Record<string, {
|
|
21
|
+
name: string;
|
|
22
|
+
billingPolicy: string;
|
|
23
|
+
}>;
|
|
24
|
+
highly_available?: boolean;
|
|
25
|
+
engine_scaling_config?: {
|
|
26
|
+
min?: number;
|
|
27
|
+
max?: number;
|
|
28
|
+
buffer?: number;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface App {
|
|
32
|
+
objectId: string;
|
|
33
|
+
name: string;
|
|
34
|
+
appId: string;
|
|
35
|
+
region: string;
|
|
36
|
+
serviceName?: string;
|
|
37
|
+
/** e.g. release-6.5.11-preview */
|
|
38
|
+
parseServerVersion?: string;
|
|
39
|
+
settings?: AppSettingsForToken;
|
|
40
|
+
deployment?: Deployment;
|
|
41
|
+
createdAt: string;
|
|
42
|
+
updatedAt: string;
|
|
43
|
+
}
|
|
44
|
+
/** An Activity record (the API's audit log) */
|
|
45
|
+
export interface Activity {
|
|
46
|
+
objectId: string;
|
|
47
|
+
type: string;
|
|
48
|
+
createdAt: string;
|
|
49
|
+
ip?: string;
|
|
50
|
+
app?: {
|
|
51
|
+
objectId: string;
|
|
52
|
+
};
|
|
53
|
+
data?: {
|
|
54
|
+
message?: string;
|
|
55
|
+
params?: Record<string, unknown>;
|
|
56
|
+
};
|
|
57
|
+
actor?: {
|
|
58
|
+
kind: string;
|
|
59
|
+
tokenId?: string;
|
|
60
|
+
tokenName?: string;
|
|
61
|
+
};
|
|
62
|
+
via?: {
|
|
63
|
+
client?: string;
|
|
64
|
+
mcpClient?: string;
|
|
65
|
+
mcpTool?: string;
|
|
66
|
+
requestId?: string;
|
|
67
|
+
};
|
|
68
|
+
result?: {
|
|
69
|
+
status: string;
|
|
70
|
+
code?: number;
|
|
71
|
+
message?: string;
|
|
72
|
+
};
|
|
73
|
+
source?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface ParseServerVersion {
|
|
76
|
+
imageTag: string;
|
|
77
|
+
version: string;
|
|
78
|
+
/** what new apps get by default */
|
|
79
|
+
latest?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface AppDetails extends App {
|
|
82
|
+
masterKey?: string;
|
|
83
|
+
clientKey?: string;
|
|
84
|
+
javascriptKey?: string;
|
|
85
|
+
restApiKey?: string;
|
|
86
|
+
webhookKey?: string;
|
|
87
|
+
serverUrl?: string;
|
|
88
|
+
parseVersion?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface Build {
|
|
91
|
+
objectId: string;
|
|
92
|
+
status: string;
|
|
93
|
+
createdAt: string;
|
|
94
|
+
updatedAt: string;
|
|
95
|
+
number?: number;
|
|
96
|
+
trigger?: {
|
|
97
|
+
type: string;
|
|
98
|
+
githubData?: Record<string, unknown>;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export interface EnvVariable {
|
|
102
|
+
name: string;
|
|
103
|
+
value: string;
|
|
104
|
+
}
|
|
105
|
+
export interface ScaleConfig {
|
|
106
|
+
min?: number;
|
|
107
|
+
max?: number;
|
|
108
|
+
current?: number;
|
|
109
|
+
auto: boolean;
|
|
110
|
+
cpuTarget?: number;
|
|
111
|
+
}
|
|
112
|
+
export interface ApiError {
|
|
113
|
+
code: number;
|
|
114
|
+
message: string;
|
|
115
|
+
}
|
|
116
|
+
export interface ParseServerEngine {
|
|
117
|
+
name: string;
|
|
118
|
+
billingPolicy: 'monthly' | 'hourly';
|
|
119
|
+
price: number;
|
|
120
|
+
/** the API keeps cpu and ram (MB) under params */
|
|
121
|
+
params?: {
|
|
122
|
+
cpu?: number;
|
|
123
|
+
ram?: number;
|
|
124
|
+
};
|
|
125
|
+
cpu?: number;
|
|
126
|
+
ram?: number;
|
|
127
|
+
allowedInTrial?: boolean;
|
|
128
|
+
supportsAutoScaling?: boolean;
|
|
129
|
+
supportsHighAvailability?: boolean;
|
|
130
|
+
default?: boolean;
|
|
131
|
+
}
|
|
132
|
+
export declare class SashidoApiError extends Error {
|
|
133
|
+
statusCode: number;
|
|
134
|
+
code?: number | undefined;
|
|
135
|
+
constructor(message: string, statusCode: number, code?: number | undefined);
|
|
136
|
+
}
|
|
137
|
+
/** What GET /tokens/current says about the access token */
|
|
138
|
+
export interface TokenInfo {
|
|
139
|
+
id: string;
|
|
140
|
+
name: string;
|
|
141
|
+
scopes: string[];
|
|
142
|
+
appIds: string[] | null;
|
|
143
|
+
expiresAt: string | null;
|
|
144
|
+
user: {
|
|
145
|
+
objectId: string;
|
|
146
|
+
username: string;
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
export interface BuildLog {
|
|
150
|
+
buildId: string;
|
|
151
|
+
number?: number;
|
|
152
|
+
phase?: string;
|
|
153
|
+
finished: boolean;
|
|
154
|
+
text: string;
|
|
155
|
+
truncated: boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The SashiDo API with a personal access token. The token's scopes decide
|
|
159
|
+
* what each call may do; app keys are never returned to it.
|
|
160
|
+
*/
|
|
161
|
+
export declare class SashidoClient {
|
|
162
|
+
private client;
|
|
163
|
+
constructor(token: string, apiUrl?: string);
|
|
164
|
+
private static readonly ALLOWED_FIELDS;
|
|
165
|
+
private static readonly SENSITIVE_FIELDS;
|
|
166
|
+
private static readonly SENSITIVE_PATTERNS;
|
|
167
|
+
private isSensitiveField;
|
|
168
|
+
private deepSanitize;
|
|
169
|
+
listApps(): Promise<App[]>;
|
|
170
|
+
createApp(data: {
|
|
171
|
+
name: string;
|
|
172
|
+
region?: string;
|
|
173
|
+
parseServerVersion?: string;
|
|
174
|
+
}): Promise<App>;
|
|
175
|
+
/** The account's activity (audit log), newest first */
|
|
176
|
+
listActivities(options?: {
|
|
177
|
+
type?: string;
|
|
178
|
+
page?: number;
|
|
179
|
+
pageSize?: number;
|
|
180
|
+
}): Promise<Activity[]>;
|
|
181
|
+
/** The app's deployments, newest first */
|
|
182
|
+
listDeployments(appObjectId: string, limit?: number): Promise<Deployment[]>;
|
|
183
|
+
/** Parse Server versions apps may be created on or switched to */
|
|
184
|
+
listParseServerVersions(): Promise<ParseServerVersion[]>;
|
|
185
|
+
/** Switches the app's Parse Server version; the API redeploys it */
|
|
186
|
+
changeParseServerVersion(appObjectId: string, imageTag: string): Promise<ParseServerVersion>;
|
|
187
|
+
deployApp(appObjectId: string, region?: string): Promise<void>;
|
|
188
|
+
cancelDeployment(appObjectId: string, deploymentName: string, region?: string): Promise<void>;
|
|
189
|
+
getActiveDeployment(appObjectId: string): Promise<{
|
|
190
|
+
deploymentName: string | null;
|
|
191
|
+
deploymentNumber: number | null;
|
|
192
|
+
processes: Record<string, unknown[]>;
|
|
193
|
+
}>;
|
|
194
|
+
getRunningDeployment(appObjectId: string): Promise<{
|
|
195
|
+
deploymentName: string | null;
|
|
196
|
+
deploymentNumber: number | null;
|
|
197
|
+
activeDeploymentNumber: number | null;
|
|
198
|
+
}>;
|
|
199
|
+
listBuilds(appObjectId: string, limit?: number): Promise<Build[]>;
|
|
200
|
+
triggerBuild(appObjectId: string, region?: string): Promise<void>;
|
|
201
|
+
cancelBuild(appObjectId: string, buildName: string, region?: string): Promise<void>;
|
|
202
|
+
listEnvVars(appObjectId: string): Promise<EnvVariable[]>;
|
|
203
|
+
updateEnvVars(appObjectId: string, env: EnvVariable[]): Promise<void>;
|
|
204
|
+
setScale(appObjectId: string, scale: ScaleConfig, region?: string): Promise<void>;
|
|
205
|
+
updateAppName(appObjectId: string, name: string): Promise<void>;
|
|
206
|
+
setHighAvailability(appObjectId: string, enabled: boolean): Promise<void>;
|
|
207
|
+
listEngines(): Promise<ParseServerEngine[]>;
|
|
208
|
+
setEngine(appObjectId: string, engineName: string, billingPolicy: 'monthly' | 'hourly', region?: string): Promise<void>;
|
|
209
|
+
getTokenInfo(): Promise<TokenInfo>;
|
|
210
|
+
getBuildLog(appObjectId: string, buildId: string, lines?: number): Promise<BuildLog>;
|
|
211
|
+
logActivity(activityType: 'create_job' | 'delete_job' | 'run_job' | 'create_function_webhook' | 'update_function_webhook' | 'delete_function_webhook' | 'create_trigger_webhook' | 'update_trigger_webhook' | 'delete_trigger_webhook', _message: string): Promise<void>;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=sashido.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sashido.d.ts","sourceRoot":"","sources":["../../src/client/sashido.ts"],"names":[],"mappings":"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"}
|