@synchronized-console/shared 2.25.7 → 2.31.14

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 (675) hide show
  1. package/dist/commonjs/acc/helpers/types.d.ts +46 -0
  2. package/dist/commonjs/acc/helpers/types.d.ts.map +1 -0
  3. package/dist/commonjs/acc/helpers/types.js +3 -0
  4. package/dist/commonjs/acc/helpers/types.js.map +1 -0
  5. package/dist/commonjs/acc/index.d.ts +2 -0
  6. package/dist/commonjs/acc/index.d.ts.map +1 -0
  7. package/dist/commonjs/acc/index.js +18 -0
  8. package/dist/commonjs/acc/index.js.map +1 -0
  9. package/dist/commonjs/authz/checks/dashboards.d.ts +5 -0
  10. package/dist/commonjs/authz/checks/dashboards.d.ts.map +1 -0
  11. package/dist/commonjs/authz/checks/dashboards.js +11 -0
  12. package/dist/commonjs/authz/checks/dashboards.js.map +1 -0
  13. package/dist/commonjs/authz/domain/authErrors.d.ts +98 -3
  14. package/dist/commonjs/authz/domain/authErrors.d.ts.map +1 -1
  15. package/dist/commonjs/authz/domain/authErrors.js +66 -3
  16. package/dist/commonjs/authz/domain/authErrors.js.map +1 -1
  17. package/dist/commonjs/authz/domain/automate/operations.d.ts +5 -0
  18. package/dist/commonjs/authz/domain/automate/operations.d.ts.map +1 -0
  19. package/dist/commonjs/authz/domain/automate/operations.js +3 -0
  20. package/dist/commonjs/authz/domain/automate/operations.js.map +1 -0
  21. package/dist/commonjs/authz/domain/automate/types.d.ts +10 -0
  22. package/dist/commonjs/authz/domain/automate/types.d.ts.map +1 -0
  23. package/dist/commonjs/authz/domain/automate/types.js +3 -0
  24. package/dist/commonjs/authz/domain/automate/types.js.map +1 -0
  25. package/dist/commonjs/authz/domain/context.d.ts +12 -0
  26. package/dist/commonjs/authz/domain/context.d.ts.map +1 -1
  27. package/dist/commonjs/authz/domain/dashboards/operations.d.ts +5 -0
  28. package/dist/commonjs/authz/domain/dashboards/operations.d.ts.map +1 -0
  29. package/dist/commonjs/authz/domain/dashboards/operations.js +3 -0
  30. package/dist/commonjs/authz/domain/dashboards/operations.js.map +1 -0
  31. package/dist/commonjs/authz/domain/dashboards/types.d.ts +7 -0
  32. package/dist/commonjs/authz/domain/dashboards/types.d.ts.map +1 -0
  33. package/dist/commonjs/authz/domain/dashboards/types.js +3 -0
  34. package/dist/commonjs/authz/domain/dashboards/types.js.map +1 -0
  35. package/dist/commonjs/authz/domain/loaders.d.ts +63 -45
  36. package/dist/commonjs/authz/domain/loaders.d.ts.map +1 -1
  37. package/dist/commonjs/authz/domain/loaders.js +27 -21
  38. package/dist/commonjs/authz/domain/loaders.js.map +1 -1
  39. package/dist/commonjs/authz/domain/savedViews/operations.d.ts +10 -0
  40. package/dist/commonjs/authz/domain/savedViews/operations.d.ts.map +1 -0
  41. package/dist/commonjs/authz/domain/savedViews/operations.js +3 -0
  42. package/dist/commonjs/authz/domain/savedViews/operations.js.map +1 -0
  43. package/dist/commonjs/authz/domain/savedViews/types.d.ts +26 -0
  44. package/dist/commonjs/authz/domain/savedViews/types.d.ts.map +1 -0
  45. package/dist/commonjs/authz/domain/savedViews/types.js +6 -0
  46. package/dist/commonjs/authz/domain/savedViews/types.js.map +1 -0
  47. package/dist/commonjs/authz/domain/workspaces/operations.d.ts +2 -1
  48. package/dist/commonjs/authz/domain/workspaces/operations.d.ts.map +1 -1
  49. package/dist/commonjs/authz/domain/workspaces/types.d.ts +3 -0
  50. package/dist/commonjs/authz/domain/workspaces/types.d.ts.map +1 -1
  51. package/dist/commonjs/authz/fragments/automate.d.ts +7 -0
  52. package/dist/commonjs/authz/fragments/automate.d.ts.map +1 -0
  53. package/dist/commonjs/authz/fragments/automate.js +22 -0
  54. package/dist/commonjs/authz/fragments/automate.js.map +1 -0
  55. package/dist/commonjs/authz/fragments/dashboards.d.ts +8 -0
  56. package/dist/commonjs/authz/fragments/dashboards.d.ts.map +1 -0
  57. package/dist/commonjs/authz/fragments/dashboards.js +48 -0
  58. package/dist/commonjs/authz/fragments/dashboards.js.map +1 -0
  59. package/dist/commonjs/authz/fragments/projects.d.ts +13 -1
  60. package/dist/commonjs/authz/fragments/projects.d.ts.map +1 -1
  61. package/dist/commonjs/authz/fragments/projects.js +25 -1
  62. package/dist/commonjs/authz/fragments/projects.js.map +1 -1
  63. package/dist/commonjs/authz/fragments/savedViews.d.ts +30 -0
  64. package/dist/commonjs/authz/fragments/savedViews.d.ts.map +1 -0
  65. package/dist/commonjs/authz/fragments/savedViews.js +122 -0
  66. package/dist/commonjs/authz/fragments/savedViews.js.map +1 -0
  67. package/dist/commonjs/authz/fragments/workspaces.d.ts +9 -1
  68. package/dist/commonjs/authz/fragments/workspaces.d.ts.map +1 -1
  69. package/dist/commonjs/authz/fragments/workspaces.js +47 -1
  70. package/dist/commonjs/authz/fragments/workspaces.js.map +1 -1
  71. package/dist/commonjs/authz/helpers/graphql.d.ts +1 -1
  72. package/dist/commonjs/authz/helpers/graphql.d.ts.map +1 -1
  73. package/dist/commonjs/authz/helpers/graphql.js +1 -1
  74. package/dist/commonjs/authz/helpers/graphql.js.map +1 -1
  75. package/dist/commonjs/authz/index.d.ts +1 -0
  76. package/dist/commonjs/authz/index.d.ts.map +1 -1
  77. package/dist/commonjs/authz/index.js +1 -0
  78. package/dist/commonjs/authz/index.js.map +1 -1
  79. package/dist/commonjs/authz/policies/automate/function/canEditFunction.d.ts +10 -0
  80. package/dist/commonjs/authz/policies/automate/function/canEditFunction.d.ts.map +1 -0
  81. package/dist/commonjs/authz/policies/automate/function/canEditFunction.js +19 -0
  82. package/dist/commonjs/authz/policies/automate/function/canEditFunction.js.map +1 -0
  83. package/dist/commonjs/authz/policies/dashboard/canCreateToken.d.ts +10 -0
  84. package/dist/commonjs/authz/policies/dashboard/canCreateToken.d.ts.map +1 -0
  85. package/dist/commonjs/authz/policies/dashboard/canCreateToken.js +45 -0
  86. package/dist/commonjs/authz/policies/dashboard/canCreateToken.js.map +1 -0
  87. package/dist/commonjs/authz/policies/dashboard/canDelete.d.ts +10 -0
  88. package/dist/commonjs/authz/policies/dashboard/canDelete.d.ts.map +1 -0
  89. package/dist/commonjs/authz/policies/dashboard/canDelete.js +45 -0
  90. package/dist/commonjs/authz/policies/dashboard/canDelete.js.map +1 -0
  91. package/dist/commonjs/authz/policies/dashboard/canEdit.d.ts +10 -0
  92. package/dist/commonjs/authz/policies/dashboard/canEdit.d.ts.map +1 -0
  93. package/dist/commonjs/authz/policies/dashboard/canEdit.js +43 -0
  94. package/dist/commonjs/authz/policies/dashboard/canEdit.js.map +1 -0
  95. package/dist/commonjs/authz/policies/dashboard/canRead.d.ts +10 -0
  96. package/dist/commonjs/authz/policies/dashboard/canRead.d.ts.map +1 -0
  97. package/dist/commonjs/authz/policies/dashboard/canRead.js +42 -0
  98. package/dist/commonjs/authz/policies/dashboard/canRead.js.map +1 -0
  99. package/dist/commonjs/authz/policies/index.d.ts +62 -1
  100. package/dist/commonjs/authz/policies/index.d.ts.map +1 -1
  101. package/dist/commonjs/authz/policies/index.js +52 -4
  102. package/dist/commonjs/authz/policies/index.js.map +1 -1
  103. package/dist/commonjs/authz/policies/project/canLoad.d.ts.map +1 -1
  104. package/dist/commonjs/authz/policies/project/canLoad.js +6 -0
  105. package/dist/commonjs/authz/policies/project/canLoad.js.map +1 -1
  106. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.d.ts +10 -0
  107. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.d.ts.map +1 -0
  108. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.js +35 -0
  109. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.js.map +1 -0
  110. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.d.ts +10 -0
  111. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.d.ts.map +1 -0
  112. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.js +52 -0
  113. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.js.map +1 -0
  114. package/dist/commonjs/authz/policies/project/savedViews/canCreate.d.ts +6 -0
  115. package/dist/commonjs/authz/policies/project/savedViews/canCreate.d.ts.map +1 -0
  116. package/dist/commonjs/authz/policies/project/savedViews/canCreate.js +31 -0
  117. package/dist/commonjs/authz/policies/project/savedViews/canCreate.js.map +1 -0
  118. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts +6 -0
  119. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts.map +1 -0
  120. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js +61 -0
  121. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js.map +1 -0
  122. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.d.ts +6 -0
  123. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.d.ts.map +1 -0
  124. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.js +14 -0
  125. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.js.map +1 -0
  126. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.d.ts +6 -0
  127. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.d.ts.map +1 -0
  128. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.js +14 -0
  129. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.js.map +1 -0
  130. package/dist/commonjs/authz/policies/project/savedViews/canMove.d.ts +6 -0
  131. package/dist/commonjs/authz/policies/project/savedViews/canMove.d.ts.map +1 -0
  132. package/dist/commonjs/authz/policies/project/savedViews/canMove.js +14 -0
  133. package/dist/commonjs/authz/policies/project/savedViews/canMove.js.map +1 -0
  134. package/dist/commonjs/authz/policies/project/savedViews/canRead.d.ts +11 -0
  135. package/dist/commonjs/authz/policies/project/savedViews/canRead.d.ts.map +1 -0
  136. package/dist/commonjs/authz/policies/project/savedViews/canRead.js +15 -0
  137. package/dist/commonjs/authz/policies/project/savedViews/canRead.js.map +1 -0
  138. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.d.ts +6 -0
  139. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.d.ts.map +1 -0
  140. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.js +45 -0
  141. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.js.map +1 -0
  142. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.d.ts +6 -0
  143. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.d.ts.map +1 -0
  144. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.js +14 -0
  145. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.js.map +1 -0
  146. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.d.ts +6 -0
  147. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.d.ts.map +1 -0
  148. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.js +14 -0
  149. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.js.map +1 -0
  150. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.d.ts +10 -0
  151. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.d.ts.map +1 -0
  152. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.js +39 -0
  153. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.js.map +1 -0
  154. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.d.ts +10 -0
  155. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.d.ts.map +1 -0
  156. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.js +51 -0
  157. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.js.map +1 -0
  158. package/dist/commonjs/authz/policies/workspace/canListDashboards.d.ts +10 -0
  159. package/dist/commonjs/authz/policies/workspace/canListDashboards.d.ts.map +1 -0
  160. package/dist/commonjs/authz/policies/workspace/canListDashboards.js +26 -0
  161. package/dist/commonjs/authz/policies/workspace/canListDashboards.js.map +1 -0
  162. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.d.ts +1 -1
  163. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.d.ts.map +1 -1
  164. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.js +1 -20
  165. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.js.map +1 -1
  166. package/dist/commonjs/authz/policies/workspace/{canUpdateEmbedOptions.d.ts → canUseWorkspacePlanFeature.d.ts} +13 -5
  167. package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.d.ts.map +1 -0
  168. package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.js +27 -0
  169. package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.js.map +1 -0
  170. package/dist/commonjs/automate/helpers/types.d.ts +313 -51
  171. package/dist/commonjs/automate/helpers/types.d.ts.map +1 -1
  172. package/dist/commonjs/automate/helpers/types.js +12 -2
  173. package/dist/commonjs/automate/helpers/types.js.map +1 -1
  174. package/dist/commonjs/blobs/index.d.ts +17 -0
  175. package/dist/commonjs/blobs/index.d.ts.map +1 -0
  176. package/dist/commonjs/blobs/index.js +114 -0
  177. package/dist/commonjs/blobs/index.js.map +1 -0
  178. package/dist/commonjs/core/constants.d.ts +4 -2
  179. package/dist/commonjs/core/constants.d.ts.map +1 -1
  180. package/dist/commonjs/core/constants.js +24 -4
  181. package/dist/commonjs/core/constants.js.map +1 -1
  182. package/dist/commonjs/core/helpers/encoding.d.ts +2 -0
  183. package/dist/commonjs/core/helpers/encoding.d.ts.map +1 -0
  184. package/dist/commonjs/core/helpers/encoding.js +15 -0
  185. package/dist/commonjs/core/helpers/encoding.js.map +1 -0
  186. package/dist/commonjs/core/helpers/error.d.ts +11 -0
  187. package/dist/commonjs/core/helpers/error.d.ts.map +1 -1
  188. package/dist/commonjs/core/helpers/error.js +60 -2
  189. package/dist/commonjs/core/helpers/error.js.map +1 -1
  190. package/dist/commonjs/core/helpers/url.d.ts +24 -0
  191. package/dist/commonjs/core/helpers/url.d.ts.map +1 -1
  192. package/dist/commonjs/core/helpers/url.js +30 -0
  193. package/dist/commonjs/core/helpers/url.js.map +1 -1
  194. package/dist/commonjs/core/helpers/utility.d.ts +16 -0
  195. package/dist/commonjs/core/helpers/utility.d.ts.map +1 -1
  196. package/dist/commonjs/core/helpers/utility.js +22 -1
  197. package/dist/commonjs/core/helpers/utility.js.map +1 -1
  198. package/dist/commonjs/core/index.d.ts +2 -0
  199. package/dist/commonjs/core/index.d.ts.map +1 -1
  200. package/dist/commonjs/core/index.js +2 -0
  201. package/dist/commonjs/core/index.js.map +1 -1
  202. package/dist/commonjs/core/utils/base64.d.ts +3 -0
  203. package/dist/commonjs/core/utils/base64.d.ts.map +1 -0
  204. package/dist/commonjs/core/utils/base64.js +25 -0
  205. package/dist/commonjs/core/utils/base64.js.map +1 -0
  206. package/dist/commonjs/environment/{multiRegionConfig.d.ts → db.d.ts} +54 -5
  207. package/dist/commonjs/environment/db.d.ts.map +1 -0
  208. package/dist/commonjs/environment/{multiRegionConfig.js → db.js} +45 -10
  209. package/dist/commonjs/environment/db.js.map +1 -0
  210. package/dist/commonjs/environment/featureFlags.d.ts +25 -0
  211. package/dist/commonjs/environment/featureFlags.d.ts.map +1 -0
  212. package/dist/commonjs/environment/featureFlags.js +6 -0
  213. package/dist/commonjs/environment/featureFlags.js.map +1 -0
  214. package/dist/commonjs/environment/index.d.ts +2 -15
  215. package/dist/commonjs/environment/index.d.ts.map +1 -1
  216. package/dist/commonjs/environment/index.js +44 -7
  217. package/dist/commonjs/environment/index.js.map +1 -1
  218. package/dist/commonjs/environment/node.d.ts +5 -0
  219. package/dist/commonjs/environment/node.d.ts.map +1 -0
  220. package/dist/commonjs/environment/node.js +15 -0
  221. package/dist/commonjs/environment/node.js.map +1 -0
  222. package/dist/commonjs/images/base64.d.ts +2 -0
  223. package/dist/commonjs/images/base64.d.ts.map +1 -0
  224. package/dist/commonjs/images/base64.js +19 -0
  225. package/dist/commonjs/images/base64.js.map +1 -0
  226. package/dist/commonjs/index.d.ts +1 -0
  227. package/dist/commonjs/index.d.ts.map +1 -1
  228. package/dist/commonjs/index.js +1 -0
  229. package/dist/commonjs/index.js.map +1 -1
  230. package/dist/commonjs/observability/index.d.ts.map +1 -1
  231. package/dist/commonjs/observability/index.js +19 -2
  232. package/dist/commonjs/observability/index.js.map +1 -1
  233. package/dist/commonjs/queue/config.d.ts +3 -0
  234. package/dist/commonjs/queue/config.d.ts.map +1 -1
  235. package/dist/commonjs/queue/config.js +14 -5
  236. package/dist/commonjs/queue/config.js.map +1 -1
  237. package/dist/commonjs/rich-text-editor/helpers/index.d.ts +13 -1
  238. package/dist/commonjs/rich-text-editor/helpers/index.d.ts.map +1 -1
  239. package/dist/commonjs/rich-text-editor/helpers/index.js +1 -0
  240. package/dist/commonjs/rich-text-editor/helpers/index.js.map +1 -1
  241. package/dist/commonjs/saved-views/helpers/defaultGroup.d.ts +23 -0
  242. package/dist/commonjs/saved-views/helpers/defaultGroup.d.ts.map +1 -0
  243. package/dist/commonjs/saved-views/helpers/defaultGroup.js +58 -0
  244. package/dist/commonjs/saved-views/helpers/defaultGroup.js.map +1 -0
  245. package/dist/commonjs/saved-views/index.d.ts +2 -0
  246. package/dist/commonjs/saved-views/index.d.ts.map +1 -0
  247. package/dist/commonjs/saved-views/index.js +18 -0
  248. package/dist/commonjs/saved-views/index.js.map +1 -0
  249. package/dist/commonjs/viewer/helpers/route.d.ts +42 -7
  250. package/dist/commonjs/viewer/helpers/route.d.ts.map +1 -1
  251. package/dist/commonjs/viewer/helpers/route.js +149 -38
  252. package/dist/commonjs/viewer/helpers/route.js.map +1 -1
  253. package/dist/commonjs/viewer/helpers/state.d.ts +59 -6
  254. package/dist/commonjs/viewer/helpers/state.d.ts.map +1 -1
  255. package/dist/commonjs/viewer/helpers/state.js +100 -23
  256. package/dist/commonjs/viewer/helpers/state.js.map +1 -1
  257. package/dist/commonjs/workers/fileimport/job.d.ts +85 -9
  258. package/dist/commonjs/workers/fileimport/job.d.ts.map +1 -1
  259. package/dist/commonjs/workers/fileimport/job.js +21 -10
  260. package/dist/commonjs/workers/fileimport/job.js.map +1 -1
  261. package/dist/commonjs/workers/previews/job.d.ts +37 -20
  262. package/dist/commonjs/workers/previews/job.d.ts.map +1 -1
  263. package/dist/commonjs/workers/previews/job.js +23 -2
  264. package/dist/commonjs/workers/previews/job.js.map +1 -1
  265. package/dist/commonjs/workspaces/helpers/features.d.ts +55 -5
  266. package/dist/commonjs/workspaces/helpers/features.d.ts.map +1 -1
  267. package/dist/commonjs/workspaces/helpers/features.js +180 -114
  268. package/dist/commonjs/workspaces/helpers/features.js.map +1 -1
  269. package/dist/commonjs/workspaces/helpers/plans.d.ts +1 -0
  270. package/dist/commonjs/workspaces/helpers/plans.d.ts.map +1 -1
  271. package/dist/commonjs/workspaces/helpers/plans.js.map +1 -1
  272. package/dist/esm/acc/helpers/types.d.ts +46 -0
  273. package/dist/esm/acc/helpers/types.d.ts.map +1 -0
  274. package/dist/esm/acc/helpers/types.js +2 -0
  275. package/dist/esm/acc/helpers/types.js.map +1 -0
  276. package/dist/esm/acc/index.d.ts +2 -0
  277. package/dist/esm/acc/index.d.ts.map +1 -0
  278. package/dist/esm/acc/index.js +2 -0
  279. package/dist/esm/acc/index.js.map +1 -0
  280. package/dist/esm/authz/checks/dashboards.d.ts +5 -0
  281. package/dist/esm/authz/checks/dashboards.d.ts.map +1 -0
  282. package/dist/esm/authz/checks/dashboards.js +7 -0
  283. package/dist/esm/authz/checks/dashboards.js.map +1 -0
  284. package/dist/esm/authz/domain/authErrors.d.ts +98 -3
  285. package/dist/esm/authz/domain/authErrors.d.ts.map +1 -1
  286. package/dist/esm/authz/domain/authErrors.js +65 -2
  287. package/dist/esm/authz/domain/authErrors.js.map +1 -1
  288. package/dist/esm/authz/domain/automate/operations.d.ts +5 -0
  289. package/dist/esm/authz/domain/automate/operations.d.ts.map +1 -0
  290. package/dist/esm/authz/domain/automate/operations.js +2 -0
  291. package/dist/esm/authz/domain/automate/operations.js.map +1 -0
  292. package/dist/esm/authz/domain/automate/types.d.ts +10 -0
  293. package/dist/esm/authz/domain/automate/types.d.ts.map +1 -0
  294. package/dist/esm/authz/domain/automate/types.js +2 -0
  295. package/dist/esm/authz/domain/automate/types.js.map +1 -0
  296. package/dist/esm/authz/domain/context.d.ts +12 -0
  297. package/dist/esm/authz/domain/context.d.ts.map +1 -1
  298. package/dist/esm/authz/domain/dashboards/operations.d.ts +5 -0
  299. package/dist/esm/authz/domain/dashboards/operations.d.ts.map +1 -0
  300. package/dist/esm/authz/domain/dashboards/operations.js +2 -0
  301. package/dist/esm/authz/domain/dashboards/operations.js.map +1 -0
  302. package/dist/esm/authz/domain/dashboards/types.d.ts +7 -0
  303. package/dist/esm/authz/domain/dashboards/types.d.ts.map +1 -0
  304. package/dist/esm/authz/domain/dashboards/types.js +2 -0
  305. package/dist/esm/authz/domain/dashboards/types.js.map +1 -0
  306. package/dist/esm/authz/domain/loaders.d.ts +63 -45
  307. package/dist/esm/authz/domain/loaders.d.ts.map +1 -1
  308. package/dist/esm/authz/domain/loaders.js +27 -21
  309. package/dist/esm/authz/domain/loaders.js.map +1 -1
  310. package/dist/esm/authz/domain/savedViews/operations.d.ts +10 -0
  311. package/dist/esm/authz/domain/savedViews/operations.d.ts.map +1 -0
  312. package/dist/esm/authz/domain/savedViews/operations.js +2 -0
  313. package/dist/esm/authz/domain/savedViews/operations.js.map +1 -0
  314. package/dist/esm/authz/domain/savedViews/types.d.ts +26 -0
  315. package/dist/esm/authz/domain/savedViews/types.d.ts.map +1 -0
  316. package/dist/esm/authz/domain/savedViews/types.js +3 -0
  317. package/dist/esm/authz/domain/savedViews/types.js.map +1 -0
  318. package/dist/esm/authz/domain/workspaces/operations.d.ts +2 -1
  319. package/dist/esm/authz/domain/workspaces/operations.d.ts.map +1 -1
  320. package/dist/esm/authz/domain/workspaces/types.d.ts +3 -0
  321. package/dist/esm/authz/domain/workspaces/types.d.ts.map +1 -1
  322. package/dist/esm/authz/fragments/automate.d.ts +7 -0
  323. package/dist/esm/authz/fragments/automate.d.ts.map +1 -0
  324. package/dist/esm/authz/fragments/automate.js +17 -0
  325. package/dist/esm/authz/fragments/automate.js.map +1 -0
  326. package/dist/esm/authz/fragments/dashboards.d.ts +8 -0
  327. package/dist/esm/authz/fragments/dashboards.d.ts.map +1 -0
  328. package/dist/esm/authz/fragments/dashboards.js +42 -0
  329. package/dist/esm/authz/fragments/dashboards.js.map +1 -0
  330. package/dist/esm/authz/fragments/projects.d.ts +13 -1
  331. package/dist/esm/authz/fragments/projects.d.ts.map +1 -1
  332. package/dist/esm/authz/fragments/projects.js +24 -1
  333. package/dist/esm/authz/fragments/projects.js.map +1 -1
  334. package/dist/esm/authz/fragments/savedViews.d.ts +30 -0
  335. package/dist/esm/authz/fragments/savedViews.d.ts.map +1 -0
  336. package/dist/esm/authz/fragments/savedViews.js +117 -0
  337. package/dist/esm/authz/fragments/savedViews.js.map +1 -0
  338. package/dist/esm/authz/fragments/workspaces.d.ts +9 -1
  339. package/dist/esm/authz/fragments/workspaces.d.ts.map +1 -1
  340. package/dist/esm/authz/fragments/workspaces.js +45 -1
  341. package/dist/esm/authz/fragments/workspaces.js.map +1 -1
  342. package/dist/esm/authz/helpers/graphql.d.ts +1 -1
  343. package/dist/esm/authz/helpers/graphql.d.ts.map +1 -1
  344. package/dist/esm/authz/helpers/graphql.js +1 -1
  345. package/dist/esm/authz/helpers/graphql.js.map +1 -1
  346. package/dist/esm/authz/index.d.ts +1 -0
  347. package/dist/esm/authz/index.d.ts.map +1 -1
  348. package/dist/esm/authz/index.js +1 -0
  349. package/dist/esm/authz/index.js.map +1 -1
  350. package/dist/esm/authz/policies/automate/function/canEditFunction.d.ts +10 -0
  351. package/dist/esm/authz/policies/automate/function/canEditFunction.d.ts.map +1 -0
  352. package/dist/esm/authz/policies/automate/function/canEditFunction.js +15 -0
  353. package/dist/esm/authz/policies/automate/function/canEditFunction.js.map +1 -0
  354. package/dist/esm/authz/policies/dashboard/canCreateToken.d.ts +10 -0
  355. package/dist/esm/authz/policies/dashboard/canCreateToken.d.ts.map +1 -0
  356. package/dist/esm/authz/policies/dashboard/canCreateToken.js +41 -0
  357. package/dist/esm/authz/policies/dashboard/canCreateToken.js.map +1 -0
  358. package/dist/esm/authz/policies/dashboard/canDelete.d.ts +10 -0
  359. package/dist/esm/authz/policies/dashboard/canDelete.d.ts.map +1 -0
  360. package/dist/esm/authz/policies/dashboard/canDelete.js +41 -0
  361. package/dist/esm/authz/policies/dashboard/canDelete.js.map +1 -0
  362. package/dist/esm/authz/policies/dashboard/canEdit.d.ts +10 -0
  363. package/dist/esm/authz/policies/dashboard/canEdit.d.ts.map +1 -0
  364. package/dist/esm/authz/policies/dashboard/canEdit.js +39 -0
  365. package/dist/esm/authz/policies/dashboard/canEdit.js.map +1 -0
  366. package/dist/esm/authz/policies/dashboard/canRead.d.ts +10 -0
  367. package/dist/esm/authz/policies/dashboard/canRead.d.ts.map +1 -0
  368. package/dist/esm/authz/policies/dashboard/canRead.js +38 -0
  369. package/dist/esm/authz/policies/dashboard/canRead.js.map +1 -0
  370. package/dist/esm/authz/policies/index.d.ts +62 -1
  371. package/dist/esm/authz/policies/index.d.ts.map +1 -1
  372. package/dist/esm/authz/policies/index.js +52 -4
  373. package/dist/esm/authz/policies/index.js.map +1 -1
  374. package/dist/esm/authz/policies/project/canLoad.d.ts.map +1 -1
  375. package/dist/esm/authz/policies/project/canLoad.js +6 -0
  376. package/dist/esm/authz/policies/project/canLoad.js.map +1 -1
  377. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.d.ts +10 -0
  378. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.d.ts.map +1 -0
  379. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.js +31 -0
  380. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.js.map +1 -0
  381. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.d.ts +10 -0
  382. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.d.ts.map +1 -0
  383. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.js +48 -0
  384. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.js.map +1 -0
  385. package/dist/esm/authz/policies/project/savedViews/canCreate.d.ts +6 -0
  386. package/dist/esm/authz/policies/project/savedViews/canCreate.d.ts.map +1 -0
  387. package/dist/esm/authz/policies/project/savedViews/canCreate.js +27 -0
  388. package/dist/esm/authz/policies/project/savedViews/canCreate.js.map +1 -0
  389. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts +6 -0
  390. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts.map +1 -0
  391. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js +57 -0
  392. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js.map +1 -0
  393. package/dist/esm/authz/policies/project/savedViews/canEditDescription.d.ts +6 -0
  394. package/dist/esm/authz/policies/project/savedViews/canEditDescription.d.ts.map +1 -0
  395. package/dist/esm/authz/policies/project/savedViews/canEditDescription.js +10 -0
  396. package/dist/esm/authz/policies/project/savedViews/canEditDescription.js.map +1 -0
  397. package/dist/esm/authz/policies/project/savedViews/canEditTitle.d.ts +6 -0
  398. package/dist/esm/authz/policies/project/savedViews/canEditTitle.d.ts.map +1 -0
  399. package/dist/esm/authz/policies/project/savedViews/canEditTitle.js +10 -0
  400. package/dist/esm/authz/policies/project/savedViews/canEditTitle.js.map +1 -0
  401. package/dist/esm/authz/policies/project/savedViews/canMove.d.ts +6 -0
  402. package/dist/esm/authz/policies/project/savedViews/canMove.d.ts.map +1 -0
  403. package/dist/esm/authz/policies/project/savedViews/canMove.js +10 -0
  404. package/dist/esm/authz/policies/project/savedViews/canMove.js.map +1 -0
  405. package/dist/esm/authz/policies/project/savedViews/canRead.d.ts +11 -0
  406. package/dist/esm/authz/policies/project/savedViews/canRead.d.ts.map +1 -0
  407. package/dist/esm/authz/policies/project/savedViews/canRead.js +11 -0
  408. package/dist/esm/authz/policies/project/savedViews/canRead.js.map +1 -0
  409. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.d.ts +6 -0
  410. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.d.ts.map +1 -0
  411. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.js +41 -0
  412. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.js.map +1 -0
  413. package/dist/esm/authz/policies/project/savedViews/canUpdate.d.ts +6 -0
  414. package/dist/esm/authz/policies/project/savedViews/canUpdate.d.ts.map +1 -0
  415. package/dist/esm/authz/policies/project/savedViews/canUpdate.js +10 -0
  416. package/dist/esm/authz/policies/project/savedViews/canUpdate.js.map +1 -0
  417. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.d.ts +6 -0
  418. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.d.ts.map +1 -0
  419. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.js +10 -0
  420. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.js.map +1 -0
  421. package/dist/esm/authz/policies/workspace/canCreateDashboards.d.ts +10 -0
  422. package/dist/esm/authz/policies/workspace/canCreateDashboards.d.ts.map +1 -0
  423. package/dist/esm/authz/policies/workspace/canCreateDashboards.js +35 -0
  424. package/dist/esm/authz/policies/workspace/canCreateDashboards.js.map +1 -0
  425. package/dist/esm/authz/policies/workspace/canCreateWorkspace.d.ts +10 -0
  426. package/dist/esm/authz/policies/workspace/canCreateWorkspace.d.ts.map +1 -0
  427. package/dist/esm/authz/policies/workspace/canCreateWorkspace.js +47 -0
  428. package/dist/esm/authz/policies/workspace/canCreateWorkspace.js.map +1 -0
  429. package/dist/esm/authz/policies/workspace/canListDashboards.d.ts +10 -0
  430. package/dist/esm/authz/policies/workspace/canListDashboards.d.ts.map +1 -0
  431. package/dist/esm/authz/policies/workspace/canListDashboards.js +22 -0
  432. package/dist/esm/authz/policies/workspace/canListDashboards.js.map +1 -0
  433. package/dist/esm/authz/policies/workspace/canReadMemberEmail.d.ts +1 -1
  434. package/dist/esm/authz/policies/workspace/canReadMemberEmail.d.ts.map +1 -1
  435. package/dist/esm/authz/policies/workspace/canReadMemberEmail.js +2 -21
  436. package/dist/esm/authz/policies/workspace/canReadMemberEmail.js.map +1 -1
  437. package/dist/esm/authz/policies/workspace/{canUpdateEmbedOptions.d.ts → canUseWorkspacePlanFeature.d.ts} +13 -5
  438. package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.d.ts.map +1 -0
  439. package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.js +23 -0
  440. package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.js.map +1 -0
  441. package/dist/esm/automate/helpers/types.d.ts +313 -51
  442. package/dist/esm/automate/helpers/types.d.ts.map +1 -1
  443. package/dist/esm/automate/helpers/types.js +11 -1
  444. package/dist/esm/automate/helpers/types.js.map +1 -1
  445. package/dist/esm/blobs/index.d.ts +17 -0
  446. package/dist/esm/blobs/index.d.ts.map +1 -0
  447. package/dist/esm/blobs/index.js +111 -0
  448. package/dist/esm/blobs/index.js.map +1 -0
  449. package/dist/esm/core/constants.d.ts +4 -2
  450. package/dist/esm/core/constants.d.ts.map +1 -1
  451. package/dist/esm/core/constants.js +24 -4
  452. package/dist/esm/core/constants.js.map +1 -1
  453. package/dist/esm/core/helpers/encoding.d.ts +2 -0
  454. package/dist/esm/core/helpers/encoding.d.ts.map +1 -0
  455. package/dist/esm/core/helpers/encoding.js +11 -0
  456. package/dist/esm/core/helpers/encoding.js.map +1 -0
  457. package/dist/esm/core/helpers/error.d.ts +11 -0
  458. package/dist/esm/core/helpers/error.d.ts.map +1 -1
  459. package/dist/esm/core/helpers/error.js +56 -1
  460. package/dist/esm/core/helpers/error.js.map +1 -1
  461. package/dist/esm/core/helpers/url.d.ts +24 -0
  462. package/dist/esm/core/helpers/url.d.ts.map +1 -1
  463. package/dist/esm/core/helpers/url.js +30 -0
  464. package/dist/esm/core/helpers/url.js.map +1 -1
  465. package/dist/esm/core/helpers/utility.d.ts +16 -0
  466. package/dist/esm/core/helpers/utility.d.ts.map +1 -1
  467. package/dist/esm/core/helpers/utility.js +19 -0
  468. package/dist/esm/core/helpers/utility.js.map +1 -1
  469. package/dist/esm/core/index.d.ts +2 -0
  470. package/dist/esm/core/index.d.ts.map +1 -1
  471. package/dist/esm/core/index.js +2 -0
  472. package/dist/esm/core/index.js.map +1 -1
  473. package/dist/esm/core/utils/base64.d.ts +3 -0
  474. package/dist/esm/core/utils/base64.d.ts.map +1 -0
  475. package/dist/esm/core/utils/base64.js +21 -0
  476. package/dist/esm/core/utils/base64.js.map +1 -0
  477. package/dist/esm/environment/{multiRegionConfig.d.ts → db.d.ts} +54 -5
  478. package/dist/esm/environment/db.d.ts.map +1 -0
  479. package/dist/esm/environment/{multiRegionConfig.js → db.js} +40 -7
  480. package/dist/esm/environment/db.js.map +1 -0
  481. package/dist/esm/environment/featureFlags.d.ts +25 -0
  482. package/dist/esm/environment/featureFlags.d.ts.map +1 -0
  483. package/dist/esm/environment/featureFlags.js +5 -0
  484. package/dist/esm/environment/featureFlags.js.map +1 -0
  485. package/dist/esm/environment/index.d.ts +2 -15
  486. package/dist/esm/environment/index.d.ts.map +1 -1
  487. package/dist/esm/environment/index.js +44 -7
  488. package/dist/esm/environment/index.js.map +1 -1
  489. package/dist/esm/environment/node.d.ts +5 -0
  490. package/dist/esm/environment/node.d.ts.map +1 -0
  491. package/dist/esm/environment/node.js +11 -0
  492. package/dist/esm/environment/node.js.map +1 -0
  493. package/dist/esm/images/base64.d.ts +2 -0
  494. package/dist/esm/images/base64.d.ts.map +1 -0
  495. package/dist/esm/images/base64.js +15 -0
  496. package/dist/esm/images/base64.js.map +1 -0
  497. package/dist/esm/index.d.ts +1 -0
  498. package/dist/esm/index.d.ts.map +1 -1
  499. package/dist/esm/index.js +1 -0
  500. package/dist/esm/index.js.map +1 -1
  501. package/dist/esm/observability/index.d.ts.map +1 -1
  502. package/dist/esm/observability/index.js +19 -2
  503. package/dist/esm/observability/index.js.map +1 -1
  504. package/dist/esm/queue/config.d.ts +3 -0
  505. package/dist/esm/queue/config.d.ts.map +1 -1
  506. package/dist/esm/queue/config.js +12 -4
  507. package/dist/esm/queue/config.js.map +1 -1
  508. package/dist/esm/rich-text-editor/helpers/index.d.ts +13 -1
  509. package/dist/esm/rich-text-editor/helpers/index.d.ts.map +1 -1
  510. package/dist/esm/rich-text-editor/helpers/index.js +1 -0
  511. package/dist/esm/rich-text-editor/helpers/index.js.map +1 -1
  512. package/dist/esm/saved-views/helpers/defaultGroup.d.ts +23 -0
  513. package/dist/esm/saved-views/helpers/defaultGroup.d.ts.map +1 -0
  514. package/dist/esm/saved-views/helpers/defaultGroup.js +51 -0
  515. package/dist/esm/saved-views/helpers/defaultGroup.js.map +1 -0
  516. package/dist/esm/saved-views/index.d.ts +2 -0
  517. package/dist/esm/saved-views/index.d.ts.map +1 -0
  518. package/dist/esm/saved-views/index.js +2 -0
  519. package/dist/esm/saved-views/index.js.map +1 -0
  520. package/dist/esm/viewer/helpers/route.d.ts +42 -7
  521. package/dist/esm/viewer/helpers/route.d.ts.map +1 -1
  522. package/dist/esm/viewer/helpers/route.js +140 -30
  523. package/dist/esm/viewer/helpers/route.js.map +1 -1
  524. package/dist/esm/viewer/helpers/state.d.ts +59 -6
  525. package/dist/esm/viewer/helpers/state.d.ts.map +1 -1
  526. package/dist/esm/viewer/helpers/state.js +97 -22
  527. package/dist/esm/viewer/helpers/state.js.map +1 -1
  528. package/dist/esm/workers/fileimport/job.d.ts +85 -9
  529. package/dist/esm/workers/fileimport/job.d.ts.map +1 -1
  530. package/dist/esm/workers/fileimport/job.js +20 -9
  531. package/dist/esm/workers/fileimport/job.js.map +1 -1
  532. package/dist/esm/workers/previews/job.d.ts +37 -20
  533. package/dist/esm/workers/previews/job.d.ts.map +1 -1
  534. package/dist/esm/workers/previews/job.js +20 -1
  535. package/dist/esm/workers/previews/job.js.map +1 -1
  536. package/dist/esm/workspaces/helpers/features.d.ts +55 -5
  537. package/dist/esm/workspaces/helpers/features.d.ts.map +1 -1
  538. package/dist/esm/workspaces/helpers/features.js +173 -113
  539. package/dist/esm/workspaces/helpers/features.js.map +1 -1
  540. package/dist/esm/workspaces/helpers/plans.d.ts +1 -0
  541. package/dist/esm/workspaces/helpers/plans.d.ts.map +1 -1
  542. package/dist/esm/workspaces/helpers/plans.js.map +1 -1
  543. package/package.json +110 -8
  544. package/src/acc/helpers/types.ts +42 -0
  545. package/src/acc/index.ts +1 -0
  546. package/src/authz/checks/dashboards.spec.ts +46 -0
  547. package/src/authz/checks/dashboards.ts +14 -0
  548. package/src/authz/domain/authErrors.ts +87 -2
  549. package/src/authz/domain/automate/operations.ts +5 -0
  550. package/src/authz/domain/automate/types.ts +9 -0
  551. package/src/authz/domain/context.ts +8 -0
  552. package/src/authz/domain/dashboards/operations.ts +3 -0
  553. package/src/authz/domain/dashboards/types.ts +6 -0
  554. package/src/authz/domain/loaders.ts +40 -24
  555. package/src/authz/domain/savedViews/operations.ts +11 -0
  556. package/src/authz/domain/savedViews/types.ts +25 -0
  557. package/src/authz/domain/workspaces/operations.ts +3 -1
  558. package/src/authz/domain/workspaces/types.ts +4 -0
  559. package/src/authz/fragments/automate.spec.ts +120 -0
  560. package/src/authz/fragments/automate.ts +36 -0
  561. package/src/authz/fragments/dashboards.ts +90 -0
  562. package/src/authz/fragments/projects.spec.ts +135 -10
  563. package/src/authz/fragments/projects.ts +53 -1
  564. package/src/authz/fragments/savedViews.spec.ts +551 -0
  565. package/src/authz/fragments/savedViews.ts +245 -0
  566. package/src/authz/fragments/workspaces.spec.ts +234 -7
  567. package/src/authz/fragments/workspaces.ts +84 -0
  568. package/src/authz/helpers/graphql.ts +2 -2
  569. package/src/authz/index.ts +1 -0
  570. package/src/authz/policies/automate/function/canEditFunction.spec.ts +87 -0
  571. package/src/authz/policies/automate/function/canEditFunction.ts +46 -0
  572. package/src/authz/policies/dashboard/canCreateToken.ts +89 -0
  573. package/src/authz/policies/dashboard/canDelete.ts +84 -0
  574. package/src/authz/policies/dashboard/canEdit.ts +79 -0
  575. package/src/authz/policies/dashboard/canRead.ts +83 -0
  576. package/src/authz/policies/index.spec.ts +13 -0
  577. package/src/authz/policies/index.ts +52 -4
  578. package/src/authz/policies/project/automation/canCreate.spec.ts +2 -1
  579. package/src/authz/policies/project/automation/canDelete.spec.ts +2 -1
  580. package/src/authz/policies/project/automation/canUpdate.spec.ts +2 -1
  581. package/src/authz/policies/project/canBroadcastActivity.spec.ts +2 -2
  582. package/src/authz/policies/project/canDelete.spec.ts +2 -2
  583. package/src/authz/policies/project/canLeave.spec.ts +2 -2
  584. package/src/authz/policies/project/canLoad.spec.ts +17 -1
  585. package/src/authz/policies/project/canLoad.ts +7 -0
  586. package/src/authz/policies/project/canMoveToWorkspace.spec.ts +6 -10
  587. package/src/authz/policies/project/canPublish.spec.ts +2 -1
  588. package/src/authz/policies/project/canRead.spec.ts +2 -3
  589. package/src/authz/policies/project/canReadAccIntegrationSettings.spec.ts +133 -0
  590. package/src/authz/policies/project/canReadAccIntegrationSettings.ts +87 -0
  591. package/src/authz/policies/project/canReadSettings.spec.ts +2 -2
  592. package/src/authz/policies/project/canReadWebhooks.spec.ts +2 -2
  593. package/src/authz/policies/project/canUpdate.spec.ts +2 -5
  594. package/src/authz/policies/project/canUpdateEmbedTokens.spec.ts +132 -0
  595. package/src/authz/policies/project/canUpdateEmbedTokens.ts +101 -0
  596. package/src/authz/policies/project/comment/canArchive.spec.ts +6 -5
  597. package/src/authz/policies/project/comment/canCreate.spec.ts +2 -2
  598. package/src/authz/policies/project/comment/canEdit.spec.ts +6 -5
  599. package/src/authz/policies/project/model/canDelete.spec.ts +6 -2
  600. package/src/authz/policies/project/model/canUpdate.spec.ts +2 -5
  601. package/src/authz/policies/project/savedViews/canCreate.spec.ts +186 -0
  602. package/src/authz/policies/project/savedViews/canCreate.ts +81 -0
  603. package/src/authz/policies/project/savedViews/canCreateSavedViewGroupToken.spec.ts +250 -0
  604. package/src/authz/policies/project/savedViews/canCreateSavedViewGroupToken.ts +117 -0
  605. package/src/authz/policies/project/savedViews/canEditDescription.spec.ts +206 -0
  606. package/src/authz/policies/project/savedViews/canEditDescription.ts +67 -0
  607. package/src/authz/policies/project/savedViews/canEditTitle.spec.ts +204 -0
  608. package/src/authz/policies/project/savedViews/canEditTitle.ts +67 -0
  609. package/src/authz/policies/project/savedViews/canMove.spec.ts +204 -0
  610. package/src/authz/policies/project/savedViews/canMove.ts +67 -0
  611. package/src/authz/policies/project/savedViews/canRead.ts +72 -0
  612. package/src/authz/policies/project/savedViews/canSetAsHomeView.spec.ts +248 -0
  613. package/src/authz/policies/project/savedViews/canSetAsHomeView.ts +108 -0
  614. package/src/authz/policies/project/savedViews/canUpdate.spec.ts +191 -0
  615. package/src/authz/policies/project/savedViews/canUpdate.ts +67 -0
  616. package/src/authz/policies/project/savedViews/canUpdateGroup.spec.ts +227 -0
  617. package/src/authz/policies/project/savedViews/canUpdateGroup.ts +63 -0
  618. package/src/authz/policies/project/version/canUpdate.spec.ts +6 -5
  619. package/src/authz/policies/workspace/canCreateDashboards.ts +71 -0
  620. package/src/authz/policies/workspace/canCreateWorkspace.spec.ts +380 -0
  621. package/src/authz/policies/workspace/canCreateWorkspace.ts +77 -0
  622. package/src/authz/policies/workspace/canListDashboards.ts +53 -0
  623. package/src/authz/policies/workspace/canReadMemberEmail.spec.ts +25 -36
  624. package/src/authz/policies/workspace/canReadMemberEmail.ts +11 -34
  625. package/src/authz/policies/workspace/canReceiveProjectsUpdatedMessage.spec.ts +2 -5
  626. package/src/authz/policies/workspace/{canUpdateEmbedOptions.spec.ts → canUseWorkspacePlanFeature.spec.ts} +40 -38
  627. package/src/authz/policies/workspace/canUseWorkspacePlanFeature.ts +69 -0
  628. package/src/automate/helpers/types.ts +17 -3
  629. package/src/blobs/index.ts +121 -0
  630. package/src/core/constants.ts +25 -4
  631. package/src/core/helpers/encoding.ts +12 -0
  632. package/src/core/helpers/error.spec.ts +215 -0
  633. package/src/core/helpers/error.ts +58 -1
  634. package/src/core/helpers/url.ts +33 -0
  635. package/src/core/helpers/utility.spec.ts +19 -1
  636. package/src/core/helpers/utility.ts +31 -0
  637. package/src/core/index.ts +2 -0
  638. package/src/core/utils/base64.spec.ts +31 -0
  639. package/src/core/utils/base64.ts +19 -0
  640. package/src/environment/db.spec.ts +48 -0
  641. package/src/environment/{multiRegionConfig.ts → db.ts} +62 -8
  642. package/src/environment/featureFlags.ts +25 -0
  643. package/src/environment/index.spec.ts +126 -0
  644. package/src/environment/index.ts +51 -24
  645. package/src/environment/node.ts +11 -0
  646. package/src/images/base64.spec.ts +42 -0
  647. package/src/images/base64.ts +15 -0
  648. package/src/index.ts +1 -0
  649. package/src/observability/index.ts +22 -2
  650. package/src/queue/config.ts +18 -6
  651. package/src/rich-text-editor/helpers/index.ts +15 -1
  652. package/src/saved-views/helpers/defaultGroup.spec.ts +12 -0
  653. package/src/saved-views/helpers/defaultGroup.ts +70 -0
  654. package/src/saved-views/index.ts +1 -0
  655. package/src/tests/fakes.ts +55 -4
  656. package/src/viewer/helpers/route.spec.ts +353 -0
  657. package/src/viewer/helpers/route.ts +180 -25
  658. package/src/viewer/helpers/state.spec.ts +252 -0
  659. package/src/viewer/helpers/state.ts +158 -27
  660. package/src/workers/fileimport/job.ts +40 -21
  661. package/src/workers/previews/job.ts +23 -1
  662. package/src/workspaces/helpers/features.spec.ts +99 -0
  663. package/src/workspaces/helpers/features.ts +215 -119
  664. package/src/workspaces/helpers/plans.ts +1 -0
  665. package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.d.ts.map +0 -1
  666. package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.js +0 -44
  667. package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.js.map +0 -1
  668. package/dist/commonjs/environment/multiRegionConfig.d.ts.map +0 -1
  669. package/dist/commonjs/environment/multiRegionConfig.js.map +0 -1
  670. package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.d.ts.map +0 -1
  671. package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.js +0 -40
  672. package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.js.map +0 -1
  673. package/dist/esm/environment/multiRegionConfig.d.ts.map +0 -1
  674. package/dist/esm/environment/multiRegionConfig.js.map +0 -1
  675. package/src/authz/policies/workspace/canUpdateEmbedOptions.ts +0 -89
@@ -0,0 +1,87 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import { canEditFunctionPolicy } from './canEditFunction.js'
3
+ import { OverridesOf } from '../../../../tests/helpers/types.js'
4
+ import { parseFeatureFlags } from '../../../../environment/index.js'
5
+ import cryptoRandomString from 'crypto-random-string'
6
+ import {
7
+ AutomateFunctionNotCreatorError,
8
+ AutomateFunctionNotFoundError,
9
+ AutomateNotEnabledError
10
+ } from '../../../domain/authErrors.js'
11
+
12
+ describe('canEditFunctionPolicy creates a function, that', () => {
13
+ const buildCanEditFunctionPolicy = (
14
+ overrides?: OverridesOf<typeof canEditFunctionPolicy>
15
+ ) =>
16
+ canEditFunctionPolicy({
17
+ getEnv: async () =>
18
+ parseFeatureFlags({
19
+ FF_AUTOMATE_MODULE_ENABLED: 'true'
20
+ }),
21
+ getAutomateFunction: async () => null,
22
+ ...overrides
23
+ })
24
+
25
+ it('forbids edit if automate is not enabled', async () => {
26
+ const result = await buildCanEditFunctionPolicy({
27
+ getEnv: async () =>
28
+ parseFeatureFlags({
29
+ FF_AUTOMATE_MODULE_ENABLED: 'false'
30
+ })
31
+ })({
32
+ functionId: cryptoRandomString({ length: 9 })
33
+ })
34
+ expect(result).toBeAuthErrorResult({
35
+ code: AutomateNotEnabledError.code
36
+ })
37
+ })
38
+
39
+ it('forbids edit if function cannot be found', async () => {
40
+ const result = await buildCanEditFunctionPolicy()({
41
+ functionId: cryptoRandomString({ length: 9 })
42
+ })
43
+ expect(result).toBeAuthErrorResult({
44
+ code: AutomateFunctionNotFoundError.code
45
+ })
46
+ })
47
+
48
+ it('forbids edit if user is not function creator', async () => {
49
+ const result = await buildCanEditFunctionPolicy({
50
+ getAutomateFunction: async ({ functionId }) => ({
51
+ id: functionId,
52
+ name: cryptoRandomString({ length: 9 }),
53
+ functionCreator: {
54
+ synchronizedUserId: cryptoRandomString({ length: 9 }),
55
+ synchronizedServerOrigin: 'example.org'
56
+ },
57
+ workspaceIds: []
58
+ })
59
+ })({
60
+ functionId: cryptoRandomString({ length: 9 })
61
+ })
62
+ expect(result).toBeAuthErrorResult({
63
+ code: AutomateFunctionNotCreatorError.code
64
+ })
65
+ })
66
+
67
+ it('allows edit for function creators', async () => {
68
+ const userId = cryptoRandomString({ length: 9 })
69
+
70
+ const result = await buildCanEditFunctionPolicy({
71
+ getAutomateFunction: async ({ functionId }) => ({
72
+ id: functionId,
73
+ name: cryptoRandomString({ length: 9 }),
74
+ functionCreator: {
75
+ synchronizedUserId: userId,
76
+ synchronizedServerOrigin: 'example.org'
77
+ },
78
+ workspaceIds: []
79
+ })
80
+ })({
81
+ userId,
82
+ functionId: cryptoRandomString({ length: 9 })
83
+ })
84
+
85
+ expect(result).toBeAuthOKResult()
86
+ })
87
+ })
@@ -0,0 +1,46 @@
1
+ import { err, ok } from 'true-myth/result'
2
+ import {
3
+ AutomateFunctionNotCreatorError,
4
+ AutomateFunctionNotFoundError,
5
+ AutomateNotEnabledError
6
+ } from '../../../domain/authErrors.js'
7
+ import { AutomateFunctionContext, MaybeUserContext } from '../../../domain/context.js'
8
+ import { AuthCheckContextLoaderKeys } from '../../../domain/loaders.js'
9
+ import { AuthPolicy } from '../../../domain/policies.js'
10
+ import {
11
+ ensureAutomateEnabledFragment,
12
+ ensureAutomateFunctionCreatorFragment
13
+ } from '../../../fragments/automate.js'
14
+
15
+ type PolicyLoaderKeys =
16
+ | typeof AuthCheckContextLoaderKeys.getEnv
17
+ | typeof AuthCheckContextLoaderKeys.getAutomateFunction
18
+
19
+ type PolicyArgs = MaybeUserContext & AutomateFunctionContext
20
+
21
+ type PolicyErrors = InstanceType<
22
+ | typeof AutomateNotEnabledError
23
+ | typeof AutomateFunctionNotFoundError
24
+ | typeof AutomateFunctionNotCreatorError
25
+ >
26
+
27
+ export const canEditFunctionPolicy: AuthPolicy<
28
+ PolicyLoaderKeys,
29
+ PolicyArgs,
30
+ PolicyErrors
31
+ > =
32
+ (loaders) =>
33
+ async ({ userId, functionId }) => {
34
+ const isAutomateEnabled = await ensureAutomateEnabledFragment(loaders)({})
35
+ if (isAutomateEnabled.isErr) return err(isAutomateEnabled.error)
36
+
37
+ const isAutomateFunctionCreator = await ensureAutomateFunctionCreatorFragment(
38
+ loaders
39
+ )({
40
+ userId,
41
+ functionId
42
+ })
43
+ if (isAutomateFunctionCreator.isErr) return err(isAutomateFunctionCreator.error)
44
+
45
+ return ok()
46
+ }
@@ -0,0 +1,89 @@
1
+ import { err, ok } from 'true-myth/result'
2
+ import { AuthCheckContextLoaderKeys } from '../../domain/loaders.js'
3
+ import { DashboardContext, MaybeUserContext } from '../../domain/context.js'
4
+ import {
5
+ DashboardNoProjectsError,
6
+ DashboardNotFoundError,
7
+ DashboardProjectsNotEnoughPermissionsError,
8
+ DashboardsNotEnabledError,
9
+ WorkspaceNoEditorSeatError,
10
+ WorkspaceNotEnoughPermissionsError,
11
+ WorkspacePlanNoFeatureAccessError
12
+ } from '../../domain/authErrors.js'
13
+ import { AuthPolicy } from '../../domain/policies.js'
14
+ import {
15
+ ensureDashboardProjectsReadAccess,
16
+ ensureDashboardsEnabledFragment,
17
+ ensureWorkspaceDashboardsFeatureAccessFragment
18
+ } from '../../fragments/dashboards.js'
19
+ import { hasMinimumWorkspaceRole } from '../../checks/workspaceRole.js'
20
+ import { Roles } from '../../../core/constants.js'
21
+ import { hasEditorSeat } from '../../checks/workspaceSeat.js'
22
+
23
+ type PolicyLoaderKeys =
24
+ | typeof AuthCheckContextLoaderKeys.getEnv
25
+ | typeof AuthCheckContextLoaderKeys.getDashboard
26
+ | typeof AuthCheckContextLoaderKeys.getWorkspacePlan
27
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceRole
28
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceSeat
29
+ | typeof AuthCheckContextLoaderKeys.getProjectRole
30
+ | typeof AuthCheckContextLoaderKeys.getProject
31
+ | typeof AuthCheckContextLoaderKeys.getServerRole
32
+ | typeof AuthCheckContextLoaderKeys.getWorkspace
33
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceSsoProvider
34
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceSsoSession
35
+
36
+ type PolicyArgs = MaybeUserContext & DashboardContext
37
+
38
+ type PolicyErrors = InstanceType<
39
+ | typeof DashboardsNotEnabledError
40
+ | typeof WorkspaceNotEnoughPermissionsError
41
+ | typeof WorkspacePlanNoFeatureAccessError
42
+ | typeof WorkspaceNoEditorSeatError
43
+ | typeof DashboardNotFoundError
44
+ | typeof DashboardNoProjectsError
45
+ | typeof DashboardProjectsNotEnoughPermissionsError
46
+ >
47
+
48
+ export const canCreateDashboardTokenPolicy: AuthPolicy<
49
+ PolicyLoaderKeys,
50
+ PolicyArgs,
51
+ PolicyErrors
52
+ > =
53
+ (loaders) =>
54
+ async ({ userId, dashboardId }) => {
55
+ const isDashboardsEnabled = await ensureDashboardsEnabledFragment(loaders)({})
56
+ if (isDashboardsEnabled.isErr) return err(isDashboardsEnabled.error)
57
+
58
+ const dashboard = await loaders.getDashboard({ dashboardId })
59
+ if (!dashboard) return err(new DashboardNotFoundError())
60
+
61
+ const { workspaceId } = dashboard
62
+
63
+ const ensuredFeatureAccess = await ensureWorkspaceDashboardsFeatureAccessFragment(
64
+ loaders
65
+ )({ workspaceId })
66
+ if (ensuredFeatureAccess.isErr) return err(ensuredFeatureAccess.error)
67
+
68
+ const isWorkspaceMember = await hasMinimumWorkspaceRole(loaders)({
69
+ userId: userId!,
70
+ workspaceId,
71
+ role: Roles.Workspace.Member
72
+ })
73
+ if (!isWorkspaceMember) return err(new WorkspaceNotEnoughPermissionsError())
74
+
75
+ const isWorkspaceEditorSeat = await hasEditorSeat(loaders)({
76
+ userId: userId!,
77
+ workspaceId
78
+ })
79
+ if (!isWorkspaceEditorSeat) return err(new WorkspaceNoEditorSeatError())
80
+
81
+ if (!dashboard.projectIds.length) return err(new DashboardNoProjectsError())
82
+ const ensuredProjectAccess = await ensureDashboardProjectsReadAccess(loaders)({
83
+ userId: userId!,
84
+ dashboardId
85
+ })
86
+ if (ensuredProjectAccess.isErr) return err(ensuredProjectAccess.error)
87
+
88
+ return ok()
89
+ }
@@ -0,0 +1,84 @@
1
+ import { err, ok } from 'true-myth/result'
2
+ import { AuthCheckContextLoaderKeys } from '../../domain/loaders.js'
3
+ import { DashboardContext, MaybeUserContext } from '../../domain/context.js'
4
+ import {
5
+ DashboardNotFoundError,
6
+ DashboardNotOwnerError,
7
+ DashboardsNotEnabledError,
8
+ WorkspaceNoEditorSeatError,
9
+ WorkspaceNotEnoughPermissionsError,
10
+ WorkspacePlanNoFeatureAccessError
11
+ } from '../../domain/authErrors.js'
12
+ import { AuthPolicy } from '../../domain/policies.js'
13
+ import {
14
+ ensureDashboardsEnabledFragment,
15
+ ensureWorkspaceDashboardsFeatureAccessFragment
16
+ } from '../../fragments/dashboards.js'
17
+ import { hasMinimumWorkspaceRole } from '../../checks/workspaceRole.js'
18
+ import { Roles } from '../../../core/constants.js'
19
+ import { hasEditorSeat } from '../../checks/workspaceSeat.js'
20
+ import { isDashboardOwner } from '../../checks/dashboards.js'
21
+ import { checkIfAdminOverrideEnabledFragment } from '../../fragments/server.js'
22
+
23
+ type PolicyLoaderKeys =
24
+ | typeof AuthCheckContextLoaderKeys.getEnv
25
+ | typeof AuthCheckContextLoaderKeys.getServerRole
26
+ | typeof AuthCheckContextLoaderKeys.getAdminOverrideEnabled
27
+ | typeof AuthCheckContextLoaderKeys.getDashboard
28
+ | typeof AuthCheckContextLoaderKeys.getWorkspacePlan
29
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceRole
30
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceSeat
31
+
32
+ type PolicyArgs = MaybeUserContext & DashboardContext
33
+
34
+ type PolicyErrors = InstanceType<
35
+ | typeof DashboardsNotEnabledError
36
+ | typeof DashboardNotOwnerError
37
+ | typeof DashboardNotFoundError
38
+ | typeof WorkspaceNotEnoughPermissionsError
39
+ | typeof WorkspacePlanNoFeatureAccessError
40
+ | typeof WorkspaceNoEditorSeatError
41
+ >
42
+
43
+ export const canDeleteDashboardPolicy: AuthPolicy<
44
+ PolicyLoaderKeys,
45
+ PolicyArgs,
46
+ PolicyErrors
47
+ > =
48
+ (loaders) =>
49
+ async ({ userId, dashboardId }) => {
50
+ const isDashboardsEnabled = await ensureDashboardsEnabledFragment(loaders)({})
51
+ if (isDashboardsEnabled.isErr) return err(isDashboardsEnabled.error)
52
+
53
+ const dashboard = await loaders.getDashboard({ dashboardId })
54
+ if (!dashboard) return err(new DashboardNotFoundError())
55
+
56
+ const { workspaceId } = dashboard
57
+
58
+ const ensuredFeatureAccess = await ensureWorkspaceDashboardsFeatureAccessFragment(
59
+ loaders
60
+ )({ workspaceId })
61
+ if (ensuredFeatureAccess.isErr) return err(ensuredFeatureAccess.error)
62
+
63
+ const hasAdminAccess = await checkIfAdminOverrideEnabledFragment(loaders)({
64
+ userId
65
+ })
66
+ if (hasAdminAccess.isOk && hasAdminAccess.value) return ok()
67
+
68
+ const isWorkspaceEditorSeat = await hasEditorSeat(loaders)({
69
+ userId: userId!,
70
+ workspaceId
71
+ })
72
+ if (!isWorkspaceEditorSeat) return err(new WorkspaceNoEditorSeatError())
73
+
74
+ const isWorkspaceAdmin = await hasMinimumWorkspaceRole(loaders)({
75
+ userId: userId!,
76
+ workspaceId,
77
+ role: Roles.Workspace.Admin
78
+ })
79
+ const isOwner = await isDashboardOwner(loaders)({ userId: userId!, dashboardId })
80
+
81
+ if (!isWorkspaceAdmin && !isOwner) return err(new DashboardNotOwnerError())
82
+
83
+ return ok()
84
+ }
@@ -0,0 +1,79 @@
1
+ import { err, ok } from 'true-myth/result'
2
+ import { AuthCheckContextLoaderKeys } from '../../domain/loaders.js'
3
+ import { MaybeUserContext, DashboardContext } from '../../domain/context.js'
4
+ import {
5
+ DashboardNotFoundError,
6
+ DashboardsNotEnabledError,
7
+ WorkspaceNoEditorSeatError,
8
+ WorkspaceNotEnoughPermissionsError,
9
+ WorkspacePlanNoFeatureAccessError
10
+ } from '../../domain/authErrors.js'
11
+ import { AuthPolicy } from '../../domain/policies.js'
12
+ import {
13
+ ensureDashboardsEnabledFragment,
14
+ ensureWorkspaceDashboardsFeatureAccessFragment
15
+ } from '../../fragments/dashboards.js'
16
+ import { hasMinimumWorkspaceRole } from '../../checks/workspaceRole.js'
17
+ import { Roles } from '../../../core/constants.js'
18
+ import { hasEditorSeat } from '../../checks/workspaceSeat.js'
19
+ import { checkIfAdminOverrideEnabledFragment } from '../../fragments/server.js'
20
+
21
+ type PolicyLoaderKeys =
22
+ | typeof AuthCheckContextLoaderKeys.getEnv
23
+ | typeof AuthCheckContextLoaderKeys.getServerRole
24
+ | typeof AuthCheckContextLoaderKeys.getAdminOverrideEnabled
25
+ | typeof AuthCheckContextLoaderKeys.getDashboard
26
+ | typeof AuthCheckContextLoaderKeys.getWorkspacePlan
27
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceRole
28
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceSeat
29
+
30
+ type PolicyArgs = MaybeUserContext & DashboardContext
31
+
32
+ type PolicyErrors = InstanceType<
33
+ | typeof DashboardsNotEnabledError
34
+ | typeof DashboardNotFoundError
35
+ | typeof WorkspaceNotEnoughPermissionsError
36
+ | typeof WorkspacePlanNoFeatureAccessError
37
+ | typeof WorkspaceNoEditorSeatError
38
+ >
39
+
40
+ export const canEditDashboardPolicy: AuthPolicy<
41
+ PolicyLoaderKeys,
42
+ PolicyArgs,
43
+ PolicyErrors
44
+ > =
45
+ (loaders) =>
46
+ async ({ userId, dashboardId }) => {
47
+ const isDashboardsEnabled = await ensureDashboardsEnabledFragment(loaders)({})
48
+ if (isDashboardsEnabled.isErr) return err(isDashboardsEnabled.error)
49
+
50
+ const dashboard = await loaders.getDashboard({ dashboardId })
51
+ if (!dashboard) return err(new DashboardNotFoundError())
52
+
53
+ const { workspaceId } = dashboard
54
+
55
+ const ensuredFeatureAccess = await ensureWorkspaceDashboardsFeatureAccessFragment(
56
+ loaders
57
+ )({ workspaceId })
58
+ if (ensuredFeatureAccess.isErr) return err(ensuredFeatureAccess.error)
59
+
60
+ const hasAdminAccess = await checkIfAdminOverrideEnabledFragment(loaders)({
61
+ userId
62
+ })
63
+ if (hasAdminAccess.isOk && hasAdminAccess.value) return ok()
64
+
65
+ const isWorkspaceMember = await hasMinimumWorkspaceRole(loaders)({
66
+ userId: userId!,
67
+ workspaceId,
68
+ role: Roles.Workspace.Member
69
+ })
70
+ if (!isWorkspaceMember) return err(new WorkspaceNotEnoughPermissionsError())
71
+
72
+ const isWorkspaceEditorSeat = await hasEditorSeat(loaders)({
73
+ userId: userId!,
74
+ workspaceId
75
+ })
76
+ if (!isWorkspaceEditorSeat) return err(new WorkspaceNoEditorSeatError())
77
+
78
+ return ok()
79
+ }
@@ -0,0 +1,83 @@
1
+ import { err, ok } from 'true-myth/result'
2
+ import { AuthCheckContextLoaderKeys } from '../../domain/loaders.js'
3
+ import { DashboardContext, MaybeUserContext } from '../../domain/context.js'
4
+ import {
5
+ DashboardNotFoundError,
6
+ DashboardsNotEnabledError,
7
+ ServerNoAccessError,
8
+ ServerNoSessionError,
9
+ ServerNotEnoughPermissionsError,
10
+ WorkspaceNotEnoughPermissionsError,
11
+ WorkspacePlanNoFeatureAccessError
12
+ } from '../../domain/authErrors.js'
13
+ import { AuthPolicy } from '../../domain/policies.js'
14
+ import {
15
+ ensureDashboardsEnabledFragment,
16
+ ensureWorkspaceDashboardsFeatureAccessFragment
17
+ } from '../../fragments/dashboards.js'
18
+ import { hasMinimumWorkspaceRole } from '../../checks/workspaceRole.js'
19
+ import { Roles } from '../../../core/constants.js'
20
+ import {
21
+ checkIfAdminOverrideEnabledFragment,
22
+ ensureMinimumServerRoleFragment
23
+ } from '../../fragments/server.js'
24
+
25
+ type PolicyLoaderKeys =
26
+ | typeof AuthCheckContextLoaderKeys.getEnv
27
+ | typeof AuthCheckContextLoaderKeys.getServerRole
28
+ | typeof AuthCheckContextLoaderKeys.getAdminOverrideEnabled
29
+ | typeof AuthCheckContextLoaderKeys.getDashboard
30
+ | typeof AuthCheckContextLoaderKeys.getWorkspaceRole
31
+ | typeof AuthCheckContextLoaderKeys.getWorkspacePlan
32
+
33
+ type PolicyArgs = MaybeUserContext & DashboardContext
34
+
35
+ type PolicyErrors = InstanceType<
36
+ | typeof DashboardsNotEnabledError
37
+ | typeof DashboardNotFoundError
38
+ | typeof ServerNoSessionError
39
+ | typeof ServerNoAccessError
40
+ | typeof ServerNotEnoughPermissionsError
41
+ | typeof WorkspaceNotEnoughPermissionsError
42
+ | typeof WorkspacePlanNoFeatureAccessError
43
+ >
44
+
45
+ export const canReadDashboardPolicy: AuthPolicy<
46
+ PolicyLoaderKeys,
47
+ PolicyArgs,
48
+ PolicyErrors
49
+ > =
50
+ (loaders) =>
51
+ async ({ userId, dashboardId }) => {
52
+ const ensuredServerRole = await ensureMinimumServerRoleFragment(loaders)({
53
+ userId,
54
+ role: Roles.Server.User
55
+ })
56
+ if (ensuredServerRole.isErr) return err(ensuredServerRole.error)
57
+ const isDashboardsEnabled = await ensureDashboardsEnabledFragment(loaders)({})
58
+ if (isDashboardsEnabled.isErr) return err(isDashboardsEnabled.error)
59
+
60
+ const dashboard = await loaders.getDashboard({ dashboardId })
61
+ if (!dashboard) return err(new DashboardNotFoundError())
62
+
63
+ const { workspaceId } = dashboard
64
+
65
+ const ensuredFeatureAccess = await ensureWorkspaceDashboardsFeatureAccessFragment(
66
+ loaders
67
+ )({ workspaceId })
68
+ if (ensuredFeatureAccess.isErr) return err(ensuredFeatureAccess.error)
69
+
70
+ const hasAdminAccess = await checkIfAdminOverrideEnabledFragment(loaders)({
71
+ userId
72
+ })
73
+ if (hasAdminAccess.isOk && hasAdminAccess.value) return ok()
74
+
75
+ const isWorkspaceMember = await hasMinimumWorkspaceRole(loaders)({
76
+ userId: userId!,
77
+ workspaceId,
78
+ role: Roles.Workspace.Member
79
+ })
80
+ if (!isWorkspaceMember) return err(new WorkspaceNotEnoughPermissionsError())
81
+
82
+ return ok()
83
+ }
@@ -0,0 +1,13 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
+ import { describe, expect, it } from 'vitest'
4
+ import { authPoliciesFactory } from './index.js'
5
+
6
+ describe('authPoliciesFactory', () => {
7
+ it('builds and contains policies', () => {
8
+ const policies = authPoliciesFactory({} as any) // fake loaders
9
+ expect(policies.project.canLeave).toBeDefined()
10
+ expect(policies.automate.function.canRegenerateToken).toBeDefined()
11
+ expect(policies.workspace.canInvite).toBeDefined()
12
+ })
13
+ })
@@ -28,10 +28,40 @@ import { canDeleteProjectPolicy } from './project/canDelete.js'
28
28
  import { canDeleteAutomationPolicy } from './project/automation/canDelete.js'
29
29
  import { canPublishPolicy } from './project/canPublish.js'
30
30
  import { canLoadPolicy } from './project/canLoad.js'
31
- import { canUpdateEmbedOptionsPolicy } from './workspace/canUpdateEmbedOptions.js'
32
31
  import { canReadMemberEmailPolicy } from './workspace/canReadMemberEmail.js'
32
+ import { canCreateWorkspacePolicy } from './workspace/canCreateWorkspace.js'
33
+ import { canUseWorkspacePlanFeature } from './workspace/canUseWorkspacePlanFeature.js'
34
+ import { canEditFunctionPolicy } from './automate/function/canEditFunction.js'
35
+ import { canUpdateEmbedTokensPolicy } from './project/canUpdateEmbedTokens.js'
36
+ import { canReadAccIntegrationSettingsPolicy } from './project/canReadAccIntegrationSettings.js'
37
+ import { canCreateSavedViewPolicy } from './project/savedViews/canCreate.js'
38
+ import { canUpdateSavedViewPolicy } from './project/savedViews/canUpdate.js'
39
+ import { canUpdateSavedViewGroupPolicy } from './project/savedViews/canUpdateGroup.js'
40
+ import { canReadSavedViewPolicy } from './project/savedViews/canRead.js'
41
+ import { canListDashboardsPolicy } from './workspace/canListDashboards.js'
42
+ import { canDeleteDashboardPolicy } from './dashboard/canDelete.js'
43
+ import { canCreateDashboardsPolicy } from './workspace/canCreateDashboards.js'
44
+ import { canCreateDashboardTokenPolicy } from './dashboard/canCreateToken.js'
45
+ import { canEditDashboardPolicy } from './dashboard/canEdit.js'
46
+ import { canReadDashboardPolicy } from './dashboard/canRead.js'
47
+ import { canMoveSavedViewPolicy } from './project/savedViews/canMove.js'
48
+ import { canEditSavedViewTitlePolicy } from './project/savedViews/canEditTitle.js'
49
+ import { canEditSavedViewDescriptionPolicy } from './project/savedViews/canEditDescription.js'
50
+ import { canCreateSavedViewGroupTokenPolicy } from './project/savedViews/canCreateSavedViewGroupToken.js'
51
+ import { canSetSavedViewAsHomeViewPolicy } from './project/savedViews/canSetAsHomeView.js'
33
52
 
34
53
  export const authPoliciesFactory = (loaders: AllAuthCheckContextLoaders) => ({
54
+ automate: {
55
+ function: {
56
+ canRegenerateToken: canEditFunctionPolicy(loaders)
57
+ }
58
+ },
59
+ dashboard: {
60
+ canCreateToken: canCreateDashboardTokenPolicy(loaders),
61
+ canDelete: canDeleteDashboardPolicy(loaders),
62
+ canEdit: canEditDashboardPolicy(loaders),
63
+ canRead: canReadDashboardPolicy(loaders)
64
+ },
35
65
  project: {
36
66
  automation: {
37
67
  canCreate: canCreateAutomationPolicy(loaders),
@@ -55,6 +85,17 @@ export const authPoliciesFactory = (loaders: AllAuthCheckContextLoaders) => ({
55
85
  canReceive: canLoadPolicy(loaders),
56
86
  canRequestRender: canRequestProjectVersionRenderPolicy(loaders)
57
87
  },
88
+ savedViews: {
89
+ canCreate: canCreateSavedViewPolicy(loaders),
90
+ canUpdate: canUpdateSavedViewPolicy(loaders),
91
+ canUpdateGroup: canUpdateSavedViewGroupPolicy(loaders),
92
+ canCreateToken: canCreateSavedViewGroupTokenPolicy(loaders),
93
+ canRead: canReadSavedViewPolicy(loaders),
94
+ canMove: canMoveSavedViewPolicy(loaders),
95
+ canEditTitle: canEditSavedViewTitlePolicy(loaders),
96
+ canEditDescription: canEditSavedViewDescriptionPolicy(loaders),
97
+ canSetAsHomeView: canSetSavedViewAsHomeViewPolicy(loaders)
98
+ },
58
99
  canBroadcastActivity: canBroadcastProjectActivityPolicy(loaders),
59
100
  canRead: canReadProjectPolicy(loaders),
60
101
  canMoveToWorkspace: canMoveToWorkspacePolicy(loaders),
@@ -67,15 +108,22 @@ export const authPoliciesFactory = (loaders: AllAuthCheckContextLoaders) => ({
67
108
  canLeave: canLeaveProjectPolicy(loaders),
68
109
  canInvite: canInviteToProjectPolicy(loaders),
69
110
  canPublish: canPublishPolicy(loaders),
70
- canLoad: canLoadPolicy(loaders)
111
+ canLoad: canLoadPolicy(loaders),
112
+ canReadEmbedTokens: canUpdateEmbedTokensPolicy(loaders),
113
+ canUpdateEmbedTokens: canUpdateEmbedTokensPolicy(loaders),
114
+ canReadAccIntegrationSettings: canReadAccIntegrationSettingsPolicy(loaders),
115
+ canUpdateAccIntegrationSettings: canReadAccIntegrationSettingsPolicy(loaders)
71
116
  },
72
117
  workspace: {
73
118
  canCreateProject: canCreateWorkspaceProjectPolicy(loaders),
74
119
  canInvite: canInviteToWorkspacePolicy(loaders),
75
120
  canReceiveProjectsUpdatedMessage:
76
121
  canReceiveWorkspaceProjectsUpdatedMessagePolicy(loaders),
77
- canUpdateEmbedOptions: canUpdateEmbedOptionsPolicy(loaders),
78
- canReadMemberEmail: canReadMemberEmailPolicy(loaders)
122
+ canUseWorkspacePlanFeature: canUseWorkspacePlanFeature(loaders),
123
+ canReadMemberEmail: canReadMemberEmailPolicy(loaders),
124
+ canCreateWorkspace: canCreateWorkspacePolicy(loaders),
125
+ canCreateDashboards: canCreateDashboardsPolicy(loaders),
126
+ canListDashboards: canListDashboardsPolicy(loaders)
79
127
  }
80
128
  })
81
129
 
@@ -14,6 +14,7 @@ import {
14
14
  } from '../../../domain/authErrors.js'
15
15
  import { TIME_MS } from '../../../../core/index.js'
16
16
  import { ProjectVisibility } from '../../../domain/projects/types.js'
17
+ import { getWorkspaceFake } from '../../../../tests/fakes.js'
17
18
 
18
19
  const buildCanCreatePolicy = (
19
20
  overrides?: Partial<Parameters<typeof canCreateAutomationPolicy>[0]>
@@ -134,7 +135,7 @@ describe('canCreateAutomation', () => {
134
135
  visibility: ProjectVisibility.Private,
135
136
  allowPublicComments: false
136
137
  }),
137
- getWorkspace: async () => ({
138
+ getWorkspace: getWorkspaceFake({
138
139
  id: 'workspace-id',
139
140
  slug: 'workspace-slug'
140
141
  }),
@@ -14,6 +14,7 @@ import {
14
14
  } from '../../../domain/authErrors.js'
15
15
  import { TIME_MS } from '../../../../core/index.js'
16
16
  import { ProjectVisibility } from '../../../domain/projects/types.js'
17
+ import { getWorkspaceFake } from '../../../../tests/fakes.js'
17
18
 
18
19
  const buildCanDeletePolicy = (
19
20
  overrides?: Partial<Parameters<typeof canDeleteAutomationPolicy>[0]>
@@ -134,7 +135,7 @@ describe('canDeleteAutomation', () => {
134
135
  visibility: ProjectVisibility.Private,
135
136
  allowPublicComments: false
136
137
  }),
137
- getWorkspace: async () => ({
138
+ getWorkspace: getWorkspaceFake({
138
139
  id: 'workspace-id',
139
140
  slug: 'workspace-slug'
140
141
  }),
@@ -14,6 +14,7 @@ import {
14
14
  } from '../../../domain/authErrors.js'
15
15
  import { TIME_MS } from '../../../../core/index.js'
16
16
  import { ProjectVisibility } from '../../../domain/projects/types.js'
17
+ import { getWorkspaceFake } from '../../../../tests/fakes.js'
17
18
 
18
19
  const buildCanUpdatePolicy = (
19
20
  overrides?: Partial<Parameters<typeof canUpdateAutomationPolicy>[0]>
@@ -134,7 +135,7 @@ describe('canUpdateAutomation', () => {
134
135
  visibility: ProjectVisibility.Private,
135
136
  allowPublicComments: false
136
137
  }),
137
- getWorkspace: async () => ({
138
+ getWorkspace: getWorkspaceFake({
138
139
  id: 'workspace-id',
139
140
  slug: 'workspace-slug'
140
141
  }),
@@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest'
2
2
  import { OverridesOf } from '../../../tests/helpers/types.js'
3
3
  import { canBroadcastProjectActivityPolicy } from './canBroadcastActivity.js'
4
4
  import { parseFeatureFlags } from '../../../environment/index.js'
5
- import { getProjectFake } from '../../../tests/fakes.js'
5
+ import { getProjectFake, getWorkspaceFake } from '../../../tests/fakes.js'
6
6
  import { Roles } from '../../../core/constants.js'
7
7
  import {
8
8
  ProjectNoAccessError,
@@ -48,7 +48,7 @@ describe('canBroadcastProjectActivityPolicy', () => {
48
48
  visibility: ProjectVisibility.Workspace
49
49
  }),
50
50
  getProjectRole: async () => null,
51
- getWorkspace: async () => ({
51
+ getWorkspace: getWorkspaceFake({
52
52
  id: 'workspace-id',
53
53
  slug: 'workspace-slug'
54
54
  }),
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, it } from 'vitest'
2
2
  import { canDeleteProjectPolicy } from './canDelete.js'
3
3
  import { parseFeatureFlags } from '../../../environment/index.js'
4
- import { getProjectFake } from '../../../tests/fakes.js'
4
+ import { getProjectFake, getWorkspaceFake } from '../../../tests/fakes.js'
5
5
  import { Roles } from '../../../core/constants.js'
6
6
  import { TIME_MS } from '../../../core/index.js'
7
7
 
@@ -32,7 +32,7 @@ describe('canDeleteProjectPolicy', () => {
32
32
  id: 'project-id',
33
33
  workspaceId: 'workspace-id'
34
34
  }),
35
- getWorkspace: async () => ({
35
+ getWorkspace: getWorkspaceFake({
36
36
  id: 'workspace-id',
37
37
  slug: 'workspace-slug'
38
38
  }),