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,19 @@
|
|
|
1
1
|
# {{PROJECT_NAME}}
|
|
2
2
|
|
|
3
|
-
A DQL project
|
|
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}}
|
|
6
|
-
"description": "
|
|
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
|
-
"
|
|
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
|
-
"
|
|
16
|
-
"id": "first_query",
|
|
17
|
+
"id": "starter_query",
|
|
17
18
|
"type": "sql",
|
|
18
|
-
"
|
|
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
|
}
|