primitive-admin 1.0.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/README.md +495 -0
- package/dist/bin/primitive.js +72 -0
- package/dist/bin/primitive.js.map +1 -0
- package/dist/src/commands/admins.js +268 -0
- package/dist/src/commands/admins.js.map +1 -0
- package/dist/src/commands/analytics.js +195 -0
- package/dist/src/commands/analytics.js.map +1 -0
- package/dist/src/commands/apps.js +238 -0
- package/dist/src/commands/apps.js.map +1 -0
- package/dist/src/commands/auth.js +178 -0
- package/dist/src/commands/auth.js.map +1 -0
- package/dist/src/commands/catalog.js +460 -0
- package/dist/src/commands/catalog.js.map +1 -0
- package/dist/src/commands/integrations.js +438 -0
- package/dist/src/commands/integrations.js.map +1 -0
- package/dist/src/commands/prompts.js +999 -0
- package/dist/src/commands/prompts.js.map +1 -0
- package/dist/src/commands/sync.js +598 -0
- package/dist/src/commands/sync.js.map +1 -0
- package/dist/src/commands/users.js +293 -0
- package/dist/src/commands/users.js.map +1 -0
- package/dist/src/commands/waitlist.js +176 -0
- package/dist/src/commands/waitlist.js.map +1 -0
- package/dist/src/commands/workflows.js +876 -0
- package/dist/src/commands/workflows.js.map +1 -0
- package/dist/src/lib/api-client.js +522 -0
- package/dist/src/lib/api-client.js.map +1 -0
- package/dist/src/lib/auth-flow.js +306 -0
- package/dist/src/lib/auth-flow.js.map +1 -0
- package/dist/src/lib/config.js +90 -0
- package/dist/src/lib/config.js.map +1 -0
- package/dist/src/lib/fetch.js +43 -0
- package/dist/src/lib/fetch.js.map +1 -0
- package/dist/src/lib/output.js +143 -0
- package/dist/src/lib/output.js.map +1 -0
- package/dist/src/types/index.js +2 -0
- package/dist/src/types/index.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import * as TOML from "@iarna/toml";
|
|
3
|
+
import { ApiClient } from "../lib/api-client.js";
|
|
4
|
+
import { getCurrentAppId } from "../lib/config.js";
|
|
5
|
+
import { success, error, info, keyValue, formatTable, formatId, formatDate, formatStatus, formatDuration, json, divider, } from "../lib/output.js";
|
|
6
|
+
function resolveAppId(appId, options) {
|
|
7
|
+
const resolved = appId || options.app || getCurrentAppId();
|
|
8
|
+
if (!resolved) {
|
|
9
|
+
error("No app specified. Use <app-id>, --app, or 'primitive use <app-id>' to set context.");
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
return resolved;
|
|
13
|
+
}
|
|
14
|
+
export function registerIntegrationsCommands(program) {
|
|
15
|
+
const integrations = program
|
|
16
|
+
.command("integrations")
|
|
17
|
+
.description("Configure external HTTP API connections and manage secrets")
|
|
18
|
+
.addHelpText("after", `
|
|
19
|
+
Examples:
|
|
20
|
+
$ primitive integrations list
|
|
21
|
+
$ primitive integrations create --from-file weather-api.toml
|
|
22
|
+
$ primitive integrations test 01HXY...
|
|
23
|
+
$ primitive integrations secrets add 01HXY... --data '{"apiKey":"..."}'
|
|
24
|
+
`);
|
|
25
|
+
// List integrations
|
|
26
|
+
integrations
|
|
27
|
+
.command("list")
|
|
28
|
+
.description("List integrations")
|
|
29
|
+
.argument("[app-id]", "App ID (uses current app if not specified)")
|
|
30
|
+
.option("--app <app-id>", "App ID")
|
|
31
|
+
.option("--status <status>", "Filter by status: draft, active, archived")
|
|
32
|
+
.option("--json", "Output as JSON")
|
|
33
|
+
.action(async (appId, options) => {
|
|
34
|
+
const resolvedAppId = resolveAppId(appId, options);
|
|
35
|
+
const client = new ApiClient();
|
|
36
|
+
try {
|
|
37
|
+
const { items } = await client.listIntegrations(resolvedAppId, {
|
|
38
|
+
status: options.status,
|
|
39
|
+
});
|
|
40
|
+
if (options.json) {
|
|
41
|
+
json(items);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!items || items.length === 0) {
|
|
45
|
+
info("No integrations found.");
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(formatTable(items, [
|
|
49
|
+
{ header: "ID", key: "integrationId", format: formatId },
|
|
50
|
+
{ header: "KEY", key: "integrationKey" },
|
|
51
|
+
{ header: "NAME", key: "displayName" },
|
|
52
|
+
{ header: "STATUS", key: "status", format: formatStatus },
|
|
53
|
+
{ header: "MODIFIED", key: "modifiedAt", format: formatDate },
|
|
54
|
+
]));
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
error(err.message);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
// Create integration
|
|
62
|
+
integrations
|
|
63
|
+
.command("create")
|
|
64
|
+
.description("Create a new integration")
|
|
65
|
+
.argument("[app-id]", "App ID (uses current app if not specified)")
|
|
66
|
+
.option("--app <app-id>", "App ID")
|
|
67
|
+
.option("--key <key>", "Integration key (unique identifier)")
|
|
68
|
+
.option("--name <name>", "Display name")
|
|
69
|
+
.option("--description <desc>", "Description")
|
|
70
|
+
.option("--base-url <url>", "Base URL for API requests")
|
|
71
|
+
.option("--allowed-methods <methods>", "Comma-separated list of allowed HTTP methods")
|
|
72
|
+
.option("--allowed-paths <paths>", "Comma-separated list of allowed paths")
|
|
73
|
+
.option("--timeout-ms <ms>", "Request timeout in milliseconds")
|
|
74
|
+
.option("--from-file <path>", "Load integration from TOML file")
|
|
75
|
+
.option("--json", "Output as JSON")
|
|
76
|
+
.action(async (appId, options) => {
|
|
77
|
+
const resolvedAppId = resolveAppId(appId, options);
|
|
78
|
+
const client = new ApiClient();
|
|
79
|
+
let payload;
|
|
80
|
+
if (options.fromFile) {
|
|
81
|
+
try {
|
|
82
|
+
const content = readFileSync(options.fromFile, "utf-8");
|
|
83
|
+
const tomlData = TOML.parse(content);
|
|
84
|
+
payload = {
|
|
85
|
+
integrationKey: tomlData.integration?.key || tomlData.key,
|
|
86
|
+
displayName: tomlData.integration?.displayName || tomlData.displayName,
|
|
87
|
+
description: tomlData.integration?.description || tomlData.description,
|
|
88
|
+
requestConfig: tomlData.requestConfig || {},
|
|
89
|
+
timeoutMs: tomlData.integration?.timeoutMs || tomlData.timeoutMs,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
error(`Failed to read TOML file: ${err.message}`);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
if (!options.key || !options.name || !options.baseUrl) {
|
|
99
|
+
error("Required: --key, --name, --base-url (or use --from-file)");
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
payload = {
|
|
103
|
+
integrationKey: options.key,
|
|
104
|
+
displayName: options.name,
|
|
105
|
+
description: options.description,
|
|
106
|
+
requestConfig: {
|
|
107
|
+
baseUrl: options.baseUrl,
|
|
108
|
+
allowedMethods: options.allowedMethods?.split(",").map((s) => s.trim()),
|
|
109
|
+
allowedPaths: options.allowedPaths?.split(",").map((s) => s.trim()),
|
|
110
|
+
},
|
|
111
|
+
timeoutMs: options.timeoutMs ? parseInt(options.timeoutMs) : undefined,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const result = await client.createIntegration(resolvedAppId, payload);
|
|
116
|
+
if (options.json) {
|
|
117
|
+
json(result);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
success(`Integration created: ${result.displayName}`);
|
|
121
|
+
keyValue("Integration ID", result.integrationId);
|
|
122
|
+
keyValue("Key", result.integrationKey);
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
error(err.message);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
// Get integration
|
|
130
|
+
integrations
|
|
131
|
+
.command("get")
|
|
132
|
+
.description("Get integration details")
|
|
133
|
+
.argument("<integration-id>", "Integration ID")
|
|
134
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
135
|
+
.option("--json", "Output as JSON")
|
|
136
|
+
.action(async (integrationId, options) => {
|
|
137
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
138
|
+
const client = new ApiClient();
|
|
139
|
+
try {
|
|
140
|
+
const result = await client.getIntegration(resolvedAppId, integrationId);
|
|
141
|
+
if (options.json) {
|
|
142
|
+
json(result);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
keyValue("Integration ID", result.integrationId);
|
|
146
|
+
keyValue("Key", result.integrationKey);
|
|
147
|
+
keyValue("Name", result.displayName);
|
|
148
|
+
keyValue("Description", result.description);
|
|
149
|
+
keyValue("Status", formatStatus(result.status));
|
|
150
|
+
keyValue("Timeout", result.timeoutMs ? `${result.timeoutMs}ms` : "-");
|
|
151
|
+
if (result.requestConfig) {
|
|
152
|
+
divider();
|
|
153
|
+
info("Request Config:");
|
|
154
|
+
keyValue(" Base URL", result.requestConfig.baseUrl);
|
|
155
|
+
keyValue(" Allowed Methods", result.requestConfig.allowedMethods?.join(", ") || "all");
|
|
156
|
+
keyValue(" Allowed Paths", result.requestConfig.allowedPaths?.join(", ") || "all");
|
|
157
|
+
keyValue(" Response Passthrough", result.requestConfig.responsePassthrough);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
error(err.message);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
// Update integration
|
|
166
|
+
integrations
|
|
167
|
+
.command("update")
|
|
168
|
+
.description("Update an integration")
|
|
169
|
+
.argument("<integration-id>", "Integration ID")
|
|
170
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
171
|
+
.option("--name <name>", "Display name")
|
|
172
|
+
.option("--description <desc>", "Description")
|
|
173
|
+
.option("--status <status>", "Status: draft, active, archived")
|
|
174
|
+
.option("--timeout-ms <ms>", "Request timeout in milliseconds")
|
|
175
|
+
.option("--json", "Output as JSON")
|
|
176
|
+
.action(async (integrationId, options) => {
|
|
177
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
178
|
+
const payload = {};
|
|
179
|
+
if (options.name)
|
|
180
|
+
payload.displayName = options.name;
|
|
181
|
+
if (options.description)
|
|
182
|
+
payload.description = options.description;
|
|
183
|
+
if (options.status)
|
|
184
|
+
payload.status = options.status;
|
|
185
|
+
if (options.timeoutMs)
|
|
186
|
+
payload.timeoutMs = parseInt(options.timeoutMs);
|
|
187
|
+
if (Object.keys(payload).length === 0) {
|
|
188
|
+
error("No update options specified.");
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
const client = new ApiClient();
|
|
192
|
+
try {
|
|
193
|
+
const result = await client.updateIntegration(resolvedAppId, integrationId, payload);
|
|
194
|
+
if (options.json) {
|
|
195
|
+
json(result);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
success("Integration updated.");
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
error(err.message);
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
// Delete integration
|
|
206
|
+
integrations
|
|
207
|
+
.command("delete")
|
|
208
|
+
.description("Delete or archive an integration")
|
|
209
|
+
.argument("<integration-id>", "Integration ID")
|
|
210
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
211
|
+
.option("--hard", "Permanently delete instead of archive")
|
|
212
|
+
.option("-y, --yes", "Skip confirmation prompt")
|
|
213
|
+
.action(async (integrationId, options) => {
|
|
214
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
215
|
+
if (!options.yes) {
|
|
216
|
+
const action = options.hard ? "permanently delete" : "archive";
|
|
217
|
+
const inquirer = await import("inquirer");
|
|
218
|
+
const { confirm } = await inquirer.default.prompt([
|
|
219
|
+
{
|
|
220
|
+
type: "confirm",
|
|
221
|
+
name: "confirm",
|
|
222
|
+
message: `Are you sure you want to ${action} integration ${integrationId}?`,
|
|
223
|
+
default: false,
|
|
224
|
+
},
|
|
225
|
+
]);
|
|
226
|
+
if (!confirm) {
|
|
227
|
+
info("Cancelled.");
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const client = new ApiClient();
|
|
232
|
+
try {
|
|
233
|
+
await client.deleteIntegration(resolvedAppId, integrationId, options.hard);
|
|
234
|
+
success(`Integration ${options.hard ? "deleted" : "archived"}.`);
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
error(err.message);
|
|
238
|
+
process.exit(1);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
// Test integration
|
|
242
|
+
integrations
|
|
243
|
+
.command("test")
|
|
244
|
+
.description("Test an integration by making a request")
|
|
245
|
+
.argument("<integration-id>", "Integration ID")
|
|
246
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
247
|
+
.option("--method <method>", "HTTP method", "GET")
|
|
248
|
+
.option("--path <path>", "Request path")
|
|
249
|
+
.option("--query <json>", "Query parameters as JSON")
|
|
250
|
+
.option("--body <json>", "Request body as JSON")
|
|
251
|
+
.option("--json", "Output as JSON")
|
|
252
|
+
.action(async (integrationId, options) => {
|
|
253
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
254
|
+
const payload = {
|
|
255
|
+
method: options.method,
|
|
256
|
+
path: options.path,
|
|
257
|
+
};
|
|
258
|
+
if (options.query) {
|
|
259
|
+
try {
|
|
260
|
+
payload.query = JSON.parse(options.query);
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
error("Invalid JSON in --query");
|
|
264
|
+
process.exit(1);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (options.body) {
|
|
268
|
+
try {
|
|
269
|
+
payload.body = JSON.parse(options.body);
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
error("Invalid JSON in --body");
|
|
273
|
+
process.exit(1);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
const client = new ApiClient();
|
|
277
|
+
try {
|
|
278
|
+
const result = await client.testIntegration(resolvedAppId, integrationId, payload);
|
|
279
|
+
if (options.json) {
|
|
280
|
+
json(result);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (result.success) {
|
|
284
|
+
success("Test successful");
|
|
285
|
+
if (result.upstreamResponse) {
|
|
286
|
+
keyValue("Status", String(result.upstreamResponse.status));
|
|
287
|
+
keyValue("Duration", formatDuration(result.upstreamResponse.durationMs));
|
|
288
|
+
console.log("\nResponse Body:");
|
|
289
|
+
console.log(JSON.stringify(result.upstreamResponse.body, null, 2));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
error(`Test failed: ${result.message || result.errorCode}`);
|
|
294
|
+
if (result.traceId) {
|
|
295
|
+
keyValue("Trace ID", result.traceId);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
error(err.message);
|
|
301
|
+
process.exit(1);
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
// List integration logs
|
|
305
|
+
integrations
|
|
306
|
+
.command("logs")
|
|
307
|
+
.description("View integration request logs")
|
|
308
|
+
.argument("<integration-id>", "Integration ID")
|
|
309
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
310
|
+
.option("--limit <n>", "Number of logs to show", "20")
|
|
311
|
+
.option("--json", "Output as JSON")
|
|
312
|
+
.action(async (integrationId, options) => {
|
|
313
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
314
|
+
const client = new ApiClient();
|
|
315
|
+
try {
|
|
316
|
+
const logs = await client.listIntegrationLogs(resolvedAppId, integrationId, {
|
|
317
|
+
limit: parseInt(options.limit),
|
|
318
|
+
});
|
|
319
|
+
if (options.json) {
|
|
320
|
+
json(logs);
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
if (!logs || logs.length === 0) {
|
|
324
|
+
info("No logs found.");
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
console.log(formatTable(logs, [
|
|
328
|
+
{ header: "TIME", key: "timestamp", format: formatDate },
|
|
329
|
+
{ header: "METHOD", key: "method" },
|
|
330
|
+
{ header: "PATH", key: "path" },
|
|
331
|
+
{ header: "STATUS", key: "status" },
|
|
332
|
+
{ header: "DURATION", key: "durationMs", format: formatDuration },
|
|
333
|
+
{ header: "TRACE", key: "traceId", format: formatId },
|
|
334
|
+
]));
|
|
335
|
+
}
|
|
336
|
+
catch (err) {
|
|
337
|
+
error(err.message);
|
|
338
|
+
process.exit(1);
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
// Secrets subcommand
|
|
342
|
+
const secrets = integrations.command("secrets").description("Manage integration secrets");
|
|
343
|
+
// List secrets
|
|
344
|
+
secrets
|
|
345
|
+
.command("list")
|
|
346
|
+
.description("List secrets for an integration")
|
|
347
|
+
.argument("<integration-id>", "Integration ID")
|
|
348
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
349
|
+
.option("--json", "Output as JSON")
|
|
350
|
+
.action(async (integrationId, options) => {
|
|
351
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
352
|
+
const client = new ApiClient();
|
|
353
|
+
try {
|
|
354
|
+
const secretsList = await client.listIntegrationSecrets(resolvedAppId, integrationId);
|
|
355
|
+
if (options.json) {
|
|
356
|
+
json(secretsList);
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
if (!secretsList || secretsList.length === 0) {
|
|
360
|
+
info("No secrets found.");
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
console.log(formatTable(secretsList, [
|
|
364
|
+
{ header: "ID", key: "secretId", format: formatId },
|
|
365
|
+
{ header: "VERSION", key: "version" },
|
|
366
|
+
{ header: "SUMMARY", key: "secretSummary" },
|
|
367
|
+
{ header: "STATUS", key: "status", format: formatStatus },
|
|
368
|
+
{ header: "CREATED", key: "createdAt", format: formatDate },
|
|
369
|
+
]));
|
|
370
|
+
}
|
|
371
|
+
catch (err) {
|
|
372
|
+
error(err.message);
|
|
373
|
+
process.exit(1);
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
// Add secret
|
|
377
|
+
secrets
|
|
378
|
+
.command("add")
|
|
379
|
+
.description("Add a secret to an integration")
|
|
380
|
+
.argument("<integration-id>", "Integration ID")
|
|
381
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
382
|
+
.option("--data <json>", "Secret data as JSON (e.g., '{\"apiKey\":\"...\"}' )")
|
|
383
|
+
.option("--summary <text>", "Description of the secret")
|
|
384
|
+
.option("--json", "Output as JSON")
|
|
385
|
+
.action(async (integrationId, options) => {
|
|
386
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
387
|
+
if (!options.data) {
|
|
388
|
+
error("--data is required (JSON object with secret values)");
|
|
389
|
+
process.exit(1);
|
|
390
|
+
}
|
|
391
|
+
let secretData;
|
|
392
|
+
try {
|
|
393
|
+
secretData = JSON.parse(options.data);
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
error("Invalid JSON in --data");
|
|
397
|
+
process.exit(1);
|
|
398
|
+
}
|
|
399
|
+
const client = new ApiClient();
|
|
400
|
+
try {
|
|
401
|
+
const result = await client.addIntegrationSecret(resolvedAppId, integrationId, {
|
|
402
|
+
secretData,
|
|
403
|
+
secretSummary: options.summary,
|
|
404
|
+
});
|
|
405
|
+
if (options.json) {
|
|
406
|
+
json(result);
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
success("Secret added.");
|
|
410
|
+
keyValue("Secret ID", result?.secretId);
|
|
411
|
+
keyValue("Version", result?.version);
|
|
412
|
+
}
|
|
413
|
+
catch (err) {
|
|
414
|
+
error(err.message);
|
|
415
|
+
process.exit(1);
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
// Archive secret
|
|
419
|
+
secrets
|
|
420
|
+
.command("archive")
|
|
421
|
+
.description("Archive a secret")
|
|
422
|
+
.argument("<integration-id>", "Integration ID")
|
|
423
|
+
.argument("<secret-id>", "Secret ID")
|
|
424
|
+
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
425
|
+
.action(async (integrationId, secretId, options) => {
|
|
426
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
427
|
+
const client = new ApiClient();
|
|
428
|
+
try {
|
|
429
|
+
await client.archiveIntegrationSecret(resolvedAppId, integrationId, secretId);
|
|
430
|
+
success("Secret archived.");
|
|
431
|
+
}
|
|
432
|
+
catch (err) {
|
|
433
|
+
error(err.message);
|
|
434
|
+
process.exit(1);
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
//# sourceMappingURL=integrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../../src/commands/integrations.ts"],"names":[],"mappings":"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"}
|