primitive-admin 1.2.0-alpha.0 → 1.2.0-alpha.2
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 +6 -4
- package/dist/bin/primitive.js +22 -24
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/agent-sessions.d.ts +20 -0
- package/dist/src/commands/agent-sessions.js +275 -0
- package/dist/src/commands/agent-sessions.js.map +1 -0
- package/dist/src/commands/apps-children.d.ts +54 -0
- package/dist/src/commands/apps-children.js +578 -0
- package/dist/src/commands/apps-children.js.map +1 -0
- package/dist/src/commands/apps.js +88 -9
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth-sessions.d.ts +3 -3
- package/dist/src/commands/auth-sessions.js +117 -23
- package/dist/src/commands/auth-sessions.js.map +1 -1
- package/dist/src/commands/auth.js +248 -15
- package/dist/src/commands/auth.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/databases.js +7 -109
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.d.ts +29 -0
- package/dist/src/commands/documents.js +676 -191
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/env.d.ts +9 -1
- package/dist/src/commands/env.js +158 -45
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/functions.js +7 -1
- package/dist/src/commands/functions.js.map +1 -1
- package/dist/src/commands/init.js +2 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +14 -2
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/prompts.js +4 -0
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/scripts.js +1 -1
- package/dist/src/commands/scripts.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/sync-app-settings.d.ts +25 -7
- package/dist/src/commands/sync-app-settings.js +81 -20
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +183 -12
- package/dist/src/commands/sync.js +974 -452
- 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/users.js +77 -2
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +161 -35
- package/dist/src/lib/api-client.js +210 -86
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +9 -1
- package/dist/src/lib/app-settings-descriptor.js +22 -10
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/auth-flow.d.ts +41 -1
- package/dist/src/lib/auth-flow.js +45 -16
- package/dist/src/lib/auth-flow.js.map +1 -1
- package/dist/src/lib/child-apps-local.d.ts +184 -0
- package/dist/src/lib/child-apps-local.js +282 -0
- package/dist/src/lib/child-apps-local.js.map +1 -0
- package/dist/src/lib/ci-session-request.d.ts +22 -0
- package/dist/src/lib/ci-session-request.js +51 -0
- package/dist/src/lib/ci-session-request.js.map +1 -0
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +4 -1
- package/dist/src/lib/codegen-shared/generatedFiles.js +19 -13
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/config-object-descriptor.js +5 -5
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/config-payload.js +2 -3
- package/dist/src/lib/config-payload.js.map +1 -1
- package/dist/src/lib/config-surface.d.ts +2 -1
- package/dist/src/lib/config-surface.js +7 -28
- package/dist/src/lib/config-surface.js.map +1 -1
- package/dist/src/lib/credentials-store.d.ts +17 -2
- package/dist/src/lib/credentials-store.js +72 -6
- package/dist/src/lib/credentials-store.js.map +1 -1
- package/dist/src/lib/document-export-lookups.d.ts +31 -0
- package/dist/src/lib/document-export-lookups.js +53 -0
- package/dist/src/lib/document-export-lookups.js.map +1 -0
- package/dist/src/lib/document-export-permissions.d.ts +7 -5
- package/dist/src/lib/document-export-permissions.js +7 -5
- package/dist/src/lib/document-export-permissions.js.map +1 -1
- package/dist/src/lib/env-resolver-core.d.ts +69 -1
- package/dist/src/lib/env-resolver-core.js +137 -20
- package/dist/src/lib/env-resolver-core.js.map +1 -1
- package/dist/src/lib/env-resolver.d.ts +14 -2
- package/dist/src/lib/env-resolver.js +32 -10
- package/dist/src/lib/env-resolver.js.map +1 -1
- package/dist/src/lib/function-run.d.ts +4 -1
- package/dist/src/lib/function-run.js +24 -4
- package/dist/src/lib/function-run.js.map +1 -1
- package/dist/src/lib/function-sync.d.ts +5 -2
- package/dist/src/lib/function-sync.js +7 -4
- package/dist/src/lib/function-sync.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +49 -50
- package/dist/src/lib/generated-config-surfaces.js +283 -166
- 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/init-adopt.js +12 -3
- package/dist/src/lib/init-adopt.js.map +1 -1
- package/dist/src/lib/local-state.d.ts +17 -1
- package/dist/src/lib/local-state.js +94 -15
- package/dist/src/lib/local-state.js.map +1 -1
- package/dist/src/lib/local-test-cases.d.ts +5 -2
- package/dist/src/lib/local-test-cases.js +7 -4
- package/dist/src/lib/local-test-cases.js.map +1 -1
- package/dist/src/lib/log-inspection.d.ts +25 -0
- package/dist/src/lib/log-inspection.js +24 -0
- package/dist/src/lib/log-inspection.js.map +1 -1
- package/dist/src/lib/logout-admin-session.d.ts +2 -1
- package/dist/src/lib/logout-admin-session.js +7 -1
- package/dist/src/lib/logout-admin-session.js.map +1 -1
- package/dist/src/lib/pull-write.d.ts +31 -0
- package/dist/src/lib/pull-write.js +49 -0
- package/dist/src/lib/pull-write.js.map +1 -0
- package/dist/src/lib/root-import-decision.d.ts +59 -0
- package/dist/src/lib/root-import-decision.js +95 -0
- package/dist/src/lib/root-import-decision.js.map +1 -0
- package/dist/src/lib/scope-request.d.ts +69 -0
- package/dist/src/lib/scope-request.js +188 -0
- package/dist/src/lib/scope-request.js.map +1 -0
- package/dist/src/lib/session-id.d.ts +9 -0
- package/dist/src/lib/session-id.js +28 -0
- package/dist/src/lib/session-id.js.map +1 -0
- package/dist/src/lib/snapshots.d.ts +17 -1
- package/dist/src/lib/snapshots.js +50 -2
- package/dist/src/lib/snapshots.js.map +1 -1
- package/dist/src/lib/sync-paths.d.ts +35 -0
- package/dist/src/lib/sync-paths.js +57 -5
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/transient-retry.d.ts +34 -0
- package/dist/src/lib/transient-retry.js +57 -0
- package/dist/src/lib/transient-retry.js.map +1 -0
- package/dist/src/types/index.d.ts +21 -4
- package/package.json +4 -3
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { loadCredentials, saveCredentials, clearCredentials, isTokenExpired, getCurrentApp, getConfiguredServerUrl, } from "../lib/config.js";
|
|
2
|
-
import { allowGlobalCredentials } from "../lib/credentials-store.js";
|
|
2
|
+
import { allowGlobalCredentials, environmentToken } from "../lib/credentials-store.js";
|
|
3
|
+
import { isCiToken } from "../lib/session-id.js";
|
|
3
4
|
import { browserLogin } from "../lib/auth-flow.js";
|
|
5
|
+
import { getCurrentEnvironment } from "../lib/env-resolver.js";
|
|
6
|
+
import { buildScopeRequest } from "../lib/scope-request.js";
|
|
7
|
+
import { ApiClient, ApiError } from "../lib/api-client.js";
|
|
4
8
|
import { fetchWithTLS } from "../lib/fetch.js";
|
|
5
9
|
import { REFRESH_EXPIRED_MESSAGE, RefreshError, refreshAdminCredentials, } from "../lib/refresh-admin-credentials.js";
|
|
6
10
|
import { logoutAdminSession } from "../lib/logout-admin-session.js";
|
|
@@ -19,6 +23,51 @@ function parseJwt(token) {
|
|
|
19
23
|
return {};
|
|
20
24
|
}
|
|
21
25
|
}
|
|
26
|
+
/** The environment's app, or undefined outside a project. */
|
|
27
|
+
function environmentAppId() {
|
|
28
|
+
try {
|
|
29
|
+
return getCurrentEnvironment()?.config.appId;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The stored login on this server, or null; a scoped login builds on it.
|
|
37
|
+
* Never `PRIMITIVE_TOKEN`'s credentials (#3890): a login is not built on, nor
|
|
38
|
+
* saved beside, a CI job's token.
|
|
39
|
+
*/
|
|
40
|
+
function storedLogin(serverUrl) {
|
|
41
|
+
try {
|
|
42
|
+
const stored = loadCredentials();
|
|
43
|
+
return stored && stored.source !== "env" && stored.serverUrl === serverUrl ? stored : null;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** The session id (`sid`) a stored access token carries. */
|
|
50
|
+
function sessionIdOf(credentials) {
|
|
51
|
+
const sid = credentials ? parseJwt(credentials.accessToken).sid : undefined;
|
|
52
|
+
return typeof sid === "string" && sid ? sid : undefined;
|
|
53
|
+
}
|
|
54
|
+
function stepUpFrom(exchange) {
|
|
55
|
+
return {
|
|
56
|
+
accessToken: exchange.accessToken,
|
|
57
|
+
expiresAt: exchange.expiresAt,
|
|
58
|
+
sessionId: exchange.sessionId ?? "",
|
|
59
|
+
scope: exchange.scope ?? [],
|
|
60
|
+
apps: exchange.apps ?? [],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function appsLabel(apps) {
|
|
64
|
+
return apps.length > 0 ? apps.join(", ") : "unpinned";
|
|
65
|
+
}
|
|
66
|
+
/** A stored step-up that has not expired, or null. */
|
|
67
|
+
function liveStepUp(credentials) {
|
|
68
|
+
const stepUp = credentials.stepUp;
|
|
69
|
+
return stepUp && new Date(stepUp.expiresAt).getTime() > Date.now() ? stepUp : null;
|
|
70
|
+
}
|
|
22
71
|
function readStdin() {
|
|
23
72
|
return new Promise((resolve, reject) => {
|
|
24
73
|
if (process.stdin.isTTY) {
|
|
@@ -32,18 +81,76 @@ function readStdin() {
|
|
|
32
81
|
process.stdin.on("error", reject);
|
|
33
82
|
});
|
|
34
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* `primitive token --scope …` (#3889): a token no wider than the stored login
|
|
86
|
+
* is derived headlessly; a wider one is approved in the browser. Either way
|
|
87
|
+
* only the token reaches stdout, and nothing is stored.
|
|
88
|
+
*/
|
|
89
|
+
async function printScopedToken(options) {
|
|
90
|
+
const credentials = loadCredentials();
|
|
91
|
+
const built = buildScopeRequest({
|
|
92
|
+
command: "token",
|
|
93
|
+
scope: options.scope,
|
|
94
|
+
app: options.app,
|
|
95
|
+
ttl: options.ttl,
|
|
96
|
+
envAppId: environmentAppId(),
|
|
97
|
+
parentSid: sessionIdOf(credentials),
|
|
98
|
+
});
|
|
99
|
+
if ("message" in built) {
|
|
100
|
+
error(built.message);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
if (!credentials) {
|
|
104
|
+
error("Not logged in. Run 'primitive login' first.");
|
|
105
|
+
process.exit(2);
|
|
106
|
+
}
|
|
107
|
+
const query = built.query;
|
|
108
|
+
const scope = query.scope.split(",");
|
|
109
|
+
const apps = query.apps ? query.apps.split(",") : [];
|
|
110
|
+
try {
|
|
111
|
+
const derived = await new ApiClient().exchangeToken({
|
|
112
|
+
scope,
|
|
113
|
+
...(apps.length > 0 ? { apps } : {}),
|
|
114
|
+
...(options.ttl !== undefined ? { ttl: options.ttl } : {}),
|
|
115
|
+
});
|
|
116
|
+
console.log(derived.accessToken);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
if (!(err instanceof ApiError && err.code === "TOKEN_WIDER_THAN_PRESENTED")) {
|
|
121
|
+
error(err?.message || "Token exchange failed");
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
info("This token is wider than your login, so it needs your approval in the browser.");
|
|
126
|
+
const result = await browserLogin(credentials.serverUrl, {
|
|
127
|
+
query,
|
|
128
|
+
...(credentials.globalAdminAppId ? { partition: credentials.globalAdminAppId } : {}),
|
|
129
|
+
save: false,
|
|
130
|
+
});
|
|
131
|
+
if (!result.success || !result.exchange) {
|
|
132
|
+
error(`Token approval failed: ${result.error || "Unknown error"}`);
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
console.log(result.exchange.accessToken);
|
|
136
|
+
}
|
|
35
137
|
export function registerAuthCommands(program) {
|
|
36
138
|
// Login command
|
|
37
139
|
program
|
|
38
140
|
.command("login")
|
|
39
141
|
.description("Authenticate with the Primitive admin API via browser OAuth")
|
|
40
142
|
.option("--token-stdin", "Read a refresh token from stdin instead of browser OAuth")
|
|
143
|
+
.option("--scope <list>", "Ask for a scoped session (read, write, admin, data:read, data:write); a list with admin asks for a 15-minute step-up")
|
|
144
|
+
.option("--app <ids>", "Pin the session to these app ids (comma-separated); a step-up defaults to the environment's app, and none asks for an unpinned one")
|
|
41
145
|
.action(async (options) => {
|
|
42
146
|
// Login is one of the four commands that may work with no project in
|
|
43
147
|
// scope (#3154, intent criterion 5): it is what CREATES the credentials
|
|
44
148
|
// a first `primitive init` then uses. Inside a project this changes
|
|
45
149
|
// nothing — the per-environment slot still answers.
|
|
46
150
|
allowGlobalCredentials();
|
|
151
|
+
if (environmentToken()) {
|
|
152
|
+
info("PRIMITIVE_TOKEN is set and takes precedence over this login while it is; unset it to use the login.");
|
|
153
|
+
}
|
|
47
154
|
// Resolve the target server from the active environment (project mode) or
|
|
48
155
|
// DEFAULT_SERVER_URL (legacy mode). Never a `-s/--server` flag — that was
|
|
49
156
|
// removed in #1343 because it always targeted prod regardless of --env.
|
|
@@ -57,6 +164,10 @@ export function registerAuthCommands(program) {
|
|
|
57
164
|
process.exit(1);
|
|
58
165
|
}
|
|
59
166
|
if (options.tokenStdin) {
|
|
167
|
+
if (options.scope !== undefined || options.app !== undefined) {
|
|
168
|
+
error("--token-stdin takes no --scope or --app: the token keeps the scope it was issued with.");
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
60
171
|
const refreshToken = (await readStdin()).trim();
|
|
61
172
|
if (!refreshToken) {
|
|
62
173
|
error("No token provided on stdin. Pipe a refresh token, e.g.:");
|
|
@@ -80,6 +191,9 @@ export function registerAuthCommands(program) {
|
|
|
80
191
|
};
|
|
81
192
|
const refreshed = await refreshAdminCredentials(seed);
|
|
82
193
|
const payload = parseJwt(refreshed.accessToken);
|
|
194
|
+
// As with a browser login, a step-up already stored stays usable
|
|
195
|
+
// (and revocable by logout) until it expires.
|
|
196
|
+
const existing = storedLogin(serverUrl);
|
|
83
197
|
const credentials = {
|
|
84
198
|
...refreshed,
|
|
85
199
|
adminId: payload.adminId || "",
|
|
@@ -87,6 +201,7 @@ export function registerAuthCommands(program) {
|
|
|
87
201
|
role: payload.role || "admin",
|
|
88
202
|
name: payload.name,
|
|
89
203
|
globalAdminAppId: payload.globalAdminAppId,
|
|
204
|
+
...(existing?.stepUp ? { stepUp: existing.stepUp } : {}),
|
|
90
205
|
};
|
|
91
206
|
saveCredentials(credentials);
|
|
92
207
|
success(`Logged in as ${credentials.email}`);
|
|
@@ -108,17 +223,50 @@ export function registerAuthCommands(program) {
|
|
|
108
223
|
}
|
|
109
224
|
return;
|
|
110
225
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
226
|
+
// #3889 — `--scope`/`--app` ask for a scoped session or an admin
|
|
227
|
+
// step-up, which the admin approves in the browser. The login this one
|
|
228
|
+
// builds on names the step-up's parent and the partition to exchange in.
|
|
229
|
+
const existing = storedLogin(serverUrl);
|
|
230
|
+
const built = buildScopeRequest({
|
|
231
|
+
command: "login",
|
|
232
|
+
scope: options.scope,
|
|
233
|
+
app: options.app,
|
|
234
|
+
envAppId: environmentAppId(),
|
|
235
|
+
parentSid: sessionIdOf(existing),
|
|
236
|
+
});
|
|
237
|
+
if ("message" in built) {
|
|
238
|
+
error(built.message);
|
|
239
|
+
process.exit(1);
|
|
117
240
|
}
|
|
118
|
-
|
|
241
|
+
const result = await browserLogin(serverUrl, {
|
|
242
|
+
...("query" in built && built.query ? { query: built.query } : {}),
|
|
243
|
+
...(existing?.globalAdminAppId ? { partition: existing.globalAdminAppId } : {}),
|
|
244
|
+
save: false,
|
|
245
|
+
});
|
|
246
|
+
if (!result.success || !result.credentials || !result.exchange) {
|
|
119
247
|
error(`Login failed: ${result.error || "Unknown error"}`);
|
|
120
248
|
process.exit(1);
|
|
121
249
|
}
|
|
250
|
+
if (result.exchange.kind === "step-up" && existing) {
|
|
251
|
+
// The step-up sits beside the login; the login itself is unchanged.
|
|
252
|
+
const stepUp = stepUpFrom(result.exchange);
|
|
253
|
+
saveCredentials({ ...existing, stepUp });
|
|
254
|
+
success(`Admin step-up active until ${stepUp.expiresAt} (${appsLabel(stepUp.apps)}). Commands that need admin use it.`);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
// A new login replaces the slot; a step-up already stored stays usable
|
|
258
|
+
// until it expires.
|
|
259
|
+
saveCredentials({
|
|
260
|
+
...result.credentials,
|
|
261
|
+
...(existing?.stepUp ? { stepUp: existing.stepUp } : {}),
|
|
262
|
+
});
|
|
263
|
+
success(`Logged in as ${result.credentials.email}`);
|
|
264
|
+
if (result.exchange.scope?.length) {
|
|
265
|
+
info(`Scope: ${result.exchange.scope.join(", ")}; apps: ${appsLabel(result.exchange.apps ?? [])}`);
|
|
266
|
+
}
|
|
267
|
+
if (result.credentials.role === "super-admin") {
|
|
268
|
+
info("You have super-admin privileges.");
|
|
269
|
+
}
|
|
122
270
|
});
|
|
123
271
|
// Bootstrap command - create first admin on empty database
|
|
124
272
|
program
|
|
@@ -180,6 +328,12 @@ export function registerAuthCommands(program) {
|
|
|
180
328
|
// would leave a global credentials file no command could clear
|
|
181
329
|
// (#3154, adjudicated finding F1).
|
|
182
330
|
allowGlobalCredentials();
|
|
331
|
+
// #3890 — a CI job's token is not a login to sign out of: its session
|
|
332
|
+
// is revoked by id, and nothing stored is touched.
|
|
333
|
+
if (environmentToken()) {
|
|
334
|
+
error("PRIMITIVE_TOKEN is set; revoke the CI session with `primitive auth sessions revoke <id>` instead.");
|
|
335
|
+
process.exit(1);
|
|
336
|
+
}
|
|
183
337
|
const credentials = loadCredentials();
|
|
184
338
|
if (!credentials) {
|
|
185
339
|
info("Not logged in.");
|
|
@@ -216,31 +370,87 @@ export function registerAuthCommands(program) {
|
|
|
216
370
|
.command("whoami")
|
|
217
371
|
.description("Show current authenticated user")
|
|
218
372
|
.option("--json", "Output as JSON")
|
|
219
|
-
.action((options) => {
|
|
373
|
+
.action(async (options) => {
|
|
220
374
|
const credentials = loadCredentials();
|
|
221
375
|
if (!credentials) {
|
|
222
376
|
error("Not logged in. Run 'primitive login' first.");
|
|
223
377
|
process.exit(2);
|
|
224
378
|
}
|
|
225
379
|
const app = getCurrentApp();
|
|
380
|
+
const fromEnvironment = credentials.source === "env";
|
|
381
|
+
// #3889 — the session's kind, scope and pins, read from the stored
|
|
382
|
+
// token's claims, and the step-up held beside it. No request.
|
|
383
|
+
// #3890 — an opaque CI token in PRIMITIVE_TOKEN has no claims to read:
|
|
384
|
+
// the server says who it is, in one request.
|
|
385
|
+
let who;
|
|
386
|
+
let session;
|
|
387
|
+
if (fromEnvironment && isCiToken(credentials.accessToken)) {
|
|
388
|
+
try {
|
|
389
|
+
const me = (await new ApiClient().getMe());
|
|
390
|
+
who = { email: me.email, adminId: me.adminId, role: me.role };
|
|
391
|
+
session = me.session ?? null;
|
|
392
|
+
}
|
|
393
|
+
catch (err) {
|
|
394
|
+
error(err?.message || "Could not read the token's session.");
|
|
395
|
+
process.exit(1);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
const claims = parseJwt(credentials.accessToken);
|
|
400
|
+
who = fromEnvironment
|
|
401
|
+
? {
|
|
402
|
+
email: typeof claims.email === "string" ? claims.email : "",
|
|
403
|
+
adminId: typeof claims.adminId === "string" ? claims.adminId : "",
|
|
404
|
+
role: typeof claims.role === "string" ? claims.role : "",
|
|
405
|
+
}
|
|
406
|
+
: { email: credentials.email, adminId: credentials.adminId, role: credentials.role };
|
|
407
|
+
session = {
|
|
408
|
+
...(typeof claims.sid === "string" ? { sessionId: claims.sid } : {}),
|
|
409
|
+
kind: typeof claims.kind === "string" ? claims.kind : null,
|
|
410
|
+
scope: Array.isArray(claims.scope) ? claims.scope : "full",
|
|
411
|
+
apps: Array.isArray(claims.apps) ? claims.apps : [],
|
|
412
|
+
name: null,
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
const kind = session?.kind ?? null;
|
|
416
|
+
const scope = session?.scope ?? "full";
|
|
417
|
+
const apps = session?.apps ?? [];
|
|
418
|
+
const stepUp = liveStepUp(credentials);
|
|
226
419
|
if (options.json) {
|
|
227
420
|
json({
|
|
228
|
-
email:
|
|
229
|
-
adminId:
|
|
230
|
-
role:
|
|
421
|
+
email: who.email,
|
|
422
|
+
adminId: who.adminId,
|
|
423
|
+
role: who.role,
|
|
231
424
|
serverUrl: credentials.serverUrl,
|
|
232
425
|
currentAppId: app?.appId,
|
|
233
426
|
currentAppName: app?.appName,
|
|
427
|
+
kind,
|
|
428
|
+
scope,
|
|
429
|
+
apps,
|
|
430
|
+
stepUp: stepUp
|
|
431
|
+
? { expiresAt: stepUp.expiresAt, scope: stepUp.scope, apps: stepUp.apps }
|
|
432
|
+
: null,
|
|
433
|
+
...(fromEnvironment ? { auth: "env", session } : {}),
|
|
234
434
|
});
|
|
235
435
|
return;
|
|
236
436
|
}
|
|
237
|
-
keyValue("Email",
|
|
238
|
-
keyValue("Admin ID",
|
|
239
|
-
keyValue("Role",
|
|
437
|
+
keyValue("Email", who.email);
|
|
438
|
+
keyValue("Admin ID", who.adminId);
|
|
439
|
+
keyValue("Role", who.role);
|
|
240
440
|
keyValue("Server", credentials.serverUrl);
|
|
241
441
|
if (app) {
|
|
242
442
|
keyValue("Current App", app.appName || app.appId);
|
|
243
443
|
}
|
|
444
|
+
if (fromEnvironment)
|
|
445
|
+
keyValue("Auth", "PRIMITIVE_TOKEN");
|
|
446
|
+
keyValue("Kind", kind);
|
|
447
|
+
if (session?.name)
|
|
448
|
+
keyValue("Name", session.name);
|
|
449
|
+
keyValue("Scope", scope === "full" ? "full" : scope.join(", "));
|
|
450
|
+
keyValue("Apps", appsLabel(apps));
|
|
451
|
+
if (stepUp) {
|
|
452
|
+
keyValue("Step-up", `active until ${stepUp.expiresAt}, ${appsLabel(stepUp.apps)}`);
|
|
453
|
+
}
|
|
244
454
|
});
|
|
245
455
|
// Token command - print access token for scripting
|
|
246
456
|
//
|
|
@@ -258,12 +468,35 @@ export function registerAuthCommands(program) {
|
|
|
258
468
|
.command("token")
|
|
259
469
|
.description("Print the current access token (for scripting)")
|
|
260
470
|
.option("--refresh", "Print the refresh token instead of the access token")
|
|
471
|
+
.option("--scope <list>", "Print a token with only these scopes; one wider than your login is approved in the browser and cannot be refreshed")
|
|
472
|
+
.option("--app <ids>", "Pin the printed token to these app ids (comma-separated), or none")
|
|
473
|
+
.option("--ttl <d>", "Lifetime of the printed token, such as 15m (at most 1h; 15m for a step-up)")
|
|
261
474
|
.action(async (options) => {
|
|
475
|
+
if (options.scope !== undefined ||
|
|
476
|
+
options.app !== undefined ||
|
|
477
|
+
options.ttl !== undefined) {
|
|
478
|
+
if (options.refresh) {
|
|
479
|
+
error("--refresh prints the stored refresh token; it takes no --scope, --app or --ttl.");
|
|
480
|
+
process.exit(1);
|
|
481
|
+
}
|
|
482
|
+
await printScopedToken(options);
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
262
485
|
const credentials = loadCredentials();
|
|
263
486
|
if (!credentials) {
|
|
264
487
|
error("Not logged in. Run 'primitive login' first.");
|
|
265
488
|
process.exit(2);
|
|
266
489
|
}
|
|
490
|
+
// #3890 — the token in PRIMITIVE_TOKEN is printed as it is; it has no
|
|
491
|
+
// refresh token and is never refreshed here.
|
|
492
|
+
if (credentials.source === "env") {
|
|
493
|
+
if (options.refresh) {
|
|
494
|
+
error("PRIMITIVE_TOKEN has no refresh token.");
|
|
495
|
+
process.exit(1);
|
|
496
|
+
}
|
|
497
|
+
console.log(credentials.accessToken);
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
267
500
|
if (options.refresh) {
|
|
268
501
|
// Dumb-print contract preserved — see Fork 4 in the design doc.
|
|
269
502
|
console.log(credentials.refreshToken);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { Option } from "commander";
|
|
2
1
|
import { ApiClient } from "../lib/api-client.js";
|
|
3
2
|
import { resolveAppId } from "../lib/config.js";
|
|
4
3
|
import { error, info, formatTable, formatDate, json, } from "../lib/output.js";
|
|
5
|
-
import { resolveUserSelector } from "../lib/user-selector.js";
|
|
6
4
|
import { normalizeCliListEnvelope } from "../lib/paginate.js";
|
|
7
5
|
import { parsePageLimit } from "../lib/list-options.js";
|
|
8
6
|
export function registerConnectionsCommands(program) {
|
|
@@ -29,14 +27,12 @@ Examples:
|
|
|
29
27
|
.option("--app <app-id>", "App ID (uses current app if not specified)")
|
|
30
28
|
.option("--document <document-id>", "List connections for this document")
|
|
31
29
|
.option("--user-id <user-id>", "List connections for this user")
|
|
32
|
-
// Deprecated alias of --user-id, kept accepted but out of --help (#2357).
|
|
33
|
-
.addOption(new Option("--user <user-id>", "Deprecated alias of --user-id").hideHelp())
|
|
34
30
|
.option("--database <database-id>", "List database subscriptions for this database")
|
|
35
31
|
.option("--limit <n>", "Maximum rows to return (default 25, max 100)")
|
|
36
32
|
.option("--cursor <cursor>", "Pagination cursor from a previous page")
|
|
37
33
|
.option("--json", "Output as JSON")
|
|
38
34
|
.action(async (options) => {
|
|
39
|
-
const userId =
|
|
35
|
+
const userId = options.userId;
|
|
40
36
|
const selectors = [
|
|
41
37
|
options.document ? "document" : null,
|
|
42
38
|
userId ? "user" : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/commands/connections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/commands/connections.ts"],"names":[],"mappings":"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"}
|
|
@@ -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);
|
|
@@ -1204,88 +1182,6 @@ database-type-config' and the 'database-type-configs' group for inspection:
|
|
|
1204
1182
|
process.exit(1);
|
|
1205
1183
|
}
|
|
1206
1184
|
});
|
|
1207
|
-
// ---- CEL context subcommand group ----
|
|
1208
|
-
// `cel-context` is the user-facing name for the dict that feeds CEL
|
|
1209
|
-
// access rules and filter placeholders. `metadata` is kept as a hidden
|
|
1210
|
-
// alias for backwards compatibility with existing scripts.
|
|
1211
|
-
const registerCelContextGroup = (name, hidden) => {
|
|
1212
|
-
const group = databases
|
|
1213
|
-
.command(name, { hidden })
|
|
1214
|
-
.description(hidden
|
|
1215
|
-
? "(deprecated: use resource metadata categories, `primitive metadata`) Manage database CEL context (alias of 'cel-context')"
|
|
1216
|
-
: "(deprecated: use resource metadata categories, `primitive metadata`) Manage database CEL context (the dict referenced by access rules and filters)");
|
|
1217
|
-
// CEL context is deprecated in favour of resource metadata categories
|
|
1218
|
-
// (#1420, #1815), which carry separate read and write rules.
|
|
1219
|
-
deprecateCommandGroup(group, CEL_CONTEXT_SUCCESSOR, { issue: 1815 });
|
|
1220
|
-
group
|
|
1221
|
-
.command("get")
|
|
1222
|
-
.description("Read database CEL context")
|
|
1223
|
-
.argument("<database-id>", "Database ID")
|
|
1224
|
-
.option("--app <app-id>", "App ID")
|
|
1225
|
-
.option("--json", "Output as JSON")
|
|
1226
|
-
.action(async (databaseId, options) => {
|
|
1227
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
1228
|
-
const client = new ApiClient();
|
|
1229
|
-
try {
|
|
1230
|
-
const result = await client.getDatabaseCelContext(resolvedAppId, databaseId);
|
|
1231
|
-
if (options.json) {
|
|
1232
|
-
json(result);
|
|
1233
|
-
return;
|
|
1234
|
-
}
|
|
1235
|
-
printResult("Database ID", result.databaseId);
|
|
1236
|
-
const ctx = result.celContext ?? result.metadata;
|
|
1237
|
-
if (ctx && Object.keys(ctx).length > 0) {
|
|
1238
|
-
printResult("CEL Context", JSON.stringify(ctx, null, 2));
|
|
1239
|
-
}
|
|
1240
|
-
else {
|
|
1241
|
-
info("No CEL context set.");
|
|
1242
|
-
}
|
|
1243
|
-
}
|
|
1244
|
-
catch (err) {
|
|
1245
|
-
error(err.message);
|
|
1246
|
-
process.exit(1);
|
|
1247
|
-
}
|
|
1248
|
-
});
|
|
1249
|
-
group
|
|
1250
|
-
.command("update")
|
|
1251
|
-
.description("Update database CEL context (merge with existing)")
|
|
1252
|
-
.argument("<database-id>", "Database ID")
|
|
1253
|
-
.requiredOption("--data <json>", "CEL context fields as JSON (merged with existing)")
|
|
1254
|
-
.option("--app <app-id>", "App ID")
|
|
1255
|
-
.option("--json", "Output as JSON")
|
|
1256
|
-
.action(async (databaseId, options) => {
|
|
1257
|
-
const resolvedAppId = resolveAppId(undefined, options);
|
|
1258
|
-
const client = new ApiClient();
|
|
1259
|
-
let data;
|
|
1260
|
-
try {
|
|
1261
|
-
data = JSON.parse(options.data);
|
|
1262
|
-
}
|
|
1263
|
-
catch {
|
|
1264
|
-
error("Invalid --data JSON.");
|
|
1265
|
-
process.exit(1);
|
|
1266
|
-
return;
|
|
1267
|
-
}
|
|
1268
|
-
try {
|
|
1269
|
-
const result = await client.updateDatabaseCelContext(resolvedAppId, databaseId, data);
|
|
1270
|
-
if (options.json) {
|
|
1271
|
-
json(result);
|
|
1272
|
-
return;
|
|
1273
|
-
}
|
|
1274
|
-
success("CEL context updated.");
|
|
1275
|
-
const ctx = result.celContext ?? result.metadata;
|
|
1276
|
-
if (ctx) {
|
|
1277
|
-
keyValue("CEL Context", JSON.stringify(ctx));
|
|
1278
|
-
}
|
|
1279
|
-
}
|
|
1280
|
-
catch (err) {
|
|
1281
|
-
error(err.message);
|
|
1282
|
-
process.exit(1);
|
|
1283
|
-
}
|
|
1284
|
-
});
|
|
1285
|
-
};
|
|
1286
|
-
registerCelContextGroup("cel-context", false);
|
|
1287
|
-
// Hidden legacy alias — `primitive databases metadata get/update` still works.
|
|
1288
|
-
registerCelContextGroup("metadata", true);
|
|
1289
1185
|
// ---- Operations subcommand group ----
|
|
1290
1186
|
const operations = databases
|
|
1291
1187
|
.command("operations")
|
|
@@ -2157,7 +2053,6 @@ async function exportSingleDatabase(client, appId, databaseId, outputDir, jsonOu
|
|
|
2157
2053
|
databaseId: dbMeta.databaseId || databaseId,
|
|
2158
2054
|
title: dbMeta.title,
|
|
2159
2055
|
databaseType: dbMeta.databaseType || null,
|
|
2160
|
-
metadata: dbMeta.metadata || null,
|
|
2161
2056
|
};
|
|
2162
2057
|
writeFileSync(path.join(dbDir, "metadata.json"), JSON.stringify(metadata, null, 2));
|
|
2163
2058
|
// 3. Export records: list models, then query each.
|
|
@@ -2269,8 +2164,11 @@ async function importSingleDatabase(client, appId, dbDir, options) {
|
|
|
2269
2164
|
if (metadata.databaseType) {
|
|
2270
2165
|
createData.databaseType = metadata.databaseType;
|
|
2271
2166
|
}
|
|
2272
|
-
|
|
2273
|
-
|
|
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.");
|
|
2274
2172
|
}
|
|
2275
2173
|
const created = await client.createDatabase(appId, createData);
|
|
2276
2174
|
targetDatabaseId = created.databaseId || created.id || databaseId;
|