Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3285 commits
Select commit Hold shift + click to select a range
38a0dd2
Add additional logging for GQL endpoints
shangyian Feb 12, 2025
432689a
Remove some pylint skips
shangyian Feb 12, 2025
4c69133
Remove more pylint
shangyian Feb 12, 2025
8c9dbc4
Remove pylint directives
shangyian Feb 12, 2025
f373a00
Remove additional pylint directives
shangyian Feb 12, 2025
1816a90
Fix tests
shangyian Feb 12, 2025
d4bee92
Fix coverage
shangyian Feb 12, 2025
518f8f3
Fix materialization
shangyian Feb 12, 2025
68fb486
Merge pull request #1308 from shangyian/fix-openapi-json
shangyian Feb 12, 2025
1d6319b
Endpoints and data model for saving user notification subscriptions (…
samredai Feb 13, 2025
cf70ce0
run tests on main branch after merging PR (#1310)
samredai Feb 13, 2025
f206de7
Add foreign key reference mapping to dimension link metadata output (…
shangyian Feb 18, 2025
944f55e
Python and javascript integration tests (#1311)
samredai Feb 18, 2025
fb3cc28
Add/Edit Node Page UI Extension (#1314)
shangyian Feb 19, 2025
8da9b84
Bumping DJ to version 0.0.1a87 (#1312)
agorajek Feb 19, 2025
00f4e9c
Added cache interface and cachelib + noop implementations (#1209)
samredai Feb 19, 2025
e9bb4e2
Update java client (#1315)
samredai Feb 20, 2025
ea6d490
Various UI Bugfixes (#1317)
shangyian Feb 25, 2025
abadac5
Add better metric metadata to materializations (#1322)
shangyian Feb 26, 2025
d5ea731
Bumping DJ to version 0.0.1a88 (#1319)
agorajek Feb 26, 2025
2598d91
Fix YAML tagging so that all nodes actually get tagged (#1325)
shangyian Mar 3, 2025
2ee5767
Decompose ANY_VALUE in metric definitions into measures (#1326)
shangyian Mar 3, 2025
e4f36c1
Bumping DJ to version 0.0.1a89 (#1327)
agorajek Mar 3, 2025
59c040c
Fix Cube() making in DJ client. (#1329)
agorajek Mar 7, 2025
761e588
Bumping DJ to version 0.0.1a90 (#1332)
agorajek Mar 7, 2025
b2c4b1e
Fix aggregation function check for metric definition (#1331)
shangyian Mar 8, 2025
31a9d0e
Process every history event through notifier depnedency after saving …
samredai Mar 10, 2025
c4a424c
Normalize all column names to be lowercase (#1335)
shangyian Mar 11, 2025
7ae4f0c
Bumping DJ to version 0.0.1a91 (#1334)
agorajek Mar 12, 2025
83e52b6
Fix java build (#1338)
shangyian Mar 13, 2025
2fae0e3
Break out logic for getting a user's notification preferences to a se…
samredai Mar 14, 2025
6605d37
Add ability to search on display name using findNodes (#1341)
shangyian Mar 14, 2025
d865a63
Add column description (#1343)
anhqle Mar 20, 2025
3346124
Fix SQL column metadata (#1345)
shangyian Mar 20, 2025
b2f5d0b
Bumping DJ to version 0.0.1a92 (#1342)
agorajek Mar 20, 2025
a546757
Add support for count_if in decomposing to measures (#1347)
shangyian Mar 24, 2025
cdb5e2f
Bumping DJ to version 0.0.1a93 (#1348)
agorajek Mar 26, 2025
4141e42
Fix error with getting cube materialization (#1354)
shangyian Apr 6, 2025
ac6e6de
Add formatting fields for metric display precision (#1356)
shangyian Apr 8, 2025
b90bc82
Bumping DJ to version 0.0.1a94 (#1351)
agorajek Apr 8, 2025
84953fa
Get all users subscribed to a specific notification (#1353)
samredai Apr 9, 2025
ded38bf
Switch python client, query service to use ruff (#1357)
shangyian Apr 9, 2025
8fd9d39
Fix bug when editing cube node with materialization (#1362)
shangyian Apr 11, 2025
8b989c8
Handle measures SQL generation where for measures columns with reserv…
shangyian Apr 11, 2025
7835ce4
Allow filtering history to events subscribed to for notifications (#1…
samredai Apr 15, 2025
4773d5e
Speed up metric edit UI load time (#1359)
shangyian Apr 15, 2025
286c3c6
Bumping DJ to version 0.0.1a95 (#1364)
agorajek Apr 16, 2025
9c59bd1
Support DISTINCT decomposition + pre-aggregation (#1367)
shangyian Apr 17, 2025
02d82c5
Cache metrics list endpoint (#1366)
samredai Apr 24, 2025
a04055a
Execute database statements with retry logic (#1369)
shangyian Apr 24, 2025
174b508
Bumping DJ to version 0.0.1a96 (#1370)
agorajek Apr 25, 2025
778d6c9
node button cleanup & watch button (#1365)
CircArgs Apr 26, 2025
beab1f9
Add additional details to cube history (#1361)
shangyian Apr 27, 2025
889fd7e
Support Viewing+Editing Multiple Dimension Links (#1372)
shangyian Apr 29, 2025
28b7560
Bumping DJ to version 0.0.1a97 (#1373)
agorajek Apr 29, 2025
37d9b8b
Add limit to findNodes GQL query (#1377)
shangyian May 10, 2025
30a00af
Bumping DJ to version 0.0.1a98 (#1374)
agorajek May 10, 2025
47b421f
Update linters (ruff, add-trailing-comma) (#1383)
shangyian May 19, 2025
6c49d86
Fix build_preaggregate_query bug. (#1381)
agorajek May 20, 2025
5cdeb5f
[WIP] Add query parameters to DJ... (#1382)
agorajek May 20, 2025
74430f3
Bumping DJ to version 0.0.1a99 (#1384)
shangyian May 20, 2025
ef7546a
Fix `show_deleted` query param for /materializations, rename it `incl…
samredai May 22, 2025
8fc66bc
Add plugin support for SQL transpilation (#1376)
shangyian May 22, 2025
a5fcaf1
Speed up the recursive dimensions graph CTE query (#1385)
shangyian May 22, 2025
41291ff
Bumping DJ to version 0.0.1a100 (#1387)
agorajek May 22, 2025
5c2776a
Add GraphQL schema generation script and seed schema file (#1390)
shangyian May 27, 2025
954704a
Add /cubes endpoint to get metadata on all cubes (#1391)
samredai May 27, 2025
61d621a
Correctly resolve generated queries in DISTINCT-agg metrics (#1388)
shangyian May 28, 2025
99d2b1e
Add pagination to /cubes endpoint (#1394)
samredai May 30, 2025
ed5a51c
Add endpoint to list available dialects (#1393)
shangyian May 31, 2025
c0a61f9
Enable metrics to reference available dimensions in definition (#1344)
shangyian Jun 3, 2025
0d955e3
Bumping DJ to version 0.0.1a101 (#1389)
agorajek Jun 3, 2025
b5c1ecc
Column metadata should include origin for columns (#1397)
shangyian Jun 4, 2025
e30c7b3
Add option to delete materializations by node version. (#1396)
agorajek Jun 10, 2025
613540d
Manage GraphQL DB session via middleware (#1403)
shangyian Jun 16, 2025
1511cad
Fix hashing on measure decomposition. (#1404)
agorajek Jun 16, 2025
9a43841
After a node is deleted, its materializations should be deactivated (…
shangyian Jun 16, 2025
53b90e2
Relax restrictions on cube validation so that cubes can be created wi…
shangyian Jun 17, 2025
ba5ddba
Add custom_metadata and downstream nodes to GraphQL api. (#1401)
agorajek Jun 17, 2025
6e514ea
Bumping DJ to version 0.0.1a102 (#1400)
agorajek Jun 17, 2025
ad99fac
Revert "Fix hashing on measure decomposition. (#1404)" (#1407)
agorajek Jun 19, 2025
6bf954b
Add GraphQL support for generating measures SQL directly on a cube (#…
shangyian Jun 19, 2025
18a44e4
Add filtering on columns for node revisions in GQL (#1409)
shangyian Jun 19, 2025
57ec71d
Add docker compose with superset (#1406)
shangyian Jun 19, 2025
4ed0619
Bumping DJ to version 0.0.1a103 (#1411)
agorajek Jun 19, 2025
2b5e869
Update test.yml (#1412)
agorajek Jun 19, 2025
f278669
Fix partition resolution on columns (#1414)
shangyian Jun 20, 2025
f1e018b
Fix test action. (#1415)
agorajek Jun 20, 2025
e2563f4
Do not require description field on a new node. (#1418)
agorajek Jun 20, 2025
5d0cfe5
Skip deactivated nodes in namespace export. (#1419)
agorajek Jun 21, 2025
87ed92a
Add reader database cluster support (#1417)
shangyian Jun 21, 2025
0c2fc10
Bumping DJ to version 0.0.1a104 (#1413)
agorajek Jun 21, 2025
583c54c
Add additional database indexes for performance (#1309)
shangyian Jun 23, 2025
55caf94
Dimensions DAG Efficiency (#1424)
shangyian Jun 23, 2025
36b3dfb
Add better tests for read replica + use in docker compose (#1420)
shangyian Jun 23, 2025
460074d
Bumping DJ to version 0.0.1a105 (#1421)
agorajek Jun 23, 2025
3f1ddab
Add missing create read-only user script (#1426)
shangyian Jun 24, 2025
7c15b25
Provide additional information on parent nodes in GQL (#1429)
shangyian Jun 25, 2025
75ed5e1
Create release.yml (#1428)
agorajek Jun 25, 2025
52ee0c8
Add custom_metadata to /metrics/<name> api. (#1431)
agorajek Jun 27, 2025
87c193a
Use session.remove() in session middleware (#1430)
shangyian Jun 27, 2025
a08429f
Add deactivated filter for downstreamNodes GraphQL query (#1432)
shangyian Jun 27, 2025
dbbdba4
Bumping DJ to version 0.0.1a106 (#1433)
agorajek Jun 27, 2025
19406da
When a dimension node is deactivated or hard-deleted, it should not s…
shangyian Jul 1, 2025
64fb62b
Fix ability to run validation queries (#1427)
shangyian Jul 1, 2025
b010f09
MAX function should be able to work on boolean arguments (#1437)
shangyian Jul 2, 2025
7d9e91a
Add node owners (#1436)
shangyian Jul 4, 2025
ff02cf5
Upgrade lockfiles + bugfixes to docker compose, QS db, and reflection…
shangyian Jul 5, 2025
45f654c
Model DJ system metrics in DJ (#1440)
shangyian Jul 11, 2025
1876adb
Remove SQLAlchemy warnings about multiple write paths for ORM objects…
shangyian Jul 11, 2025
c96a361
Upgrade to 0.0.1a107 (#1442)
shangyian Jul 15, 2025
333e2c8
Change virtual catalog name default and move system node seeds (#1443)
shangyian Jul 18, 2025
c8baa46
Bumping DJ to version 0.0.1a108 (#1444)
agorajek Jul 18, 2025
90dd3ea
Enable modifying a cube's owners (#1446)
shangyian Jul 22, 2025
5889d09
Bumping DJ to version 0.0.1a109 (#1447)
agorajek Jul 22, 2025
a5d0cfa
Overview dashboard (#1441)
shangyian Jul 28, 2025
f303735
Bumping DJ to version 0.0.1a110 (#1450)
agorajek Jul 29, 2025
44d1d12
Minor adjustments around Roads Example notebook. (#1405)
agorajek Jul 29, 2025
dfbc3c6
Add caching for sql generation (#1449)
shangyian Jul 29, 2025
7eceab5
Add dimension link versioning to nodes (#1453)
shangyian Aug 2, 2025
dd9e491
Arithmetic Unary Operator Support (#1456)
shangyian Aug 2, 2025
2163804
Bumping DJ to version 0.0.1a111 (#1452)
agorajek Aug 2, 2025
80befc5
Make sure that cache key is static (#1458)
shangyian Aug 3, 2025
df284aa
Save versioned measures (#1457)
shangyian Aug 5, 2025
79f9d3b
Bumping DJ to version 0.0.1a112 (#1459)
agorajek Aug 5, 2025
07fea2f
Expose materialization information better for cubes. (#1460)
agorajek Aug 8, 2025
211a2d6
Make the search elss long (#1464)
shangyian Aug 10, 2025
85efaee
Fix unit test failures due to expired JWT token. Tests were using a s…
shangyian Aug 22, 2025
61c564e
Fix issue with metrics not using dim ref correctly (#1470)
shangyian Aug 22, 2025
4c8c974
Fix inefficiencies in finding linked nodes to dimensions (#1469)
shangyian Aug 22, 2025
ecb8c86
Enable correct sorting of nodes within namespace (#1463)
shangyian Aug 22, 2025
b3c5eb4
Cache node upstreams (#1465)
shangyian Aug 22, 2025
815cb8f
Add support for additional dialects (#1473)
shangyian Aug 22, 2025
d2c2ef5
Bumping DJ to version 0.0.1a113 (#1466)
agorajek Aug 22, 2025
964480e
Avoid use of scoped session in favor of AsyncSession directly (#1476)
shangyian Aug 25, 2025
efa3668
Bumping DJ to version 0.0.1a114 (#1475)
agorajek Aug 25, 2025
30d6bbe
Support usage of relative urls for notifications backend call from UI…
shangyian Aug 25, 2025
8868956
Bumping DJ to version 0.0.1a115 (#1477)
agorajek Aug 25, 2025
e354562
Add BFS fallback for getting node downstreams with high fanout (#1479)
shangyian Aug 27, 2025
236b042
Bumping DJ to version 0.0.1a116 (#1480)
agorajek Aug 27, 2025
e49236d
Support query params and caching in GQL measures SQL generation (#1481)
shangyian Aug 27, 2025
bd41b48
Add check for node existence when upserting complex dimension link (#…
shangyian Sep 2, 2025
737e10c
Add caching for node and metrics SQL + reorganize (#1482)
shangyian Sep 2, 2025
9397220
Bumping DJ to version 0.0.1a117 (#1483)
agorajek Sep 2, 2025
3330400
Prevent unnecessary owner updates if the owner did not change in the …
shangyian Sep 4, 2025
6fbf3e5
Add support for service accounts (#1485)
shangyian Sep 4, 2025
86c995e
Refactor node API crud calls (#1489)
shangyian Sep 8, 2025
26e602b
Bumping DJ to version 0.0.1a118 (#1488)
agorajek Sep 8, 2025
df85cab
Move refresh source node logic to separate function from API endpoint…
shangyian Sep 11, 2025
f531353
Fix background tasks to not have database sessions or ORM objects pas…
shangyian Sep 11, 2025
16f1e27
Speed up hard delete of namespaces (#1494)
shangyian Sep 12, 2025
08c810c
Speed up creating nodes (#1495)
shangyian Sep 13, 2025
28e9848
Start using patch release numbers. (#1497)
agorajek Sep 16, 2025
5e21478
Bumping DJ to version 0.0.2 (#1498)
agorajek Sep 16, 2025
ca4efac
Fix running client tests + print the missing coverage lines (#1501)
shangyian Sep 18, 2025
70e4dc3
Enable cascading of node deletes to the tag-node and attribute-col re…
shangyian Sep 18, 2025
11f53d6
Bulk Deployment (#1491)
shangyian Sep 24, 2025
685ed31
Switch column to node revision relationship to many-to-one relationsh…
shangyian Sep 26, 2025
104ba24
Bumping DJ to version 0.0.3 (#1503)
agorajek Sep 26, 2025
b493e87
Remove orphaned columns + nodecolumns join table (#1514)
shangyian Sep 26, 2025
eef7f00
Bumping DJ to version 0.0.4 (#1515)
agorajek Sep 26, 2025
d9a2b58
Add ability to remove availability state from a node (#1516)
shangyian Sep 30, 2025
77e8439
Switch DJ API to Pydantic v2 (#1509)
shangyian Oct 1, 2025
9bca5e1
Allow unix_timestamp to also accept a timestamp or date, which spark …
samredai Oct 2, 2025
1ef71ad
Bumping DJ to version 0.0.5 (#1517)
agorajek Oct 2, 2025
4a1e156
Enable registering table under a custom namespace (#1519)
shangyian Oct 2, 2025
adf8c18
Add support for decomposing max_by and min_by (#1522)
shangyian Oct 3, 2025
30146a8
Bumping DJ to version 0.0.6 (#1523)
agorajek Oct 3, 2025
0f96557
Add bulk loading of parents before node compilation (#1521)
shangyian Oct 7, 2025
397cc04
Prevent cycles when building queries with dimension graph cycles (#1526)
shangyian Oct 7, 2025
238aee6
Revert "Revert "Fix hashing on measure decomposition. (#1404)" (#1407…
agorajek Oct 8, 2025
ab62d2c
Single Transaction Deployment (#1527)
shangyian Oct 9, 2025
0254f93
Support querying across multiple hops on the dimensions graph with ro…
shangyian Oct 9, 2025
3b1c73d
Bumping DJ to version 0.0.7 (#1525)
agorajek Oct 9, 2025
ad7b3f7
Bumping DJ to version 0.0.8 (#1529)
agorajek Oct 16, 2025
b5522ee
Add better handling for deploying source nodes (#1532)
shangyian Oct 19, 2025
1fff9ed
Bumping DJ to version 0.0.9 (#1533)
agorajek Oct 20, 2025
6d432ef
Make custom_metadata field viewable and editable in DJ UI for Metric …
agorajek Oct 21, 2025
74e33e0
Fix Concurrent Operations During AST Compilation (#1536)
shangyian Oct 23, 2025
4e94dec
Bumping DJ to version 0.0.10 (#1538)
agorajek Oct 23, 2025
18c28a2
Add support deleting nodes via the DJ CLI (#1542)
shangyian Oct 25, 2025
87f6d04
Bumping DJ to version 0.0.11 (#1543)
agorajek Oct 25, 2025
20b6322
Postgres 18 (#1544)
samredai Oct 27, 2025
5b45fc0
Additional DJ CLI Functionality (#1545)
shangyian Oct 29, 2025
c646004
Fix custom_metadata field bug and make some other small changes to no…
samredai Oct 29, 2025
c63f681
Bumping DJ to version 0.0.12 (#1546)
agorajek Oct 29, 2025
368fa04
Switch to using CodeMirror editor for custom metadata editing (#1550)
shangyian Oct 30, 2025
bc06389
MAX_BY and MIN_BY functions cannot be decomposed (#1549)
shangyian Oct 30, 2025
15abedb
Bumping DJ to version 0.0.13 (#1551)
agorajek Oct 30, 2025
a631ebd
Enable Role Path Dimensions in Group By and Filters (#1548)
shangyian Oct 31, 2025
da0481e
python client: rename output columns to semantic names (#1552)
shangyian Nov 4, 2025
e48f09a
Bulk Cube Deployment (#1558)
shangyian Nov 5, 2025
1266fdb
Bumping DJ to version 0.0.14 (#1557)
agorajek Nov 5, 2025
a349a5d
YAML Deployment Docs (#1560)
shangyian Nov 6, 2025
a7be14d
Bumping DJ to version 0.0.15 (#1565)
agorajek Nov 13, 2025
c50a8a1
Improve namespace creation UX with inline folder-like interface (#1568)
shangyian Nov 21, 2025
5634726
Better Dimension Linking UI (#1569)
shangyian Nov 24, 2025
93b4779
Bug saving invalid metric (#1571)
samredai Nov 25, 2025
3f00434
Bumping DJ to version 0.0.16 (#1566)
agorajek Nov 25, 2025
026b29f
Dimension Hierarchies (#1564)
shangyian Nov 26, 2025
69f3346
Support for Groups as Principal (#1574)
shangyian Nov 26, 2025
b3152ab
Allow configurable embedded query client (Issue #1499) (#1504)
samredai Nov 29, 2025
d68ed19
Bumping DJ to version 0.0.17 (#1578)
agorajek Dec 1, 2025
7e524fc
RBAC Infra: Roles, Scopes & Assignments (#1576)
shangyian Dec 1, 2025
00beece
Prevent linking to non-dimension nodes (#1580)
shangyian Dec 3, 2025
a59c16d
Update browserslist with npx update-browserslist-db@latest (#1583)
shangyian Dec 3, 2025
94c5ff2
Add Node Mode (Draft / Published) Filter to DJ UI (#1581)
shangyian Dec 3, 2025
620bc89
Bumping DJ to version 0.0.18 (#1585)
agorajek Dec 3, 2025
7a7e1ae
Make find nodes with common dimensions more efficient by switching to…
shangyian Dec 4, 2025
12dac71
Settings + Notifications in Navigation Bar (#1587)
shangyian Dec 4, 2025
b8a7bc0
Groups Population (#1590)
shangyian Dec 5, 2025
8fc6c84
Add support for creating and managing service accounts in UI (#1591)
shangyian Dec 5, 2025
5e96e5d
Bumping DJ to version 0.0.19 (#1592)
agorajek Dec 5, 2025
167b6c2
Remove unnecessary user upsert and group sync on every write request.…
shangyian Dec 7, 2025
e1ab44f
Bumping DJ to version 0.0.20 (#1596)
agorajek Dec 7, 2025
f90336c
Settings styling (#1598)
shangyian Dec 7, 2025
0b05eb6
Migrate to use the recursive CTE version of find nodes with dimension…
shangyian Dec 7, 2025
5f2ef39
Pin bcrpyt to be <=4.3.0 due to bcrypt error (#1597)
shangyian Dec 7, 2025
cfad698
Bumping DJ to version 0.0.21 (#1599)
agorajek Dec 7, 2025
dbf6871
Enable the UI to be run in production mode as well as dev mode (#1603)
shangyian Dec 8, 2025
9a62fda
Add support for getting upstreams for multiple nodes (#1602)
shangyian Dec 9, 2025
ec406b3
Reduce the number of history events coming from tag updates that don'…
shangyian Dec 9, 2025
c4f9b19
Bumping DJ to version 0.0.22 (#1601)
agorajek Dec 9, 2025
9e8fc80
Modify GraphQL upstream/downstream endpoints to use dynamic field loa…
shangyian Dec 9, 2025
2343f78
Add history events for changes made during deployments (#1600)
shangyian Dec 10, 2025
4fcfba4
Reduce Expensive Querying via ORM (#1607)
shangyian Dec 13, 2025
cae1c10
Bumping DJ to version 0.0.23 (#1609)
agorajek Dec 14, 2025
de05614
Upgrade node version, unpin package resolutions (#1610)
shangyian Dec 15, 2025
6927253
Add docs on metric decomposition (#1614)
shangyian Dec 17, 2025
d530bfd
Add support for `approx_count_distinct` decomposition (#1612)
shangyian Dec 17, 2025
d374f8b
Support Variance, Std Dev, Covariance, and Correlation Decomposition …
shangyian Dec 18, 2025
20aae46
Fix issue where reactivating nodes also revalidates downstreams, whic…
shangyian Dec 18, 2025
678730f
Bumping DJ to version 0.0.24 (#1611)
agorajek Dec 18, 2025
5d898a3
Add ability to filter by nodes with dimension (#1620)
shangyian Dec 23, 2025
e006675
Do profiling and speed up query generation (#1622)
shangyian Dec 23, 2025
1989758
Bumping DJ to version 0.0.25 (#1621)
agorajek Dec 23, 2025
399568c
Add foundation for derived metrics so that users can add metrics that…
shangyian Dec 24, 2025
a68a308
Fix issue when parsing expressions with decimal numbers at end of inp…
shangyian Dec 27, 2025
03e38a4
SQL Gen v3 (#1623)
shangyian Dec 29, 2025
291c721
Revamp Filters Section (#1628)
shangyian Dec 31, 2025
5dc36ae
Set up authorization service (#1579)
shangyian Jan 1, 2026
481bb3d
Speed up tests (#1629)
shangyian Jan 2, 2026
cb51cdb
Namespace auto-role creation
shangyian Jan 1, 2026
7c7401a
Node auto-role creation
shangyian Jan 1, 2026
361cf45
Add script for backfilling owner roles
shangyian Jan 1, 2026
4900aef
Add tests
shangyian Jan 1, 2026
d991e35
Fix tests
shangyian Jan 2, 2026
47b8099
Fix tests
shangyian Jan 2, 2026
dd3c1e6
Fix
shangyian Jan 2, 2026
8d27b7d
Only auto-create roles for namespace creation
shangyian Jan 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 8 additions & 3 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
# .coveragerc to control coverage.py
[run]
branch = True
source = datajunction
# omit = bad_file.py
source = dj
omit =
*/dj/sql/parsing/backends/grammar/generated/*
*/dj/sql/parsing/backends/antlr4.py
*/dj/sql/parsing/ast.py

[paths]
source =
src/
dj/
*/site-packages/

[report]
Expand All @@ -26,3 +29,5 @@ exclude_lines =
# Don't complain if non-runnable code isn't run:
if 0:
if __name__ == .__main__.:

if TYPE_CHECKING:
15 changes: 15 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### Summary

<!-- What's this change about? -->

### Test Plan

<!-- How did you test your change? -->

- [ ] PR has an associated issue: #
- [ ] `make check` passes
- [ ] `make test` shows 100% unit test coverage

### Deployment Plan

<!-- Any special instructions around deployment? -->
20 changes: 20 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# .github/release.yml

changelog:
exclude:
labels:
- ignore-for-release
authors:
- octocat
categories:
- title: Breaking Changes 🛠
labels:
- Semver-Major
- breaking-change
- title: Exciting New Features 🎉
labels:
- Semver-Minor
- enhancement
- title: Other Changes
labels:
- "*"
114 changes: 114 additions & 0 deletions .github/workflows/client-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: "Manual : Run client integration tests"
on:
schedule:
- cron: '0 12 * * *'
workflow_dispatch:
jobs:
python-client-integration:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11']
steps:
- uses: actions/checkout@v2
- name: Build and launch DJ demo environment
uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "./docker-compose.yml"
services: |
dj
postgres_metadata
db-migration
db-seed
djqs
djqs-db-migration
djrs-redis
djrs-worker
djrs-beat
dj-trino
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- uses: pdm-project/setup-pdm@v3
name: Setup PDM
with:
python-version: ${{ matrix.python-version }}
architecture: x64
prerelease: true
enable-pep582: true
- name: Install dependencies
run: |
pdm sync -d
cd ./datajunction-clients/python; pdm install -d -G pandas
- name: Python client integration tests
run: cd datajunction-clients/python && make test PYTEST_ARGS="--integration -k test_integration"

javascript-client-integration:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
- name: Build and launch DJ demo environment
uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "./docker-compose.yml"
services: |
dj
postgres_metadata
db-migration
db-seed
djqs
djqs-db-migration
djrs-redis
djrs-worker
djrs-beat
dj-trino
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install Dev Dependencies
run: npm install --only=dev
working-directory: ./datajunction-clients/javascript
- name: Javascript client integration tests
run: npm test
working-directory: ./datajunction-clients/javascript

java-client-integration:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ 17 ]
distribution: [ 'temurin' ]
steps:
- uses: actions/checkout@v3
- name: Build and launch DJ demo environment
uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "./docker-compose.yml"
services: |
dj
postgres_metadata
db-migration
db-seed
djqs
djqs-db-migration
djrs-redis
djrs-worker
djrs-beat
dj-trino
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: ${{ matrix.distribution }}
- name: Build with Gradle
uses: gradle/gradle-build-action@v3
with:
arguments: cleanTest test
build-root-directory: ./datajunction-clients/java

65 changes: 65 additions & 0 deletions .github/workflows/generate-openapi-client.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: "Manual : Generate OpenAPI client"
on:
workflow_dispatch:
jobs:
generate-python-client:
env:
PDM_DEPS: 'urllib3<2'
runs-on: ubuntu-latest
name: Generate Python Client
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Install DJ
run: |
python -m pip install --upgrade pip
pip install .

- name: Generate OpenAPI Spec
run: ./scripts/generate-openapi.py -o openapi.json

- name: Configure Git
run: |
git config user.name "GitHub Actions Bot"
git config user.email "<>"

- name: Commit OpenAPI Spec
run: |
git add openapi.json
git commit -m "Updating OpenAPI Spec"

- name: Generate Python client
uses: openapi-generators/openapitools-generator-action@v1.4.0
with:
generator: python
openapi-file: openapi.json
config-file: ./.github/files/python-client-gen.yml
command-args: --skip-validate-spec

- name: Move client to right directory
run: |
mkdir -p ./openapi/python
cp -r python-client/* ./openapi/python/
rm -rf python-client

- name: Set short sha
id: sha
run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT

- name: Commit generated files
run: |
git add openapi/python/
git commit -m "Update DJ Python client"
git checkout -b ci-pr/python-client-${{ steps.sha.outputs.short_sha }}
git push --set-upstream origin ci-pr/python-client-${{ steps.sha.outputs.short_sha }}

- name: Open a PR
run: gh pr create -B main -H ci-pr/python-client-${{ steps.sha.outputs.short_sha }} --title 'Update Python Client - ${{ steps.sha.outputs.short_sha }}' --body '(This PR was generated by a GitHub action)'
env:
GITHUB_TOKEN: ${{ secrets.REPO_SCOPED_TOKEN }}
61 changes: 61 additions & 0 deletions .github/workflows/generate-openapi-spec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: "Manual : Generate OpenAPI spec"
on:
workflow_dispatch:
jobs:
generate-openapi-spec:
env:
PDM_DEPS: 'urllib3<2'
defaults:
run:
working-directory: ./datajunction-server
runs-on: ubuntu-latest
name: OpenAPI Spec
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 19

- name: Install DJ
run: |
python -m pip install --upgrade pip
pip install .

- name: Generate OpenAPI Spec
run: |
./scripts/generate-openapi.py -o ../openapi.json

- name: Generate Markdown Docs from Spec
run: |
npm install -g widdershins
widdershins ../openapi.json -o ../docs/content/0.1.0/docs/developers/the-datajunction-api-specification.md --code=true --omitBody=true --summary=true

- name: Configure Git
run: |
git config user.name "GitHub Actions Bot"
git config user.email "<>"

- name: Set short sha
id: sha
run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT

- name: Commit OpenAPI Spec
run: |
git add ../openapi.json
git add ../docs/content/0.1.0/docs/developers/the-datajunction-api-specification.md
git commit -m "Updating OpenAPI Spec"
git checkout -b ci-pr/python-client-${{ steps.sha.outputs.short_sha }}
git push --set-upstream origin ci-pr/python-client-${{ steps.sha.outputs.short_sha }}

- name: Open a PR
run: gh pr create -B main -H ci-pr/python-client-${{ steps.sha.outputs.short_sha }} --title 'Update OpenAPI Spec - ${{ steps.sha.outputs.short_sha }}' --body '(This PR was generated by a GitHub action)'
env:
GITHUB_TOKEN: ${{ secrets.REPO_SCOPED_TOKEN }}
Original file line number Diff line number Diff line change
@@ -1,33 +1,32 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python package
name: "@Daily : Run tests with latest dependencies"

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 6 * * *'

jobs:
build:
daily:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, '3.10']
python-version: ['3.10', '3.11.0rc1']

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
- name: Install latest dependencies
run: |
python -m pip install --upgrade pip
pip install -e '.[testing]'
- name: Test with pytest
run: |
pytest --cov=src/datajunction -vv tests/ --doctest-modules src/datajunction
pre-commit run --all-files
pytest --cov-fail-under=100 --cov=dj -vv tests/ --doctest-modules dj --without-integration --without-slow-integration
Loading
Loading