dmart 1.4.4__py3-none-any.whl → 1.4.5__py3-none-any.whl

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.
Files changed (128) hide show
  1. alembic/versions/eb5f1ec65156_adding_user_locked_to_device.py +1 -1
  2. api/managed/utils.py +28 -1
  3. api/user/router.py +13 -1
  4. cxb/client/__init__.py +0 -0
  5. cxb/client/assets/EntryRenderer-25YDhRen.js +32 -0
  6. cxb/{assets/ListView-B8HfFC1U.js → client/assets/ListView-BpAycA2h.js} +1 -1
  7. cxb/{assets/_module-zDAxmd-C.js → client/assets/_module-Bfk8MiCs.js} +1 -1
  8. cxb/{assets/_module-6r9gwq3N.js → client/assets/_module-CEW0D5oI.js} +1 -1
  9. cxb/{assets/_module-BmolODiO.js → client/assets/_module-Dgq0ZVtz.js} +1 -1
  10. cxb/{assets/index-BBKl6sMY.js → client/assets/index-B-eTh-ZX.js} +1 -1
  11. cxb/{assets/index-CbGVqZTZ.js → client/assets/index-C6cPO4op.js} +1 -1
  12. cxb/{assets/index-GPULO0Sr.js → client/assets/index-CTxJ-lDp.js} +1 -1
  13. cxb/{assets/index-CQdrB9zd.js → client/assets/index-Cd-F5j_k.js} +1 -1
  14. cxb/{assets/index-B3fJnvEy.js → client/assets/index-D742rwaM.js} +1 -1
  15. cxb/{assets/index-D1b8schx.js → client/assets/index-ac-Buu_H.js} +2 -2
  16. cxb/{assets/index-wbmvW7YQ.js → client/assets/index-iYkH7C67.js} +1 -1
  17. cxb/{index.html → client/index.html} +1 -1
  18. {dmart-1.4.4.dist-info → dmart-1.4.5.dist-info}/METADATA +1 -1
  19. {dmart-1.4.4.dist-info → dmart-1.4.5.dist-info}/RECORD +127 -126
  20. dmart.py +20 -12
  21. main.py +16 -21
  22. utils/query_policies_helper.py +24 -8
  23. utils/settings.py +2 -2
  24. cxb/assets/EntryRenderer-BcLgNngg.js +0 -32
  25. /cxb/{assets → client/assets}/@codemirror-Rn7_6DkE.js +0 -0
  26. /cxb/{assets → client/assets}/@edraj-CS4NwVbD.js +0 -0
  27. /cxb/{assets → client/assets}/@floating-ui-BwwcF-xh.js +0 -0
  28. /cxb/{assets → client/assets}/@formatjs-yKEsAtjs.js +0 -0
  29. /cxb/{assets → client/assets}/@fortawesome-DRW1UCdr.js +0 -0
  30. /cxb/{assets → client/assets}/@jsonquerylang-laKNoFFq.js +0 -0
  31. /cxb/{assets → client/assets}/@lezer-za4Q-8Ew.js +0 -0
  32. /cxb/{assets → client/assets}/@marijn-DXwl3gUT.js +0 -0
  33. /cxb/{assets → client/assets}/@popperjs-l0sNRNKZ.js +0 -0
  34. /cxb/{assets → client/assets}/@replit--ERk53eB.js +0 -0
  35. /cxb/{assets → client/assets}/@roxi-CGMFK4i8.js +0 -0
  36. /cxb/{assets → client/assets}/@typewriter-cCzskkIv.js +0 -0
  37. /cxb/{assets → client/assets}/@zerodevx-BlBZjKxu.js +0 -0
  38. /cxb/{assets → client/assets}/@zerodevx-CVEpe6WZ.css +0 -0
  39. /cxb/{assets → client/assets}/BreadCrumbLite-DAhOx38v.js +0 -0
  40. /cxb/{assets → client/assets}/EntryRenderer-DXytdFp9.css +0 -0
  41. /cxb/{assets → client/assets}/ListView-U8of-_c-.css +0 -0
  42. /cxb/{assets → client/assets}/Prism--hMplq-p.js +0 -0
  43. /cxb/{assets → client/assets}/Prism-Uh6uStUw.css +0 -0
  44. /cxb/{assets → client/assets}/Table2Cols-BsbwicQm.js +0 -0
  45. /cxb/{assets → client/assets}/_..-BvT6vdHa.css +0 -0
  46. /cxb/{assets → client/assets}/_...404_-fuLH_rX9.js +0 -0
  47. /cxb/{assets → client/assets}/_...fallback_-Ba_NLmAE.js +0 -0
  48. /cxb/{assets → client/assets}/ajv-Cpj98o6Y.js +0 -0
  49. /cxb/{assets → client/assets}/axios-CG2WSiiR.js +0 -0
  50. /cxb/{assets → client/assets}/clsx-B-dksMZM.js +0 -0
  51. /cxb/{assets → client/assets}/codemirror-wrapped-line-indent-DPhKvljI.js +0 -0
  52. /cxb/{assets → client/assets}/compare-C3AjiGFR.js +0 -0
  53. /cxb/{assets → client/assets}/compute-scroll-into-view-Bl8rNFhg.js +0 -0
  54. /cxb/{assets → client/assets}/consolite-DlCuI0F9.js +0 -0
  55. /cxb/{assets → client/assets}/crelt-C8TCjufn.js +0 -0
  56. /cxb/{assets → client/assets}/date-fns-l0sNRNKZ.js +0 -0
  57. /cxb/{assets → client/assets}/deepmerge-rn4rBaHU.js +0 -0
  58. /cxb/{assets → client/assets}/dmart_services-AL6-IdDE.js +0 -0
  59. /cxb/{assets → client/assets}/downloadFile-D08i0YDh.js +0 -0
  60. /cxb/{assets → client/assets}/easy-signal-BiPFIK3O.js +0 -0
  61. /cxb/{assets → client/assets}/esm-env-rsSWfq8L.js +0 -0
  62. /cxb/{assets → client/assets}/export-OF_rTiXu.js +0 -0
  63. /cxb/{assets → client/assets}/fast-deep-equal-l0sNRNKZ.js +0 -0
  64. /cxb/{assets → client/assets}/fast-diff-C-IidNf4.js +0 -0
  65. /cxb/{assets → client/assets}/fast-uri-l0sNRNKZ.js +0 -0
  66. /cxb/{assets → client/assets}/flowbite-svelte-BLvjb-sa.js +0 -0
  67. /cxb/{assets → client/assets}/flowbite-svelte-CD54FDqW.css +0 -0
  68. /cxb/{assets → client/assets}/flowbite-svelte-icons-BI8GVhw_.js +0 -0
  69. /cxb/{assets → client/assets}/github-slugger-CQ4oX9Ud.js +0 -0
  70. /cxb/{assets → client/assets}/global-igKv-1g9.js +0 -0
  71. /cxb/{assets → client/assets}/hookar-BMRD9G9H.js +0 -0
  72. /cxb/{assets → client/assets}/immutable-json-patch-DtRO2E_S.js +0 -0
  73. /cxb/{assets → client/assets}/import-1vE3gBat.js +0 -0
  74. /cxb/{assets → client/assets}/index-BVyxzKtH.js +0 -0
  75. /cxb/{assets → client/assets}/index-BdeNM69f.js +0 -0
  76. /cxb/{assets → client/assets}/index-CC-A1ipE.js +0 -0
  77. /cxb/{assets → client/assets}/index-DTfhnhwd.js +0 -0
  78. /cxb/{assets → client/assets}/index-DdXRK7n9.js +0 -0
  79. /cxb/{assets → client/assets}/index-DtiCmB4o.js +0 -0
  80. /cxb/{assets → client/assets}/index-NBrXBlLA.css +0 -0
  81. /cxb/{assets → client/assets}/info-B986lRiM.js +0 -0
  82. /cxb/{assets → client/assets}/intl-messageformat-Dc5UU-HB.js +0 -0
  83. /cxb/{assets → client/assets}/jmespath-l0sNRNKZ.js +0 -0
  84. /cxb/{assets → client/assets}/json-schema-traverse-l0sNRNKZ.js +0 -0
  85. /cxb/{assets → client/assets}/json-source-map-DRgZidqy.js +0 -0
  86. /cxb/{assets → client/assets}/jsonpath-plus-l0sNRNKZ.js +0 -0
  87. /cxb/{assets → client/assets}/jsonrepair-B30Dx381.js +0 -0
  88. /cxb/{assets → client/assets}/lodash-es-DZVAA2ox.js +0 -0
  89. /cxb/{assets → client/assets}/marked-DKjyhwJX.js +0 -0
  90. /cxb/{assets → client/assets}/marked-gfm-heading-id-U5zO829x.js +0 -0
  91. /cxb/{assets → client/assets}/marked-mangle-CDMeiHC6.js +0 -0
  92. /cxb/{assets → client/assets}/memoize-one-BdPwpGay.js +0 -0
  93. /cxb/{assets → client/assets}/natural-compare-lite-Bg2Xcf-o.js +0 -0
  94. /cxb/{assets → client/assets}/pagination-svelte-D5CyoiE_.js +0 -0
  95. /cxb/{assets → client/assets}/pagination-svelte-v10nAbbM.css +0 -0
  96. /cxb/{assets → client/assets}/plantuml-encoder-C47mzt9T.js +0 -0
  97. /cxb/{assets → client/assets}/prismjs-DTUiLGJu.js +0 -0
  98. /cxb/{assets → client/assets}/profile-BUf-tKMe.js +0 -0
  99. /cxb/{assets → client/assets}/query-CNmXTsgf.js +0 -0
  100. /cxb/{assets → client/assets}/queryHelpers-C9iBWwqe.js +0 -0
  101. /cxb/{assets → client/assets}/scroll-into-view-if-needed-KR58zyjF.js +0 -0
  102. /cxb/{assets → client/assets}/spaces-0oyGvpii.js +0 -0
  103. /cxb/{assets → client/assets}/style-mod-Bs6eFhZE.js +0 -0
  104. /cxb/{assets → client/assets}/svelte-B2XmcTi_.js +0 -0
  105. /cxb/{assets → client/assets}/svelte-awesome-COLlx0DN.css +0 -0
  106. /cxb/{assets → client/assets}/svelte-awesome-DhnMA6Q_.js +0 -0
  107. /cxb/{assets → client/assets}/svelte-datatables-net-CY7LBj6I.js +0 -0
  108. /cxb/{assets → client/assets}/svelte-floating-ui-BlS3sOAQ.js +0 -0
  109. /cxb/{assets → client/assets}/svelte-i18n-CT2KkQaN.js +0 -0
  110. /cxb/{assets → client/assets}/svelte-jsoneditor-BzfX6Usi.css +0 -0
  111. /cxb/{assets → client/assets}/svelte-jsoneditor-CUGSvWId.js +0 -0
  112. /cxb/{assets → client/assets}/svelte-select-CegQKzqH.css +0 -0
  113. /cxb/{assets → client/assets}/svelte-select-CjHAt_85.js +0 -0
  114. /cxb/{assets → client/assets}/tailwind-merge-CJvxXMcu.js +0 -0
  115. /cxb/{assets → client/assets}/tailwind-variants-Cj20BoQ3.js +0 -0
  116. /cxb/{assets → client/assets}/toast-B9WDyfyI.js +0 -0
  117. /cxb/{assets → client/assets}/tslib-pJfR_DrR.js +0 -0
  118. /cxb/{assets → client/assets}/typewriter-editor-DkTVIJdm.js +0 -0
  119. /cxb/{assets → client/assets}/user-DeK_NB5v.js +0 -0
  120. /cxb/{assets → client/assets}/vanilla-picker-l5rcX3cq.js +0 -0
  121. /cxb/{assets → client/assets}/w3c-keyname-Vcq4gwWv.js +0 -0
  122. /cxb/{config.json → client/config.json} +0 -0
  123. /cxb/{config.sample.json → client/config.sample.json} +0 -0
  124. /cxb/{favicon.ico → client/favicon.ico} +0 -0
  125. /cxb/{favicon.png → client/favicon.png} +0 -0
  126. {dmart-1.4.4.dist-info → dmart-1.4.5.dist-info}/WHEEL +0 -0
  127. {dmart-1.4.4.dist-info → dmart-1.4.5.dist-info}/entry_points.txt +0 -0
  128. {dmart-1.4.4.dist-info → dmart-1.4.5.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,8 @@
1
1
  bundler.py,sha256=so8ZJResb1PcOH5vboa_mpFAdYr_T8u8DbbFXd570Lg,1704
2
2
  data_generator.py,sha256=CnE-VHEeX7-lAXtqCgbRqR9WHjTuOgeiZcviYrHAmho,2287
3
- dmart.py,sha256=WugBannLMtYISbGPfK5Lak-2BPm14cFHNyJwkD-26RM,21711
3
+ dmart.py,sha256=1oQXSPgHiVpSPKhKy2EhP2Mmu1ZKPEdKqbXehXUj7MA,21760
4
4
  get_settings.py,sha256=Sbe2WCoiK398E7HY4SNLfDN_GmE8knR4M-YJWF31jcg,153
5
- main.py,sha256=LZYT5wKNECd0xWA0mAZBunoW1y_RtaaUdQOO7xoZcJU,20098
5
+ main.py,sha256=KZGhIL6AnEm5ZAPy4IvhBDpzSTjuodilV7NafNOyhzM,19676
6
6
  migrate.py,sha256=hn1MZoVby_Jjqhc7y3CrLcGD619QmVZv3PONNvO7VKQ,665
7
7
  password_gen.py,sha256=xjx8wi105ZYvhLBBQj7_rugACpxifGXHse6f7YlGXWQ,196
8
8
  run_notification_campaign.py,sha256=ZCvHfaimK4W6q4XuHs2r6wavMGipYYw4aUkNlxmGUd8,2652
@@ -33,20 +33,20 @@ alembic/versions/98ecd6f56f9a_ext_meta_with_owner_group_shortname.py,sha256=S466
33
33
  alembic/versions/9aae9138c4ef_indexing_created_at_updated_at.py,sha256=xrqfJB5cER0PYi1torwkgsbBBjDeeM6dyj4pu-quphk,3662
34
34
  alembic/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  alembic/versions/b53f916b3f6d_json_to_jsonb.py,sha256=LPnevQjbjs0KrwqxYHtGUC6mSBBsUpiCBnwD-FN2x50,24840
36
- alembic/versions/eb5f1ec65156_adding_user_locked_to_device.py,sha256=4U45sfMGIBMcRkwPuFPRc_M9pL2lmOn9kguWjakPAbU,1007
36
+ alembic/versions/eb5f1ec65156_adding_user_locked_to_device.py,sha256=Z9skCus52jg_xV5a7JVYK3IenNlvsdMKIFf1H5POst0,1030
37
37
  alembic/versions/f7a4949eed19_adding_query_policies_to_meta.py,sha256=LA4rx3u0Ei5m4OcSsVYHBsGMeKOJdx8G88yK1kBLFys,2307
38
38
  api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  api/info/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  api/info/router.py,sha256=sQZZor7A-uDzsJX39aqEA7bMZOJ-WTitYeFvVNWfaHw,3938
41
41
  api/managed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  api/managed/router.py,sha256=0xfJ3NXV3XHyG8yWLEECBJt-XppymOxYuMDvQJdO1MI,50865
43
- api/managed/utils.py,sha256=KyDqnGK_ndX2Uy47FmrPHmu6PpZ35IhgjGjA816x-uY,72841
43
+ api/managed/utils.py,sha256=IqgFVHVfNubYOx5i9YoQjVqbUbaveIrqfOfTFvV42BA,74227
44
44
  api/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  api/public/router.py,sha256=TrraWs2LGL_c_JRDbvS8OHm3fJ-ZKF7o4El7wvjV4Mk,24753
46
46
  api/qr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  api/qr/router.py,sha256=Ru7UT_iQS6mFwE1bCPPrusSQfFgoV_u6pjZJ0gArE7g,3870
48
48
  api/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- api/user/router.py,sha256=FwuxM04niGlls-V1MPzHH5A4jHJ0g5NNIFZBE6bJ9Fc,51302
49
+ api/user/router.py,sha256=B59HQPwmwgEfYIlF3_XBNaVBlT4PWqMJiUlUvEN69Vo,51719
50
50
  api/user/service.py,sha256=-iQpcBVPTDiLE_xOf87Ni0oSQDtmALAXEwU4IgSvnJk,8463
51
51
  api/user/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  api/user/model/errors.py,sha256=rhcIcbAIk_7rs5lxdgcsf7SWFGmC9QLsgc67x7S6CKA,299
@@ -56,120 +56,121 @@ config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  config/channels.json,sha256=GepystGi0h_1fuakC_gdIc-YYxyy-a4TI619ygIpyyM,156
57
57
  config/notification.json,sha256=esrOaMUIqfcCHB0Tawp3t4cu7DQAA15X12OS-Gyenb0,361
58
58
  cxb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- cxb/config.json,sha256=WvhCcnJ9-uQ2raPuRBRSGO3iD7Hcaf8Cy49EXUu3KQw,358
60
- cxb/config.sample.json,sha256=fTYLbnTiUdbT_F7rcwI7CLSZ_KoX8EflfuyswRGW2x0,355
61
- cxb/favicon.ico,sha256=CD2FYyYYFNAbH7lGPnM5-2asMmhf-kwitAp99Kh0Wmc,4286
62
- cxb/favicon.png,sha256=gbSWS2UiKrUcy5Jt4gcncDrE5yvfAS00OgYzdNxPxlk,4164
63
- cxb/index.html,sha256=3sbiuSkBz7kEjnUSKvd0nb3Ou4OcwQ0R4PiAPFMGV6w,1622
64
- cxb/assets/@codemirror-Rn7_6DkE.js,sha256=lE9KsREWfszCrh0SBu7CKi3k1OiDzBrIeNO_S5PYRcM,342674
65
- cxb/assets/@edraj-CS4NwVbD.js,sha256=zndm--w-VH0vIAjb2K_MHp5oSC-khzxT8Evj1Dl_2-c,9293
66
- cxb/assets/@floating-ui-BwwcF-xh.js,sha256=K4lsJw_hrkV0vq1uguBTS_GxONRbsFtlBjX4pagaOwg,17129
67
- cxb/assets/@formatjs-yKEsAtjs.js,sha256=bwa2AS3AZNFoUsMafb6wKHA15W9GldY3Kt61ZObX02U,33632
68
- cxb/assets/@fortawesome-DRW1UCdr.js,sha256=XxmEJ7SxFU5lm4fFq2B0t6oAFpvInLfZbwrds7T9kM8,18810
69
- cxb/assets/@jsonquerylang-laKNoFFq.js,sha256=z3m86cWxHoliU-BL-mn-U7ob8B1cV1lzyC-Q7DITo2w,8464
70
- cxb/assets/@lezer-za4Q-8Ew.js,sha256=6kTYHAkwA6DYI_m9taUHq0iqetL5AbmBt43KB0s2Pxg,54631
71
- cxb/assets/@marijn-DXwl3gUT.js,sha256=ONjPnhK4okY91E_qSZTqZuKrYU97xaqPdt5Vde2cgcI,2312
72
- cxb/assets/@popperjs-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
73
- cxb/assets/@replit--ERk53eB.js,sha256=w2wSGTctSSsvB0PLKCbBVJUc4LRqyXbAFfApDw8DrPI,4586
74
- cxb/assets/@roxi-CGMFK4i8.js,sha256=a9e-nCrgDd2UQieodqFb8O1oMsoJ9GGg9pZ2pFG7vSE,49989
75
- cxb/assets/@typewriter-cCzskkIv.js,sha256=kyXdd1BwqHKx7CIB8Up_1AblBsI5ViLxkwjWN-bzcfw,21047
76
- cxb/assets/@zerodevx-BlBZjKxu.js,sha256=u3olMch61ywj4FnmXTSswD1myRH_rHI0dQMCNogCAH0,3883
77
- cxb/assets/@zerodevx-CVEpe6WZ.css,sha256=BkcVDS4u4ljfIXhn6xv4h5Pld01evCI_ebMKCxpK8i4,1976
78
- cxb/assets/BreadCrumbLite-DAhOx38v.js,sha256=_zhm_Sls-tayWdYobXeXCA6uxNSrVsLnAhfyPCTyHH8,1949
79
- cxb/assets/EntryRenderer-BcLgNngg.js,sha256=Z4IaTYKhPWoo53E7FdMisNsxpLt5ansQr0Dekh9T2Wk,64072
80
- cxb/assets/EntryRenderer-DXytdFp9.css,sha256=8J5fh7_foC06CVV6Qk7UYvxXKqTrFOqQ4isbyJ-gABY,496
81
- cxb/assets/ListView-B8HfFC1U.js,sha256=xajxU7JkC08FyFSIAg2f2eCaaSAiAVZ6e_Xm3caEozU,134226
82
- cxb/assets/ListView-U8of-_c-.css,sha256=sPIUBfAsMEwhNqvGgGf_oD09XUR5hT8PWk_OtVEwMgI,1288
83
- cxb/assets/Prism--hMplq-p.js,sha256=wzk_GRGPAnTHIenvdCuh_qqHFCeCKco2OCoFinBUesw,587
84
- cxb/assets/Prism-Uh6uStUw.css,sha256=_wHCkOjMWX__hXLr6MjadiXCj2dBxIQFAhkSLAhHwSA,6165
85
- cxb/assets/Table2Cols-BsbwicQm.js,sha256=w6w37qzrdh3f-8waIUDnwPk0MDa8dJBrrG0Z3A8uAAk,1410
86
- cxb/assets/_..-BvT6vdHa.css,sha256=u-3Pj3A2tQeUNBIItE_qki2Lk4GBISmHRs7957cGP30,275
87
- cxb/assets/_...404_-fuLH_rX9.js,sha256=9oGBvAECq9eMcTAZG-cznYAXcM2WaBu4G5wPoTt53uY,684
88
- cxb/assets/_...fallback_-Ba_NLmAE.js,sha256=leHVZijlVjIaqzYUCCTIFDFrFsVcS2NsxgVTW58OhBg,123
89
- cxb/assets/_module-6r9gwq3N.js,sha256=OCQIap58wd0Cd9Dl0MAx1c4M-zxqL4QoAFM1tINuokE,7899
90
- cxb/assets/_module-BmolODiO.js,sha256=9KHri9x-PxSRYvCsPwgqICBPirZOf_-U8HmUUBkvN90,11227
91
- cxb/assets/_module-zDAxmd-C.js,sha256=mOW7e0UWvXDDbura9k-h-T3hYhxYm0skzTZoekwxw48,3793
92
- cxb/assets/ajv-Cpj98o6Y.js,sha256=liU3m63UhJYQ3-bBVFPN8MAHEmTJDu8Xcwf6wJTSqmw,236
93
- cxb/assets/axios-CG2WSiiR.js,sha256=URKIJZfepkPrQwK1aPXLhg4f5cGLhk6c0tVUS5eFFB0,36287
94
- cxb/assets/clsx-B-dksMZM.js,sha256=x7hDvCu6RhEQ5d35FtnEAYCjg4BM5zZYcw7EblGW0v0,374
95
- cxb/assets/codemirror-wrapped-line-indent-DPhKvljI.js,sha256=kn9kuXsyPkjimYpjkc3KyXSOral3p4v3gbQw5SbNMMY,1591
96
- cxb/assets/compare-C3AjiGFR.js,sha256=L2wU3DxEeQq-gheMWChs4IX2Las1HLWxAF4HWcpvSZo,8744
97
- cxb/assets/compute-scroll-into-view-Bl8rNFhg.js,sha256=5DonV_EZ7Iwbtu8sT17P3aoourk-WRBAdlAsaNh_mDA,2943
98
- cxb/assets/consolite-DlCuI0F9.js,sha256=oSh3Gbte0Iogkiczrf8Ei0pWKu75WAakY33Z9Kix7GA,3079
99
- cxb/assets/crelt-C8TCjufn.js,sha256=v5UZ6-BdG7hN-EZniG3z0-gaMx1rOdzsjqIiNrRUp8s,623
100
- cxb/assets/date-fns-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
101
- cxb/assets/deepmerge-rn4rBaHU.js,sha256=mq9vJj-3sJY_n_VL9dyNkcgD9eD-F7d0vuka-mPJUnY,1675
102
- cxb/assets/dmart_services-AL6-IdDE.js,sha256=RyyNwg7hpN4eTONXb4NOoQ9QTDx5meSSuSMprYkk7m8,1783
103
- cxb/assets/downloadFile-D08i0YDh.js,sha256=pdNEGMBhyU01Y_vVX1OEzxWC7Ktg0T2vwW6VfdYjf0Q,247
104
- cxb/assets/easy-signal-BiPFIK3O.js,sha256=2J65d_BBehKW7Hb64qwX3iCZDes2LsAjYlsRHuJTEHc,108
105
- cxb/assets/esm-env-rsSWfq8L.js,sha256=scv4WZ555272218bU3lLaHkEQ7dl-wFrvbn0MlQAqKA,27
106
- cxb/assets/export-OF_rTiXu.js,sha256=VjmlbOOhE2eGtbPQSbaz395EFtoMJLThpTtFze7Hcf8,4146
107
- cxb/assets/fast-deep-equal-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
108
- cxb/assets/fast-diff-C-IidNf4.js,sha256=3QejtPCU1VzP2FM7RY5yFvp4QseK438MIrhUa33u7ko,7785
109
- cxb/assets/fast-uri-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
110
- cxb/assets/flowbite-svelte-BLvjb-sa.js,sha256=vRreerVWabyzTubQPDBuxDvgV7M8RlDWIKocxzMQiQ0,245889
111
- cxb/assets/flowbite-svelte-CD54FDqW.css,sha256=n1HDAUq6e-IogOmdk3gYW4E8TK-yE3Gh8wgp5FdOn90,63
112
- cxb/assets/flowbite-svelte-icons-BI8GVhw_.js,sha256=cp8Lg64HqWR8_4XS3q4xOAV3hztu4BsJPBhgysMRTtU,80766
113
- cxb/assets/github-slugger-CQ4oX9Ud.js,sha256=1sye3A-ozGOvdFYnerReUKpwwAeCjBilw-ZMIbxgRAI,8573
114
- cxb/assets/global-igKv-1g9.js,sha256=9AnwcOz6vUYKXcaBuqOCag8rxRCSVDwmIHG8irKBIUM,347
115
- cxb/assets/hookar-BMRD9G9H.js,sha256=_Dzjp-0cmaseuT5CcILxOLX5a4QsMWHgS3bcAC5oH64,519
116
- cxb/assets/immutable-json-patch-DtRO2E_S.js,sha256=I1LmEOX8J21wFhrrAtIV6svx32i-j5TJpso1CpzEEik,5600
117
- cxb/assets/import-1vE3gBat.js,sha256=9T_SMx38Y7DXPtMi72n0LBsPbMPvlkQquZ3zOEp7zQk,3106
118
- cxb/assets/index-B3fJnvEy.js,sha256=nOCVl-BZV647ppmVk07I25GlU8F_xC1uxVKrzOwf_MI,3381
119
- cxb/assets/index-BBKl6sMY.js,sha256=vTgoVbXU3b1lMYGOYa_Y_aHg9Q7gdHWHSksccIqd_18,9825
120
- cxb/assets/index-BVyxzKtH.js,sha256=BoEJccSRRZecpdEomQSlNGAVVp6CEEkuz1xUVWXKORk,6015
121
- cxb/assets/index-BdeNM69f.js,sha256=gkNccueAx5s9vUKp3ZE31Xg2wL4xfipeQ73y27N-61c,2035
122
- cxb/assets/index-CC-A1ipE.js,sha256=dfVwbYUl2GzaPaRcm9bvcm3c0bi8WQj9RsSYaZneH2w,412
123
- cxb/assets/index-CQdrB9zd.js,sha256=Ku7z8swE5XTelq0ryq4jVKRRdJRPMq471xDrDa_Yqsg,3250
124
- cxb/assets/index-CbGVqZTZ.js,sha256=Kg17LADnn5rWUs6fQXyrqsa5itV5TIrI1tEsRfdIYwQ,3621
125
- cxb/assets/index-D1b8schx.js,sha256=uoriaogWfoNfFZT_yx-NJtu1dZiuDKthfH1PeSyfq0M,33755
126
- cxb/assets/index-DTfhnhwd.js,sha256=YKLsTYhS7k2f1QwXRCyYdRn2vB_mwzsqinT1of7dcnc,354
127
- cxb/assets/index-DdXRK7n9.js,sha256=UkW9YuMZ0_hZ3q9llWmO0UpkP4qNmXYMl1lLqmmZwQE,4047
128
- cxb/assets/index-DtiCmB4o.js,sha256=nv7dVMmo1vex5ih5mMC9MNLLMGuCmy_ktOa1j4rXQ0M,1976
129
- cxb/assets/index-GPULO0Sr.js,sha256=H6AmO7xnmvZy8KhGsaQUdW8Fhs0HCkGYt9CTEBeWs0w,2821
130
- cxb/assets/index-NBrXBlLA.css,sha256=2mHbGZHluiEeZiiiubPFD2dGd6eL59WUa2qV8eSQqXs,376846
131
- cxb/assets/index-wbmvW7YQ.js,sha256=7DHFlkmakRoZcbVuVsZCZ9PDDRWuztTEAB0HQzWN4_g,3498
132
- cxb/assets/info-B986lRiM.js,sha256=28efQ_ywUNQ5Od__oXFskmVy9ZWR48DgnuNs1bvoqlg,2226
133
- cxb/assets/intl-messageformat-Dc5UU-HB.js,sha256=-5X21qzJD7TmWO2-DWDdxF8tql-Xdcq2QoUkBY54G00,6630
134
- cxb/assets/jmespath-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
135
- cxb/assets/json-schema-traverse-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
136
- cxb/assets/json-source-map-DRgZidqy.js,sha256=2MWN6aGupPEd3Uk0Nki7JeURX8opsBCdC36BuxJRakI,4281
137
- cxb/assets/jsonpath-plus-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
138
- cxb/assets/jsonrepair-B30Dx381.js,sha256=HddBNX0dIMqRHTFT0VtfF33a4JgvMp9iCDYFWs9YGZs,6639
139
- cxb/assets/lodash-es-DZVAA2ox.js,sha256=BvwNIFkh9lENGWunPRiHX9XxWJXVp17TiHEkaLLRpn0,25088
140
- cxb/assets/marked-DKjyhwJX.js,sha256=qbydVfDQQTzCnxUXxgsroNwJZCzaf9QONfBPKmyOeEA,39673
141
- cxb/assets/marked-gfm-heading-id-U5zO829x.js,sha256=237Q2hAeDNj3MAUeB3oQUy8Ov7oOYvvYprp2mt-HOU4,725
142
- cxb/assets/marked-mangle-CDMeiHC6.js,sha256=WGaJNWouxQQExqwUZC5Dw3XvdVWQYHvEWXBtKXDDFHY,420
143
- cxb/assets/memoize-one-BdPwpGay.js,sha256=jk5sfhm07ZMGDqLT1jqe27nsey2DIPbINp8U4bgP_QI,522
144
- cxb/assets/natural-compare-lite-Bg2Xcf-o.js,sha256=9R5eHr3vTw4igb95odBTQ39r5ae-JGESqt0JQ27a1xc,808
145
- cxb/assets/pagination-svelte-D5CyoiE_.js,sha256=-ppq9Dg-3wFdxmloAwaxmU4jU1HaypcXHo4OS6Dkk4s,4380
146
- cxb/assets/pagination-svelte-v10nAbbM.css,sha256=7FtgdLOx-Wq4-TyF8CDDro2NF6jJwaNxbP3VI4g5uYI,3585
147
- cxb/assets/plantuml-encoder-C47mzt9T.js,sha256=dpoe9r1lJmN-rbN-TAv2JnFgdWrFqExHUKs4JspxM7M,53041
148
- cxb/assets/prismjs-DTUiLGJu.js,sha256=Nd_QmO8yEdbvZkliAEJjqktd3pFsLRRwJQt-Sd_pqXo,25847
149
- cxb/assets/profile-BUf-tKMe.js,sha256=Ye_7fF8wYm6hR5u6KYRV1hMdweqW2q6_ZGpsNhrF1Y8,6527
150
- cxb/assets/query-CNmXTsgf.js,sha256=iUE9_KIbABOdzswc4e8mcUs_PbDTo9V8nOmil0K7JSA,11363
151
- cxb/assets/queryHelpers-C9iBWwqe.js,sha256=SkgdFEtjdTaD1cMVvKsdf5IQaMNUz74nTcj-pVDhQuw,501
152
- cxb/assets/scroll-into-view-if-needed-KR58zyjF.js,sha256=Dw5KNhvWXAltb_qIh3e_f5ud5CQSxqHGHGlMf7BFGXc,897
153
- cxb/assets/spaces-0oyGvpii.js,sha256=l9GvTbt-jiMyG8RGsCe3zAaYad0vQAhPjSBtdEp6htg,73
154
- cxb/assets/style-mod-Bs6eFhZE.js,sha256=2P-Jrkn335imR7dWZ-lR1mVAhef16p050Fb80pVApVA,2194
155
- cxb/assets/svelte-B2XmcTi_.js,sha256=bQk6kPr592D2TiwuMX7a6lt9YJB8UYeQMzvAtsxaP_s,61082
156
- cxb/assets/svelte-awesome-COLlx0DN.css,sha256=5T3C0hIplhoXaGU3PJ-KPpPgB0uJTXN4n4eA21ChO3Y,448
157
- cxb/assets/svelte-awesome-DhnMA6Q_.js,sha256=FEokMqwJ5WAhy_a2QNscieYkpS4mhAtR_NOPYzd7lD0,3858
158
- cxb/assets/svelte-datatables-net-CY7LBj6I.js,sha256=PQZwUZsx3JjhI2W2Mwvsr4abTvEkbVl3osr3VpO-enk,4715
159
- cxb/assets/svelte-floating-ui-BlS3sOAQ.js,sha256=lboSaEhc2oCTFSD5fkUaHSlxwtH8SGd4w3iLajcEySU,733
160
- cxb/assets/svelte-i18n-CT2KkQaN.js,sha256=_LIkJDtwxRXQXVUvWxdc5z2BLNb4SwzSNyDE6lKWT3Q,7437
161
- cxb/assets/svelte-jsoneditor-BzfX6Usi.css,sha256=5nvNv27PvUKYYgbHA1QpynYgdEoPCMoRzUlN8Ni2Fko,95514
162
- cxb/assets/svelte-jsoneditor-CUGSvWId.js,sha256=IwxIH_L_eG1NdCYCtrkcEysxGflo66lL-SBa1cCYGMA,238060
163
- cxb/assets/svelte-select-CegQKzqH.css,sha256=RW2XmPXMyUSPG672lEcT7Nhz1gaLfzTqoQjFG6Jb4zI,10652
164
- cxb/assets/svelte-select-CjHAt_85.js,sha256=17YwjNfrW5d9x6GmOaHibTPVB_PZ7WBu9V_27MGcLrw,17176
165
- cxb/assets/tailwind-merge-CJvxXMcu.js,sha256=PhlMjcf4Fs_9tgXtY97DfhD4crCI-S_zuZJACPZ4Q2E,25988
166
- cxb/assets/tailwind-variants-Cj20BoQ3.js,sha256=Eofe15eg2u8pkjxy3tDaXMpq2etBq0Yzc15kSig_xEk,5489
167
- cxb/assets/toast-B9WDyfyI.js,sha256=eJ0gQdgl4vAsHpcBUlXOPUrbNbk9Ii9Va5CdG0GRDGA,248
168
- cxb/assets/tslib-pJfR_DrR.js,sha256=Kke-aujRqfYw2Ld4KusSVmRen6Lw2l8VKoYr2OW79mY,1231
169
- cxb/assets/typewriter-editor-DkTVIJdm.js,sha256=YlETGGigYqnJdwnP4VkV7YAIoblWivupZuAHxu0KeDQ,52323
170
- cxb/assets/user-DeK_NB5v.js,sha256=6VYTgmWgl7pVRgW6dD0gGKPKvvKnCEqpKy3ZlLOrQwQ,1253
171
- cxb/assets/vanilla-picker-l5rcX3cq.js,sha256=B8KWTpJINp3oIXirDlwC683EYHZUPW76lAnHmeUPqEY,18814
172
- cxb/assets/w3c-keyname-Vcq4gwWv.js,sha256=7NTN0-UTH-BpoJQqdC43Ec4Cdwj4Wv8viGg4W3EBqx8,1494
59
+ cxb/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ cxb/client/config.json,sha256=WvhCcnJ9-uQ2raPuRBRSGO3iD7Hcaf8Cy49EXUu3KQw,358
61
+ cxb/client/config.sample.json,sha256=fTYLbnTiUdbT_F7rcwI7CLSZ_KoX8EflfuyswRGW2x0,355
62
+ cxb/client/favicon.ico,sha256=CD2FYyYYFNAbH7lGPnM5-2asMmhf-kwitAp99Kh0Wmc,4286
63
+ cxb/client/favicon.png,sha256=gbSWS2UiKrUcy5Jt4gcncDrE5yvfAS00OgYzdNxPxlk,4164
64
+ cxb/client/index.html,sha256=J_7uaGXP02rNLSvJ4Poyr5G7TZt8W0Br-EWQlYEeXi0,1622
65
+ cxb/client/assets/@codemirror-Rn7_6DkE.js,sha256=lE9KsREWfszCrh0SBu7CKi3k1OiDzBrIeNO_S5PYRcM,342674
66
+ cxb/client/assets/@edraj-CS4NwVbD.js,sha256=zndm--w-VH0vIAjb2K_MHp5oSC-khzxT8Evj1Dl_2-c,9293
67
+ cxb/client/assets/@floating-ui-BwwcF-xh.js,sha256=K4lsJw_hrkV0vq1uguBTS_GxONRbsFtlBjX4pagaOwg,17129
68
+ cxb/client/assets/@formatjs-yKEsAtjs.js,sha256=bwa2AS3AZNFoUsMafb6wKHA15W9GldY3Kt61ZObX02U,33632
69
+ cxb/client/assets/@fortawesome-DRW1UCdr.js,sha256=XxmEJ7SxFU5lm4fFq2B0t6oAFpvInLfZbwrds7T9kM8,18810
70
+ cxb/client/assets/@jsonquerylang-laKNoFFq.js,sha256=z3m86cWxHoliU-BL-mn-U7ob8B1cV1lzyC-Q7DITo2w,8464
71
+ cxb/client/assets/@lezer-za4Q-8Ew.js,sha256=6kTYHAkwA6DYI_m9taUHq0iqetL5AbmBt43KB0s2Pxg,54631
72
+ cxb/client/assets/@marijn-DXwl3gUT.js,sha256=ONjPnhK4okY91E_qSZTqZuKrYU97xaqPdt5Vde2cgcI,2312
73
+ cxb/client/assets/@popperjs-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
74
+ cxb/client/assets/@replit--ERk53eB.js,sha256=w2wSGTctSSsvB0PLKCbBVJUc4LRqyXbAFfApDw8DrPI,4586
75
+ cxb/client/assets/@roxi-CGMFK4i8.js,sha256=a9e-nCrgDd2UQieodqFb8O1oMsoJ9GGg9pZ2pFG7vSE,49989
76
+ cxb/client/assets/@typewriter-cCzskkIv.js,sha256=kyXdd1BwqHKx7CIB8Up_1AblBsI5ViLxkwjWN-bzcfw,21047
77
+ cxb/client/assets/@zerodevx-BlBZjKxu.js,sha256=u3olMch61ywj4FnmXTSswD1myRH_rHI0dQMCNogCAH0,3883
78
+ cxb/client/assets/@zerodevx-CVEpe6WZ.css,sha256=BkcVDS4u4ljfIXhn6xv4h5Pld01evCI_ebMKCxpK8i4,1976
79
+ cxb/client/assets/BreadCrumbLite-DAhOx38v.js,sha256=_zhm_Sls-tayWdYobXeXCA6uxNSrVsLnAhfyPCTyHH8,1949
80
+ cxb/client/assets/EntryRenderer-25YDhRen.js,sha256=iUbBmlD02BkiMNjS68jt8sHtzVnwAsuvadVDXBwVBS8,64047
81
+ cxb/client/assets/EntryRenderer-DXytdFp9.css,sha256=8J5fh7_foC06CVV6Qk7UYvxXKqTrFOqQ4isbyJ-gABY,496
82
+ cxb/client/assets/ListView-BpAycA2h.js,sha256=MKEI90xQ07Cmyo6KuJLR7yxOi5CQt0cpU7kCwTMxtVM,134226
83
+ cxb/client/assets/ListView-U8of-_c-.css,sha256=sPIUBfAsMEwhNqvGgGf_oD09XUR5hT8PWk_OtVEwMgI,1288
84
+ cxb/client/assets/Prism--hMplq-p.js,sha256=wzk_GRGPAnTHIenvdCuh_qqHFCeCKco2OCoFinBUesw,587
85
+ cxb/client/assets/Prism-Uh6uStUw.css,sha256=_wHCkOjMWX__hXLr6MjadiXCj2dBxIQFAhkSLAhHwSA,6165
86
+ cxb/client/assets/Table2Cols-BsbwicQm.js,sha256=w6w37qzrdh3f-8waIUDnwPk0MDa8dJBrrG0Z3A8uAAk,1410
87
+ cxb/client/assets/_..-BvT6vdHa.css,sha256=u-3Pj3A2tQeUNBIItE_qki2Lk4GBISmHRs7957cGP30,275
88
+ cxb/client/assets/_...404_-fuLH_rX9.js,sha256=9oGBvAECq9eMcTAZG-cznYAXcM2WaBu4G5wPoTt53uY,684
89
+ cxb/client/assets/_...fallback_-Ba_NLmAE.js,sha256=leHVZijlVjIaqzYUCCTIFDFrFsVcS2NsxgVTW58OhBg,123
90
+ cxb/client/assets/_module-Bfk8MiCs.js,sha256=Zh6tAXTmBj4kvrs5ojFFC6N45pasJviz6lHz5TEy3as,3793
91
+ cxb/client/assets/_module-CEW0D5oI.js,sha256=B2uyRT7DxaK10V58YhhQNZtV-8bkmV9EbAK6WZhHwgw,7899
92
+ cxb/client/assets/_module-Dgq0ZVtz.js,sha256=-_CkmFKVsif9U2B0uVLfmXuDp3GJS2iY4sAP1y_2rvQ,11226
93
+ cxb/client/assets/ajv-Cpj98o6Y.js,sha256=liU3m63UhJYQ3-bBVFPN8MAHEmTJDu8Xcwf6wJTSqmw,236
94
+ cxb/client/assets/axios-CG2WSiiR.js,sha256=URKIJZfepkPrQwK1aPXLhg4f5cGLhk6c0tVUS5eFFB0,36287
95
+ cxb/client/assets/clsx-B-dksMZM.js,sha256=x7hDvCu6RhEQ5d35FtnEAYCjg4BM5zZYcw7EblGW0v0,374
96
+ cxb/client/assets/codemirror-wrapped-line-indent-DPhKvljI.js,sha256=kn9kuXsyPkjimYpjkc3KyXSOral3p4v3gbQw5SbNMMY,1591
97
+ cxb/client/assets/compare-C3AjiGFR.js,sha256=L2wU3DxEeQq-gheMWChs4IX2Las1HLWxAF4HWcpvSZo,8744
98
+ cxb/client/assets/compute-scroll-into-view-Bl8rNFhg.js,sha256=5DonV_EZ7Iwbtu8sT17P3aoourk-WRBAdlAsaNh_mDA,2943
99
+ cxb/client/assets/consolite-DlCuI0F9.js,sha256=oSh3Gbte0Iogkiczrf8Ei0pWKu75WAakY33Z9Kix7GA,3079
100
+ cxb/client/assets/crelt-C8TCjufn.js,sha256=v5UZ6-BdG7hN-EZniG3z0-gaMx1rOdzsjqIiNrRUp8s,623
101
+ cxb/client/assets/date-fns-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
102
+ cxb/client/assets/deepmerge-rn4rBaHU.js,sha256=mq9vJj-3sJY_n_VL9dyNkcgD9eD-F7d0vuka-mPJUnY,1675
103
+ cxb/client/assets/dmart_services-AL6-IdDE.js,sha256=RyyNwg7hpN4eTONXb4NOoQ9QTDx5meSSuSMprYkk7m8,1783
104
+ cxb/client/assets/downloadFile-D08i0YDh.js,sha256=pdNEGMBhyU01Y_vVX1OEzxWC7Ktg0T2vwW6VfdYjf0Q,247
105
+ cxb/client/assets/easy-signal-BiPFIK3O.js,sha256=2J65d_BBehKW7Hb64qwX3iCZDes2LsAjYlsRHuJTEHc,108
106
+ cxb/client/assets/esm-env-rsSWfq8L.js,sha256=scv4WZ555272218bU3lLaHkEQ7dl-wFrvbn0MlQAqKA,27
107
+ cxb/client/assets/export-OF_rTiXu.js,sha256=VjmlbOOhE2eGtbPQSbaz395EFtoMJLThpTtFze7Hcf8,4146
108
+ cxb/client/assets/fast-deep-equal-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
109
+ cxb/client/assets/fast-diff-C-IidNf4.js,sha256=3QejtPCU1VzP2FM7RY5yFvp4QseK438MIrhUa33u7ko,7785
110
+ cxb/client/assets/fast-uri-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
111
+ cxb/client/assets/flowbite-svelte-BLvjb-sa.js,sha256=vRreerVWabyzTubQPDBuxDvgV7M8RlDWIKocxzMQiQ0,245889
112
+ cxb/client/assets/flowbite-svelte-CD54FDqW.css,sha256=n1HDAUq6e-IogOmdk3gYW4E8TK-yE3Gh8wgp5FdOn90,63
113
+ cxb/client/assets/flowbite-svelte-icons-BI8GVhw_.js,sha256=cp8Lg64HqWR8_4XS3q4xOAV3hztu4BsJPBhgysMRTtU,80766
114
+ cxb/client/assets/github-slugger-CQ4oX9Ud.js,sha256=1sye3A-ozGOvdFYnerReUKpwwAeCjBilw-ZMIbxgRAI,8573
115
+ cxb/client/assets/global-igKv-1g9.js,sha256=9AnwcOz6vUYKXcaBuqOCag8rxRCSVDwmIHG8irKBIUM,347
116
+ cxb/client/assets/hookar-BMRD9G9H.js,sha256=_Dzjp-0cmaseuT5CcILxOLX5a4QsMWHgS3bcAC5oH64,519
117
+ cxb/client/assets/immutable-json-patch-DtRO2E_S.js,sha256=I1LmEOX8J21wFhrrAtIV6svx32i-j5TJpso1CpzEEik,5600
118
+ cxb/client/assets/import-1vE3gBat.js,sha256=9T_SMx38Y7DXPtMi72n0LBsPbMPvlkQquZ3zOEp7zQk,3106
119
+ cxb/client/assets/index-B-eTh-ZX.js,sha256=SoqSuq7zLpebuTstKO5Tfwz3fNEnbgzdMHJnLV8RCHQ,9824
120
+ cxb/client/assets/index-BVyxzKtH.js,sha256=BoEJccSRRZecpdEomQSlNGAVVp6CEEkuz1xUVWXKORk,6015
121
+ cxb/client/assets/index-BdeNM69f.js,sha256=gkNccueAx5s9vUKp3ZE31Xg2wL4xfipeQ73y27N-61c,2035
122
+ cxb/client/assets/index-C6cPO4op.js,sha256=o_KVUiHGFlCJN96xkRu9orzLdrYUVTn_nJy9M0SQKrM,3621
123
+ cxb/client/assets/index-CC-A1ipE.js,sha256=dfVwbYUl2GzaPaRcm9bvcm3c0bi8WQj9RsSYaZneH2w,412
124
+ cxb/client/assets/index-CTxJ-lDp.js,sha256=CMXV0Oe3QRi4ITetl3tspH_h_4Wv8cG17-3V0PSN-2s,2821
125
+ cxb/client/assets/index-Cd-F5j_k.js,sha256=3a3gWjjYVTv16DAeDvUZPwFIqSXU13aVefFTWGLUx7E,3250
126
+ cxb/client/assets/index-D742rwaM.js,sha256=ivvY4EhQ0-ADpy1fu8TQtZuS6Qe707-SWWRWY-FWYJg,3381
127
+ cxb/client/assets/index-DTfhnhwd.js,sha256=YKLsTYhS7k2f1QwXRCyYdRn2vB_mwzsqinT1of7dcnc,354
128
+ cxb/client/assets/index-DdXRK7n9.js,sha256=UkW9YuMZ0_hZ3q9llWmO0UpkP4qNmXYMl1lLqmmZwQE,4047
129
+ cxb/client/assets/index-DtiCmB4o.js,sha256=nv7dVMmo1vex5ih5mMC9MNLLMGuCmy_ktOa1j4rXQ0M,1976
130
+ cxb/client/assets/index-NBrXBlLA.css,sha256=2mHbGZHluiEeZiiiubPFD2dGd6eL59WUa2qV8eSQqXs,376846
131
+ cxb/client/assets/index-ac-Buu_H.js,sha256=3tSelUaTXqOQbjivh39F9R8AoTY-PvFD4uGbFU_eEeQ,33755
132
+ cxb/client/assets/index-iYkH7C67.js,sha256=BFI8j9CqWYj8gKyfGZZp7dIrqoA7-Bnd9Za1-mTiLG0,3498
133
+ cxb/client/assets/info-B986lRiM.js,sha256=28efQ_ywUNQ5Od__oXFskmVy9ZWR48DgnuNs1bvoqlg,2226
134
+ cxb/client/assets/intl-messageformat-Dc5UU-HB.js,sha256=-5X21qzJD7TmWO2-DWDdxF8tql-Xdcq2QoUkBY54G00,6630
135
+ cxb/client/assets/jmespath-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
136
+ cxb/client/assets/json-schema-traverse-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
137
+ cxb/client/assets/json-source-map-DRgZidqy.js,sha256=2MWN6aGupPEd3Uk0Nki7JeURX8opsBCdC36BuxJRakI,4281
138
+ cxb/client/assets/jsonpath-plus-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
139
+ cxb/client/assets/jsonrepair-B30Dx381.js,sha256=HddBNX0dIMqRHTFT0VtfF33a4JgvMp9iCDYFWs9YGZs,6639
140
+ cxb/client/assets/lodash-es-DZVAA2ox.js,sha256=BvwNIFkh9lENGWunPRiHX9XxWJXVp17TiHEkaLLRpn0,25088
141
+ cxb/client/assets/marked-DKjyhwJX.js,sha256=qbydVfDQQTzCnxUXxgsroNwJZCzaf9QONfBPKmyOeEA,39673
142
+ cxb/client/assets/marked-gfm-heading-id-U5zO829x.js,sha256=237Q2hAeDNj3MAUeB3oQUy8Ov7oOYvvYprp2mt-HOU4,725
143
+ cxb/client/assets/marked-mangle-CDMeiHC6.js,sha256=WGaJNWouxQQExqwUZC5Dw3XvdVWQYHvEWXBtKXDDFHY,420
144
+ cxb/client/assets/memoize-one-BdPwpGay.js,sha256=jk5sfhm07ZMGDqLT1jqe27nsey2DIPbINp8U4bgP_QI,522
145
+ cxb/client/assets/natural-compare-lite-Bg2Xcf-o.js,sha256=9R5eHr3vTw4igb95odBTQ39r5ae-JGESqt0JQ27a1xc,808
146
+ cxb/client/assets/pagination-svelte-D5CyoiE_.js,sha256=-ppq9Dg-3wFdxmloAwaxmU4jU1HaypcXHo4OS6Dkk4s,4380
147
+ cxb/client/assets/pagination-svelte-v10nAbbM.css,sha256=7FtgdLOx-Wq4-TyF8CDDro2NF6jJwaNxbP3VI4g5uYI,3585
148
+ cxb/client/assets/plantuml-encoder-C47mzt9T.js,sha256=dpoe9r1lJmN-rbN-TAv2JnFgdWrFqExHUKs4JspxM7M,53041
149
+ cxb/client/assets/prismjs-DTUiLGJu.js,sha256=Nd_QmO8yEdbvZkliAEJjqktd3pFsLRRwJQt-Sd_pqXo,25847
150
+ cxb/client/assets/profile-BUf-tKMe.js,sha256=Ye_7fF8wYm6hR5u6KYRV1hMdweqW2q6_ZGpsNhrF1Y8,6527
151
+ cxb/client/assets/query-CNmXTsgf.js,sha256=iUE9_KIbABOdzswc4e8mcUs_PbDTo9V8nOmil0K7JSA,11363
152
+ cxb/client/assets/queryHelpers-C9iBWwqe.js,sha256=SkgdFEtjdTaD1cMVvKsdf5IQaMNUz74nTcj-pVDhQuw,501
153
+ cxb/client/assets/scroll-into-view-if-needed-KR58zyjF.js,sha256=Dw5KNhvWXAltb_qIh3e_f5ud5CQSxqHGHGlMf7BFGXc,897
154
+ cxb/client/assets/spaces-0oyGvpii.js,sha256=l9GvTbt-jiMyG8RGsCe3zAaYad0vQAhPjSBtdEp6htg,73
155
+ cxb/client/assets/style-mod-Bs6eFhZE.js,sha256=2P-Jrkn335imR7dWZ-lR1mVAhef16p050Fb80pVApVA,2194
156
+ cxb/client/assets/svelte-B2XmcTi_.js,sha256=bQk6kPr592D2TiwuMX7a6lt9YJB8UYeQMzvAtsxaP_s,61082
157
+ cxb/client/assets/svelte-awesome-COLlx0DN.css,sha256=5T3C0hIplhoXaGU3PJ-KPpPgB0uJTXN4n4eA21ChO3Y,448
158
+ cxb/client/assets/svelte-awesome-DhnMA6Q_.js,sha256=FEokMqwJ5WAhy_a2QNscieYkpS4mhAtR_NOPYzd7lD0,3858
159
+ cxb/client/assets/svelte-datatables-net-CY7LBj6I.js,sha256=PQZwUZsx3JjhI2W2Mwvsr4abTvEkbVl3osr3VpO-enk,4715
160
+ cxb/client/assets/svelte-floating-ui-BlS3sOAQ.js,sha256=lboSaEhc2oCTFSD5fkUaHSlxwtH8SGd4w3iLajcEySU,733
161
+ cxb/client/assets/svelte-i18n-CT2KkQaN.js,sha256=_LIkJDtwxRXQXVUvWxdc5z2BLNb4SwzSNyDE6lKWT3Q,7437
162
+ cxb/client/assets/svelte-jsoneditor-BzfX6Usi.css,sha256=5nvNv27PvUKYYgbHA1QpynYgdEoPCMoRzUlN8Ni2Fko,95514
163
+ cxb/client/assets/svelte-jsoneditor-CUGSvWId.js,sha256=IwxIH_L_eG1NdCYCtrkcEysxGflo66lL-SBa1cCYGMA,238060
164
+ cxb/client/assets/svelte-select-CegQKzqH.css,sha256=RW2XmPXMyUSPG672lEcT7Nhz1gaLfzTqoQjFG6Jb4zI,10652
165
+ cxb/client/assets/svelte-select-CjHAt_85.js,sha256=17YwjNfrW5d9x6GmOaHibTPVB_PZ7WBu9V_27MGcLrw,17176
166
+ cxb/client/assets/tailwind-merge-CJvxXMcu.js,sha256=PhlMjcf4Fs_9tgXtY97DfhD4crCI-S_zuZJACPZ4Q2E,25988
167
+ cxb/client/assets/tailwind-variants-Cj20BoQ3.js,sha256=Eofe15eg2u8pkjxy3tDaXMpq2etBq0Yzc15kSig_xEk,5489
168
+ cxb/client/assets/toast-B9WDyfyI.js,sha256=eJ0gQdgl4vAsHpcBUlXOPUrbNbk9Ii9Va5CdG0GRDGA,248
169
+ cxb/client/assets/tslib-pJfR_DrR.js,sha256=Kke-aujRqfYw2Ld4KusSVmRen6Lw2l8VKoYr2OW79mY,1231
170
+ cxb/client/assets/typewriter-editor-DkTVIJdm.js,sha256=YlETGGigYqnJdwnP4VkV7YAIoblWivupZuAHxu0KeDQ,52323
171
+ cxb/client/assets/user-DeK_NB5v.js,sha256=6VYTgmWgl7pVRgW6dD0gGKPKvvKnCEqpKy3ZlLOrQwQ,1253
172
+ cxb/client/assets/vanilla-picker-l5rcX3cq.js,sha256=B8KWTpJINp3oIXirDlwC683EYHZUPW76lAnHmeUPqEY,18814
173
+ cxb/client/assets/w3c-keyname-Vcq4gwWv.js,sha256=7NTN0-UTH-BpoJQqdC43Ec4Cdwj4Wv8viGg4W3EBqx8,1494
173
174
  data_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
175
  data_adapters/adapter.py,sha256=zR_yFd5ZI9vIQuUB6AUcF-LHgxOaxoREV2hogasivjQ,443
175
176
  data_adapters/base_data_adapter.py,sha256=vG9WeHyw_c_BnH0EmudwPSNS6iMb5buQJiZS_9cm9p8,12055
@@ -246,19 +247,19 @@ utils/middleware.py,sha256=PAVwnLzs0cyT_ZIgc1slqadEOJNCPliLhOTjaYx0Waw,3399
246
247
  utils/notification.py,sha256=O9oOeU9cRm3e9UAc-VJONWx-TzqbCMddFNaTQilE6ks,2479
247
248
  utils/password_hashing.py,sha256=NZZsmtPG9Vkocipk3DlDKKHKUdxRKA4yOhCurD8dUhg,356
248
249
  utils/plugin_manager.py,sha256=brQoE4u2WxH6EMvUOYQlnOnSUbKwha92-UfAgWUaHRU,7645
249
- utils/query_policies_helper.py,sha256=jBcNI_15P6LqVeWz6w9UMreLuNIc50GxqAf17KzxE84,4392
250
+ utils/query_policies_helper.py,sha256=Bf5qriQJ8CpUqPaQg5cdvNrn-92l_jKxHwsvXdegAZo,4796
250
251
  utils/regex.py,sha256=cv9b_l_e8tz42mKckeeyDgypKqh2e71E28co2iuEVxA,2286
251
252
  utils/repository.py,sha256=9L-IvQ0Js0SQ5OR-Rh0i2Wdu4H9H06r8eE84hfBIu7Q,18313
252
253
  utils/router_helper.py,sha256=Tgoq3oakejdEeyeVieTNk38JsPZ8x5RuR0kw2THc1mI,604
253
- utils/settings.py,sha256=eWsIKxyFzeCO7Jte0U5SR8SiCLSXz0dD0vO0x-R-y2k,5686
254
+ utils/settings.py,sha256=yjiudcgLVSIvKLQo9JtukmeLSU-6YTdggzWfZxiFoO8,5720
254
255
  utils/sms_notifier.py,sha256=04D6D_ldk3S9SojI7_381pqLc8v9lligeNHAysohz7w,550
255
256
  utils/social_sso.py,sha256=Dm1W6U9OwKbAeUwM-kwJBHFEoreeoN-s-RHdOZ1-cNg,2216
256
257
  utils/ticket_sys_utils.py,sha256=9QAlW2iiy8KyxQRBDj_WmzS5kKb0aYJmGwd4qzmGVqo,7005
257
258
  utils/web_notifier.py,sha256=QM87VVid2grC5lK3NdS1yzz0z1wXljr4GChJOeK86W4,843
258
259
  utils/templates/activation.html.j2,sha256=XAMKCdoqONoc4ZQucD0yV-Pg5DlHHASZrTVItNS-iBE,640
259
260
  utils/templates/reminder.html.j2,sha256=aoS8bTs56q4hjAZKsb0jV9c-PIURBELuBOpT_qPZNVU,639
260
- dmart-1.4.4.dist-info/METADATA,sha256=WEFnUE2Rs16tnb8-Xuj_zaArlNS1l-bwsc1-Kp0X_c8,2068
261
- dmart-1.4.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
262
- dmart-1.4.4.dist-info/entry_points.txt,sha256=GjfoGh1bpxuU9HHGJzbtCFPNptHv9TryxHMN3uBSKpg,37
263
- dmart-1.4.4.dist-info/top_level.txt,sha256=iPbBisVNr4KDWyZhxMl2x3oJSgf71knWXMh21_xutrE,266
264
- dmart-1.4.4.dist-info/RECORD,,
261
+ dmart-1.4.5.dist-info/METADATA,sha256=NHTuiYhJhvqlS9v3bwRbJhJT4GAkUhrJOKUNbdM5wJ8,2068
262
+ dmart-1.4.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
263
+ dmart-1.4.5.dist-info/entry_points.txt,sha256=GjfoGh1bpxuU9HHGJzbtCFPNptHv9TryxHMN3uBSKpg,37
264
+ dmart-1.4.5.dist-info/top_level.txt,sha256=iPbBisVNr4KDWyZhxMl2x3oJSgf71knWXMh21_xutrE,266
265
+ dmart-1.4.5.dist-info/RECORD,,
dmart.py CHANGED
@@ -255,7 +255,17 @@ def hypercorn_main() -> int:
255
255
  type=int,
256
256
  )
257
257
  args = parser.parse_args(sys.argv[1:])
258
- config = Config.from_toml(args.config)
258
+
259
+ # Set defaults if config file is not found
260
+ config = Config()
261
+ if args.config and os.path.exists(args.config):
262
+ config = Config.from_toml(args.config)
263
+ else:
264
+ # Default Hypercorn configuration
265
+ config.backlog = 2000
266
+ config.workers = 1
267
+ config.bind = ["localhost:8282"]
268
+
259
269
  config.application_path = args.application
260
270
 
261
271
  if args.log_level is not sentinel:
@@ -344,26 +354,25 @@ def hypercorn_main() -> int:
344
354
  config.server_names = args.server_names
345
355
 
346
356
  if args.open_cxb:
347
- # Assuming default port 8282 if not specified in binds
348
357
  port = 8282
349
358
  host = "127.0.0.1"
350
-
351
- # Try to parse bind address if available
352
- if len(args.binds) > 0:
359
+
360
+ if len(config.bind) > 0:
353
361
  try:
354
- bind_parts = args.binds[0].split(":")
362
+ bind_parts = config.bind[0].split(":")
355
363
  if len(bind_parts) == 2:
356
364
  host = bind_parts[0]
357
365
  port = int(bind_parts[1])
358
366
  elif len(bind_parts) == 1:
359
367
  host = bind_parts[0]
360
- except:
368
+ except Exception as e:
369
+ print(e)
361
370
  pass
362
371
 
363
- url = f"http://{host}:{port}{settings.cxb_url}/"
372
+ url = f"http://{host}:{port}/cxb/"
364
373
 
365
374
  def open_browser():
366
- time.sleep(2) # Give server a moment to start
375
+ time.sleep(2)
367
376
  webbrowser.open(url)
368
377
 
369
378
  import threading
@@ -383,7 +392,6 @@ def main():
383
392
  case "hyper":
384
393
  hypercorn_main()
385
394
  case "server" | "serve":
386
- # Check for --open-cxb flag in server command arguments
387
395
  open_cxb = False
388
396
  if "--open-cxb" in sys.argv:
389
397
  open_cxb = True
@@ -397,9 +405,9 @@ def main():
397
405
  sys.argv.pop(idx)
398
406
 
399
407
  if open_cxb:
400
- url = f"http://{settings.listening_host}:{settings.listening_port}{settings.cxb_url}/"
408
+ url = f"http://{settings.listening_host}:{settings.listening_port}/cxb/"
401
409
  def open_browser():
402
- time.sleep(2) # Give server a moment to start
410
+ time.sleep(1)
403
411
  webbrowser.open(url)
404
412
 
405
413
  import threading
main.py CHANGED
@@ -31,7 +31,17 @@ from hypercorn.config import Config
31
31
  from starlette.concurrency import iterate_in_threadpool
32
32
  from starlette.exceptions import HTTPException as StarletteHTTPException
33
33
  from starlette.staticfiles import StaticFiles
34
- from starlette.responses import Response
34
+ import models.api as api
35
+ from utils.settings import settings
36
+ from asgi_correlation_id import CorrelationIdMiddleware
37
+ from data_adapters.adapter import data_adapter as db
38
+ from api.managed.router import router as managed
39
+ from api.qr.router import router as qr
40
+ from api.public.router import router as public
41
+ from api.user.router import router as user
42
+ from api.info.router import router as info, git_info
43
+ from utils.internal_error_code import InternalErrorCode
44
+
35
45
 
36
46
  class SPAStaticFiles(StaticFiles):
37
47
  async def get_response(self, path: str, scope) -> Response:
@@ -44,16 +54,7 @@ class SPAStaticFiles(StaticFiles):
44
54
  except StarletteHTTPException:
45
55
  pass
46
56
  raise ex
47
- import models.api as api
48
- from utils.settings import settings
49
- from asgi_correlation_id import CorrelationIdMiddleware
50
- from data_adapters.adapter import data_adapter as db
51
- from api.managed.router import router as managed
52
- from api.qr.router import router as qr
53
- from api.public.router import router as public
54
- from api.user.router import router as user
55
- from api.info.router import router as info, git_info
56
- from utils.internal_error_code import InternalErrorCode
57
+
57
58
 
58
59
  @asynccontextmanager
59
60
  async def lifespan(app: FastAPI):
@@ -477,10 +478,9 @@ app.include_router(
477
478
  # load plugins
478
479
  asyncio.run(plugin_manager.load_plugins(app, capture_body))
479
480
 
480
- # Serve CXB
481
+
481
482
  cxb_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "cxb")
482
483
  if not os.path.exists(cxb_path):
483
- # Try relative to project root (development mode)
484
484
  project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
485
485
  cxb_dist_path = os.path.join(project_root, "cxb", "dist", "client")
486
486
  if os.path.isdir(cxb_dist_path):
@@ -489,26 +489,21 @@ if not os.path.exists(cxb_path):
489
489
  if os.path.isdir(cxb_path):
490
490
  @app.get(f"{settings.cxb_url}/config.json", include_in_schema=False)
491
491
  async def get_cxb_config():
492
- # Priority 0: Explicit path from flag
493
492
  cxb_config = os.getenv("DMART_CXB_CONFIG")
494
493
  if cxb_config and os.path.exists(cxb_config):
495
494
  return FileResponse(cxb_config)
496
495
 
497
- # Priority 1: Check in current directory (where dmart is run)
498
496
  if os.path.exists("config.json"):
499
497
  return FileResponse("config.json")
500
-
501
- # Priority 2: Check in spaces folder (user directory)
498
+
502
499
  user_config = settings.spaces_folder / "config.json"
503
500
  if user_config.exists():
504
501
  return FileResponse(user_config)
505
-
506
- # Priority 3: Check in bundled CXB directory
502
+
507
503
  bundled_config = os.path.join(cxb_path, "config.json")
508
504
  if os.path.exists(bundled_config):
509
505
  return FileResponse(bundled_config)
510
-
511
- # Fallback to defaults generated from settings
506
+
512
507
  return {
513
508
  "title": "DMART Unified Data Platform",
514
509
  "footer": "dmart.cc unified data platform",
@@ -51,6 +51,21 @@ def generate_query_policies(
51
51
  return query_policies
52
52
 
53
53
 
54
+ def matches_subpath(perm_key: str, space_name: str, query_subpath: str) -> bool:
55
+ if not perm_key.startswith(f"{space_name}:"):
56
+ return False
57
+
58
+ parts = perm_key.split(":", 2)
59
+ if len(parts) < 3:
60
+ return False
61
+
62
+ perm_subpath = parts[1].lstrip("/")
63
+ return (
64
+ query_subpath == perm_subpath
65
+ or query_subpath.startswith(perm_subpath + "/")
66
+ )
67
+
68
+
54
69
  async def get_user_query_policies(
55
70
  db,
56
71
  user_shortname: str,
@@ -72,18 +87,19 @@ async def get_user_query_policies(
72
87
  user_groups = (await db.load_user_meta(user_shortname)).groups or []
73
88
  user_groups.append(user_shortname)
74
89
 
90
+ query_subpath = subpath.lstrip("/")
91
+
75
92
  filtered_permissions = {
76
93
  perm_key: permission
77
94
  for perm_key, permission in user_permissions.items()
78
- if (
79
- is_space or
80
- perm_key.startswith(f'{space_name}:{subpath.lstrip("/")}') or
81
- perm_key.startswith(f'{space_name}:__all_subpaths__') or
82
- perm_key.startswith(settings.all_spaces_mw)
83
- )
84
- and 'query' in permission.get('allowed_actions', [])
95
+ if 'query' in permission.get('allowed_actions', [])
96
+ and (
97
+ is_space
98
+ or perm_key.startswith(settings.all_spaces_mw)
99
+ or perm_key.startswith(f'{space_name}:__all_subpaths__')
100
+ or matches_subpath(perm_key, space_name, query_subpath)
101
+ )
85
102
  }
86
-
87
103
  sql_query_policies = []
88
104
  for perm_key, permission in filtered_permissions.items():
89
105
  perm_key = perm_key.replace(settings.all_spaces_mw, space_name)
utils/settings.py CHANGED
@@ -79,7 +79,7 @@ class Settings(BaseSettings):
79
79
  request_timeout: int = 35 # In seconds the time of dmart requests.
80
80
  jq_timeout: int = 2 # secs
81
81
  is_sha_required: bool = False
82
-
82
+ logout_on_pwd_change: bool = True
83
83
  url_shorter_expires: int = 60 * 60 * 48 # 48 hours
84
84
 
85
85
  google_client_id: str = ""
@@ -97,7 +97,7 @@ class Settings(BaseSettings):
97
97
  active_operational_db: str = "redis" # allowed values: redis, manticore
98
98
  active_data_db: str = "file" # allowed values: file, sql
99
99
 
100
- database_driver: str = 'postgresql+psycopg'
100
+ database_driver: str = 'sqlite+pysqlite'
101
101
  database_username: str = 'postgres'
102
102
  database_password: str = ''
103
103
  database_host: str = 'localhost'