@lightdash/cli 1.65.1 → 1.67.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.
@@ -79,6 +79,17 @@ describe('buildStaticAuthoringFiles', () => {
79
79
  expect(text('.npmrc')).toContain('ignore-scripts=true');
80
80
  expect(text('.npmrc')).not.toContain('shamefully-hoist');
81
81
  });
82
+ it('classifies local build failures as non-blocking warnings', () => {
83
+ for (const path of [
84
+ 'README.md',
85
+ 'AGENTS.md',
86
+ '.claude/skills/developing-data-apps-locally/SKILL.md',
87
+ ]) {
88
+ expect(text(path)).toContain('non-blocking warning');
89
+ expect(text(path)).toContain('continue to upload');
90
+ expect(text(path)).toContain('server build');
91
+ }
92
+ });
82
93
  it('never writes app source (no src/ files)', () => {
83
94
  expect(files.every((f) => !f.path.startsWith('src/'))).toBe(true);
84
95
  });
@@ -6,7 +6,7 @@ Two skills in `.claude/skills/` describe how to edit this app:
6
6
 
7
7
  Edit only `src/`. Root config files are read-only reference — the server rebuilds against a trusted template.
8
8
 
9
- The local build is an optional pre-check. Apps made with `lightdash apps create` already have dependencies installed and can run `npm run build`; after `lightdash download`, use `npm install && npm run build` if you choose to build locally. If install fails, skip it and upload — never modify machine config, npmrc, or dependency files to force it; the server rebuild is authoritative.
9
+ The local build is an optional pre-check. Apps made with `lightdash apps create` already have dependencies installed and can run `npm run build`; after `lightdash download`, use `npm install && npm run build` if you choose to build locally. If the local install or build fails, report it as a non-blocking warning with a short failure summary, then continue to upload — never modify machine config, npmrc, or dependency files to force it. The local pre-check does not decide whether the app ships; the server build is authoritative and surfaces its result on the app page.
10
10
 
11
11
  Build with the template's preinstalled dependency set (see `package.json`). Adding new npm packages only works when the Lightdash organization has custom dependencies enabled — assume it does not; ask the user before considering a new library, and never vendor library source into `src/` as a workaround. Where enabled, adding a dependency is the one workflow that still requires pnpm: upload requires a matching `pnpm-lock.yaml`, so `pnpm add <pkg>` (or `pnpm install --lockfile-only`) must succeed locally. If it fails, stop and report the error — hand-editing `package.json` without the lockfile makes the upload fail.
12
12
 
@@ -4,7 +4,7 @@ Created or downloaded with the Lightdash CLI.
4
4
 
5
5
  ## Edit → build → upload
6
6
  1. Edit files under `src/`.
7
- 2. Optionally, run `npm run build` to check it compiles locally. `lightdash apps create` installs the initial dependencies after asking permission; after `lightdash download`, run `npm install` first if `node_modules` is absent. If install fails in your environment, skip the local build — the server build on upload is authoritative and surfaces errors on the app page. Don't change machine or registry config to force it.
7
+ 2. Optionally, run `npm run build` to check it compiles locally. `lightdash apps create` installs the initial dependencies after asking permission; after `lightdash download`, run `npm install` first if `node_modules` is absent. If the local install or build fails in your environment, treat it as a non-blocking warning and continue to upload. Keep the failure details because they may predict a server build problem, but don't change machine or registry config to force the pre-check to pass — the server build on upload is authoritative and surfaces its result on the app page.
8
8
  3. Optionally, preview against real data: `lightdash apps preview` (needs a successful `npm install`).
9
9
  4. `lightdash upload --apps <slug>` (the `slug` from `lightdash-app.yml`) — Lightdash rebuilds and serves the app.
10
10
 
@@ -34,6 +34,7 @@ You are editing a Lightdash **data app** that was created or downloaded with the
34
34
  ## The local build is optional — never fight a failing install
35
35
 
36
36
  - If `npm install` fails (registry policy, an unavailable pinned SDK version, no network access), **skip the local build entirely and go straight to upload**. The server rebuild is authoritative and surfaces build errors on the app page.
37
+ - Treat any standard local install or build failure as a **non-blocking warning**, not as an upload error or a failed task. Preserve a short summary of the local failure because it may predict a server build problem, then continue to upload. Make it explicit that the local pre-check did not complete, but that it does not decide whether the app ships; the server build does.
37
38
  - Do **not** modify machine configuration, `.npmrc` files, registry settings, or the project's dependency files to force an install to work.
38
39
  - A missing `node_modules` is a normal state, not a problem to fix. Never run installs just because it is absent.
39
40
  - **Exception — adding a dependency** (only for organizations with custom dependencies enabled — see "Library boundaries" above). This is the one workflow that still requires pnpm: upload rejects new dependencies unless `pnpm-lock.yaml` was regenerated to match `package.json`, so dependency resolution MUST succeed locally. Use `pnpm add <pkg>` — prefixed with Socket Firewall when available (`sfw pnpm add <pkg>`; check with `command -v sfw`) to block known-malicious packages — or after editing `package.json` run `pnpm install --lockfile-only` (updates the lockfile without installing). If resolution fails, **stop and report the exact pnpm error to the user** — never hand-edit `package.json` and proceed without the lockfile; the upload will fail.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightdash/cli",
3
- "version": "1.65.1",
3
+ "version": "1.67.0",
4
4
  "description": "Lightdash CLI tool",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,8 +41,8 @@
41
41
  "unique-names-generator": "4.7.1",
42
42
  "uuid": "11.1.1",
43
43
  "yaml": "2.8.3",
44
- "@lightdash/common": "1.65.1",
45
- "@lightdash/warehouses": "1.65.1"
44
+ "@lightdash/warehouses": "1.67.0",
45
+ "@lightdash/common": "1.67.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/inquirer": "8.2.4",