dmart 1.4.3__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 (129) 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/__init__.py +0 -0
  5. cxb/client/__init__.py +0 -0
  6. cxb/client/assets/@codemirror-Rn7_6DkE.js +10 -0
  7. cxb/client/assets/@edraj-CS4NwVbD.js +1 -0
  8. cxb/client/assets/@floating-ui-BwwcF-xh.js +1 -0
  9. cxb/client/assets/@formatjs-yKEsAtjs.js +1 -0
  10. cxb/client/assets/@fortawesome-DRW1UCdr.js +9 -0
  11. cxb/client/assets/@jsonquerylang-laKNoFFq.js +12 -0
  12. cxb/client/assets/@lezer-za4Q-8Ew.js +1 -0
  13. cxb/client/assets/@marijn-DXwl3gUT.js +1 -0
  14. cxb/client/assets/@popperjs-l0sNRNKZ.js +1 -0
  15. cxb/client/assets/@replit--ERk53eB.js +1 -0
  16. cxb/client/assets/@roxi-CGMFK4i8.js +6 -0
  17. cxb/client/assets/@typewriter-cCzskkIv.js +17 -0
  18. cxb/client/assets/@zerodevx-BlBZjKxu.js +1 -0
  19. cxb/client/assets/@zerodevx-CVEpe6WZ.css +1 -0
  20. cxb/client/assets/BreadCrumbLite-DAhOx38v.js +1 -0
  21. cxb/client/assets/EntryRenderer-25YDhRen.js +32 -0
  22. cxb/client/assets/EntryRenderer-DXytdFp9.css +1 -0
  23. cxb/client/assets/ListView-BpAycA2h.js +16 -0
  24. cxb/client/assets/ListView-U8of-_c-.css +1 -0
  25. cxb/client/assets/Prism--hMplq-p.js +3 -0
  26. cxb/client/assets/Prism-Uh6uStUw.css +1 -0
  27. cxb/client/assets/Table2Cols-BsbwicQm.js +1 -0
  28. cxb/client/assets/_..-BvT6vdHa.css +1 -0
  29. cxb/client/assets/_...404_-fuLH_rX9.js +2 -0
  30. cxb/client/assets/_...fallback_-Ba_NLmAE.js +1 -0
  31. cxb/client/assets/_module-Bfk8MiCs.js +3 -0
  32. cxb/client/assets/_module-CEW0D5oI.js +4 -0
  33. cxb/client/assets/_module-Dgq0ZVtz.js +1 -0
  34. cxb/client/assets/ajv-Cpj98o6Y.js +1 -0
  35. cxb/client/assets/axios-CG2WSiiR.js +6 -0
  36. cxb/client/assets/clsx-B-dksMZM.js +1 -0
  37. cxb/client/assets/codemirror-wrapped-line-indent-DPhKvljI.js +1 -0
  38. cxb/client/assets/compare-C3AjiGFR.js +1 -0
  39. cxb/client/assets/compute-scroll-into-view-Bl8rNFhg.js +1 -0
  40. cxb/client/assets/consolite-DlCuI0F9.js +1 -0
  41. cxb/client/assets/crelt-C8TCjufn.js +1 -0
  42. cxb/client/assets/date-fns-l0sNRNKZ.js +1 -0
  43. cxb/client/assets/deepmerge-rn4rBaHU.js +1 -0
  44. cxb/client/assets/dmart_services-AL6-IdDE.js +1 -0
  45. cxb/client/assets/downloadFile-D08i0YDh.js +1 -0
  46. cxb/client/assets/easy-signal-BiPFIK3O.js +1 -0
  47. cxb/client/assets/esm-env-rsSWfq8L.js +1 -0
  48. cxb/client/assets/export-OF_rTiXu.js +1 -0
  49. cxb/client/assets/fast-deep-equal-l0sNRNKZ.js +1 -0
  50. cxb/client/assets/fast-diff-C-IidNf4.js +1 -0
  51. cxb/client/assets/fast-uri-l0sNRNKZ.js +1 -0
  52. cxb/client/assets/flowbite-svelte-BLvjb-sa.js +1 -0
  53. cxb/client/assets/flowbite-svelte-CD54FDqW.css +1 -0
  54. cxb/client/assets/flowbite-svelte-icons-BI8GVhw_.js +1 -0
  55. cxb/client/assets/github-slugger-CQ4oX9Ud.js +1 -0
  56. cxb/client/assets/global-igKv-1g9.js +1 -0
  57. cxb/client/assets/hookar-BMRD9G9H.js +1 -0
  58. cxb/client/assets/immutable-json-patch-DtRO2E_S.js +1 -0
  59. cxb/client/assets/import-1vE3gBat.js +1 -0
  60. cxb/client/assets/index-B-eTh-ZX.js +1 -0
  61. cxb/client/assets/index-BVyxzKtH.js +1 -0
  62. cxb/client/assets/index-BdeNM69f.js +1 -0
  63. cxb/client/assets/index-C6cPO4op.js +1 -0
  64. cxb/client/assets/index-CC-A1ipE.js +1 -0
  65. cxb/client/assets/index-CTxJ-lDp.js +1 -0
  66. cxb/client/assets/index-Cd-F5j_k.js +1 -0
  67. cxb/client/assets/index-D742rwaM.js +1 -0
  68. cxb/client/assets/index-DTfhnhwd.js +1 -0
  69. cxb/client/assets/index-DdXRK7n9.js +2 -0
  70. cxb/client/assets/index-DtiCmB4o.js +1 -0
  71. cxb/client/assets/index-NBrXBlLA.css +2 -0
  72. cxb/client/assets/index-ac-Buu_H.js +4 -0
  73. cxb/client/assets/index-iYkH7C67.js +1 -0
  74. cxb/client/assets/info-B986lRiM.js +1 -0
  75. cxb/client/assets/intl-messageformat-Dc5UU-HB.js +3 -0
  76. cxb/client/assets/jmespath-l0sNRNKZ.js +1 -0
  77. cxb/client/assets/json-schema-traverse-l0sNRNKZ.js +1 -0
  78. cxb/client/assets/json-source-map-DRgZidqy.js +5 -0
  79. cxb/client/assets/jsonpath-plus-l0sNRNKZ.js +1 -0
  80. cxb/client/assets/jsonrepair-B30Dx381.js +8 -0
  81. cxb/client/assets/lodash-es-DZVAA2ox.js +1 -0
  82. cxb/client/assets/marked-DKjyhwJX.js +56 -0
  83. cxb/client/assets/marked-gfm-heading-id-U5zO829x.js +2 -0
  84. cxb/client/assets/marked-mangle-CDMeiHC6.js +1 -0
  85. cxb/client/assets/memoize-one-BdPwpGay.js +1 -0
  86. cxb/client/assets/natural-compare-lite-Bg2Xcf-o.js +7 -0
  87. cxb/client/assets/pagination-svelte-D5CyoiE_.js +13 -0
  88. cxb/client/assets/pagination-svelte-v10nAbbM.css +1 -0
  89. cxb/client/assets/plantuml-encoder-C47mzt9T.js +1 -0
  90. cxb/client/assets/prismjs-DTUiLGJu.js +9 -0
  91. cxb/client/assets/profile-BUf-tKMe.js +1 -0
  92. cxb/client/assets/query-CNmXTsgf.js +1 -0
  93. cxb/client/assets/queryHelpers-C9iBWwqe.js +1 -0
  94. cxb/client/assets/scroll-into-view-if-needed-KR58zyjF.js +1 -0
  95. cxb/client/assets/spaces-0oyGvpii.js +1 -0
  96. cxb/client/assets/style-mod-Bs6eFhZE.js +3 -0
  97. cxb/client/assets/svelte-B2XmcTi_.js +4 -0
  98. cxb/client/assets/svelte-awesome-COLlx0DN.css +1 -0
  99. cxb/client/assets/svelte-awesome-DhnMA6Q_.js +1 -0
  100. cxb/client/assets/svelte-datatables-net-CY7LBj6I.js +1 -0
  101. cxb/client/assets/svelte-floating-ui-BlS3sOAQ.js +1 -0
  102. cxb/client/assets/svelte-i18n-CT2KkQaN.js +3 -0
  103. cxb/client/assets/svelte-jsoneditor-BzfX6Usi.css +1 -0
  104. cxb/client/assets/svelte-jsoneditor-CUGSvWId.js +25 -0
  105. cxb/client/assets/svelte-select-CegQKzqH.css +1 -0
  106. cxb/client/assets/svelte-select-CjHAt_85.js +6 -0
  107. cxb/client/assets/tailwind-merge-CJvxXMcu.js +1 -0
  108. cxb/client/assets/tailwind-variants-Cj20BoQ3.js +1 -0
  109. cxb/client/assets/toast-B9WDyfyI.js +1 -0
  110. cxb/client/assets/tslib-pJfR_DrR.js +1 -0
  111. cxb/client/assets/typewriter-editor-DkTVIJdm.js +25 -0
  112. cxb/client/assets/user-DeK_NB5v.js +1 -0
  113. cxb/client/assets/vanilla-picker-l5rcX3cq.js +8 -0
  114. cxb/client/assets/w3c-keyname-Vcq4gwWv.js +1 -0
  115. cxb/client/config.json +11 -0
  116. cxb/client/config.sample.json +11 -0
  117. cxb/client/favicon.ico +0 -0
  118. cxb/client/favicon.png +0 -0
  119. cxb/client/index.html +28 -0
  120. {dmart-1.4.3.dist-info → dmart-1.4.5.dist-info}/METADATA +1 -1
  121. dmart-1.4.5.dist-info/RECORD +265 -0
  122. {dmart-1.4.3.dist-info → dmart-1.4.5.dist-info}/top_level.txt +1 -0
  123. dmart.py +20 -12
  124. main.py +16 -21
  125. utils/query_policies_helper.py +24 -8
  126. utils/settings.py +2 -2
  127. dmart-1.4.3.dist-info/RECORD +0 -149
  128. {dmart-1.4.3.dist-info → dmart-1.4.5.dist-info}/WHEEL +0 -0
  129. {dmart-1.4.3.dist-info → dmart-1.4.5.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,265 @@
1
+ bundler.py,sha256=so8ZJResb1PcOH5vboa_mpFAdYr_T8u8DbbFXd570Lg,1704
2
+ data_generator.py,sha256=CnE-VHEeX7-lAXtqCgbRqR9WHjTuOgeiZcviYrHAmho,2287
3
+ dmart.py,sha256=1oQXSPgHiVpSPKhKy2EhP2Mmu1ZKPEdKqbXehXUj7MA,21760
4
+ get_settings.py,sha256=Sbe2WCoiK398E7HY4SNLfDN_GmE8knR4M-YJWF31jcg,153
5
+ main.py,sha256=KZGhIL6AnEm5ZAPy4IvhBDpzSTjuodilV7NafNOyhzM,19676
6
+ migrate.py,sha256=hn1MZoVby_Jjqhc7y3CrLcGD619QmVZv3PONNvO7VKQ,665
7
+ password_gen.py,sha256=xjx8wi105ZYvhLBBQj7_rugACpxifGXHse6f7YlGXWQ,196
8
+ run_notification_campaign.py,sha256=ZCvHfaimK4W6q4XuHs2r6wavMGipYYw4aUkNlxmGUd8,2652
9
+ scheduled_notification_handler.py,sha256=m26TryqHuvXR5PUPvzY9nFnpJpfbsuRjc_Q6wHdxvE8,4643
10
+ schema_migration.py,sha256=a1w3c-fSm95MVWFzobgy0AxIbhbzMDSfD46easTmwKE,6132
11
+ schema_modulate.py,sha256=vB7NxvqghqNpFe__p0ll03WsvNftzxBbQ6UXB2UfxNU,6454
12
+ set_admin_passwd.py,sha256=Ei8wnoJ_UDHIXmMb-E_dd_NqyM6Gt5AgJPJ4fAxARXI,1950
13
+ sync.py,sha256=FlmubtlnFaxtZkbRV1-eyS_Sx5KBRvWyIZjvd0Tiar4,7339
14
+ websocket.py,sha256=Q8WUTvOTBHKP5xy5wim8yn0t-BfjrPwx7J_6vbzAm1A,7576
15
+ alembic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ alembic/env.py,sha256=z12UKhorKSOKEovOCQOwRjfR_tup4VeRlhcB1UPk3Xw,2700
17
+ alembic/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ alembic/scripts/calculate_checksums.py,sha256=v2NLEvReA9V3noJE-BWANgKDdhc8Mqg1ZmJJ8nc8sGI,3443
19
+ alembic/scripts/migration_f7a4949eed19.py,sha256=oUXuxjU4MbVafm4S-xu5J_4apHqW6hQZ8ftpJtCtM28,1462
20
+ alembic/versions/0f3d2b1a7c21_add_authz_materialized_views.py,sha256=70vrPfhMHVHhw1l7KNQpvCUU76XZfvGcPlrXOeU4FHU,2599
21
+ alembic/versions/10d2041b94d4_last_checksum_history.py,sha256=FYjyzE5Xi6bn9LUtxLKFnQOKhg4GZOrTkpqtmlCnY6Y,2860
22
+ alembic/versions/1cf4e1ee3cb8_ext_permission_with_filter_fields_values.py,sha256=taaFTkTaFfLfj7QUUfIdcojvbOdjut_dWtrIvQUN7-4,921
23
+ alembic/versions/26bfe19b49d4_rm_failedloginattempts.py,sha256=-Roftn8OSUz7kfR3yMI02rulyvnH46W0WpJfDQ5xAdk,1471
24
+ alembic/versions/3c8bca2219cc_add_otp_table.py,sha256=f-YSxx1iLA0iHWukq1VnngFmiiYQyEzowicox0-wtbY,1125
25
+ alembic/versions/6675fd9dfe42_remove_unique_from_sessions_table.py,sha256=yP40IHwtzFAAUid_VeeCkt_9F2RszMYBjNKx2mDTKNw,1037
26
+ alembic/versions/71bc1df82e6a_adding_user_last_login_at.py,sha256=LINO2hWUEFmsTspupd8AxgUS6tNJFNgGC5do1QPMQ1E,1486
27
+ alembic/versions/74288ccbd3b5_initial.py,sha256=hZ1w5mqVKSO13J1O4zcTccDJBk2c-cmIB0AUx1KLlLI,13988
28
+ alembic/versions/7520a89a8467_rm_activesession_table.py,sha256=4VYv9tCXkTQNaXPVvjdsKTiw093KkBBUHNSiWdZtqtA,1305
29
+ alembic/versions/848b623755a4_make_created_nd_updated_at_required.py,sha256=o106xd-apT8ZAXdVCjX76o7VuqRQNkIl0V4f41m5j2E,5375
30
+ alembic/versions/8640dcbebf85_add_notes_to_users.py,sha256=XjfW2Lc0-xoRGB2qfdzDstw7Caaev6JhqRNYV_sIqgc,813
31
+ alembic/versions/91c94250232a_adding_fk_on_owner_shortname.py,sha256=F9FDF2qyeqvOx1gkYq5HQMkVCH1QrXciYSHVxijsSSU,4024
32
+ alembic/versions/98ecd6f56f9a_ext_meta_with_owner_group_shortname.py,sha256=S466VE3jsxXDEpTKyhIN06uutM0jI7zYHTWIYvU_pJw,2579
33
+ alembic/versions/9aae9138c4ef_indexing_created_at_updated_at.py,sha256=xrqfJB5cER0PYi1torwkgsbBBjDeeM6dyj4pu-quphk,3662
34
+ alembic/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ alembic/versions/b53f916b3f6d_json_to_jsonb.py,sha256=LPnevQjbjs0KrwqxYHtGUC6mSBBsUpiCBnwD-FN2x50,24840
36
+ alembic/versions/eb5f1ec65156_adding_user_locked_to_device.py,sha256=Z9skCus52jg_xV5a7JVYK3IenNlvsdMKIFf1H5POst0,1030
37
+ alembic/versions/f7a4949eed19_adding_query_policies_to_meta.py,sha256=LA4rx3u0Ei5m4OcSsVYHBsGMeKOJdx8G88yK1kBLFys,2307
38
+ api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ api/info/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ api/info/router.py,sha256=sQZZor7A-uDzsJX39aqEA7bMZOJ-WTitYeFvVNWfaHw,3938
41
+ api/managed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ api/managed/router.py,sha256=0xfJ3NXV3XHyG8yWLEECBJt-XppymOxYuMDvQJdO1MI,50865
43
+ api/managed/utils.py,sha256=IqgFVHVfNubYOx5i9YoQjVqbUbaveIrqfOfTFvV42BA,74227
44
+ api/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ api/public/router.py,sha256=TrraWs2LGL_c_JRDbvS8OHm3fJ-ZKF7o4El7wvjV4Mk,24753
46
+ api/qr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ api/qr/router.py,sha256=Ru7UT_iQS6mFwE1bCPPrusSQfFgoV_u6pjZJ0gArE7g,3870
48
+ api/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ api/user/router.py,sha256=B59HQPwmwgEfYIlF3_XBNaVBlT4PWqMJiUlUvEN69Vo,51719
50
+ api/user/service.py,sha256=-iQpcBVPTDiLE_xOf87Ni0oSQDtmALAXEwU4IgSvnJk,8463
51
+ api/user/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ api/user/model/errors.py,sha256=rhcIcbAIk_7rs5lxdgcsf7SWFGmC9QLsgc67x7S6CKA,299
53
+ api/user/model/requests.py,sha256=MazMirg7wQoUm4qvnm_EAB_gJIy3YxvYYqNyU3fZJc0,5025
54
+ api/user/model/responses.py,sha256=0vbigspq_aBd1JS6hEm13BnG7Hm7EIiWBZ6xz3d5hmE,202
55
+ config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ config/channels.json,sha256=GepystGi0h_1fuakC_gdIc-YYxyy-a4TI619ygIpyyM,156
57
+ config/notification.json,sha256=esrOaMUIqfcCHB0Tawp3t4cu7DQAA15X12OS-Gyenb0,361
58
+ cxb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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
174
+ data_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
+ data_adapters/adapter.py,sha256=zR_yFd5ZI9vIQuUB6AUcF-LHgxOaxoREV2hogasivjQ,443
176
+ data_adapters/base_data_adapter.py,sha256=vG9WeHyw_c_BnH0EmudwPSNS6iMb5buQJiZS_9cm9p8,12055
177
+ data_adapters/helpers.py,sha256=0ySEDnQBMgFVXstFnPjXLtZ_-8IC4Q8oPXXrWokpFB8,660
178
+ data_adapters/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
+ data_adapters/file/adapter.py,sha256=SPVVfRIlyQDYfZJv4J8LmrDGtrVWddu76SvpnkXY3jM,77671
180
+ data_adapters/file/adapter_helpers.py,sha256=ExA_fAnRaPOLDuEY3hsLNR2BvvCscnS5Du6lWRtCvh0,34321
181
+ data_adapters/file/archive.py,sha256=B4VV6HNB3Bqd4tlqZ3jUQps8oqht_xOdBNOi9cLuo8Q,5423
182
+ data_adapters/file/create_index.py,sha256=lUcUkepo9QUIQDDDgoPAL74_n16cZ_q0NKnITGmbF6I,11888
183
+ data_adapters/file/create_users_folders.py,sha256=zOBgxMnqgEskYP4pgkmE6VYMca-ADLz8mXKPHJPYpys,1670
184
+ data_adapters/file/custom_validations.py,sha256=ziOERgTr-eY_zrN0C41B2FYmpEyoKiV4holh8an-p2c,1754
185
+ data_adapters/file/drop_index.py,sha256=OK3wXwaO9tUcHcJjqyLeBnkElzK35MZMi8YLGWdrXRw,1417
186
+ data_adapters/file/health_check.py,sha256=cMvwsXhjEykjrTyB3HtUn8QqKdtB_h5w8mGOEYPepzU,24221
187
+ data_adapters/file/redis_services.py,sha256=83STcca5fYFaEVLRYAxfUQXeUQZqJOT8XH-GBSbkR-E,39914
188
+ data_adapters/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
+ data_adapters/sql/adapter.py,sha256=MlNRWjUigjjS2SRzDYNaUOsGwTFPHZQn-o0DXxKKHl8,154565
190
+ data_adapters/sql/adapter_helpers.py,sha256=Eu22NElz2fMu6zyOsGsGrnAZcyWhHz9I__RJ9z6cwK0,15076
191
+ data_adapters/sql/create_tables.py,sha256=KqaXHTDOD8YaqGNc_e0iHHotd0WE3Kad_tBevtoGA20,17427
192
+ data_adapters/sql/create_users_folders.py,sha256=fm3P-CMcPX4b4DqXHKWMOtfX4RHdaev2nCDhYrS5cIs,1911
193
+ data_adapters/sql/db_to_json_migration.py,sha256=mHMaD2tTsXaNPTd6nGuMb4TQheklYNWNvgszOZKM22E,20850
194
+ data_adapters/sql/health_check_sql.py,sha256=2Z0mN5IMrjF72ZAiafBLkHklbXXWJzLp1K2TzjzPI1s,8569
195
+ data_adapters/sql/json_to_db_migration.py,sha256=KaubDrRZ3MfPLc-CNGPpsEccPELKr1V4GoBEBt1BNZo,21131
196
+ data_adapters/sql/update_query_policies.py,sha256=LUpkyzDAkiwwVWnXxPdVAU6atehW72ECAazj3mEYHK0,3857
197
+ languages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
+ languages/arabic.json,sha256=UL61rP9_M42CGfU94G5-1bXVUVnsJWXzoqhaXTXTJuM,910
199
+ languages/english.json,sha256=Y7eZ2X8c427_97qYrHOeGb2d725T-YlNNFVSi8FB7Kw,649
200
+ languages/kurdish.json,sha256=GgPLkVKyhIQjT7h3cPfDh0oyzg26znvBUe5X_Zz2TWI,864
201
+ languages/loader.py,sha256=3gf2WmfSQ-AVIpyLAm_5J5NcQlWqBxQHMjcUd04Pijs,381
202
+ models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
203
+ models/api.py,sha256=f5X56dudyEysPmDuI5grM2RRCXuIQoehaAB6wMAGG28,6473
204
+ models/core.py,sha256=tEb7cbnC71yE9SDluynj7dE3U8Ed-EbF3uRJizy-uuU,16880
205
+ models/enums.py,sha256=y2G5EKIc8FusVW4JvEozGFKL2GxjtuOK7k3zSguP4dc,5395
206
+ plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
+ plugins/action_log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
208
+ plugins/action_log/plugin.py,sha256=-JY_iIIJJjFFofvpMoCxNJMXNr_KC6kA8TiwvvoxaWI,4434
209
+ plugins/admin_notification_sender/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
+ plugins/admin_notification_sender/plugin.py,sha256=sxVGW8qtRmDEQeS6QD3F3IqzZOoh_9H_y2TsRCDkXaw,4771
211
+ plugins/ldap_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
+ plugins/ldap_manager/plugin.py,sha256=c05pKGsyLETMrheCqIw3gZOSLdTWvEDq_WCl0Q_0yXQ,3030
213
+ plugins/local_notification/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
+ plugins/local_notification/plugin.py,sha256=FObVxID5Bg0G_xStpJYZkg706wu_CpUqk09DmzHAyPQ,4074
215
+ plugins/realtime_updates_notifier/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
+ plugins/realtime_updates_notifier/plugin.py,sha256=Gcvob4ShSs2Ht1hLD2vtwhR_PSFYMv3_l_VPM2opTYs,2374
217
+ plugins/redis_db_update/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
+ plugins/redis_db_update/plugin.py,sha256=z05k1zNJgBnKPj-jrtMUeI9br75ZPlifbzL0HxpRnXg,7128
219
+ plugins/resource_folders_creation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
220
+ plugins/resource_folders_creation/plugin.py,sha256=OwYPtRjMt2esAAEdv1FjdZgjEz01yt2xOZQi3nB0kEQ,3327
221
+ plugins/system_notification_sender/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
+ plugins/system_notification_sender/plugin.py,sha256=MUOujwyRJ3yQrXwZ-X4qSdx0ZNU2c-sYy0d0-U8twoA,8253
223
+ plugins/update_access_controls/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
224
+ plugins/update_access_controls/plugin.py,sha256=43UV4vg-zxBF_7Bv0AZH6gU0Bgy2ybapNK21wJTF05k,301
225
+ pytests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
+ pytests/api_user_models_erros_test.py,sha256=6VWLIhazYjz7avXIMIDpT6doiBO5FVzGsGJ3Cv8cXyg,583
227
+ pytests/api_user_models_requests_test.py,sha256=1AYZcMwa-AVeGrhTgwIkwqw3w7_CDPkbaJ0YDxLLKdY,3859
228
+ pytests/archive_test.py,sha256=rk6jEZf-Ud7ReyH4_xJD-9SzNRz8p2Sg0qQX04VCw9M,2347
229
+ pytests/base_test.py,sha256=d8prlME29tBnirW-3_HUtixcxUMPiLfJHRDiNkxOCRM,9902
230
+ pytests/get_settings_test.py,sha256=AEqjnHsQjkVDqwVqtn2rN6mep4sAC_apDCgiZT4YQ28,281
231
+ pytests/json_to_db_migration_test.py,sha256=JXO0knKPccXVIbKmyuD0yOi5fSBHmXm_NgVdO1_U7AE,9411
232
+ pytests/service_test.py,sha256=92lqzKQoVMkj9XliPBjkGBxXb4zXsobb2WPfW5buQfc,807
233
+ pytests/test_info.py,sha256=IOKtcEPM_03byhp5dSt2YbhTC5u_ORPahQLifZWBpjg,2074
234
+ pytests/test_status.py,sha256=YFuBTsSd5hkpHp16GAbQ_I03RL_o2_yW-92ZNgKJry0,453
235
+ utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
236
+ utils/access_control.py,sha256=8cCKr-6bL-Shl8j8xtfjEykMPGy6wkbNz-NRwLCdx-Y,11757
237
+ utils/async_request.py,sha256=Lm2xGXLeph7P1_fLhhNJDhPubKT2ncFn_Ueft4JVoeI,255
238
+ utils/exporter.py,sha256=HjcZCzcuH6N6f7Gn2hkTEeEFyo-MfrsiZUYAE-9kkVQ,9718
239
+ utils/firebase_notifier.py,sha256=nAeCUo5Mtwxygwj8ONlw8ZAtL_ekdJBabvU0z2dZ3NY,2391
240
+ utils/generate_email.py,sha256=25i1iNVDfyRDq7vvZVFkaTYfMZFkAg1ZVQO2GdK7yRQ,1122
241
+ utils/helpers.py,sha256=gNxLg09cclRWrKNBy2pwGZsxGA0iFS5iZ_nyra3SmnI,9928
242
+ utils/hypercorn_config.py,sha256=q28HGRLWo9wjOVF183WwFPs3HQo4Nexc7q_7dmSVHRI,311
243
+ utils/internal_error_code.py,sha256=KGlXPC5YruPmb0ORVY7U3EEVpBgSLuU4lHdXgwUVN2M,1637
244
+ utils/jwt.py,sha256=Y7Gp3imvNwAtWOg8V0etvsEFtswmCYKK_U4ljZ15Pps,4590
245
+ utils/logger.py,sha256=peejQnq9B0eaHwdLynBHT7FUCq7jCX_DhkX6BcxrLkA,5274
246
+ utils/middleware.py,sha256=PAVwnLzs0cyT_ZIgc1slqadEOJNCPliLhOTjaYx0Waw,3399
247
+ utils/notification.py,sha256=O9oOeU9cRm3e9UAc-VJONWx-TzqbCMddFNaTQilE6ks,2479
248
+ utils/password_hashing.py,sha256=NZZsmtPG9Vkocipk3DlDKKHKUdxRKA4yOhCurD8dUhg,356
249
+ utils/plugin_manager.py,sha256=brQoE4u2WxH6EMvUOYQlnOnSUbKwha92-UfAgWUaHRU,7645
250
+ utils/query_policies_helper.py,sha256=Bf5qriQJ8CpUqPaQg5cdvNrn-92l_jKxHwsvXdegAZo,4796
251
+ utils/regex.py,sha256=cv9b_l_e8tz42mKckeeyDgypKqh2e71E28co2iuEVxA,2286
252
+ utils/repository.py,sha256=9L-IvQ0Js0SQ5OR-Rh0i2Wdu4H9H06r8eE84hfBIu7Q,18313
253
+ utils/router_helper.py,sha256=Tgoq3oakejdEeyeVieTNk38JsPZ8x5RuR0kw2THc1mI,604
254
+ utils/settings.py,sha256=yjiudcgLVSIvKLQo9JtukmeLSU-6YTdggzWfZxiFoO8,5720
255
+ utils/sms_notifier.py,sha256=04D6D_ldk3S9SojI7_381pqLc8v9lligeNHAysohz7w,550
256
+ utils/social_sso.py,sha256=Dm1W6U9OwKbAeUwM-kwJBHFEoreeoN-s-RHdOZ1-cNg,2216
257
+ utils/ticket_sys_utils.py,sha256=9QAlW2iiy8KyxQRBDj_WmzS5kKb0aYJmGwd4qzmGVqo,7005
258
+ utils/web_notifier.py,sha256=QM87VVid2grC5lK3NdS1yzz0z1wXljr4GChJOeK86W4,843
259
+ utils/templates/activation.html.j2,sha256=XAMKCdoqONoc4ZQucD0yV-Pg5DlHHASZrTVItNS-iBE,640
260
+ utils/templates/reminder.html.j2,sha256=aoS8bTs56q4hjAZKsb0jV9c-PIURBELuBOpT_qPZNVU,639
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,,
@@ -2,6 +2,7 @@ alembic
2
2
  api
3
3
  bundler
4
4
  config
5
+ cxb
5
6
  data_adapters
6
7
  data_generator
7
8
  dmart
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'