create-dql-app 1.6.1 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-dql-app",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "Scaffold a new DQL project. Run with: npx create-dql-app <name>",
5
5
  "license": "MIT",
6
6
  "author": "DuckCode AI Labs",
@@ -1,6 +1,19 @@
1
1
  # {{PROJECT_NAME}}
2
2
 
3
- A DQL project, scaffolded by `create-dql-app`.
3
+ A DQL project scaffolded by `create-dql-app`.
4
+
5
+ DQL means **Domain Query Language**. It is the open-source analytics language
6
+ for turning source data, SQL, dbt models, business terms, notebooks,
7
+ dashboards, apps, and lineage into one Git-versioned project.
8
+
9
+ The core path is:
10
+
11
+ ```text
12
+ source data -> DQL block -> business_view -> dashboard/app/AI answer
13
+ ```
14
+
15
+ Run `dql compile .` to produce `dql-manifest.json`, the local manifest that
16
+ connects technical lineage with business lineage.
4
17
 
5
18
  ## Connect your warehouse
6
19
 
@@ -20,6 +33,14 @@ npm run doctor
20
33
  npm run notebook
21
34
  ```
22
35
 
36
+ Open `notebooks/welcome.dqlnb` first. It shows the starter workflow:
37
+
38
+ 1. Explore data with SQL.
39
+ 2. Promote repeated logic into reusable DQL blocks under `blocks/`.
40
+ 3. Define shared vocabulary under `terms/`.
41
+ 4. Compose business outcomes under `business-views/`.
42
+ 5. Use Lineage to trace source data into business views and consumption.
43
+
23
44
  ## Have a dbt project?
24
45
 
25
46
  Point `dql.config.json` at it (auto-wired if a sibling dbt project was
@@ -1,21 +1,35 @@
1
1
  {
2
2
  "dqlnbVersion": 1,
3
3
  "version": 1,
4
+ "title": "{{PROJECT_NAME}} - DQL Workbench",
4
5
  "metadata": {
5
- "title": "{{PROJECT_NAME}} Welcome",
6
- "description": "Replace this cell with your first query."
6
+ "title": "{{PROJECT_NAME}} - DQL Workbench",
7
+ "description": "DQL starter workbench for building domain-first analytics."
7
8
  },
8
9
  "cells": [
9
10
  {
10
11
  "id": "intro",
11
12
  "type": "markdown",
12
- "source": "# {{PROJECT_NAME}}\n\nWelcome to DQL. Connect a warehouse in `dql.config.json`, then edit the cell below."
13
+ "title": "Welcome",
14
+ "source": "# {{PROJECT_NAME}}\n\nDQL means **Domain Query Language**. It turns SQL, business terms, notebooks, dashboards, apps, and lineage into one trusted analytics project.\n\n**Core path:** source data -> DQL block -> business_view -> dashboard/app/AI answer.\n\nUse this notebook as your workbench: explore data, promote repeated SQL into reusable blocks, define business vocabulary, and compile the project manifest for lineage and AI-ready context."
13
15
  },
14
16
  {
15
- "title": "First query",
16
- "id": "first_query",
17
+ "id": "starter_query",
17
18
  "type": "sql",
18
- "source": "select 1 as hello"
19
+ "title": "Starter Query",
20
+ "source": "-- If using DuckDB, local CSV, Parquet, and JSON files work with zero setup\n-- Example: SELECT * FROM read_csv_auto('./data/my_file.csv') LIMIT 10;\nselect 1 as customer_count"
21
+ },
22
+ {
23
+ "id": "domain_layer",
24
+ "type": "dql",
25
+ "title": "Example Domain Layer",
26
+ "source": "term \"Customer\" {\n domain = \"Customer\"\n type = \"entity\"\n status = \"draft\"\n description = \"A person or account that can place orders or receive service.\"\n owner = \"customer-analytics\"\n identifiers = [\"customer_id\"]\n}\n\nblock \"Example Customer Rollup\" {\n domain = \"Customer\"\n type = \"custom\"\n status = \"draft\"\n description = \"Starter customer summary block. Replace this query with your own source table.\"\n owner = \"analytics\"\n terms = [\"Customer\"]\n businessOutcome = \"Understand customer value and activity.\"\n decisionUse = \"Account planning and retention review.\"\n\n query = \"\"\"\n SELECT 1 AS customer_count\n \"\"\"\n\n tests {\n assert row_count == 1\n }\n}\n\nbusiness_view \"Customer 360\" {\n domain = \"Customer\"\n status = \"draft\"\n description = \"Business composition for account review and customer health.\"\n owner = \"customer-analytics\"\n terms = [\"Customer\"]\n businessOutcome = \"See customer identity, value, activity, and service risk in one lineage path.\"\n decisionUse = \"Account planning, churn review, and expansion targeting.\"\n reviewCadence = \"weekly\"\n\n includes {\n block \"Example Customer Rollup\"\n }\n}"
27
+ },
28
+ {
29
+ "id": "next_steps",
30
+ "type": "markdown",
31
+ "title": "Next Steps",
32
+ "source": "## Next steps\n\n1. Connect a warehouse or query local files with DuckDB.\n2. Save repeated SQL as DQL blocks under `blocks/`.\n3. Add shared vocabulary under `terms/`.\n4. Compose business outcomes under `business-views/`.\n5. Run `dql compile .` and open Lineage to inspect technical and business paths."
19
33
  }
20
34
  ]
21
35
  }
@@ -11,7 +11,7 @@
11
11
  "validate": "dql validate"
12
12
  },
13
13
  "devDependencies": {
14
- "@duckcodeailabs/dql-cli": "^1.6.1"
14
+ "@duckcodeailabs/dql-cli": "^1.6.2"
15
15
  },
16
16
  "engines": {
17
17
  "node": ">=20 <23"