@axtrabase/cli 0.3.1 → 0.5.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 CHANGED
@@ -112,23 +112,26 @@ axtrabase tables list
112
112
 
113
113
  ## Commands
114
114
 
115
- | Command | What it does |
116
- | ---------------------------------------------------- | -------------------------------------------------------------------------------------------- |
117
- | `login` / `logout` | Authenticate/de-authenticate the CLI. |
118
- | `whoami` | Signed-in user, organisation, active API. |
119
- | `organisations list` / `orgs use <org>` | Discover and select an organisation. |
120
- | `projects list` / `show <project>` / `use <project>` | Discover, inspect, and select a project. |
121
- | `connection status` / `verify` | The active project's Dataverse connection status; `verify` re-runs the live readiness check. |
122
- | `tables list` / `describe <table>` | The Dataverse table catalog, and one table's full column/lookup metadata. |
123
- | `context [--json\|--agent]` | The single most useful command — see below. |
124
- | `schema export --format json\|typescript` | Export table metadata, or generate TypeScript interfaces from it. |
125
- | `permissions list` | Table permission grants (read-only in v1). |
126
- | `keys list` / `create` / `revoke` | API key metadata (never the raw key after creation), creation, revocation. |
127
- | `requests list` / `get <request-id>` | Data-plane request telemetry — the debugging loop. |
128
- | `events list` / `get <event-id>` / `tail` | The public Change Feed — list, inspect, and live-tail record changes. |
129
- | `config list` / `get` / `set` / `unset` | Local, non-secret CLI settings. |
130
- | `docs` / `openapi` | Open developer docs / print the OpenAPI spec. |
131
- | `status` | Fast "am I ready to work" summary — auth, org, project, connection, table/key counts. |
115
+ | Command | What it does |
116
+ | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
117
+ | `login` / `logout` | Authenticate/de-authenticate the CLI. |
118
+ | `whoami` | Signed-in user, organisation, active API. |
119
+ | `organisations list` / `orgs use <org>` | Discover and select an organisation. |
120
+ | `projects list` / `show <project>` / `use <project>` | Discover, inspect, and select a project. |
121
+ | `connection status` / `verify` | The active project's Dataverse connection status; `verify` re-runs the live readiness check. |
122
+ | `tables list` / `describe <table>` | The Dataverse table catalog, and one table's full column/lookup metadata. |
123
+ | `context [--json\|--agent]` | The single most useful command — see below. |
124
+ | `schema export --format json\|typescript` | Export table metadata, or generate TypeScript interfaces from it. |
125
+ | `permissions list` | Table permission grants (read-only in v1). |
126
+ | `keys list` / `create` / `revoke` | API key metadata (never the raw key after creation), creation, revocation. |
127
+ | `requests list` / `get <request-id>` | Data-plane request telemetry — the debugging loop. |
128
+ | `events list` / `get <event-id>` / `tail` | The public Change Feed — list, inspect, and live-tail record changes. |
129
+ | `events capture list` / `on <table>` / `off <table>` | Turn Dataverse change capture on or off per table (`--accept-change-tracking` when needed). |
130
+ | `webhooks list` / `create` / `show` / `pause` / `resume` / `delete` / `deliveries` / `replay` | Webhook subscriptions: everything the dashboard's Webhooks page does. |
131
+ | `billing` / `billing upgrade <plan>` / `billing manage` | Plan and payment state; Stripe Checkout and portal links (`--open` opens them). |
132
+ | `config list` / `get` / `set` / `unset` | Local, non-secret CLI settings. |
133
+ | `docs` / `openapi` | Open developer docs / print the OpenAPI spec. |
134
+ | `status` | Fast "am I ready to work" summary — auth, org, project, connection, table/key counts. |
132
135
 
133
136
  Every command supports `-h`/`--help`.
134
137
 
@@ -297,4 +297,66 @@ export interface ProjectContextResponse {
297
297
  tablesBasePath: string;
298
298
  };
299
299
  }
300
+ export type WebhookPayloadLevel = "metadata_only" | "changed_fields" | "full_snapshot";
301
+ export interface WebhookSubscriptionSummary {
302
+ id: string;
303
+ projectId: string;
304
+ apiKeyId: string;
305
+ name: string | null;
306
+ tableFilters: string[] | null;
307
+ eventTypeFilters: string[] | null;
308
+ payloadLevel: WebhookPayloadLevel;
309
+ endpointUrl: string;
310
+ signingVersion: string;
311
+ status: "active" | "paused" | "disabled";
312
+ createdAt: string;
313
+ updatedAt: string;
314
+ }
315
+ export interface CreatedWebhookSubscription extends WebhookSubscriptionSummary {
316
+ signingSecret: string;
317
+ }
318
+ export interface WebhookDeliveryAttempt {
319
+ id: string;
320
+ eventId: string;
321
+ subscriptionId: string;
322
+ attemptNumber: number;
323
+ status: string;
324
+ responseStatusCode: number | null;
325
+ latencyMs: number | null;
326
+ failureCategory: string | null;
327
+ nextAttemptAt: string | null;
328
+ deliveredAt: string | null;
329
+ createdAt: string;
330
+ }
331
+ export type EventCaptureStatus = "NOT_CONFIGURED" | "AUTHORIZATION_REQUIRED" | "CONFIGURING" | "ACTIVE" | "CONFIGURATION_FAILED" | "REVOKED" | "NEEDS_RESYNC";
332
+ export interface EventCaptureTable {
333
+ table: string;
334
+ status: EventCaptureStatus;
335
+ changeTrackingOrigin: "preexisting" | "enabled_by_axtrabase" | null;
336
+ lastReconciledAt?: string | null;
337
+ lastError?: string | null;
338
+ }
339
+ export interface BillingStatusResponse {
340
+ enabled: boolean;
341
+ plan: {
342
+ id: string;
343
+ name: string;
344
+ source: "default" | "operator" | "stripe";
345
+ endsAt: string | null;
346
+ stripeStatus: string | null;
347
+ paymentFailedAt: string | null;
348
+ };
349
+ plans: Array<{
350
+ id: string;
351
+ name: string;
352
+ monthlyPriceCents: number | null;
353
+ currency: string;
354
+ limits: {
355
+ monthlyRequests: number;
356
+ maxProjects: number;
357
+ requestsPerSecond: number;
358
+ };
359
+ }>;
360
+ canManage: boolean;
361
+ }
300
362
  //# sourceMappingURL=api-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../src/api-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../src/api-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Command } from "commander";
2
+ import type { BillingStatusResponse } from "../api-types.js";
3
+ export declare function formatPrice(cents: number | null, currency: string): string;
4
+ /** The plan line, saying what's pending: a failed payment or a scheduled end. */
5
+ export declare function planSummary(plan: BillingStatusResponse["plan"]): string;
6
+ /**
7
+ * `axtrabase billing`: the organisation's plan and what can be bought, plus
8
+ * links to Stripe Checkout and the customer portal. Paying happens on
9
+ * Stripe's pages in a browser; the CLI only fetches the link.
10
+ */
11
+ export declare function registerBillingCommand(program: Command): void;
12
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,qBAAqB,EAAc,MAAM,iBAAiB,CAAC;AAezE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1E;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,MAAM,CAMvE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgC7D"}
@@ -0,0 +1,118 @@
1
+ import { requireControlPlaneClient } from "../http/authenticated-client.js";
2
+ import { CliError } from "../http/errors.js";
3
+ import { openBrowser } from "../open-browser.js";
4
+ import { printJson, printKeyValueBlock, printLine } from "../output/print.js";
5
+ import { renderTable } from "../output/table.js";
6
+ import { runWithErrorHandling } from "../report-error.js";
7
+ export function formatPrice(cents, currency) {
8
+ if (cents === null)
9
+ return "-";
10
+ return new Intl.NumberFormat("en-IE", {
11
+ style: "currency",
12
+ currency: currency.toUpperCase(),
13
+ minimumFractionDigits: cents % 100 === 0 ? 0 : 2
14
+ }).format(cents / 100);
15
+ }
16
+ /** The plan line, saying what's pending: a failed payment or a scheduled end. */
17
+ export function planSummary(plan) {
18
+ if (plan.source === "stripe" && plan.stripeStatus === "past_due") {
19
+ return `${plan.name} (payment failed; kept until ${plan.endsAt ?? "Stripe stops retrying"}; update your card with \`axtrabase billing manage\`)`;
20
+ }
21
+ if (plan.endsAt)
22
+ return `${plan.name} (until ${plan.endsAt})`;
23
+ return plan.name;
24
+ }
25
+ /**
26
+ * `axtrabase billing`: the organisation's plan and what can be bought, plus
27
+ * links to Stripe Checkout and the customer portal. Paying happens on
28
+ * Stripe's pages in a browser; the CLI only fetches the link.
29
+ */
30
+ export function registerBillingCommand(program) {
31
+ const billing = program
32
+ .command("billing")
33
+ .description("Your organisation's plan, upgrades and billing (opens Stripe in a browser)");
34
+ billing
35
+ .command("status", { isDefault: true })
36
+ .description("Current plan, payment state and plans you can buy")
37
+ .action(async function () {
38
+ const options = this.optsWithGlobals();
39
+ await runWithErrorHandling(() => runStatus(options), options);
40
+ });
41
+ billing
42
+ .command("upgrade <plan>")
43
+ .description("Get a Stripe Checkout link for a plan (opens it with --open)")
44
+ .option("--open", "open the link in your browser")
45
+ .action(async function (plan, _opts, command) {
46
+ const options = command.optsWithGlobals();
47
+ await runWithErrorHandling(() => runLink("checkout", options, plan), options);
48
+ });
49
+ billing
50
+ .command("manage")
51
+ .description("Get a Stripe customer portal link: card, invoices, change or cancel (opens with --open)")
52
+ .option("--open", "open the link in your browser")
53
+ .action(async function () {
54
+ const options = this.optsWithGlobals();
55
+ await runWithErrorHandling(() => runLink("portal", options), options);
56
+ });
57
+ }
58
+ async function organisation(options) {
59
+ const client = requireControlPlaneClient({ apiUrl: options.apiUrl });
60
+ const { data: me } = await client.get("/api/v1/me");
61
+ return {
62
+ client,
63
+ me,
64
+ base: `/api/v1/organisations/${encodeURIComponent(me.organisation.id)}/billing`
65
+ };
66
+ }
67
+ async function runStatus(options) {
68
+ const { client, me, base } = await organisation(options);
69
+ const { data } = await client.get(base);
70
+ if (options.json) {
71
+ printJson(data);
72
+ return;
73
+ }
74
+ printKeyValueBlock([
75
+ ["Organisation", me.organisation.name],
76
+ ["Plan", planSummary(data.plan)]
77
+ ]);
78
+ if (!data.enabled) {
79
+ printLine();
80
+ printLine("Billing isn't available on this AxtraBase environment.");
81
+ return;
82
+ }
83
+ if (data.plans.length > 0) {
84
+ printLine();
85
+ printLine(renderTable(["PLAN", "PRICE", "REQUESTS / MONTH", "PROJECTS", "REQ / SEC"], data.plans.map((plan) => [
86
+ `${plan.name} (${plan.id})`,
87
+ `${formatPrice(plan.monthlyPriceCents, plan.currency)} / month`,
88
+ plan.limits.monthlyRequests.toLocaleString("en-GB"),
89
+ String(plan.limits.maxProjects),
90
+ String(plan.limits.requestsPerSecond)
91
+ ])));
92
+ }
93
+ printLine();
94
+ printLine(data.plan.source === "stripe"
95
+ ? "Change or cancel: axtrabase billing manage --open"
96
+ : "Upgrade: axtrabase billing upgrade <plan> --open");
97
+ }
98
+ async function runLink(kind, options, plan) {
99
+ if (kind === "checkout" && (!plan || !/^[a-z0-9_-]{1,64}$/.test(plan))) {
100
+ throw new CliError("AXTRA_CLI_VALIDATION_ERROR", "Give a plan id from `axtrabase billing`, like pro.", {
101
+ status: 0
102
+ });
103
+ }
104
+ const { client, base } = await organisation(options);
105
+ const { data } = await client.post(`${base}/${kind}`, kind === "checkout" ? { planId: plan } : {});
106
+ if (options.json) {
107
+ printJson(data);
108
+ return;
109
+ }
110
+ const opened = options.open ? openBrowser(data.url) : false;
111
+ printLine(kind === "checkout"
112
+ ? "Finish the upgrade on Stripe's page (the link works for 24 hours):"
113
+ : "Manage billing on Stripe's page:");
114
+ printLine(data.url);
115
+ if (opened)
116
+ printLine("Opened in your browser.");
117
+ }
118
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Command } from "commander";
2
+ import type { EventCaptureStatus, EventCaptureTable } from "../api-types.js";
3
+ /** The same words the dashboard's Capture tab uses. */
4
+ export declare const CAPTURE_LABELS: Record<EventCaptureStatus, string>;
5
+ /** What to tell the person after `capture on`, matching the dashboard's next steps. */
6
+ export declare function captureOnMessage(result: EventCaptureTable, accepted: boolean): string[];
7
+ /** `axtrabase events capture …`: turns Dataverse change capture on or off per table. */
8
+ export declare function registerCaptureCommands(events: Command): void;
9
+ //# sourceMappingURL=capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAkB7E,uDAAuD;AACvD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAQ7D,CAAC;AAIF,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAkCvF;AAaD,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAmC7D"}
@@ -0,0 +1,136 @@
1
+ import { resolveActiveProjectId } from "../active-project.js";
2
+ import { requireControlPlaneClient } from "../http/authenticated-client.js";
3
+ import { CliError } from "../http/errors.js";
4
+ import { printJson, printLine } from "../output/print.js";
5
+ import { renderTable } from "../output/table.js";
6
+ import { runWithErrorHandling } from "../report-error.js";
7
+ /** The same words the dashboard's Capture tab uses. */
8
+ export const CAPTURE_LABELS = {
9
+ NOT_CONFIGURED: "Off",
10
+ REVOKED: "Off",
11
+ AUTHORIZATION_REQUIRED: "Waiting for approval",
12
+ CONFIGURING: "Setting up",
13
+ ACTIVE: "Capturing",
14
+ NEEDS_RESYNC: "Catching up",
15
+ CONFIGURATION_FAILED: "Failed"
16
+ };
17
+ const TABLE_NAME = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
18
+ /** What to tell the person after `capture on`, matching the dashboard's next steps. */
19
+ export function captureOnMessage(result, accepted) {
20
+ switch (result.status) {
21
+ case "ACTIVE":
22
+ case "NEEDS_RESYNC":
23
+ return [
24
+ `Capturing ${result.table}. Changes now appear in \`axtrabase events tail\` and reach your webhooks.`
25
+ ];
26
+ case "CONFIGURING":
27
+ return [
28
+ `Setting up ${result.table} in Dataverse. Check with \`axtrabase events capture list\`.`
29
+ ];
30
+ case "AUTHORIZATION_REQUIRED":
31
+ if (result.changeTrackingOrigin === "enabled_by_axtrabase" && !accepted) {
32
+ return [
33
+ `Change tracking is off for ${result.table} in Dataverse. AxtraBase needs it on to recover any`,
34
+ "change it might miss. It's a Dataverse setting on the table: turning capture off later",
35
+ "doesn't turn it back off, and your Dataverse administrator can change it at any time.",
36
+ "",
37
+ "To turn it on and start capturing, run:",
38
+ ` axtrabase events capture on ${result.table} --accept-change-tracking`,
39
+ "",
40
+ "Or turn on Track changes for the table yourself in Power Apps (table > Properties >",
41
+ "Advanced options), then run this command again without the flag."
42
+ ];
43
+ }
44
+ return [
45
+ `Needs a fresh Microsoft admin sign-in before AxtraBase can set up ${result.table} in Dataverse.`,
46
+ "In the dashboard, open Connection > Repair connection, then run this command again."
47
+ ];
48
+ default:
49
+ return [
50
+ `Couldn't turn on capture for ${result.table}${result.lastError ? `: ${result.lastError}` : "."}`
51
+ ];
52
+ }
53
+ }
54
+ function requireTable(table) {
55
+ if (!TABLE_NAME.test(table)) {
56
+ throw new CliError("AXTRA_CLI_VALIDATION_ERROR", "Use the table's logical name, for example `contact` (see `axtrabase tables list`).", { status: 0 });
57
+ }
58
+ return table;
59
+ }
60
+ /** `axtrabase events capture …`: turns Dataverse change capture on or off per table. */
61
+ export function registerCaptureCommands(events) {
62
+ const capture = events
63
+ .command("capture")
64
+ .description("Turn Dataverse change capture on or off per table (control plane)");
65
+ capture
66
+ .command("list")
67
+ .description("Capture status of every table that has been turned on")
68
+ .option("--project <project>", "override the active project (id or slug)")
69
+ .action(async function () {
70
+ const options = this.optsWithGlobals();
71
+ await runWithErrorHandling(() => runList(options), options);
72
+ });
73
+ capture
74
+ .command("on <table>")
75
+ .description("Start capturing a table's creates, updates and deletes")
76
+ .option("--accept-change-tracking", "allow AxtraBase to turn on Dataverse change tracking for this table if it is off")
77
+ .option("--project <project>", "override the active project (id or slug)")
78
+ .action(async function (table, _opts, command) {
79
+ const options = command.optsWithGlobals();
80
+ await runWithErrorHandling(() => runOn(table, options), options);
81
+ });
82
+ capture
83
+ .command("off <table>")
84
+ .description("Stop capturing a table. Events already captured stay until they expire.")
85
+ .option("--project <project>", "override the active project (id or slug)")
86
+ .action(async function (table, _opts, command) {
87
+ const options = command.optsWithGlobals();
88
+ await runWithErrorHandling(() => runOff(table, options), options);
89
+ });
90
+ }
91
+ async function context(options) {
92
+ const client = requireControlPlaneClient({ apiUrl: options.apiUrl });
93
+ const projectId = await resolveActiveProjectId(client, options.project);
94
+ return { client, base: `/api/v1/projects/${projectId}/events/capture` };
95
+ }
96
+ async function runList(options) {
97
+ const { client, base } = await context(options);
98
+ const { data } = await client.get(base);
99
+ if (options.json) {
100
+ printJson(data);
101
+ return;
102
+ }
103
+ if (data.length === 0) {
104
+ printLine("No table is capturing. Run `axtrabase events capture on <table>`.");
105
+ return;
106
+ }
107
+ printLine(renderTable(["TABLE", "STATUS", "CHECKED", "LAST ERROR"], data.map((row) => [
108
+ row.table,
109
+ CAPTURE_LABELS[row.status] ?? row.status,
110
+ row.lastReconciledAt ?? "—",
111
+ row.status === "CONFIGURATION_FAILED" ? (row.lastError ?? "—") : "—"
112
+ ])));
113
+ }
114
+ async function runOn(table, options) {
115
+ const { client, base } = await context(options);
116
+ const accepted = options.acceptChangeTracking === true;
117
+ const { data } = await client.put(`${base}/${requireTable(table)}`, {
118
+ changeTrackingAcknowledged: accepted
119
+ });
120
+ if (options.json) {
121
+ printJson(data);
122
+ return;
123
+ }
124
+ for (const line of captureOnMessage(data, accepted))
125
+ printLine(line);
126
+ }
127
+ async function runOff(table, options) {
128
+ const { client, base } = await context(options);
129
+ await client.delete(`${base}/${requireTable(table)}`);
130
+ if (options.json) {
131
+ printJson({ table, capturing: false });
132
+ return;
133
+ }
134
+ printLine(`Stopped capturing ${table}. Run \`axtrabase events capture on ${table}\` to start again.`);
135
+ }
136
+ //# sourceMappingURL=capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAa,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,iEAIiB,CAAC;AAE1C,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAmBD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkD5D;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC7F;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC7F;AA6BD,qLAAqL;AACrL,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,CAG1E;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAI5D"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAa,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,iEAIiB,CAAC;AAE1C,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAmBD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoD5D;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC7F;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC7F;AA6BD,qLAAqL;AACrL,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,CAG1E;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAI5D"}
@@ -1,3 +1,4 @@
1
+ import { registerCaptureCommands } from "./capture.js";
1
2
  import { requireEventsClient } from "../http/authenticated-client.js";
2
3
  import { CliError } from "../http/errors.js";
3
4
  import { printJson, printJsonLine, printKeyValueBlock, printLine, printProgress } from "../output/print.js";
@@ -46,6 +47,7 @@ export function registerEventsCommand(program) {
46
47
  const events = program
47
48
  .command("events")
48
49
  .description("Inspect and live-tail the project's Change Feed (public Events API)");
50
+ registerCaptureCommands(events);
49
51
  events
50
52
  .command("list")
51
53
  .description("List recent Change Feed events for the active API key's project")
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Command } from "commander";
2
+ interface WebhookOptions {
3
+ json?: boolean;
4
+ debug?: boolean;
5
+ apiUrl?: string;
6
+ project?: string;
7
+ }
8
+ interface WebhookCreateOptions extends WebhookOptions {
9
+ url?: string;
10
+ key?: string;
11
+ name?: string;
12
+ tables?: string;
13
+ types?: string;
14
+ payload?: string;
15
+ }
16
+ /** Splits "a, b,c" into ["a","b","c"]; undefined when the flag wasn't given. */
17
+ export declare function splitList(value: string | undefined): string[] | undefined;
18
+ /** Builds and checks the create request before anything is sent. */
19
+ export declare function buildCreateBody(options: WebhookCreateOptions): Record<string, unknown>;
20
+ /** Deleting is permanent, so the id must be typed a second time. */
21
+ export declare function assertDeleteConfirmed(id: string, confirm: string | undefined): void;
22
+ export declare function registerWebhooksCommand(program: Command): void;
23
+ export {};
24
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,oBAAqB,SAAQ,cAAc;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkBD,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAOzE;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyBtF;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMnF;AASD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkF9D"}
@@ -0,0 +1,232 @@
1
+ import { resolveActiveProjectId } from "../active-project.js";
2
+ import { requireControlPlaneClient } from "../http/authenticated-client.js";
3
+ import { CliError } from "../http/errors.js";
4
+ import { printJson, printKeyValueBlock, printLine } from "../output/print.js";
5
+ import { renderTable } from "../output/table.js";
6
+ import { runWithErrorHandling } from "../report-error.js";
7
+ const PAYLOAD_LEVELS = [
8
+ "metadata_only",
9
+ "changed_fields",
10
+ "full_snapshot"
11
+ ];
12
+ const EVENT_TYPES = ["record.created", "record.updated", "record.deleted"];
13
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
14
+ function validationError(message) {
15
+ return new CliError("AXTRA_CLI_VALIDATION_ERROR", message, { status: 0 });
16
+ }
17
+ /** Splits "a, b,c" into ["a","b","c"]; undefined when the flag wasn't given. */
18
+ export function splitList(value) {
19
+ if (value === undefined)
20
+ return undefined;
21
+ const items = value
22
+ .split(",")
23
+ .map((item) => item.trim())
24
+ .filter(Boolean);
25
+ return items.length > 0 ? items : undefined;
26
+ }
27
+ /** Builds and checks the create request before anything is sent. */
28
+ export function buildCreateBody(options) {
29
+ if (!options.url)
30
+ throw validationError("--url is required: the https address to deliver to.");
31
+ if (!options.key || !UUID.test(options.key)) {
32
+ throw validationError("--key must be an API key id (see `axtrabase keys list`). The webhook only receives events for tables that key can read.");
33
+ }
34
+ const payloadLevel = (options.payload ?? "metadata_only");
35
+ if (!PAYLOAD_LEVELS.includes(payloadLevel)) {
36
+ throw validationError(`--payload must be one of: ${PAYLOAD_LEVELS.join(", ")}.`);
37
+ }
38
+ const eventTypeFilters = splitList(options.types);
39
+ for (const type of eventTypeFilters ?? []) {
40
+ if (!EVENT_TYPES.includes(type)) {
41
+ throw validationError(`--types accepts: ${EVENT_TYPES.join(", ")}.`);
42
+ }
43
+ }
44
+ return {
45
+ apiKeyId: options.key,
46
+ endpointUrl: options.url,
47
+ payloadLevel,
48
+ ...(options.name ? { name: options.name } : {}),
49
+ ...(splitList(options.tables) ? { tableFilters: splitList(options.tables) } : {}),
50
+ ...(eventTypeFilters ? { eventTypeFilters } : {})
51
+ };
52
+ }
53
+ /** Deleting is permanent, so the id must be typed a second time. */
54
+ export function assertDeleteConfirmed(id, confirm) {
55
+ if (confirm !== id) {
56
+ throw validationError(`Deleting a webhook is permanent and removes its delivery history. To go ahead, run again with --confirm ${id}. To stop deliveries for now, use \`axtrabase webhooks pause ${id}\`.`);
57
+ }
58
+ }
59
+ function requireId(id, what = "webhook") {
60
+ if (!UUID.test(id)) {
61
+ throw validationError(`That isn't a ${what} id. Run \`axtrabase webhooks list\` to see them.`);
62
+ }
63
+ return id;
64
+ }
65
+ export function registerWebhooksCommand(program) {
66
+ const webhooks = program
67
+ .command("webhooks")
68
+ .description("Manage the active project's webhook subscriptions");
69
+ const withProject = (command) => command.option("--project <project>", "override the active project (id or slug)");
70
+ withProject(webhooks.command("list").description("List webhook subscriptions")).action(async function () {
71
+ const options = this.optsWithGlobals();
72
+ await runWithErrorHandling(() => runList(options), options);
73
+ });
74
+ withProject(webhooks.command("show <id>").description("Show one webhook subscription")).action(async function (id, _opts, command) {
75
+ const options = command.optsWithGlobals();
76
+ await runWithErrorHandling(() => runShow(id, options), options);
77
+ });
78
+ withProject(webhooks
79
+ .command("create")
80
+ .description("Create a webhook subscription. Prints the signing secret once.")
81
+ .requiredOption("--url <url>", "the https endpoint to deliver to")
82
+ .requiredOption("--key <api-key-id>", "the API key whose table access the webhook uses")
83
+ .option("--name <name>", "a label")
84
+ .option("--tables <tables>", "only these tables, comma-separated (default: all the key can read)")
85
+ .option("--types <types>", `only these event types, comma-separated (${EVENT_TYPES.join(", ")})`)
86
+ .option("--payload <level>", `${PAYLOAD_LEVELS.join(" | ")}`, "metadata_only")).action(async function () {
87
+ const options = this.optsWithGlobals();
88
+ await runWithErrorHandling(() => runCreate(options), options);
89
+ });
90
+ for (const [name, status, description] of [
91
+ ["pause", "paused", "Stop deliveries until resumed (nothing is lost from the Change Feed)"],
92
+ ["resume", "active", "Start deliveries again"]
93
+ ]) {
94
+ withProject(webhooks.command(`${name} <id>`).description(description)).action(async function (id, _opts, command) {
95
+ const options = command.optsWithGlobals();
96
+ await runWithErrorHandling(() => runSetStatus(id, status, options), options);
97
+ });
98
+ }
99
+ withProject(webhooks
100
+ .command("delete <id>")
101
+ .description("Delete a webhook and its delivery history. Permanent.")
102
+ .option("--confirm <id>", "type the webhook id again to confirm")).action(async function (id, _opts, command) {
103
+ const options = command.optsWithGlobals();
104
+ await runWithErrorHandling(() => runDelete(id, options), options);
105
+ });
106
+ withProject(webhooks.command("deliveries <id>").description("Recent delivery attempts, newest first")).action(async function (id, _opts, command) {
107
+ const options = command.optsWithGlobals();
108
+ await runWithErrorHandling(() => runDeliveries(id, options), options);
109
+ });
110
+ withProject(webhooks
111
+ .command("replay <id> <delivery-id>")
112
+ .description("Send one delivery again (succeeded, failed or dead-lettered attempts only)")).action(async function (id, deliveryId, _opts, command) {
113
+ const options = command.optsWithGlobals();
114
+ await runWithErrorHandling(() => runReplay(id, deliveryId, options), options);
115
+ });
116
+ }
117
+ async function context(options) {
118
+ const client = requireControlPlaneClient({ apiUrl: options.apiUrl });
119
+ const projectId = await resolveActiveProjectId(client, options.project);
120
+ return { client, base: `/api/v1/projects/${projectId}/webhooks` };
121
+ }
122
+ function filters(subscription) {
123
+ const tables = subscription.tableFilters?.join(", ") ?? "all tables";
124
+ const types = subscription.eventTypeFilters?.join(", ") ?? "all types";
125
+ return `${tables}; ${types}`;
126
+ }
127
+ function printSubscription(subscription) {
128
+ printKeyValueBlock([
129
+ ["Name", subscription.name ?? "—"],
130
+ ["Status", subscription.status],
131
+ ["Endpoint", subscription.endpointUrl],
132
+ ["Payload", subscription.payloadLevel],
133
+ ["Filters", filters(subscription)],
134
+ ["API key", subscription.apiKeyId],
135
+ ["Created", subscription.createdAt],
136
+ ["ID", subscription.id]
137
+ ]);
138
+ }
139
+ async function runList(options) {
140
+ const { client, base } = await context(options);
141
+ const { data } = await client.get(base);
142
+ if (options.json) {
143
+ printJson(data);
144
+ return;
145
+ }
146
+ if (data.length === 0) {
147
+ printLine("No webhooks yet. Run `axtrabase webhooks create --url <url> --key <api-key-id>`.");
148
+ return;
149
+ }
150
+ printLine(renderTable(["NAME", "STATUS", "ENDPOINT", "PAYLOAD", "ID"], data.map((s) => [s.name ?? "—", s.status, s.endpointUrl, s.payloadLevel, s.id])));
151
+ }
152
+ async function runShow(id, options) {
153
+ const { client, base } = await context(options);
154
+ const { data } = await client.get(`${base}/${requireId(id)}`);
155
+ if (options.json) {
156
+ printJson(data);
157
+ return;
158
+ }
159
+ printSubscription(data);
160
+ }
161
+ async function runCreate(options) {
162
+ const body = buildCreateBody(options);
163
+ const { client, base } = await context(options);
164
+ const { data } = await client.post(base, body);
165
+ if (options.json) {
166
+ printJson(data);
167
+ return;
168
+ }
169
+ printLine("Webhook created. The signing secret is shown only once: store it now.");
170
+ printLine();
171
+ printLine(data.signingSecret);
172
+ printLine();
173
+ printSubscription(data);
174
+ printLine();
175
+ printLine("Verify each delivery with the SDK's verifyWebhook() before trusting it:");
176
+ printLine(" https://axtrabase.com/docs/webhooks#signing");
177
+ }
178
+ async function runSetStatus(id, status, options) {
179
+ const { client, base } = await context(options);
180
+ const { data } = await client.patch(`${base}/${requireId(id)}`, {
181
+ status
182
+ });
183
+ if (options.json) {
184
+ printJson(data);
185
+ return;
186
+ }
187
+ printLine(status === "paused"
188
+ ? `Paused ${data.name ?? data.id}. Nothing is delivered until you run \`axtrabase webhooks resume ${data.id}\`.`
189
+ : `Resumed ${data.name ?? data.id}. New events are delivered again; events from while it was paused are not sent, but are still in the Change Feed.`);
190
+ }
191
+ async function runDelete(id, options) {
192
+ requireId(id);
193
+ assertDeleteConfirmed(id, options.confirm);
194
+ const { client, base } = await context(options);
195
+ await client.delete(`${base}/${id}`);
196
+ if (options.json) {
197
+ printJson({ deleted: true, id });
198
+ return;
199
+ }
200
+ printLine(`Deleted webhook ${id}.`);
201
+ }
202
+ async function runDeliveries(id, options) {
203
+ const { client, base } = await context(options);
204
+ const { data } = await client.get(`${base}/${requireId(id)}/deliveries`);
205
+ if (options.json) {
206
+ printJson(data);
207
+ return;
208
+ }
209
+ if (data.length === 0) {
210
+ printLine("No deliveries yet.");
211
+ return;
212
+ }
213
+ printLine(renderTable(["WHEN", "EVENT", "ATTEMPT", "STATUS", "HTTP", "MS", "DELIVERY ID"], data.map((d) => [
214
+ d.createdAt,
215
+ d.eventId,
216
+ String(d.attemptNumber),
217
+ d.failureCategory ? `${d.status} (${d.failureCategory})` : d.status,
218
+ d.responseStatusCode === null ? "—" : String(d.responseStatusCode),
219
+ d.latencyMs === null ? "—" : String(d.latencyMs),
220
+ d.id
221
+ ])));
222
+ }
223
+ async function runReplay(id, deliveryId, options) {
224
+ const { client, base } = await context(options);
225
+ const { data } = await client.post(`${base}/${requireId(id)}/deliveries/${requireId(deliveryId, "delivery")}/replay`);
226
+ if (options.json) {
227
+ printJson(data);
228
+ return;
229
+ }
230
+ printLine(`Queued attempt ${data.attemptNumber} for ${data.eventId}. Your endpoint may see this event more than once.`);
231
+ }
232
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type HttpMethod = "GET" | "POST" | "PUT" | "DELETE";
1
+ export type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
2
2
  export interface RequestEnvelope<T> {
3
3
  data: T;
4
4
  meta: {
@@ -38,6 +38,7 @@ export declare class ControlPlaneClient {
38
38
  get<T>(path: string, query?: Record<string, string | undefined>): Promise<RequestEnvelope<T>>;
39
39
  post<T>(path: string, body?: unknown): Promise<RequestEnvelope<T>>;
40
40
  put<T>(path: string, body?: unknown): Promise<RequestEnvelope<T>>;
41
+ patch<T>(path: string, body?: unknown): Promise<RequestEnvelope<T>>;
41
42
  delete<T>(path: string): Promise<RequestEnvelope<T>>;
42
43
  }
43
44
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACzD;AAMD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,EAAE,yBAAyB;IAOxC,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3E,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAiE9B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAI7F,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIlE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIjE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAGrD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACzD;AAMD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,EAAE,yBAAyB;IAOxC,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3E,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAiE9B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAI7F,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIlE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIjE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAInE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAGrD"}
@@ -82,6 +82,9 @@ export class ControlPlaneClient {
82
82
  put(path, body) {
83
83
  return this.request("PUT", path, { body });
84
84
  }
85
+ patch(path, body) {
86
+ return this.request("PATCH", path, { body });
87
+ }
85
88
  delete(path) {
86
89
  return this.request("DELETE", path);
87
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command, CommanderError } from "commander";
3
+ import { registerBillingCommand } from "./commands/billing.js";
3
4
  import { registerConfigCommand } from "./commands/config.js";
4
5
  import { registerConnectionCommand } from "./commands/connection.js";
5
6
  import { registerContextCommand } from "./commands/context.js";
@@ -19,6 +20,7 @@ import { registerSchemaCommand } from "./commands/schema.js";
19
20
  import { registerStatusCommand } from "./commands/status.js";
20
21
  import { registerTablesCommand } from "./commands/tables.js";
21
22
  import { registerUsageCommand } from "./commands/usage.js";
23
+ import { registerWebhooksCommand } from "./commands/webhooks.js";
22
24
  import { registerWhoamiCommand } from "./commands/whoami.js";
23
25
  import { EXIT_CODES } from "./exit-codes.js";
24
26
  import { CLI_VERSION } from "./version.js";
@@ -49,6 +51,8 @@ registerKeysCommand(program);
49
51
  registerRequestsCommand(program);
50
52
  registerUsageCommand(program);
51
53
  registerEventsCommand(program);
54
+ registerWebhooksCommand(program);
55
+ registerBillingCommand(program);
52
56
  registerConfigCommand(program);
53
57
  registerDocsCommand(program);
54
58
  registerOpenApiCommand(program);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CACV,6FAA6F;IAC3F,kGAAkG,CACrG;KACA,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,uBAAuB,CAAC;KAC1D,MAAM,CAAC,QAAQ,EAAE,4DAA4D,CAAC;KAC9E,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,CAAC;KAC5E,MAAM,CAAC,SAAS,EAAE,uDAAuD,CAAC;KAC1E,YAAY,EAAE,CAAC;AAElB,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACtC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,oEAAoE;QACpE,mEAAmE;QACnE,mCAAmC;QACnC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,KAAK,CAAC;AACd,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /** Bump alongside package.json's version — read at runtime for --version and the X-AxtraBase-Client User-Agent, same convention as @axtrabase/sdk's SDK_VERSION. */
2
- export declare const CLI_VERSION = "0.3.1";
2
+ export declare const CLI_VERSION = "0.5.0";
3
3
  export declare const CLI_CLIENT_NAME = "axtrabase-cli";
4
4
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /** Bump alongside package.json's version — read at runtime for --version and the X-AxtraBase-Client User-Agent, same convention as @axtrabase/sdk's SDK_VERSION. */
2
- export const CLI_VERSION = "0.3.1";
2
+ export const CLI_VERSION = "0.5.0";
3
3
  export const CLI_CLIENT_NAME = "axtrabase-cli";
4
4
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axtrabase/cli",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "description": "The AxtraBase CLI — inspect an AxtraBase project's schema, permissions, and environment, and build against it without touching Dataverse directly.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -34,7 +34,7 @@
34
34
  ],
35
35
  "dependencies": {
36
36
  "commander": "^12.1.0",
37
- "@axtrabase/sdk": "^0.1.2"
37
+ "@axtrabase/sdk": "^0.3.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "typescript": "^5.5.3",