primitive-admin 1.1.0 → 1.2.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -13
- package/assets/skill/skills/primitive-platform/SKILL.md +6 -0
- package/dist/src/commands/collections.js +20 -17
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/connections.js +1 -5
- package/dist/src/commands/connections.js.map +1 -1
- package/dist/src/commands/database-types.js +13 -313
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.js +7 -128
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/groups.js +16 -0
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/llm.js +9 -6
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/sessions.js +3 -8
- package/dist/src/commands/sessions.js.map +1 -1
- package/dist/src/commands/settings.d.ts +18 -0
- package/dist/src/commands/settings.js +54 -0
- package/dist/src/commands/settings.js.map +1 -0
- package/dist/src/commands/sync.d.ts +77 -7
- package/dist/src/commands/sync.js +368 -198
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.js +1 -6
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/workflows.js +3 -3
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +3 -70
- package/dist/src/lib/api-client.js +20 -106
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-match-guard.d.ts +44 -0
- package/dist/src/lib/app-match-guard.js +72 -0
- package/dist/src/lib/app-match-guard.js.map +1 -0
- package/dist/src/lib/collection-export.d.ts +37 -9
- package/dist/src/lib/collection-export.js +48 -12
- package/dist/src/lib/collection-export.js.map +1 -1
- package/dist/src/lib/config-object-descriptor.js +2 -3
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/function-triggers.d.ts +66 -0
- package/dist/src/lib/function-triggers.js +285 -0
- package/dist/src/lib/function-triggers.js.map +1 -0
- package/dist/src/lib/generated-allowlist.js +0 -1
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +4 -2
- package/dist/src/lib/generated-config-surfaces.js +138 -68
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-sdk-types.d.ts +1 -1
- package/dist/src/lib/generated-sdk-types.js +1 -1
- package/dist/src/lib/generated-sdk-types.js.map +1 -1
- package/dist/src/lib/generated-workflow-model-fields.d.ts +20 -0
- package/dist/src/lib/generated-workflow-model-fields.js +53 -0
- package/dist/src/lib/generated-workflow-model-fields.js.map +1 -0
- package/dist/src/lib/google-client-secret-status.d.ts +35 -0
- package/dist/src/lib/google-client-secret-status.js +56 -0
- package/dist/src/lib/google-client-secret-status.js.map +1 -0
- package/dist/src/lib/log-inspection.d.ts +1 -6
- package/dist/src/lib/log-inspection.js +5 -7
- package/dist/src/lib/log-inspection.js.map +1 -1
- package/dist/src/lib/migration-nag.d.ts +2 -2
- package/dist/src/lib/migration-nag.js +4 -3
- package/dist/src/lib/migration-nag.js.map +1 -1
- package/dist/src/lib/paginate.d.ts +8 -24
- package/dist/src/lib/paginate.js +8 -21
- package/dist/src/lib/paginate.js.map +1 -1
- package/dist/src/lib/sync-dir-selector.d.ts +1 -1
- package/dist/src/lib/sync-dir-selector.js +1 -1
- package/dist/src/lib/toml-database-config.js +2 -2
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/workflow-field-descriptor.d.ts +91 -0
- package/dist/src/lib/workflow-field-descriptor.js +153 -0
- package/dist/src/lib/workflow-field-descriptor.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ApiClient } from "../lib/api-client.js";
|
|
2
2
|
import { getCurrentAppId } from "../lib/config.js";
|
|
3
|
-
import {
|
|
4
|
-
import { confirmPrompt } from "../lib/confirm-prompt.js";
|
|
3
|
+
import { error, info, result as printResult, formatTable, formatId, formatDate, json, } from "../lib/output.js";
|
|
5
4
|
function resolveAppId(appId, options) {
|
|
6
5
|
const resolved = appId || options.app || getCurrentAppId();
|
|
7
6
|
if (!resolved) {
|
|
@@ -18,11 +17,19 @@ export function registerDatabaseTypesCommands(program) {
|
|
|
18
17
|
Examples:
|
|
19
18
|
$ primitive database-types list
|
|
20
19
|
$ primitive database-types get <database-type>
|
|
21
|
-
$ primitive database-
|
|
22
|
-
$ primitive
|
|
23
|
-
$ primitive database-types delete <database-type>
|
|
20
|
+
$ primitive config create database-type <database-type> # scaffold database-types/<type>.toml
|
|
21
|
+
$ primitive config push --only database-type/<database-type>
|
|
24
22
|
$ primitive database-types operations list <database-type>
|
|
25
|
-
|
|
23
|
+
# Operations are [[operations]] entries in database-types/<type>.toml.
|
|
24
|
+
`);
|
|
25
|
+
// Server-side configuration is authored in TOML and applied with `config push`
|
|
26
|
+
// (issue #2645) — this group no longer carries config-setting flags.
|
|
27
|
+
dbTypes.addHelpText("after", `
|
|
28
|
+
Configuration lives in database-types/<type>.toml:
|
|
29
|
+
$ primitive config fields database-type # the file's keys, types and defaults
|
|
30
|
+
$ primitive config create database-type <key> # scaffold one locally
|
|
31
|
+
$ primitive config set database-type/<key> <path>=<value>
|
|
32
|
+
$ primitive config push --only database-type/<key>
|
|
26
33
|
`);
|
|
27
34
|
// List type configs
|
|
28
35
|
dbTypes
|
|
@@ -85,162 +92,10 @@ Examples:
|
|
|
85
92
|
process.exit(1);
|
|
86
93
|
}
|
|
87
94
|
});
|
|
88
|
-
// Create type config
|
|
89
|
-
dbTypes
|
|
90
|
-
.command("create")
|
|
91
|
-
.description("Create a database type configuration")
|
|
92
|
-
.argument("<database-type>", "Database type name")
|
|
93
|
-
.option("--rule-set-id <id>", "Access rule set ID")
|
|
94
|
-
.option("--triggers <json>", "Trigger definitions as JSON string")
|
|
95
|
-
.option("--cel-context-access <cel>", "CEL expression gating who can update the database's CEL context")
|
|
96
|
-
.option("--metadata-access <cel>", "Legacy alias for --cel-context-access")
|
|
97
|
-
.option("--app <app-id>", "App ID")
|
|
98
|
-
.option("--json", "Output as JSON")
|
|
99
|
-
.action(async (databaseType, options) => {
|
|
100
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
101
|
-
const client = new ApiClient();
|
|
102
|
-
try {
|
|
103
|
-
const data = { databaseType };
|
|
104
|
-
if (options.ruleSetId)
|
|
105
|
-
data.ruleSetId = options.ruleSetId;
|
|
106
|
-
if (options.triggers) {
|
|
107
|
-
try {
|
|
108
|
-
data.triggers = JSON.parse(options.triggers);
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
error("Invalid JSON in --triggers.");
|
|
112
|
-
process.exit(1);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
// `--cel-context-access` is the new name; `--metadata-access` remains
|
|
116
|
-
// supported. Both write to the same wire field (`metadataAccess`).
|
|
117
|
-
const accessExpr = options.celContextAccess ?? options.metadataAccess;
|
|
118
|
-
if (accessExpr)
|
|
119
|
-
data.metadataAccess = accessExpr;
|
|
120
|
-
const result = await client.createDatabaseTypeConfig(resolvedAppId, data);
|
|
121
|
-
if (options.json) {
|
|
122
|
-
json(result);
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
success("Database type configuration created.");
|
|
126
|
-
keyValue("Database Type", result.databaseType);
|
|
127
|
-
if (result.ruleSetId)
|
|
128
|
-
keyValue("Rule Set ID", result.ruleSetId);
|
|
129
|
-
if (result.triggers)
|
|
130
|
-
keyValue("Triggers", "Yes");
|
|
131
|
-
}
|
|
132
|
-
catch (err) {
|
|
133
|
-
error(err.message);
|
|
134
|
-
process.exit(1);
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
// Update type config
|
|
138
|
-
dbTypes
|
|
139
|
-
.command("update")
|
|
140
|
-
.description("Update a database type configuration")
|
|
141
|
-
.argument("<database-type>", "Database type name")
|
|
142
|
-
.option("--rule-set-id <id>", "Access rule set ID (use 'none' to clear)")
|
|
143
|
-
.option("--triggers <json>", "Trigger definitions as JSON string (use 'none' to clear)")
|
|
144
|
-
.option("--cel-context-access <cel>", "CEL expression gating CEL context updates (use 'none' to clear)")
|
|
145
|
-
.option("--metadata-access <cel>", "Legacy alias for --cel-context-access (use 'none' to clear)")
|
|
146
|
-
.option("--app <app-id>", "App ID")
|
|
147
|
-
.option("--json", "Output as JSON")
|
|
148
|
-
.action(async (databaseType, options) => {
|
|
149
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
150
|
-
const client = new ApiClient();
|
|
151
|
-
const data = {};
|
|
152
|
-
if (options.ruleSetId !== undefined) {
|
|
153
|
-
data.ruleSetId = options.ruleSetId === "none" ? null : options.ruleSetId;
|
|
154
|
-
}
|
|
155
|
-
if (options.triggers !== undefined) {
|
|
156
|
-
if (options.triggers === "none") {
|
|
157
|
-
data.triggers = null;
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
try {
|
|
161
|
-
data.triggers = JSON.parse(options.triggers);
|
|
162
|
-
}
|
|
163
|
-
catch {
|
|
164
|
-
error("Invalid JSON in --triggers.");
|
|
165
|
-
process.exit(1);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// Honour either flag; --cel-context-access wins if both are given.
|
|
170
|
-
const accessArg = options.celContextAccess !== undefined
|
|
171
|
-
? options.celContextAccess
|
|
172
|
-
: options.metadataAccess;
|
|
173
|
-
if (accessArg !== undefined) {
|
|
174
|
-
data.metadataAccess = accessArg === "none" ? null : accessArg;
|
|
175
|
-
}
|
|
176
|
-
if (Object.keys(data).length === 0) {
|
|
177
|
-
error("Provide at least one of --rule-set-id, --triggers, --cel-context-access, or --metadata-access.");
|
|
178
|
-
process.exit(1);
|
|
179
|
-
}
|
|
180
|
-
try {
|
|
181
|
-
const result = await client.updateDatabaseTypeConfig(resolvedAppId, databaseType, data);
|
|
182
|
-
if (options.json) {
|
|
183
|
-
json(result);
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
success("Database type configuration updated.");
|
|
187
|
-
keyValue("Database Type", result.databaseType);
|
|
188
|
-
keyValue("Rule Set ID", result.ruleSetId || "—");
|
|
189
|
-
keyValue("Triggers", result.triggers ? "Yes" : "—");
|
|
190
|
-
}
|
|
191
|
-
catch (err) {
|
|
192
|
-
error(err.message);
|
|
193
|
-
process.exit(1);
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
// Delete type config
|
|
197
|
-
dbTypes
|
|
198
|
-
.command("delete")
|
|
199
|
-
.description("Delete a database type configuration")
|
|
200
|
-
.argument("<database-type>", "Database type name")
|
|
201
|
-
.option("--app <app-id>", "App ID")
|
|
202
|
-
.option("-y, --yes", "Skip confirmation prompt")
|
|
203
|
-
.option("--force", "Delete even if live database instances of this type still exist (orphans them)")
|
|
204
|
-
.action(async (databaseType, options) => {
|
|
205
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
206
|
-
// `-y/--yes` only skips the interactive confirm; it does NOT bypass the
|
|
207
|
-
// server's instance-orphaning guard. Only `--force` (→ ?force=true) does.
|
|
208
|
-
if (!options.yes) {
|
|
209
|
-
let confirm;
|
|
210
|
-
try {
|
|
211
|
-
confirm = await confirmPrompt(`Delete database type "${databaseType}"? This cannot be undone.`);
|
|
212
|
-
}
|
|
213
|
-
catch (err) {
|
|
214
|
-
error(err.message);
|
|
215
|
-
process.exit(1);
|
|
216
|
-
}
|
|
217
|
-
if (!confirm) {
|
|
218
|
-
info("Cancelled.");
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
const client = new ApiClient();
|
|
223
|
-
try {
|
|
224
|
-
await client.deleteDatabaseTypeConfig(resolvedAppId, databaseType, {
|
|
225
|
-
force: Boolean(options.force),
|
|
226
|
-
});
|
|
227
|
-
success(`Database type "${databaseType}" deleted.`);
|
|
228
|
-
}
|
|
229
|
-
catch (err) {
|
|
230
|
-
error(err.message);
|
|
231
|
-
// The server refuses (409) when live instances exist and --force was
|
|
232
|
-
// not passed. Point the user at the escape hatch.
|
|
233
|
-
if (/instance/i.test(err.message) && !options.force) {
|
|
234
|
-
info("Delete the instances first (primitive databases delete <id>), or re-run with --force to delete the type anyway (this orphans the instances).");
|
|
235
|
-
}
|
|
236
|
-
process.exit(1);
|
|
237
|
-
}
|
|
238
|
-
});
|
|
239
95
|
// ---- Operations subcommand group ----
|
|
240
96
|
const operations = dbTypes
|
|
241
97
|
.command("operations")
|
|
242
98
|
.description("Manage operations (queries and mutations) for a database type");
|
|
243
|
-
// List operations
|
|
244
99
|
operations
|
|
245
100
|
.command("list")
|
|
246
101
|
.description("List operations for a database type")
|
|
@@ -312,160 +167,5 @@ Examples:
|
|
|
312
167
|
process.exit(1);
|
|
313
168
|
}
|
|
314
169
|
});
|
|
315
|
-
// Create operation
|
|
316
|
-
operations
|
|
317
|
-
.command("create")
|
|
318
|
-
.description("Create a new operation (query or mutation)")
|
|
319
|
-
.argument("<database-type>", "Database type name")
|
|
320
|
-
.argument("<name>", "Operation name")
|
|
321
|
-
.requiredOption("--type <type>", "Operation type: query, mutation, count, aggregate, or pipeline")
|
|
322
|
-
.requiredOption("--model <model-name>", "Model name")
|
|
323
|
-
.requiredOption("--access <cel>", "Access CEL expression")
|
|
324
|
-
.requiredOption("--definition <json>", "Definition as JSON string")
|
|
325
|
-
.option("--params <json>", "Parameters schema as JSON string")
|
|
326
|
-
.option("--app <app-id>", "App ID")
|
|
327
|
-
.option("--json", "Output as JSON")
|
|
328
|
-
.action(async (databaseType, name, options) => {
|
|
329
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
330
|
-
const client = new ApiClient();
|
|
331
|
-
let definition;
|
|
332
|
-
try {
|
|
333
|
-
definition = JSON.parse(options.definition);
|
|
334
|
-
}
|
|
335
|
-
catch {
|
|
336
|
-
error("Invalid JSON in --definition.");
|
|
337
|
-
process.exit(1);
|
|
338
|
-
return;
|
|
339
|
-
}
|
|
340
|
-
let params;
|
|
341
|
-
if (options.params) {
|
|
342
|
-
try {
|
|
343
|
-
params = JSON.parse(options.params);
|
|
344
|
-
}
|
|
345
|
-
catch {
|
|
346
|
-
error("Invalid JSON in --params.");
|
|
347
|
-
process.exit(1);
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
try {
|
|
352
|
-
const data = {
|
|
353
|
-
name,
|
|
354
|
-
type: options.type,
|
|
355
|
-
modelName: options.model,
|
|
356
|
-
access: options.access,
|
|
357
|
-
definition,
|
|
358
|
-
};
|
|
359
|
-
if (params)
|
|
360
|
-
data.params = params;
|
|
361
|
-
const result = await client.createDatabaseTypeOperation(resolvedAppId, databaseType, data);
|
|
362
|
-
if (options.json) {
|
|
363
|
-
json(result);
|
|
364
|
-
return;
|
|
365
|
-
}
|
|
366
|
-
success("Operation created.");
|
|
367
|
-
keyValue("Name", result.name);
|
|
368
|
-
keyValue("Type", result.type);
|
|
369
|
-
keyValue("Model Name", result.modelName);
|
|
370
|
-
}
|
|
371
|
-
catch (err) {
|
|
372
|
-
error(err.message);
|
|
373
|
-
process.exit(1);
|
|
374
|
-
}
|
|
375
|
-
});
|
|
376
|
-
// Update operation
|
|
377
|
-
operations
|
|
378
|
-
.command("update")
|
|
379
|
-
.description("Update an operation")
|
|
380
|
-
.argument("<database-type>", "Database type name")
|
|
381
|
-
.argument("<name>", "Operation name")
|
|
382
|
-
.option("--model <model-name>", "New model name")
|
|
383
|
-
.option("--access <cel>", "New access CEL expression")
|
|
384
|
-
.option("--definition <json>", "New definition as JSON string")
|
|
385
|
-
.option("--params <json>", "New parameters schema as JSON string")
|
|
386
|
-
.option("--app <app-id>", "App ID")
|
|
387
|
-
.option("--json", "Output as JSON")
|
|
388
|
-
.action(async (databaseType, name, options) => {
|
|
389
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
390
|
-
const client = new ApiClient();
|
|
391
|
-
const data = {};
|
|
392
|
-
if (options.model)
|
|
393
|
-
data.modelName = options.model;
|
|
394
|
-
if (options.access)
|
|
395
|
-
data.access = options.access;
|
|
396
|
-
if (options.definition) {
|
|
397
|
-
try {
|
|
398
|
-
data.definition = JSON.parse(options.definition);
|
|
399
|
-
}
|
|
400
|
-
catch {
|
|
401
|
-
error("Invalid JSON in --definition.");
|
|
402
|
-
process.exit(1);
|
|
403
|
-
return;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
if (options.params) {
|
|
407
|
-
try {
|
|
408
|
-
data.params = JSON.parse(options.params);
|
|
409
|
-
}
|
|
410
|
-
catch {
|
|
411
|
-
error("Invalid JSON in --params.");
|
|
412
|
-
process.exit(1);
|
|
413
|
-
return;
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
if (Object.keys(data).length === 0) {
|
|
417
|
-
error("Provide at least one of --model, --access, --definition, or --params.");
|
|
418
|
-
process.exit(1);
|
|
419
|
-
}
|
|
420
|
-
try {
|
|
421
|
-
const result = await client.updateDatabaseTypeOperation(resolvedAppId, databaseType, name, data);
|
|
422
|
-
if (options.json) {
|
|
423
|
-
json(result);
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
success("Operation updated.");
|
|
427
|
-
keyValue("Name", result.name);
|
|
428
|
-
keyValue("Type", result.type);
|
|
429
|
-
keyValue("Model Name", result.modelName);
|
|
430
|
-
}
|
|
431
|
-
catch (err) {
|
|
432
|
-
error(err.message);
|
|
433
|
-
process.exit(1);
|
|
434
|
-
}
|
|
435
|
-
});
|
|
436
|
-
// Delete operation
|
|
437
|
-
operations
|
|
438
|
-
.command("delete")
|
|
439
|
-
.description("Delete an operation")
|
|
440
|
-
.argument("<database-type>", "Database type name")
|
|
441
|
-
.argument("<name>", "Operation name")
|
|
442
|
-
.option("--app <app-id>", "App ID")
|
|
443
|
-
.option("-y, --yes", "Skip confirmation prompt")
|
|
444
|
-
.action(async (databaseType, name, options) => {
|
|
445
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
446
|
-
if (!options.yes) {
|
|
447
|
-
let confirm;
|
|
448
|
-
try {
|
|
449
|
-
confirm = await confirmPrompt(`Delete operation "${name}" from type "${databaseType}"?`);
|
|
450
|
-
}
|
|
451
|
-
catch (err) {
|
|
452
|
-
error(err.message);
|
|
453
|
-
process.exit(1);
|
|
454
|
-
}
|
|
455
|
-
if (!confirm) {
|
|
456
|
-
info("Cancelled.");
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
const client = new ApiClient();
|
|
461
|
-
try {
|
|
462
|
-
await client.deleteDatabaseTypeOperation(resolvedAppId, databaseType, name);
|
|
463
|
-
success(`Operation "${name}" deleted.`);
|
|
464
|
-
}
|
|
465
|
-
catch (err) {
|
|
466
|
-
error(err.message);
|
|
467
|
-
process.exit(1);
|
|
468
|
-
}
|
|
469
|
-
});
|
|
470
170
|
}
|
|
471
171
|
//# sourceMappingURL=database-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-types.js","sourceRoot":"","sources":["../../../src/commands/database-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database-types.js","sourceRoot":"","sources":["../../../src/commands/database-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAEL,KAAK,EACL,IAAI,EAEJ,MAAM,IAAI,WAAW,EACrB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,IAAI,GACL,MAAM,kBAAkB,CAAC;AAG1B,SAAS,YAAY,CAAC,KAAyB,EAAE,OAAY;IAC3D,MAAM,QAAQ,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,oFAAoF,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAgB;IAC5D,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,oDAAoD,CAAC;SACjE,WAAW,CAAC,OAAO,EAAE;;;;;;;;CAQzB,CAAC,CAAC;IAED,+EAA+E;IAC/E,qEAAqE;IACrE,OAAO,CAAC,WAAW,CACjB,OAAO,EACP;;;;;;CAMH,CACE,CAAC;IAGF,oBAAoB;IACpB,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mCAAmC,CAAC;SAChD,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAEjD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;gBAChB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;gBACvC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;gBACtF,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;gBAC5E,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE;aAC9D,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;QACtC,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAE/E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAClD,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;YACpD,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvD,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC;YAChE,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACrD,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,wCAAwC;IACxC,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,+DAA+D,CAAC,CAAC;IAEhF,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;QACtC,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YACpF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAEjD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;gBAChB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC/B,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC/B,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;gBACrC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE;wBACpD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC1B,OAAO,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC,EAAC;gBACF,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE;aAC9D,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,UAAU;SACP,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,uBAAuB,CAAC;SACpC,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SACjD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SACpC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAExF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACrD,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -10,9 +10,6 @@ import { generateDbTypes, } from "../lib/db-codegen/dbGenerator.js";
|
|
|
10
10
|
import { generateDbSwiftTypes } from "../lib/swift-codegen/dbGenerator.js";
|
|
11
11
|
import { success, error, info, warn, keyValue, result as printResult, formatTable, formatId, formatDate, json, } from "../lib/output.js";
|
|
12
12
|
import { confirmPrompt } from "../lib/confirm-prompt.js";
|
|
13
|
-
import { deprecateCommandGroup, warnDeprecated, } from "../lib/deprecation.js";
|
|
14
|
-
/** Successor for the deprecated database CEL context commands and flags. */
|
|
15
|
-
const CEL_CONTEXT_SUCCESSOR = "resource metadata categories (`primitive metadata get|set database <database-id> <category>`; define categories with `primitive config push`)";
|
|
16
13
|
import { parseFilterOptions } from "../lib/record-filter.js";
|
|
17
14
|
import { parseDataOption } from "../lib/data-input.js";
|
|
18
15
|
import { ulid } from "ulid";
|
|
@@ -283,33 +280,14 @@ database-type-config' and the 'database-type-configs' group for inspection:
|
|
|
283
280
|
.argument("<title>", "Database title")
|
|
284
281
|
.option("--app <app-id>", "App ID")
|
|
285
282
|
.requiredOption("--type <database-type>", "Database type (required)")
|
|
286
|
-
.option("--
|
|
287
|
-
.option("--metadata <json>", "[deprecated] Initial CEL context as JSON (legacy alias for --cel-context); prefer --initial-metadata")
|
|
288
|
-
.option("--initial-metadata <json>", "Create-time resource metadata as JSON, keyed by category name (issue #1420). The recommended replacement for --cel-context: read from rules as md.self.<category>.<key>.")
|
|
283
|
+
.option("--initial-metadata <json>", "Create-time resource metadata as JSON, keyed by category name, e.g. '{\"settings\":{\"teamId\":\"t1\"}}'; rules read it as md.self.<category>.<key>")
|
|
289
284
|
.option("--json", "Output as JSON")
|
|
290
285
|
.action(async (title, options) => {
|
|
291
286
|
const resolvedAppId = resolveAppId(undefined, options);
|
|
292
287
|
const client = new ApiClient();
|
|
293
288
|
try {
|
|
294
289
|
const params = { title, databaseType: options.type };
|
|
295
|
-
//
|
|
296
|
-
// supported for backwards compatibility. When both are provided,
|
|
297
|
-
// --cel-context wins.
|
|
298
|
-
if (options.celContext !== undefined || options.metadata !== undefined) {
|
|
299
|
-
warnDeprecated(`primitive databases create ${options.celContext !== undefined ? "--cel-context" : "--metadata"}`, "--initial-metadata (resource metadata categories)", 1815);
|
|
300
|
-
}
|
|
301
|
-
const contextSource = options.celContext ?? options.metadata;
|
|
302
|
-
if (contextSource) {
|
|
303
|
-
try {
|
|
304
|
-
params.metadata = JSON.parse(contextSource);
|
|
305
|
-
}
|
|
306
|
-
catch {
|
|
307
|
-
error(`Invalid ${options.celContext ? "--cel-context" : "--metadata"} JSON.`);
|
|
308
|
-
process.exit(1);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
// `--initial-metadata` is a separate concept: create-time per-category
|
|
312
|
-
// ResourceMetadata rows (issue #1420), not the database CEL context.
|
|
290
|
+
// Create-time per-category ResourceMetadata rows (issue #1420).
|
|
313
291
|
if (options.initialMetadata) {
|
|
314
292
|
try {
|
|
315
293
|
params.initialMetadata = JSON.parse(options.initialMetadata);
|
|
@@ -537,25 +515,6 @@ database-type-config' and the 'database-type-configs' group for inspection:
|
|
|
537
515
|
.option("--app <app-id>", "App ID")
|
|
538
516
|
.option("-y, --yes", "Skip confirmation prompt")
|
|
539
517
|
.action(removeManagerAction);
|
|
540
|
-
// Grant permission (deprecated alias for add-manager)
|
|
541
|
-
permissions
|
|
542
|
-
.command("grant")
|
|
543
|
-
.description("(deprecated: use add-manager) Grant a user permission on a database")
|
|
544
|
-
.argument("<database-id>", "Database ID")
|
|
545
|
-
.requiredOption("--user-id <user-id>", "User ID to grant permission to")
|
|
546
|
-
.option("--permission <permission>", "Permission level (ignored, always 'manager')")
|
|
547
|
-
.option("--app <app-id>", "App ID")
|
|
548
|
-
.option("--json", "Output as JSON")
|
|
549
|
-
.action(addManagerAction);
|
|
550
|
-
// Revoke permission (deprecated alias for remove-manager)
|
|
551
|
-
permissions
|
|
552
|
-
.command("revoke")
|
|
553
|
-
.description("(deprecated: use remove-manager) Revoke a user's permission on a database")
|
|
554
|
-
.argument("<database-id>", "Database ID")
|
|
555
|
-
.argument("<user-id>", "User ID to revoke")
|
|
556
|
-
.option("--app <app-id>", "App ID")
|
|
557
|
-
.option("-y, --yes", "Skip confirmation prompt")
|
|
558
|
-
.action(removeManagerAction);
|
|
559
518
|
// ---- Records subcommand group ----
|
|
560
519
|
const records = databases
|
|
561
520
|
.command("records")
|
|
@@ -1223,88 +1182,6 @@ database-type-config' and the 'database-type-configs' group for inspection:
|
|
|
1223
1182
|
process.exit(1);
|
|
1224
1183
|
}
|
|
1225
1184
|
});
|
|
1226
|
-
// ---- CEL context subcommand group ----
|
|
1227
|
-
// `cel-context` is the user-facing name for the dict that feeds CEL
|
|
1228
|
-
// access rules and filter placeholders. `metadata` is kept as a hidden
|
|
1229
|
-
// alias for backwards compatibility with existing scripts.
|
|
1230
|
-
const registerCelContextGroup = (name, hidden) => {
|
|
1231
|
-
const group = databases
|
|
1232
|
-
.command(name, { hidden })
|
|
1233
|
-
.description(hidden
|
|
1234
|
-
? "(deprecated: use resource metadata categories, `primitive metadata`) Manage database CEL context (alias of 'cel-context')"
|
|
1235
|
-
: "(deprecated: use resource metadata categories, `primitive metadata`) Manage database CEL context (the dict referenced by access rules and filters)");
|
|
1236
|
-
// CEL context is deprecated in favour of resource metadata categories
|
|
1237
|
-
// (#1420, #1815), which carry separate read and write rules.
|
|
1238
|
-
deprecateCommandGroup(group, CEL_CONTEXT_SUCCESSOR, { issue: 1815 });
|
|
1239
|
-
group
|
|
1240
|
-
.command("get")
|
|
1241
|
-
.description("Read database CEL context")
|
|
1242
|
-
.argument("<database-id>", "Database ID")
|
|
1243
|
-
.option("--app <app-id>", "App ID")
|
|
1244
|
-
.option("--json", "Output as JSON")
|
|
1245
|
-
.action(async (databaseId, options) => {
|
|
1246
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
1247
|
-
const client = new ApiClient();
|
|
1248
|
-
try {
|
|
1249
|
-
const result = await client.getDatabaseCelContext(resolvedAppId, databaseId);
|
|
1250
|
-
if (options.json) {
|
|
1251
|
-
json(result);
|
|
1252
|
-
return;
|
|
1253
|
-
}
|
|
1254
|
-
printResult("Database ID", result.databaseId);
|
|
1255
|
-
const ctx = result.celContext ?? result.metadata;
|
|
1256
|
-
if (ctx && Object.keys(ctx).length > 0) {
|
|
1257
|
-
printResult("CEL Context", JSON.stringify(ctx, null, 2));
|
|
1258
|
-
}
|
|
1259
|
-
else {
|
|
1260
|
-
info("No CEL context set.");
|
|
1261
|
-
}
|
|
1262
|
-
}
|
|
1263
|
-
catch (err) {
|
|
1264
|
-
error(err.message);
|
|
1265
|
-
process.exit(1);
|
|
1266
|
-
}
|
|
1267
|
-
});
|
|
1268
|
-
group
|
|
1269
|
-
.command("update")
|
|
1270
|
-
.description("Update database CEL context (merge with existing)")
|
|
1271
|
-
.argument("<database-id>", "Database ID")
|
|
1272
|
-
.requiredOption("--data <json>", "CEL context fields as JSON (merged with existing)")
|
|
1273
|
-
.option("--app <app-id>", "App ID")
|
|
1274
|
-
.option("--json", "Output as JSON")
|
|
1275
|
-
.action(async (databaseId, options) => {
|
|
1276
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
1277
|
-
const client = new ApiClient();
|
|
1278
|
-
let data;
|
|
1279
|
-
try {
|
|
1280
|
-
data = JSON.parse(options.data);
|
|
1281
|
-
}
|
|
1282
|
-
catch {
|
|
1283
|
-
error("Invalid --data JSON.");
|
|
1284
|
-
process.exit(1);
|
|
1285
|
-
return;
|
|
1286
|
-
}
|
|
1287
|
-
try {
|
|
1288
|
-
const result = await client.updateDatabaseCelContext(resolvedAppId, databaseId, data);
|
|
1289
|
-
if (options.json) {
|
|
1290
|
-
json(result);
|
|
1291
|
-
return;
|
|
1292
|
-
}
|
|
1293
|
-
success("CEL context updated.");
|
|
1294
|
-
const ctx = result.celContext ?? result.metadata;
|
|
1295
|
-
if (ctx) {
|
|
1296
|
-
keyValue("CEL Context", JSON.stringify(ctx));
|
|
1297
|
-
}
|
|
1298
|
-
}
|
|
1299
|
-
catch (err) {
|
|
1300
|
-
error(err.message);
|
|
1301
|
-
process.exit(1);
|
|
1302
|
-
}
|
|
1303
|
-
});
|
|
1304
|
-
};
|
|
1305
|
-
registerCelContextGroup("cel-context", false);
|
|
1306
|
-
// Hidden legacy alias — `primitive databases metadata get/update` still works.
|
|
1307
|
-
registerCelContextGroup("metadata", true);
|
|
1308
1185
|
// ---- Operations subcommand group ----
|
|
1309
1186
|
const operations = databases
|
|
1310
1187
|
.command("operations")
|
|
@@ -2176,7 +2053,6 @@ async function exportSingleDatabase(client, appId, databaseId, outputDir, jsonOu
|
|
|
2176
2053
|
databaseId: dbMeta.databaseId || databaseId,
|
|
2177
2054
|
title: dbMeta.title,
|
|
2178
2055
|
databaseType: dbMeta.databaseType || null,
|
|
2179
|
-
metadata: dbMeta.metadata || null,
|
|
2180
2056
|
};
|
|
2181
2057
|
writeFileSync(path.join(dbDir, "metadata.json"), JSON.stringify(metadata, null, 2));
|
|
2182
2058
|
// 3. Export records: list models, then query each.
|
|
@@ -2288,8 +2164,11 @@ async function importSingleDatabase(client, appId, dbDir, options) {
|
|
|
2288
2164
|
if (metadata.databaseType) {
|
|
2289
2165
|
createData.databaseType = metadata.databaseType;
|
|
2290
2166
|
}
|
|
2291
|
-
|
|
2292
|
-
|
|
2167
|
+
// Exports written before #3991 carry the retired database CEL context
|
|
2168
|
+
// dict; the server refuses it on create, so it is not imported.
|
|
2169
|
+
if (metadata.metadata && Object.keys(metadata.metadata).length > 0) {
|
|
2170
|
+
warn(`${databaseId}: not importing its database CEL context (retired in #3991); ` +
|
|
2171
|
+
"move those values into a resource metadata category.");
|
|
2293
2172
|
}
|
|
2294
2173
|
const created = await client.createDatabase(appId, createData);
|
|
2295
2174
|
targetDatabaseId = created.databaseId || created.id || databaseId;
|