@axtrabase/cli 0.1.3 → 0.1.5

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
@@ -134,6 +134,8 @@ Every command supports `-h`/`--help`.
134
134
 
135
135
  ## `context` — the one command to start with
136
136
 
137
+ It runs against the **active project**, so select one first — `axtrabase projects list`, then `axtrabase projects use <project>` (or pass `--project <project>` to any command). Until then it stops with `AXTRA_CLI_NO_ACTIVE_PROJECT`.
138
+
137
139
  ```bash
138
140
  axtrabase context
139
141
  axtrabase context --json # the full payload, machine-readable
@@ -95,6 +95,15 @@ export interface TableColumn {
95
95
  source?: string | null;
96
96
  /** False for calculated/rollup and other derived columns; null when unknown. */
97
97
  isWritable?: boolean | null;
98
+ /** File/Image columns: Dataverse's per-column size ceiling. null = not reported, never "no limit". */
99
+ maxSizeInKb?: number | null;
100
+ /**
101
+ * Image columns: false means only a thumbnail is stored. An image column
102
+ * always stores a thumbnail and keeps the full-size original only when
103
+ * configured to, so "image" alone does not mean the original is available.
104
+ */
105
+ canStoreFullImage?: boolean | null;
106
+ isPrimaryImage?: boolean | null;
98
107
  }
99
108
  export interface TablePermissionRow {
100
109
  apiKeyId: string;
@@ -140,10 +149,40 @@ export interface TablePermissionRowFlat {
140
149
  table: string;
141
150
  isEnabled: boolean;
142
151
  apiKeyId: string;
152
+ apiKeyName?: string;
153
+ /** ISO timestamp when the owning key was revoked, or null if it is live. */
154
+ keyRevokedAt?: string | null;
155
+ /** False when the owning key is revoked — the grant row exists but confers nothing. */
156
+ isEffective?: boolean;
157
+ canRead: boolean;
158
+ canCreate: boolean;
159
+ canUpdate: boolean;
160
+ canDelete: boolean;
161
+ }
162
+ /** One table's outcome from PUT /api/v1/projects/:id/table-permissions/bulk. */
163
+ export interface TablePermissionResultRow {
164
+ table: string;
165
+ isEnabled: boolean;
143
166
  canRead: boolean;
144
167
  canCreate: boolean;
145
168
  canUpdate: boolean;
146
169
  canDelete: boolean;
170
+ /** "pending" means Dataverse refused the privilege change — the grant is recorded as desired but confers no access yet. */
171
+ status: "synced" | "pending";
172
+ dataverseRoleSync: {
173
+ roleId: string;
174
+ added: string[];
175
+ removed: string[];
176
+ } | null;
177
+ errorCode?: string;
178
+ errorMessage?: string;
179
+ }
180
+ export interface TablePermissionBulkResponse {
181
+ apiKeyId: string;
182
+ requested: number;
183
+ succeeded: number;
184
+ failed: number;
185
+ results: TablePermissionResultRow[];
147
186
  }
148
187
  export interface RequestLogRow {
149
188
  id: string;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyG5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8H5D"}
@@ -41,30 +41,46 @@ export function registerConfigCommand(program) {
41
41
  const config = program.command("config").description("Inspect or change local CLI configuration");
42
42
  config
43
43
  .command("list")
44
- .description("Show every configured value")
44
+ .description("Show every setting in effect, marking defaults")
45
45
  .action(async function () {
46
46
  const options = this.optsWithGlobals();
47
47
  await runWithErrorHandling(async () => {
48
48
  const values = new ConfigStore().read();
49
+ // "No config set." was true of the file and useless to the reader:
50
+ // the CLI is always on SOME environment talking to SOME origins, and
51
+ // a clean-room tester could not confirm which without making an
52
+ // authenticated call. Show what is in effect, marking defaults, so
53
+ // this answers "where am I pointed?" before any login.
54
+ const effective = {
55
+ environment: {
56
+ value: effectiveValueFor("environment"),
57
+ explicit: values.environment !== undefined
58
+ },
59
+ apiUrl: {
60
+ value: values.apiUrl ?? effectiveValueFor("apiUrl"),
61
+ explicit: values.apiUrl !== undefined
62
+ },
63
+ dashboardUrl: {
64
+ value: values.dashboardUrl ?? effectiveValueFor("dashboardUrl"),
65
+ explicit: values.dashboardUrl !== undefined
66
+ }
67
+ };
49
68
  if (options.json) {
50
- printJson(values);
51
- return;
52
- }
53
- const lines = [];
54
- if (values.apiUrl)
55
- lines.push(`api-url: ${values.apiUrl}`);
56
- if (values.dashboardUrl)
57
- lines.push(`dashboard-url: ${values.dashboardUrl}`);
58
- if (values.organisationId) {
59
- lines.push(`organisation: ${values.organisationSlug ?? values.organisationId} (${values.organisationId})`);
60
- }
61
- if (values.projectId) {
62
- lines.push(`project: ${values.projectSlug ?? values.projectId} (${values.projectId})`);
63
- }
64
- if (lines.length === 0) {
65
- printLine("No config set.");
69
+ printJson({ ...values, effective });
66
70
  return;
67
71
  }
72
+ const mark = (explicit) => (explicit ? "" : " (default)");
73
+ const lines = [
74
+ `environment: ${values.environment ?? effective.environment.value}${mark(effective.environment.explicit)}`,
75
+ `api-url: ${effective.apiUrl.value}${mark(effective.apiUrl.explicit)}`,
76
+ `dashboard-url: ${effective.dashboardUrl.value}${mark(effective.dashboardUrl.explicit)}`
77
+ ];
78
+ lines.push(values.organisationId
79
+ ? `organisation: ${values.organisationSlug ?? values.organisationId} (${values.organisationId})`
80
+ : "organisation: (none selected — axtrabase orgs use <org>)");
81
+ lines.push(values.projectId
82
+ ? `project: ${values.projectSlug ?? values.projectId} (${values.projectId})`
83
+ : "project: (none selected — axtrabase projects use <project>)");
68
84
  for (const line of lines)
69
85
  printLine(line);
70
86
  }, options);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -23,20 +23,20 @@ export declare const DATA_PLANE_AGENT_INFO: {
23
23
  readonly envVar: "AXTRABASE_API_KEY";
24
24
  readonly kind: "project API key — data plane only (records and events)";
25
25
  readonly notTheSameAs: "the CLI token (axcli_...), which is control plane only and can never read records";
26
- readonly howToObtain: "Ask the human operator. They run `axtrabase keys create --name <name>`, grant it read access to the tables you need in the dashboard, and hand you the raw key.";
26
+ readonly howToObtain: "Ask the human operator. They run `axtrabase keys create --name <name>`, then `axtrabase permissions grant <key-id> <table>` for the tables you need, and hand you the raw key.";
27
27
  readonly howToRevoke: "The human runs `axtrabase keys revoke <id>` when you are done with it.";
28
28
  readonly handling: "Never print, log, echo, write to a file, or commit this key.";
29
29
  };
30
30
  readonly reading: {
31
31
  readonly sdk: "npm install @axtrabase/sdk";
32
32
  readonly example: string;
33
- readonly rest: "GET {apiBaseUrl}/<entitySetName>?limit=3 with header: Authorization: Bearer $AXTRABASE_API_KEY";
34
- readonly note: "Use the table's entitySetName (the plural URL name), not its logical name.";
33
+ readonly rest: "GET {apiBaseUrl}/<logicalName>?limit=3 with header: Authorization: Bearer $AXTRABASE_API_KEY";
34
+ readonly note: "Use the table's logicalName (e.g. adp_expenseitem). That is what GET /api/v1/tables returns as each table's `name`, and what table permissions are granted against. Entity-set names also resolve, but logicalName is the identifier to build on.";
35
35
  };
36
36
  readonly ifDenied: {
37
37
  readonly code: "AXTRA_TABLE_PERMISSION_DENIED";
38
38
  readonly meaning: "The key is valid but has not been granted this action on this table. This is the platform working as designed — do not route around it.";
39
- readonly fix: "Ask the human to grant the key read access to that table in the dashboard, then retry.";
39
+ readonly fix: "Ask the human to run `axtrabase permissions grant <key-id> <table>` for that table, then retry.";
40
40
  };
41
41
  readonly sampling: "When exploring an unfamiliar schema, read the smallest sample that answers your question (limit 3-5). Never bulk-export a customer table to inspect it.";
42
42
  };
@@ -18,7 +18,7 @@ export const AGENT_RULES = [
18
18
  "The access field on each table (R/C/U/D shorthand) is what this credential can actually do — never assume broader access than shown, and re-run this command after permissions change.",
19
19
  "metadataCapabilities tells you what's actually known: 'unresolved' means AxtraBase does not have that information yet — never fabricate a relationship or a choice field's option values.",
20
20
  "Two separate credentials, never interchangeable. The CLI token (axcli_...) is CONTROL PLANE only: projects, schema, permissions, metadata. It can never read or write records. A project API key (AXTRABASE_API_KEY) is DATA PLANE only: records and events. Never attempt to read records with the CLI token, and never ask for Dataverse or Microsoft credentials — AxtraBase does not expose them and does not need them.",
21
- "If you have no API key, ask the human operator for one rather than creating it yourself. Creating a key is a deliberate human action (axtrabase keys create --name <name>), and a new key starts with NO table access until the human grants it in the dashboard. Say which tables you need to read and why; the human can then hand you a disposable key and revoke it afterwards with axtrabase keys revoke <id>.",
21
+ "If you have no API key, ask the human operator for one rather than creating it yourself. Creating a key is a deliberate human action (axtrabase keys create --name <name>), and a new key starts with NO table access until the human grants it (axtrabase permissions grant <key-id> <table>, or the dashboard). Say which tables you need to read and why; the human can then hand you a disposable key and revoke it afterwards with axtrabase keys revoke <id>.",
22
22
  "Once given a key, set AXTRABASE_API_KEY and read through the SDK or REST API only — see the dataPlane field in this payload for the exact shape. Treat the key as a secret: never print it, never write it to a file, never commit it.",
23
23
  "Use request IDs for debugging: axtrabase requests get <request-id> --json.",
24
24
  'Events (the public Change Feed) are also available: axtrabase events list/get/tail, GET /api/v1/events(/:eventId|/stream), or axtra.events.* in the SDK — see this payload\'s events field. changedFields may be null, meaning the exact changed-field set is unknown, never "nothing changed." The stream is at-least-once, so deduplicate on event.id. Retention is finite — do not assume a full historical log exists.'
@@ -40,7 +40,7 @@ export const DATA_PLANE_AGENT_INFO = {
40
40
  envVar: "AXTRABASE_API_KEY",
41
41
  kind: "project API key — data plane only (records and events)",
42
42
  notTheSameAs: "the CLI token (axcli_...), which is control plane only and can never read records",
43
- howToObtain: "Ask the human operator. They run `axtrabase keys create --name <name>`, grant it read access to the tables you need in the dashboard, and hand you the raw key.",
43
+ howToObtain: "Ask the human operator. They run `axtrabase keys create --name <name>`, then `axtrabase permissions grant <key-id> <table>` for the tables you need, and hand you the raw key.",
44
44
  howToRevoke: "The human runs `axtrabase keys revoke <id>` when you are done with it.",
45
45
  handling: "Never print, log, echo, write to a file, or commit this key."
46
46
  },
@@ -48,14 +48,14 @@ export const DATA_PLANE_AGENT_INFO = {
48
48
  sdk: "npm install @axtrabase/sdk",
49
49
  example: 'import { AxtraBase } from "@axtrabase/sdk";\n' +
50
50
  "const axtra = new AxtraBase({ apiKey: process.env.AXTRABASE_API_KEY });\n" +
51
- 'const { data } = await axtra.table("<entitySetName>").list({ limit: 3 });',
52
- rest: "GET {apiBaseUrl}/<entitySetName>?limit=3 with header: Authorization: Bearer $AXTRABASE_API_KEY",
53
- note: "Use the table's entitySetName (the plural URL name), not its logical name."
51
+ 'const { data } = await axtra.table("<logicalName>").list({ limit: 3 });',
52
+ rest: "GET {apiBaseUrl}/<logicalName>?limit=3 with header: Authorization: Bearer $AXTRABASE_API_KEY",
53
+ note: "Use the table's logicalName (e.g. adp_expenseitem). That is what GET /api/v1/tables returns as each table's `name`, and what table permissions are granted against. Entity-set names also resolve, but logicalName is the identifier to build on."
54
54
  },
55
55
  ifDenied: {
56
56
  code: "AXTRA_TABLE_PERMISSION_DENIED",
57
57
  meaning: "The key is valid but has not been granted this action on this table. This is the platform working as designed — do not route around it.",
58
- fix: "Ask the human to grant the key read access to that table in the dashboard, then retry."
58
+ fix: "Ask the human to run `axtrabase permissions grant <key-id> <table>` for that table, then retry."
59
59
  },
60
60
  sampling: "When exploring an unfamiliar schema, read the smallest sample that answers your question (limit 3-5). Never bulk-export a customer table to inspect it."
61
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
@@ -87,8 +87,10 @@ async function runCreate(options) {
87
87
  printLine("This key is DATA PLANE only — records and events. It cannot read or");
88
88
  printLine("change projects, schema, or permissions, and it is not your CLI token.");
89
89
  printLine();
90
- printLine("It currently has NO table access. Grant it read access to the tables you");
91
- printLine("want readable, in the dashboard, before handing it to anyone.");
90
+ printLine("It currently has NO table access. Grant it the tables you want readable,");
91
+ printLine("before handing it to anyone:");
92
+ printLine(` axtrabase permissions grant ${data.id} <table> [<table>...]`);
93
+ printLine("That grants read only; --create/--update/--delete are explicit.");
92
94
  printLine();
93
95
  printLine("To hand it to a coding agent or CI job:");
94
96
  printLine(` export AXTRABASE_API_KEY=${data.prefix}...`);
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,47 @@
1
1
  import type { Command } from "commander";
2
+ interface PermissionsOptions {
3
+ json?: boolean;
4
+ debug?: boolean;
5
+ apiUrl?: string;
6
+ project?: string;
7
+ apiKey?: string;
8
+ }
9
+ interface GrantOptions extends PermissionsOptions {
10
+ read?: boolean;
11
+ create?: boolean;
12
+ update?: boolean;
13
+ delete?: boolean;
14
+ }
2
15
  /**
3
- * Read-only for v1 — bulk/single grant mutation stays dashboard-only (see
4
- * ADR-013 and docs/cli.md's "deferred" list). Listing is safe to expose
5
- * unconditionally: it only ever reveals what a caller's own project already
6
- * grants, never another organisation's data.
16
+ * Inspect *and* change table permission grants (ADR-018). Writes were
17
+ * dashboard-only through v1; the second clean-room test showed what that
18
+ * cost — three dashboard round-trips in the middle of an agent handoff, and
19
+ * a key granted full CRUD when read was what was wanted. A control-plane
20
+ * token can already create and revoke the keys these grants apply to, so
21
+ * withholding the grant step bought no safety.
22
+ *
23
+ * Least privilege is the default here, not a flag: `grant` with no
24
+ * capability flags grants read and nothing else.
7
25
  */
8
26
  export declare function registerPermissionsCommand(program: Command): void;
27
+ /**
28
+ * No capability flag means read, so the easy path is the least privileged
29
+ * one. `--create`/`--update`/`--delete` are additive and never imply read:
30
+ * the command prints the resulting access back so an over-broad grant is
31
+ * visible at the point it is made, not later in `permissions list`.
32
+ */
33
+ export declare function capabilitiesFor(options: GrantOptions): {
34
+ canRead: boolean;
35
+ canCreate: boolean;
36
+ canUpdate: boolean;
37
+ canDelete: boolean;
38
+ };
39
+ /**
40
+ * The argument is deliberately never echoed back. The likeliest wrong value
41
+ * here is a raw `axb_...` key pasted in place of its id, and this message
42
+ * reaches stderr, `--json` output and any CI log capturing them — so
43
+ * quoting the input would turn a typo into a leaked secret.
44
+ */
45
+ export declare function requireApiKeyId(apiKeyId: string): string;
46
+ export {};
9
47
  //# sourceMappingURL=permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/commands/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBzC;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAcjE"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/commands/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAa,SAAQ,kBAAkB;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwCjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAQA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASxD"}
@@ -1,18 +1,26 @@
1
1
  import { resolveActiveProjectId } from "../active-project.js";
2
2
  import { requireControlPlaneClient } from "../http/authenticated-client.js";
3
+ import { CliError } from "../http/errors.js";
3
4
  import { printJson, printLine } from "../output/print.js";
4
5
  import { renderTable } from "../output/table.js";
5
6
  import { runWithErrorHandling } from "../report-error.js";
7
+ /** A control-plane API key id, as `keys list` and `keys create` print it. */
8
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6
9
  /**
7
- * Read-only for v1 — bulk/single grant mutation stays dashboard-only (see
8
- * ADR-013 and docs/cli.md's "deferred" list). Listing is safe to expose
9
- * unconditionally: it only ever reveals what a caller's own project already
10
- * grants, never another organisation's data.
10
+ * Inspect *and* change table permission grants (ADR-018). Writes were
11
+ * dashboard-only through v1; the second clean-room test showed what that
12
+ * cost — three dashboard round-trips in the middle of an agent handoff, and
13
+ * a key granted full CRUD when read was what was wanted. A control-plane
14
+ * token can already create and revoke the keys these grants apply to, so
15
+ * withholding the grant step bought no safety.
16
+ *
17
+ * Least privilege is the default here, not a flag: `grant` with no
18
+ * capability flags grants read and nothing else.
11
19
  */
12
20
  export function registerPermissionsCommand(program) {
13
21
  const permissions = program
14
22
  .command("permissions")
15
- .description("Inspect table permission grants (read-only — see docs/cli.md)");
23
+ .description("Inspect and change table permission grants");
16
24
  permissions
17
25
  .command("list")
18
26
  .description("List every table permission grant in the active project")
@@ -22,6 +30,124 @@ export function registerPermissionsCommand(program) {
22
30
  const options = this.optsWithGlobals();
23
31
  await runWithErrorHandling(() => runList(options), options);
24
32
  });
33
+ permissions
34
+ .command("grant")
35
+ .description("Grant an API key access to one or more tables (read only unless told otherwise)")
36
+ .argument("<api-key-id>", "the API key to grant access to (see `axtrabase keys list`)")
37
+ .argument("<tables...>", "one or more table logical names")
38
+ .option("--read", "allow reading records (the default when no capability flag is given)")
39
+ .option("--create", "allow creating records")
40
+ .option("--update", "allow updating records")
41
+ .option("--delete", "allow deleting records")
42
+ .option("--project <project>", "override the active project (id or slug)")
43
+ .action(async function (apiKeyId, tables) {
44
+ const options = this.optsWithGlobals();
45
+ await runWithErrorHandling(() => runGrant(apiKeyId, tables, options), options);
46
+ });
47
+ permissions
48
+ .command("revoke")
49
+ .description("Remove an API key's access to one or more tables")
50
+ .argument("<api-key-id>", "the API key to revoke access from")
51
+ .argument("<tables...>", "one or more table logical names")
52
+ .option("--project <project>", "override the active project (id or slug)")
53
+ .action(async function (apiKeyId, tables) {
54
+ const options = this.optsWithGlobals();
55
+ await runWithErrorHandling(() => runRevoke(apiKeyId, tables, options), options);
56
+ });
57
+ }
58
+ /**
59
+ * No capability flag means read, so the easy path is the least privileged
60
+ * one. `--create`/`--update`/`--delete` are additive and never imply read:
61
+ * the command prints the resulting access back so an over-broad grant is
62
+ * visible at the point it is made, not later in `permissions list`.
63
+ */
64
+ export function capabilitiesFor(options) {
65
+ const anyFlag = Boolean(options.read || options.create || options.update || options.delete);
66
+ return {
67
+ canRead: anyFlag ? Boolean(options.read) : true,
68
+ canCreate: Boolean(options.create),
69
+ canUpdate: Boolean(options.update),
70
+ canDelete: Boolean(options.delete)
71
+ };
72
+ }
73
+ /**
74
+ * The argument is deliberately never echoed back. The likeliest wrong value
75
+ * here is a raw `axb_...` key pasted in place of its id, and this message
76
+ * reaches stderr, `--json` output and any CI log capturing them — so
77
+ * quoting the input would turn a typo into a leaked secret.
78
+ */
79
+ export function requireApiKeyId(apiKeyId) {
80
+ if (!UUID.test(apiKeyId)) {
81
+ throw new CliError("AXTRA_CLI_VALIDATION_ERROR", "That is not an API key id. Run `axtrabase keys list` and use the ID column (a UUID) — not the key itself, and not its prefix.", { status: 0 });
82
+ }
83
+ return apiKeyId;
84
+ }
85
+ async function applyPermissions(apiKeyId, tables, permissions, options) {
86
+ // Validated before the client is built, so a mistyped id fails the same
87
+ // way whether or not the caller happens to be logged in.
88
+ const validApiKeyId = requireApiKeyId(apiKeyId);
89
+ const client = requireControlPlaneClient({ apiUrl: options.apiUrl });
90
+ const projectId = await resolveActiveProjectId(client, options.project);
91
+ const { data } = await client.put(`/api/v1/projects/${projectId}/table-permissions/bulk`, { apiKeyId: validApiKeyId, tables, permissions });
92
+ return data;
93
+ }
94
+ function resultRow(row) {
95
+ return [
96
+ row.table,
97
+ accessShorthand(row),
98
+ row.status === "synced" ? "granted" : "PENDING",
99
+ row.status === "synced" ? "" : (row.errorMessage ?? row.errorCode ?? "Dataverse refused it")
100
+ ];
101
+ }
102
+ /**
103
+ * A bulk write is per-row reconciliation, not all-or-nothing (see the bulk
104
+ * route's doc comment), so a partial result must not read as success: a
105
+ * script that granted nineteen of twenty tables has not done what it was
106
+ * asked, and for a revoke a pending row means the access may still be live.
107
+ */
108
+ function failureError(data) {
109
+ return new CliError("AXTRA_CLI_PERMISSION_SYNC_INCOMPLETE", `${data.failed} of ${data.requested} table(s) could not be applied in Dataverse.`, { status: 0 });
110
+ }
111
+ function reportPending(data) {
112
+ printLine();
113
+ printLine(`${data.succeeded} of ${data.requested} table(s) applied. ${data.failed} pending.`);
114
+ printLine("A PENDING row is recorded as desired but Dataverse has not applied it:");
115
+ printLine("a pending grant confers no access, and a pending revoke may not have taken");
116
+ printLine("it away yet. Run Repair connection in the dashboard, then run this again.");
117
+ throw failureError(data);
118
+ }
119
+ async function runGrant(apiKeyId, tables, options) {
120
+ const data = await applyPermissions(apiKeyId, tables, capabilitiesFor(options), options);
121
+ if (options.json) {
122
+ printJson(data);
123
+ if (data.failed > 0)
124
+ throw failureError(data);
125
+ return;
126
+ }
127
+ printLine(renderTable(["TABLE", "ACCESS", "STATUS", "DETAIL"], data.results.map(resultRow)));
128
+ if (data.failed > 0)
129
+ reportPending(data);
130
+ printLine();
131
+ printLine(`Granted ${data.succeeded} of ${data.requested} table(s).`);
132
+ printLine("Access shorthand is R=read C=create U=update D=delete.");
133
+ }
134
+ async function runRevoke(apiKeyId, tables, options) {
135
+ const data = await applyPermissions(apiKeyId, tables, { canRead: false, canCreate: false, canUpdate: false, canDelete: false }, options);
136
+ if (options.json) {
137
+ printJson(data);
138
+ if (data.failed > 0)
139
+ throw failureError(data);
140
+ return;
141
+ }
142
+ printLine(renderTable(["TABLE", "ACCESS", "STATUS"], data.results.map((row) => [
143
+ row.table,
144
+ accessShorthand(row),
145
+ row.status === "synced" ? "revoked" : "PENDING"
146
+ ])));
147
+ if (data.failed > 0)
148
+ reportPending(data);
149
+ printLine();
150
+ printLine(`Revoked access to ${data.succeeded} of ${data.requested} table(s).`);
25
151
  }
26
152
  function accessShorthand(row) {
27
153
  return ((row.canRead ? "R" : "-") +
@@ -48,14 +174,24 @@ async function runList(options) {
48
174
  printLine("No table permissions granted yet.");
49
175
  return;
50
176
  }
51
- printLine(renderTable(["TABLE", "API KEY", "ENABLED", "ACCESS"], rows.map((row) => {
177
+ // A grant on a revoked key confers nothing. Showing it unmarked made this
178
+ // output actively misleading — a revoked key's five canRead rows read as
179
+ // "access is granted" while the only usable key showed nothing. Say so
180
+ // here rather than making a reader cross-check `keys list`.
181
+ printLine(renderTable(["TABLE", "API KEY", "ENABLED", "ACCESS", "KEY STATUS"], rows.map((row) => {
52
182
  const key = keyById.get(row.apiKeyId);
183
+ const revoked = row.isEffective === false || Boolean(row.keyRevokedAt);
53
184
  return [
54
185
  row.table,
55
- key ? `${key.name} (${key.prefix})` : row.apiKeyId,
186
+ key ? `${key.name} (${key.prefix})` : (row.apiKeyName ?? row.apiKeyId),
56
187
  row.isEnabled ? "yes" : "no",
57
- accessShorthand(row)
188
+ revoked ? `${accessShorthand(row)} (inactive)` : accessShorthand(row),
189
+ revoked ? "REVOKED" : "active"
58
190
  ];
59
191
  })));
192
+ if (rows.some((row) => row.isEffective === false || Boolean(row.keyRevokedAt))) {
193
+ printLine();
194
+ printLine("Rows marked REVOKED belong to revoked API keys and grant no access.");
195
+ }
60
196
  }
61
197
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/commands/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/commands/permissions.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,13 @@ async function runDescribe(tableName, options) {
100
100
  if (unresolvedChoices.length > 0) {
101
101
  metadataGaps.push(`Choice values were not resolved for: ${unresolvedChoices.join(", ")}.`);
102
102
  }
103
+ const unresolvedImages = data.columns
104
+ .filter((column) => column.type === "image" &&
105
+ (column.canStoreFullImage === null || column.canStoreFullImage === undefined))
106
+ .map((column) => column.logicalName);
107
+ if (unresolvedImages.length > 0) {
108
+ metadataGaps.push(`Whether the full-size image is stored was not resolved for: ${unresolvedImages.join(", ")}. A thumbnail is always stored; the original may not be.`);
109
+ }
103
110
  printJson({ ...data, metadataGaps });
104
111
  return;
105
112
  }
@@ -122,6 +129,28 @@ async function runDescribe(tableName, options) {
122
129
  column.source && column.source !== "stored" ? column.source : "—",
123
130
  column.lookupTargets?.join(", ") || "—"
124
131
  ])));
132
+ // File and Image columns carry storage facts nothing else does, and an
133
+ // image column's most important one is invisible in the column list: it
134
+ // always stores a thumbnail and keeps the full-size original only when
135
+ // configured to. A caller that reads "image" and expects the original
136
+ // otherwise finds out from the bytes.
137
+ const fileColumns = data.columns.filter((column) => column.type === "file" || column.type === "image");
138
+ if (fileColumns.length > 0) {
139
+ printLine();
140
+ printLine("File and image columns:");
141
+ printLine(renderTable(["LOGICAL NAME", "TYPE", "MAX SIZE", "STORED"], fileColumns.map((column) => [
142
+ column.logicalName,
143
+ column.type,
144
+ typeof column.maxSizeInKb === "number" ? `${column.maxSizeInKb} KB` : "not reported",
145
+ column.type === "file"
146
+ ? "file"
147
+ : column.canStoreFullImage === true
148
+ ? "thumbnail + full size"
149
+ : column.canStoreFullImage === false
150
+ ? "thumbnail only"
151
+ : "not reported"
152
+ ])));
153
+ }
125
154
  const choiceColumns = data.columns.filter((column) => column.options !== null && column.options !== undefined);
126
155
  if (choiceColumns.length > 0) {
127
156
  printLine();
@@ -1 +1 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../src/commands/tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../src/commands/tables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE,qLAAqL;AACrL,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAgC3D"}
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE,qLAAqL;AACrL,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAsC3D"}
@@ -42,6 +42,12 @@ export function exitCodeForErrorCode(code) {
42
42
  // A mismatched API/dashboard pair is misconfiguration the caller can
43
43
  // fix, not a server-side failure — see config/environments.ts.
44
44
  return EXIT_CODES.INVALID_ARGUMENTS;
45
+ case "AXTRA_CLI_PERMISSION_SYNC_INCOMPLETE":
46
+ // A bulk grant/revoke Dataverse only partly applied. Not an argument
47
+ // error — the request was valid — so it stays a plain failure, but it
48
+ // must never exit 0: a pending grant confers no access, and a pending
49
+ // revoke may not have removed any.
50
+ return EXIT_CODES.GENERIC_FAILURE;
45
51
  default:
46
52
  return EXIT_CODES.GENERIC_FAILURE;
47
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,CAAC;IAClB,uBAAuB,EAAE,CAAC;IAC1B,oBAAoB,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC;IACZ,oBAAoB,EAAE,CAAC;IACvB,iBAAiB,EAAE,CAAC;CACZ,CAAC;AAIX,qLAAqL;AACrL,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,4BAA4B,CAAC;QAClC,KAAK,yBAAyB,CAAC;QAC/B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,uBAAuB,CAAC;QAC7B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,2BAA2B;YAC9B,sEAAsE;YACtE,wEAAwE;YACxE,oEAAoE;YACpE,sDAAsD;YACtD,OAAO,UAAU,CAAC,uBAAuB,CAAC;QAC5C,KAAK,2BAA2B,CAAC;QACjC,KAAK,+BAA+B;YAClC,OAAO,UAAU,CAAC,oBAAoB,CAAC;QACzC,KAAK,wBAAwB,CAAC;QAC9B,KAAK,uBAAuB;YAC1B,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,4BAA4B;YAC/B,OAAO,UAAU,CAAC,oBAAoB,CAAC;QACzC,KAAK,wBAAwB,CAAC;QAC9B,KAAK,4BAA4B,CAAC;QAClC,KAAK,6BAA6B,CAAC;QACnC,KAAK,gCAAgC;YACnC,qEAAqE;YACrE,+DAA+D;YAC/D,OAAO,UAAU,CAAC,iBAAiB,CAAC;QACtC;YACE,OAAO,UAAU,CAAC,eAAe,CAAC;IACtC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,CAAC;IAClB,uBAAuB,EAAE,CAAC;IAC1B,oBAAoB,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC;IACZ,oBAAoB,EAAE,CAAC;IACvB,iBAAiB,EAAE,CAAC;CACZ,CAAC;AAIX,qLAAqL;AACrL,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,4BAA4B,CAAC;QAClC,KAAK,yBAAyB,CAAC;QAC/B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,uBAAuB,CAAC;QAC7B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,2BAA2B;YAC9B,sEAAsE;YACtE,wEAAwE;YACxE,oEAAoE;YACpE,sDAAsD;YACtD,OAAO,UAAU,CAAC,uBAAuB,CAAC;QAC5C,KAAK,2BAA2B,CAAC;QACjC,KAAK,+BAA+B;YAClC,OAAO,UAAU,CAAC,oBAAoB,CAAC;QACzC,KAAK,wBAAwB,CAAC;QAC9B,KAAK,uBAAuB;YAC1B,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,4BAA4B;YAC/B,OAAO,UAAU,CAAC,oBAAoB,CAAC;QACzC,KAAK,wBAAwB,CAAC;QAC9B,KAAK,4BAA4B,CAAC;QAClC,KAAK,6BAA6B,CAAC;QACnC,KAAK,gCAAgC;YACnC,qEAAqE;YACrE,+DAA+D;YAC/D,OAAO,UAAU,CAAC,iBAAiB,CAAC;QACtC,KAAK,sCAAsC;YACzC,qEAAqE;YACrE,sEAAsE;YACtE,sEAAsE;YACtE,mCAAmC;YACnC,OAAO,UAAU,CAAC,eAAe,CAAC;QACpC;YACE,OAAO,UAAU,CAAC,eAAe,CAAC;IACtC,CAAC;AACH,CAAC"}
@@ -1,5 +1,20 @@
1
1
  import type { TableMetadataResponse } from "../api-types.js";
2
2
  /** Generates a single `export interface` for one table's columns, over metadata fetched via HTTP (never Dataverse directly). */
3
3
  export declare function generateInterface(table: TableMetadataResponse): string;
4
+ /**
5
+ * Create/update input types for one table.
6
+ *
7
+ * Requiredness alone is not enough to describe a column. Some columns are
8
+ * required on READ and impossible to WRITE — Dataverse's system columns
9
+ * (`createdbyyominame`, `owneridname`, `owningbusinessunitname` and
10
+ * friends) come back `isRequired: true` with `isWritable: false`. Emitting
11
+ * one interface for both directions made those mandatory in create
12
+ * payloads, so a caller building a create body from the generated types got
13
+ * a compiler demanding fields the API cannot accept.
14
+ *
15
+ * Read and write surfaces are therefore separate types, as Sprint #11 P1-8
16
+ * asks: preserve the contract rather than flatten it in either direction.
17
+ */
18
+ export declare function generateInputInterfaces(table: TableMetadataResponse): string;
4
19
  export declare function generateTypeScriptModule(tables: TableMetadataResponse[]): string;
5
20
  //# sourceMappingURL=typescript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/generators/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AA4D1E,gIAAgI;AAChI,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAItE;AAwBD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAGhF"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/generators/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAsH1E,gIAAgI;AAChI,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAMtE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAe5E;AA2CD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAMhF"}
@@ -36,28 +36,108 @@ function toPascalCase(logicalName) {
36
36
  .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
37
37
  .join("");
38
38
  }
39
+ function tsTypeFor(column) {
40
+ return TS_TYPE_BY_COLUMN_TYPE[column.type] ?? "unknown";
41
+ }
42
+ /**
43
+ * Only an explicit `false` means not writable. Null or undefined means
44
+ * Dataverse did not say, and dropping a column on a guess would be a worse
45
+ * failure than keeping one that turns out to be read-only.
46
+ */
47
+ function isWritableColumn(column) {
48
+ return column.isWritable !== false;
49
+ }
50
+ function isLookup(column) {
51
+ return column.type === "lookup" || column.type === "owner";
52
+ }
53
+ /**
54
+ * Dataverse does not return a lookup under its own logical name. It returns
55
+ * the GUID as `_<logicalName>_value`, and the plain key is absent from the
56
+ * payload entirely. Emitting the plain name meant `record.adp_expensesubmission`
57
+ * was `undefined` on every row with a compiler that said it was fine — a
58
+ * silent failure on every lookup of every table, found by a clean-room test.
59
+ */
60
+ function readPropertyName(column) {
61
+ return isLookup(column) ? `_${column.logicalName}_value` : column.logicalName;
62
+ }
63
+ /**
64
+ * Writes bind to the navigation property: `"<nav>@odata.bind": "/<set>(<guid>)"`.
65
+ * The navigation name comes from the table's resolved many-to-one
66
+ * relationships; without one the logical name is the best available guess,
67
+ * which the generated header says plainly.
68
+ */
69
+ function writePropertyName(column, table) {
70
+ if (!isLookup(column))
71
+ return column.logicalName;
72
+ const relationship = (table.relationships ?? []).find((candidate) => candidate.kind === "many-to-one" && candidate.referencingColumn === column.logicalName);
73
+ return `"${relationship?.navigationName ?? column.logicalName}@odata.bind"`;
74
+ }
39
75
  /**
40
- * Requiredness is part of the schema contract, so it survives into the
41
- * generated type: a Dataverse-required column is emitted as present and
42
- * non-nullable, everything else stays optional + nullable (a Dataverse read
43
- * need not return every column). Emitting required business fields as
44
- * optional silently told every consumer a value might be absent when the
45
- * platform guarantees it (Sprint #11 P1-8).
76
+ * Read model. Requiredness is part of the schema contract, so it survives
77
+ * into the generated type: the primary key is always present, a
78
+ * Dataverse-required column is emitted as present and non-nullable, and
79
+ * everything else stays optional + nullable (a read need not return every
80
+ * column). Emitting required business fields as optional silently told
81
+ * every consumer a value might be absent when the platform guarantees it
82
+ * (Sprint #11 P1-8).
46
83
  */
47
84
  function fieldLine(column) {
48
- const tsType = TS_TYPE_BY_COLUMN_TYPE[column.type] ?? "unknown";
49
- // The primary key is always present; a required column is guaranteed by
50
- // Dataverse to hold a value.
51
- const alwaysPresent = column.isPrimaryId || column.isRequired;
85
+ // A lookup's _value property is not guaranteed present on a read that
86
+ // didn't select it, whatever the underlying column's required-ness says.
87
+ const alwaysPresent = (column.isPrimaryId || column.isRequired) && !isLookup(column);
52
88
  const optional = alwaysPresent ? "" : "?";
53
89
  const nullable = alwaysPresent ? "" : " | null";
54
- return ` ${column.logicalName}${optional}: ${tsType}${nullable};`;
90
+ return ` ${readPropertyName(column)}${optional}: ${tsTypeFor(column)}${nullable};`;
91
+ }
92
+ /** Create input: the primary key is server-assigned, so accept it, never demand it. */
93
+ function createFieldLine(column, table) {
94
+ // The primary key is server-assigned, and so is the owner: Dataverse gives
95
+ // a new record to the calling user when ownerid is omitted, even though the
96
+ // column is SystemRequired. Demanding either would force callers to supply
97
+ // something the platform already fills in.
98
+ const required = column.isRequired && !column.isPrimaryId && column.type !== "owner";
99
+ return ` ${writePropertyName(column, table)}${required ? "" : "?"}: ${tsTypeFor(column)};`;
100
+ }
101
+ /** Update input: same writable surface, every field optional — updates are partial. */
102
+ function updateFieldLine(column, table) {
103
+ return ` ${writePropertyName(column, table)}?: ${tsTypeFor(column)};`;
55
104
  }
56
105
  /** Generates a single `export interface` for one table's columns, over metadata fetched via HTTP (never Dataverse directly). */
57
106
  export function generateInterface(table) {
58
107
  const name = toPascalCase(table.logicalName);
59
108
  const lines = table.columns.map(fieldLine);
60
- return [`export interface ${name} {`, ...lines, `}`].join("\n");
109
+ // Dataverse's @odata.etag arrives on every record through the data plane;
110
+ // the type says so rather than pretending it isn't there.
111
+ return [`export interface ${name} {`, ' "@odata.etag"?: string;', ...lines, `}`].join("\n");
112
+ }
113
+ /**
114
+ * Create/update input types for one table.
115
+ *
116
+ * Requiredness alone is not enough to describe a column. Some columns are
117
+ * required on READ and impossible to WRITE — Dataverse's system columns
118
+ * (`createdbyyominame`, `owneridname`, `owningbusinessunitname` and
119
+ * friends) come back `isRequired: true` with `isWritable: false`. Emitting
120
+ * one interface for both directions made those mandatory in create
121
+ * payloads, so a caller building a create body from the generated types got
122
+ * a compiler demanding fields the API cannot accept.
123
+ *
124
+ * Read and write surfaces are therefore separate types, as Sprint #11 P1-8
125
+ * asks: preserve the contract rather than flatten it in either direction.
126
+ */
127
+ export function generateInputInterfaces(table) {
128
+ const name = toPascalCase(table.logicalName);
129
+ const writable = table.columns.filter(isWritableColumn);
130
+ return [
131
+ `export interface ${name}Create {`,
132
+ ...writable.map((column) => createFieldLine(column, table)),
133
+ `}`,
134
+ ``,
135
+ `export interface ${name}Update {`,
136
+ ...writable
137
+ .filter((column) => !column.isPrimaryId)
138
+ .map((column) => updateFieldLine(column, table)),
139
+ `}`
140
+ ].join("\n");
61
141
  }
62
142
  /**
63
143
  * The generated-file header states the known metadata gap explicitly
@@ -76,12 +156,34 @@ function generatedHeader(tableNames) {
76
156
  " * - Relationships (many-to-one, one-to-many, many-to-many).",
77
157
  " * - Choice option values: a choice column is typed `number` (the",
78
158
  " * underlying option value), not a literal union of its known options.",
159
+ " * - File and image storage limits. A file or image column is typed",
160
+ " * `string`; its size ceiling, and whether an image column stores the",
161
+ " * full-size original or only a thumbnail, are in",
162
+ " * `axtrabase tables describe <table>`.",
163
+ " *",
164
+ " * Lookups are not named after their column. Dataverse returns the GUID",
165
+ " * as `_<logicalName>_value` on read and accepts writes as",
166
+ " * `<navigationName>@odata.bind`; both forms are emitted below. Where no",
167
+ " * navigation name was resolved, the logical name is used and may need",
168
+ " * adjusting.",
169
+ " *",
170
+ " * Three types per table:",
171
+ " * - <Name> every column as read back; required columns present.",
172
+ " * - <Name>Create writable columns only; required-and-writable required.",
173
+ " * - <Name>Update writable columns only, all optional (partial update).",
174
+ " *",
175
+ " * Read-only columns (isWritable: false) are deliberately absent from the",
176
+ " * Create/Update types — several are required on read but rejected on",
177
+ " * write, so a single shared type would demand fields the API refuses.",
79
178
  " */",
80
179
  ""
81
180
  ].join("\n");
82
181
  }
83
182
  export function generateTypeScriptModule(tables) {
84
- const interfaces = tables.map((table) => generateInterface(table));
85
- return `${generatedHeader(tables.map((t) => t.logicalName))}\n${interfaces.join("\n\n")}\n`;
183
+ const blocks = tables.flatMap((table) => [
184
+ generateInterface(table),
185
+ generateInputInterfaces(table)
186
+ ]);
187
+ return `${generatedHeader(tables.map((t) => t.logicalName))}\n${blocks.join("\n\n")}\n`;
86
188
  }
87
189
  //# sourceMappingURL=typescript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/generators/typescript.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,sBAAsB,GAA2B;IACrD,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,0EAA0E;IAC1E,gDAAgD;IAChD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,SAAS,YAAY,CAAC,WAAmB;IACvC,OAAO,WAAW;SACf,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,MAAmB;IACpC,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IAChE,wEAAwE;IACxE,6BAA6B;IAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC;IAC9D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,OAAO,KAAK,MAAM,CAAC,WAAW,GAAG,QAAQ,KAAK,MAAM,GAAG,QAAQ,GAAG,CAAC;AACrE,CAAC;AAED,gIAAgI;AAChI,MAAM,UAAU,iBAAiB,CAAC,KAA4B;IAC5D,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,oBAAoB,IAAI,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,UAAoB;IAC3C,OAAO;QACL,KAAK;QACL,sFAAsF;QACtF,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrC,IAAI;QACJ,wEAAwE;QACxE,yEAAyE;QACzE,sCAAsC;QACtC,8DAA8D;QAC9D,mEAAmE;QACnE,0EAA0E;QAC1E,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA+B;IACtE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/generators/typescript.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export declare class ControlPlaneClient {
37
37
  }): Promise<RequestEnvelope<T>>;
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
+ put<T>(path: string, body?: unknown): Promise<RequestEnvelope<T>>;
40
41
  delete<T>(path: string): Promise<RequestEnvelope<T>>;
41
42
  }
42
43
  //# 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,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,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"}
@@ -79,6 +79,9 @@ export class ControlPlaneClient {
79
79
  post(path, body) {
80
80
  return this.request("POST", path, { body });
81
81
  }
82
+ put(path, body) {
83
+ return this.request("PUT", path, { body });
84
+ }
82
85
  delete(path) {
83
86
  return this.request("DELETE", path);
84
87
  }
@@ -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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"}
@@ -1,8 +1,11 @@
1
+ import { CliError } from "./http/errors.js";
1
2
  import { EXIT_CODES } from "./exit-codes.js";
2
3
  export interface ErrorReportOptions {
3
4
  json?: boolean;
4
- /** Prints the error's cause/stack to stderr — still never a raw secret (build brief §24: "redact secrets/tokens"). */
5
+ /** Prints diagnostics (origins, credential source, status, cause) to stderr — never a raw secret (build brief §24: "redact secrets/tokens"). */
5
6
  debug?: boolean;
7
+ /** The --api-url override, if the command was given one, so --debug reports the origin actually called. */
8
+ apiUrl?: string;
6
9
  }
7
10
  /**
8
11
  * The one place a caught error becomes CLI output + an exit code (build
@@ -12,6 +15,18 @@ export interface ErrorReportOptions {
12
15
  * per-command.
13
16
  */
14
17
  export declare function reportError(error: unknown, options?: ErrorReportOptions): never;
18
+ /**
19
+ * What --debug prints. It used to print only an error's `cause`, which an
20
+ * HTTP error response never has — so for a revoked token or a 403, the
21
+ * failures that most need diagnosing, --debug produced byte-identical output
22
+ * to running without it. A clean-room tester with a revoked first token then
23
+ * had to rule out an origin mismatch by hand, because the one fact that
24
+ * mattered — which origin the CLI just called — was never shown.
25
+ *
26
+ * Everything here is safe to paste into a bug report. The credential's
27
+ * SOURCE is shown; the credential itself never is.
28
+ */
29
+ export declare function debugDiagnostics(error: CliError, apiUrlFlag?: string): string;
15
30
  /** Wraps a command action so every command doesn't hand-roll the same try/catch; the action itself decides what --json/--debug values to pass through, since only it knows how to read the merged command options. */
16
31
  export declare function runWithErrorHandling(action: () => Promise<void>, options: ErrorReportOptions): Promise<void>;
17
32
  export { EXIT_CODES };
@@ -1 +1 @@
1
- {"version":3,"file":"report-error.d.ts","sourceRoot":"","sources":["../src/report-error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAGnE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sHAAsH;IACtH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK,CA8BnF;AA4BD,sNAAsN;AACtN,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"report-error.d.ts","sourceRoot":"","sources":["../src/report-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAUnE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gJAAgJ;IAChJ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2GAA2G;IAC3G,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK,CA8BnF;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CA2B7E;AAOD,sNAAsN;AACtN,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -2,6 +2,8 @@ import { AxtraBaseError } from "@axtrabase/sdk";
2
2
  import { CliError } from "./http/errors.js";
3
3
  import { EXIT_CODES, exitCodeForErrorCode } from "./exit-codes.js";
4
4
  import { printJson, printLine } from "./output/print.js";
5
+ import { resolveApiUrl, resolveDashboardUrl, resolveEnvironmentName, resolveToken } from "./config/resolve.js";
6
+ import { CLI_VERSION } from "./version.js";
5
7
  /**
6
8
  * The one place a caught error becomes CLI output + an exit code (build
7
9
  * brief §24). Every command's action calls this from its top-level catch —
@@ -33,8 +35,8 @@ export function reportError(error, options = {}) {
33
35
  printLine(cliError.requestId);
34
36
  }
35
37
  }
36
- if (options.debug && cliError.cause) {
37
- process.stderr.write(`${describeCause(cliError.cause)}\n`);
38
+ if (options.debug) {
39
+ process.stderr.write(`${debugDiagnostics(cliError, options.apiUrl)}\n`);
38
40
  }
39
41
  process.exit(exitCodeForErrorCode(cliError.code));
40
42
  }
@@ -59,6 +61,47 @@ function toCliError(error) {
59
61
  }
60
62
  return new CliError("AXTRA_CLI_UNEXPECTED_ERROR", "An unexpected error occurred.", { status: 0 });
61
63
  }
64
+ /**
65
+ * What --debug prints. It used to print only an error's `cause`, which an
66
+ * HTTP error response never has — so for a revoked token or a 403, the
67
+ * failures that most need diagnosing, --debug produced byte-identical output
68
+ * to running without it. A clean-room tester with a revoked first token then
69
+ * had to rule out an origin mismatch by hand, because the one fact that
70
+ * mattered — which origin the CLI just called — was never shown.
71
+ *
72
+ * Everything here is safe to paste into a bug report. The credential's
73
+ * SOURCE is shown; the credential itself never is.
74
+ */
75
+ export function debugDiagnostics(error, apiUrlFlag) {
76
+ const lines = ["", "--- debug ---", `cli version: ${CLI_VERSION}`];
77
+ const safely = (label, read) => {
78
+ try {
79
+ lines.push(`${label}${read()}`);
80
+ }
81
+ catch (resolveError) {
82
+ lines.push(`${label}(could not resolve: ${describeCause(resolveError)})`);
83
+ }
84
+ };
85
+ safely("environment: ", () => resolveEnvironmentName());
86
+ safely("api origin: ", () => resolveApiUrl(apiUrlFlag));
87
+ safely("dashboard: ", () => resolveDashboardUrl());
88
+ safely("cli credential:", () => {
89
+ const token = resolveToken();
90
+ if (!token)
91
+ return " none";
92
+ return token.source === "env"
93
+ ? " AXTRABASE_CLI_TOKEN (environment)"
94
+ : " stored credential file";
95
+ });
96
+ lines.push(`api key: ${process.env.AXTRABASE_API_KEY ? "AXTRABASE_API_KEY set" : "not set"}`);
97
+ lines.push(`http status: ${error.status || "(no response — network or local error)"}`);
98
+ lines.push(`error code: ${error.code}`);
99
+ if (error.requestId)
100
+ lines.push(`request id: ${error.requestId}`);
101
+ if (error.cause)
102
+ lines.push("cause:", describeCause(error.cause));
103
+ return lines.join("\n");
104
+ }
62
105
  function describeCause(cause) {
63
106
  if (cause instanceof Error)
64
107
  return cause.stack ?? cause.message;
@@ -1 +1 @@
1
- {"version":3,"file":"report-error.js","sourceRoot":"","sources":["../src/report-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-error.js","sourceRoot":"","sources":["../src/report-error.ts"],"names":[],"mappings":"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"}
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.1.3";
2
+ export declare const CLI_VERSION = "0.1.5";
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.1.3";
2
+ export const CLI_VERSION = "0.1.5";
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.1.3",
3
+ "version": "0.1.5",
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",