@voltro/cli 0.30.1 → 0.31.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/CHANGELOG.md +163 -0
- package/dist/apiBuild-BOqL1dlg.js +2 -0
- package/dist/{apiBuild-DmkzRyv7.js → apiBuild-CLPt-pX6.js} +2 -2
- package/dist/appGraph-CvQCte0z.js +2 -0
- package/dist/appGraph-gQ_6GkQQ.js +110 -0
- package/dist/bin.js +3 -3
- package/dist/checkCommand-ClRvH_SN.js +2 -0
- package/dist/{checkCommand-C4konUy9.js → checkCommand-D7r6_pk7.js} +439 -530
- package/dist/{commands-BkJft9K2.js → commands-CNVVv03h.js} +1941 -1880
- package/dist/{dbCommand-qn__kLEt.js → dbCommand-BH8GAYuf.js} +76 -19
- package/dist/dbCommand-BwQ_Jl98.js +2 -0
- package/dist/{dev-DXhhZ7-f.js → dev-DOZVMVfi.js} +1 -1
- package/dist/{dev-C_NPcLDp.js → dev-DdQEn2Ia.js} +1986 -1967
- package/dist/{frameworkTableAssembly-Cpgn2e88.js → frameworkTableAssembly-BwIrO5nv.js} +122 -103
- package/dist/frameworkTableAssembly-D-EebUQX.js +2 -0
- package/dist/index.js +1 -1
- package/dist/{inspectMetrics-CkB2J0Zn.js → inspectMetrics-BeEAnjqw.js} +774 -527
- package/dist/{sdkgen-wsWLrq4l.js → sdkgen-v9WV8zRi.js} +1 -1
- package/dist/{serveCommand-HtI4X5kj.js → serveCommand-KsKXXWn4.js} +294 -293
- package/dist/serveEntry.js +2 -2
- package/dist/{start-egkbpugc.js → start-CI2QdKy9.js} +351 -346
- package/dist/startEntry.js +2 -2
- package/package.json +17 -17
- package/templates/AGENTS.md +43 -43
- package/templates/agent-docs/_index.md +43 -43
- package/templates/agent-docs/_manifest.json +84 -42
- package/templates/agent-docs/cli.md +4 -2
- package/templates/agent-docs/database/migrations.md +14 -1
- package/templates/agent-docs/internationalization.md +54 -3
- package/templates/agent-docs/plugins/ai-flows.md +148 -0
- package/templates/agent-docs/plugins/analytics-postgres.md +90 -0
- package/templates/agent-docs/plugins/atlassian.md +378 -0
- package/templates/agent-docs/plugins/audit.md +324 -0
- package/templates/agent-docs/plugins/auth-auth0.md +92 -0
- package/templates/agent-docs/plugins/auth-clerk.md +90 -0
- package/templates/agent-docs/plugins/auth-kinde.md +88 -0
- package/templates/agent-docs/plugins/auth-oidc.md +95 -0
- package/templates/agent-docs/plugins/auth-supabase.md +103 -0
- package/templates/agent-docs/plugins/auth-workos.md +105 -0
- package/templates/agent-docs/plugins/auth.md +227 -0
- package/templates/agent-docs/plugins/billing.md +324 -0
- package/templates/agent-docs/plugins/broadcast.md +144 -0
- package/templates/agent-docs/plugins/cdc-out.md +116 -0
- package/templates/agent-docs/plugins/clickhouse.md +91 -0
- package/templates/agent-docs/plugins/datadog.md +105 -0
- package/templates/agent-docs/plugins/deactivation.md +114 -0
- package/templates/agent-docs/plugins/duckdb.md +82 -0
- package/templates/agent-docs/plugins/flags.md +146 -0
- package/templates/agent-docs/plugins/governance.md +143 -0
- package/templates/agent-docs/plugins/licensing.md +74 -0
- package/templates/agent-docs/plugins/logship.md +56 -0
- package/templates/agent-docs/plugins/mail.md +334 -0
- package/templates/agent-docs/plugins/moderation.md +65 -0
- package/templates/agent-docs/plugins/multitenancy.md +99 -0
- package/templates/agent-docs/plugins/notifications.md +252 -0
- package/templates/agent-docs/plugins/openapi.md +94 -0
- package/templates/agent-docs/plugins/postgis.md +140 -0
- package/templates/agent-docs/plugins/posthog.md +91 -0
- package/templates/agent-docs/plugins/presence.md +115 -0
- package/templates/agent-docs/plugins/prometheus.md +124 -0
- package/templates/agent-docs/plugins/ratelimit.md +274 -0
- package/templates/agent-docs/plugins/rbac.md +270 -0
- package/templates/agent-docs/plugins/scim.md +63 -0
- package/templates/agent-docs/plugins/search.md +116 -0
- package/templates/agent-docs/plugins/sentry.md +192 -0
- package/templates/agent-docs/plugins/soft-delete.md +72 -0
- package/templates/agent-docs/plugins/sso-saml.md +132 -0
- package/templates/agent-docs/plugins/storage.md +709 -0
- package/templates/agent-docs/plugins/tinybird.md +92 -0
- package/templates/agent-docs/plugins/versioning.md +226 -0
- package/templates/agent-docs/plugins/webhooks.md +585 -0
- package/templates/agent-docs/security.md +12 -1
- package/templates/agent-docs/whats-new.md +81 -37
- package/templates/apps/api-ai/package.json +7 -7
- package/templates/apps/api-auth/package.json +8 -8
- package/templates/apps/api-backend/package.json +7 -7
- package/templates/apps/api-backend-deactivation/package.json +7 -7
- package/templates/apps/api-backend-mail/package.json +8 -8
- package/templates/apps/api-backend-mariadb/package.json +9 -9
- package/templates/apps/api-backend-sqlite/package.json +8 -8
- package/templates/apps/api-backend-storage/package.json +8 -8
- package/templates/apps/api-cms/package.json +10 -10
- package/templates/apps/api-collab/package.json +8 -8
- package/templates/apps/api-data-advanced/package.json +8 -8
- package/templates/apps/api-durable/package.json +8 -8
- package/templates/apps/api-feature-flags/package.json +9 -9
- package/templates/apps/api-governance/package.json +8 -8
- package/templates/apps/api-kv/package.json +8 -8
- package/templates/apps/api-moderation/package.json +8 -8
- package/templates/apps/api-observability/package.json +8 -8
- package/templates/apps/api-ratelimit/package.json +8 -8
- package/templates/apps/api-rbac/package.json +8 -8
- package/templates/apps/api-rest/package.json +7 -7
- package/templates/apps/api-saas/package.json +11 -11
- package/templates/apps/api-saas-starter/package.json +10 -10
- package/templates/apps/api-search/package.json +8 -8
- package/templates/apps/api-status/package.json +8 -8
- package/templates/apps/api-versioning/package.json +8 -8
- package/templates/apps/api-webhooks/package.json +9 -9
- package/templates/apps/changelog/package.json +6 -6
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +8 -8
- package/templates/apps/frontend-app/package.json +8 -8
- package/templates/apps/frontend-auth/package.json +8 -8
- package/templates/apps/frontend-blank/package.json +7 -7
- package/templates/apps/frontend-cms/package.json +9 -9
- package/templates/apps/frontend-collab/package.json +9 -9
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-dashboard/package.json +7 -7
- package/templates/apps/frontend-docs/package.json +7 -7
- package/templates/apps/frontend-i18n/package.json +6 -6
- package/templates/apps/frontend-landing/package.json +7 -7
- package/templates/apps/frontend-portal/package.json +8 -8
- package/templates/apps/frontend-saas/package.json +8 -8
- package/templates/apps/frontend-spa/package.json +7 -7
- package/templates/apps/frontend-ssr/package.json +7 -7
- package/templates/apps/frontend-ssr-api/package.json +8 -8
- package/templates/apps/frontend-static-blog/package.json +6 -6
- package/templates/apps/frontend-status/package.json +8 -8
- package/templates/apps/mobile-app/package.json +2 -2
- package/dist/apiBuild-Ca6Sq5jy.js +0 -2
- package/dist/checkCommand-DHD0aBeR.js +0 -2
- package/dist/dbCommand-wfGi3FgG.js +0 -2
- package/dist/frameworkTableAssembly-Bn_c4Mnl.js +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as e, n as t, r as n, s as r, t as i } from "./seedRunner-Bqxgp7HZ.js";
|
|
2
2
|
import { n as a } from "./appModuleLoader-C9r9mxZt.js";
|
|
3
|
-
import {
|
|
3
|
+
import { n as o } from "./frameworkTableAssembly-BwIrO5nv.js";
|
|
4
4
|
import { b as s } from "./fileConventions-Cof68_BL.js";
|
|
5
5
|
import { a as c, n as l, t as u } from "./cliArgs-qdZSElM3.js";
|
|
6
6
|
import { basename as d, join as f, relative as p, resolve as m } from "node:path";
|
|
@@ -146,7 +146,52 @@ var k = class extends Error {
|
|
|
146
146
|
"credential",
|
|
147
147
|
"privatekey",
|
|
148
148
|
"private_key"
|
|
149
|
-
], Oe = [
|
|
149
|
+
], Oe = [
|
|
150
|
+
{
|
|
151
|
+
table: "_voltro_audit_log",
|
|
152
|
+
column: "subject"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
table: "_voltro_audit_log",
|
|
156
|
+
column: "actor"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
table: "_voltro_audit_log",
|
|
160
|
+
column: "scope"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
table: "_voltro_audit_log",
|
|
164
|
+
column: "metadata"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
table: "_voltro_audit_log",
|
|
168
|
+
column: "input"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
table: "_voltro_audit_log",
|
|
172
|
+
column: "outcome"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
table: "_voltro_audit_log",
|
|
176
|
+
column: "subjectId"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
table: "_voltro_row_history",
|
|
180
|
+
column: "data"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
table: "_voltro_row_history",
|
|
184
|
+
column: "actor"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
table: "_voltro_row_history",
|
|
188
|
+
column: "scope"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
table: "_voltro_row_history",
|
|
192
|
+
column: "subjectId"
|
|
193
|
+
}
|
|
194
|
+
], ke = (e, t) => {
|
|
150
195
|
switch (t) {
|
|
151
196
|
case "postgres": return `LOWER(CAST(${e} AS text))`;
|
|
152
197
|
case "mysql":
|
|
@@ -169,24 +214,39 @@ var k = class extends Error {
|
|
|
169
214
|
table: a.table,
|
|
170
215
|
column: a.column,
|
|
171
216
|
scanned: void 0,
|
|
172
|
-
hits: void 0
|
|
217
|
+
hits: void 0,
|
|
218
|
+
unavailable: "table"
|
|
173
219
|
});
|
|
174
220
|
continue;
|
|
175
221
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
222
|
+
try {
|
|
223
|
+
let s = await je(e, `SELECT COUNT(*) AS n FROM ${n}\n WHERE ${Ae(r(a.column), t)}`);
|
|
224
|
+
i.push({
|
|
225
|
+
table: a.table,
|
|
226
|
+
column: a.column,
|
|
227
|
+
scanned: o,
|
|
228
|
+
hits: s
|
|
229
|
+
});
|
|
230
|
+
} catch {
|
|
231
|
+
i.push({
|
|
232
|
+
table: a.table,
|
|
233
|
+
column: a.column,
|
|
234
|
+
scanned: o,
|
|
235
|
+
hits: void 0,
|
|
236
|
+
unavailable: "column"
|
|
237
|
+
});
|
|
238
|
+
}
|
|
183
239
|
}
|
|
184
240
|
return i;
|
|
185
241
|
}, Ne = (e, t) => {
|
|
186
|
-
let n = [`credential scan · dialect ${t}`, ""];
|
|
242
|
+
let n = [`credential scan · dialect ${t}`, ""], r = /* @__PURE__ */ new Set();
|
|
187
243
|
for (let t of e) {
|
|
244
|
+
if (t.unavailable === "column") {
|
|
245
|
+
n.push(` · ${t.table}.${t.column} — column is not present on this deployment (${t.scanned} row(s) exist but this column was not scanned)`);
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
188
248
|
if (t.scanned === void 0) {
|
|
189
|
-
n.push(` · ${t.table} — table not present (nothing scanned)`);
|
|
249
|
+
r.has(t.table) || (r.add(t.table), n.push(` · ${t.table} — table not present (nothing scanned)`));
|
|
190
250
|
continue;
|
|
191
251
|
}
|
|
192
252
|
if (t.scanned === 0) {
|
|
@@ -196,9 +256,9 @@ var k = class extends Error {
|
|
|
196
256
|
let e = (t.hits ?? 0) > 0 ? "✗" : "✓";
|
|
197
257
|
n.push(` ${e} ${t.table}.${t.column} — ${t.hits} of ${t.scanned} row(s) match a credential-shaped key`);
|
|
198
258
|
}
|
|
199
|
-
let
|
|
200
|
-
return n.push(""),
|
|
201
|
-
}, Pe = (e) => e.some((e) => (e.hits ?? 0) > 0) ? 1 : e.every((e) => e.scanned === void 0 || e.scanned === 0) ? 2 : 0, j = /\.migration\.ts$/, M = async (e, t) => {
|
|
259
|
+
let i = e.reduce((e, t) => e + (t.hits ?? 0), 0);
|
|
260
|
+
return n.push(""), i > 0 ? n.push(` ${i} row(s) carry something credential-shaped.`, " Purge them AND rotate the credentials — assume anything written to a log", " table has been read. Then stop putting the credential on the Subject:", " `connectionCredentials(...)` keeps it in the framework vault.") : e.every((e) => e.scanned === void 0 || e.scanned === 0 || e.unavailable !== void 0) ? n.push(" NOTHING WAS SCANNED. This run proves nothing about your data.") : n.push(" No credential-shaped keys found in the rows that exist."), n.push("", " Run this on EVERY environment. A dev database is not a sample of production."), n.join("\n");
|
|
261
|
+
}, Pe = (e) => e.some((e) => (e.hits ?? 0) > 0) ? 1 : e.every((e) => e.unavailable !== void 0 || e.scanned === void 0 || e.scanned === 0) ? 2 : 0, j = /\.migration\.ts$/, M = async (e, t) => {
|
|
202
262
|
let n = [];
|
|
203
263
|
for (let r of e) {
|
|
204
264
|
let e;
|
|
@@ -1216,10 +1276,7 @@ export default defineMigration({
|
|
|
1216
1276
|
column: a
|
|
1217
1277
|
});
|
|
1218
1278
|
}
|
|
1219
|
-
let r = [...Oe.
|
|
1220
|
-
table: e,
|
|
1221
|
-
column: "subject"
|
|
1222
|
-
})), ...n], i = await J(await q(), b.SqlClient.pipe(g.flatMap((e) => g.promise(() => Me(e, t, r, G)))));
|
|
1279
|
+
let r = [...Oe, ...n], i = await J(await q(), b.SqlClient.pipe(g.flatMap((e) => g.promise(() => Me(e, t, r, G)))));
|
|
1223
1280
|
return console.log(Ne(i, t)), Pe(i);
|
|
1224
1281
|
}
|
|
1225
1282
|
}, vt = async (e) => {
|