@postgres.ai/shared 4.0.3 → 4.1.0

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 (686) hide show
  1. package/.gitlab-ci.yml +77 -0
  2. package/components/AlertSnackbar/index.tsx +23 -0
  3. package/components/AlertSnackbar/useAlertSnackbar.tsx +65 -0
  4. package/components/Button/index.tsx +79 -0
  5. package/components/Button2/index.tsx +43 -0
  6. package/components/DestroyCloneModal/index.tsx +52 -0
  7. package/components/DestroyCloneRestrictionModal/index.tsx +50 -0
  8. package/components/ErrorStub/index.tsx +83 -0
  9. package/components/FormattedText/index.tsx +44 -0
  10. package/components/GatewayLink/index.tsx +33 -0
  11. package/components/HorizontalScrollContainer/index.tsx +131 -0
  12. package/components/HorizontalScrollContainer/types.ts +12 -0
  13. package/components/HorizontalScrollContainer/utils.ts +16 -0
  14. package/components/ImportantText/index.tsx +29 -0
  15. package/components/Link2/index.tsx +31 -0
  16. package/components/MenuButton/index.tsx +88 -0
  17. package/components/Modal/index.tsx +93 -0
  18. package/components/PageSpinner/index.tsx +18 -0
  19. package/components/ResetCloneModal/index.tsx +149 -0
  20. package/components/SectionTitle/index.tsx +74 -0
  21. package/components/Select/index.tsx +43 -0
  22. package/components/SimpleModalControls/index.tsx +56 -0
  23. package/components/Spinner/icon.tsx +29 -0
  24. package/components/Spinner/index.tsx +16 -0
  25. package/components/Status/index.tsx +61 -0
  26. package/components/StubContainer/index.tsx +41 -0
  27. package/components/StubSpinner/index.tsx +49 -0
  28. package/components/StubSpinnerFlex/index.tsx +20 -0
  29. package/components/SyntaxHighlight/index.tsx +107 -0
  30. package/components/Table/RowMenu/index.tsx +111 -0
  31. package/components/Table/index.tsx +140 -0
  32. package/components/Text/index.tsx +28 -0
  33. package/components/TextField/index.tsx +119 -0
  34. package/components/Tooltip/index.tsx +52 -0
  35. package/config/index.ts +32 -0
  36. package/config/links.ts +6 -0
  37. package/dist/components/Button2/styles.module.scss +82 -0
  38. package/dist/components/FormattedText/styles.module.scss +34 -0
  39. package/dist/components/Link2/styles.module.scss +12 -0
  40. package/dist/components/MenuButton/styles.module.scss +42 -0
  41. package/dist/components/PageSpinner/styles.module.scss +13 -0
  42. package/{components → dist/components}/Select/index.d.ts +1 -0
  43. package/dist/components/Spinner/styles.module.scss +33 -0
  44. package/dist/components/Status/styles.module.scss +45 -0
  45. package/dist/components/StubSpinnerFlex/styles.module.scss +20 -0
  46. package/{components → dist/components}/TextField/index.d.ts +2 -1
  47. package/{components → dist/components}/TextField/index.js +1 -1
  48. package/dist/helpers/getEntropy.d.ts +11 -0
  49. package/{helpers → dist/helpers}/getEntropy.js +39 -0
  50. package/dist/icons/PostgresSQL/index.js +2 -0
  51. package/dist/meta.json +1 -0
  52. package/dist/package.json +54 -0
  53. package/{pages → dist/pages}/Clone/index.js +49 -6
  54. package/{pages → dist/pages}/Clone/stores/Main.d.ts +1 -1
  55. package/{pages → dist/pages}/Clone/stores/Main.js +8 -2
  56. package/{pages → dist/pages}/CreateBranch/useForm.d.ts +1 -1
  57. package/{pages → dist/pages}/CreateClone/index.js +75 -24
  58. package/{pages → dist/pages}/CreateClone/stores/Main.d.ts +1 -1
  59. package/{pages → dist/pages}/CreateClone/stores/Main.js +2 -1
  60. package/dist/pages/CreateClone/styles.module.scss +128 -0
  61. package/{pages → dist/pages}/CreateClone/useForm.d.ts +3 -2
  62. package/{pages → dist/pages}/CreateClone/useForm.js +3 -2
  63. package/{pages → dist/pages}/CreateClone/utils/index.d.ts +1 -1
  64. package/dist/pages/CreateClone/utils/index.js +29 -0
  65. package/{pages → dist/pages}/CreateSnapshot/useForm.d.ts +1 -1
  66. package/dist/pages/Instance/Clones/ClonesList/styles.module.scss +42 -0
  67. package/dist/pages/Instance/Clones/Header/Item/styles.module.scss +17 -0
  68. package/dist/pages/Instance/Clones/Header/styles.module.scss +14 -0
  69. package/{pages → dist/pages}/Instance/Configuration/index.js +3 -1
  70. package/dist/pages/Instance/Configuration/styles.module.scss +122 -0
  71. package/{pages → dist/pages}/Instance/Configuration/useForm.d.ts +1 -1
  72. package/{pages → dist/pages}/Instance/Info/Disks/Disk/ProgressBar/index.d.ts +2 -1
  73. package/{pages → dist/pages}/Instance/Info/Disks/Disk/ProgressBar/index.js +1 -1
  74. package/{pages/Instance/Info/Disks/Disk → dist/pages/Instance/Info/Disks/PoolSection/DatasetRow}/index.d.ts +6 -8
  75. package/dist/pages/Instance/Info/Disks/PoolSection/DatasetRow/index.js +52 -0
  76. package/dist/pages/Instance/Info/Disks/PoolSection/index.d.ts +10 -0
  77. package/dist/pages/Instance/Info/Disks/PoolSection/index.js +64 -0
  78. package/dist/pages/Instance/Info/Disks/index.js +68 -0
  79. package/dist/pages/Instance/Info/Retrieval/RefreshFailedAlert/styles.module.scss +33 -0
  80. package/dist/pages/Instance/Info/Retrieval/RetrievalModal/styles.module.scss +6 -0
  81. package/dist/pages/Instance/Info/Retrieval/RetrievalTable/styles.module.scss +29 -0
  82. package/dist/pages/Instance/Info/Status/InstanceResponseModal/styles.module.scss +3 -0
  83. package/dist/pages/Instance/Info/Status/styles.module.scss +12 -0
  84. package/dist/pages/Instance/Info/components/Property/styles.module.scss +21 -0
  85. package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotsList/index.js +1 -1
  86. package/dist/pages/Instance/styles.scss +37 -0
  87. package/dist/react-app-env.d.ts +64 -0
  88. package/dist/styles/global.scss +29 -0
  89. package/dist/styles/mixins.scss +30 -0
  90. package/dist/styles/vars.scss +43 -0
  91. package/dist/tsconfig.build.json +36 -0
  92. package/dist/tsconfig.json +30 -0
  93. package/{types → dist/types}/api/endpoints/createClone.d.ts +1 -1
  94. package/{types → dist/types}/api/endpoints/updateClone.d.ts +1 -0
  95. package/{types → dist/types}/api/entities/clone.d.ts +7 -0
  96. package/{types → dist/types}/api/entities/clone.js +1 -0
  97. package/{types → dist/types}/api/entities/config.js +8 -8
  98. package/{types → dist/types}/api/entities/instance.d.ts +6 -0
  99. package/{types → dist/types}/api/entities/instanceState.d.ts +8 -0
  100. package/{types → dist/types}/api/entities/instanceState.js +4 -2
  101. package/helpers/getEntropy.ts +278 -0
  102. package/helpers/localStorage.ts +15 -0
  103. package/helpers/request.ts +47 -0
  104. package/hooks/useWindowDimensions.ts +16 -0
  105. package/icons/ArrowDropDown/index.tsx +31 -0
  106. package/icons/Circle/index.tsx +27 -0
  107. package/icons/External/index.tsx +14 -0
  108. package/icons/Info/index.tsx +12 -0
  109. package/icons/PostgresSQL/index.tsx +18 -0
  110. package/icons/Renewable/index.tsx +65 -0
  111. package/icons/Shield/index.tsx +33 -0
  112. package/icons/Warning/index.tsx +29 -0
  113. package/package.json +25 -18
  114. package/pages/Branches/Branch/context.ts +25 -0
  115. package/pages/Branches/Branch/index.tsx +434 -0
  116. package/pages/Branches/Branch/stores/Main.ts +138 -0
  117. package/pages/Branches/Branch/useCreatedStores.ts +10 -0
  118. package/pages/Branches/components/BranchesTable/index.tsx +194 -0
  119. package/pages/Branches/components/Modals/DeleteBranchModal/index.tsx +84 -0
  120. package/pages/Branches/components/Modals/types.ts +4 -0
  121. package/pages/Branches/index.tsx +128 -0
  122. package/pages/Clone/Status/index.tsx +73 -0
  123. package/pages/Clone/context.ts +24 -0
  124. package/pages/Clone/index.tsx +756 -0
  125. package/pages/Clone/stores/Main.ts +215 -0
  126. package/pages/Clone/useCreatedStores.ts +11 -0
  127. package/pages/Clone/utils/index.ts +15 -0
  128. package/pages/CreateBranch/index.tsx +322 -0
  129. package/pages/CreateBranch/stores/Main.ts +99 -0
  130. package/pages/CreateBranch/useCreatedStores.ts +11 -0
  131. package/pages/CreateBranch/useForm.ts +60 -0
  132. package/pages/CreateBranch/utils/index.ts +18 -0
  133. package/pages/CreateClone/index.tsx +520 -0
  134. package/pages/CreateClone/stores/Main.ts +139 -0
  135. package/pages/CreateClone/styles.module.scss +14 -0
  136. package/pages/CreateClone/useCreatedStores.ts +11 -0
  137. package/pages/CreateClone/useForm.ts +51 -0
  138. package/pages/CreateClone/utils/index.ts +38 -0
  139. package/pages/CreateSnapshot/index.tsx +253 -0
  140. package/pages/CreateSnapshot/stores/Main.ts +70 -0
  141. package/pages/CreateSnapshot/useCreatedStores.ts +11 -0
  142. package/pages/CreateSnapshot/useForm.ts +34 -0
  143. package/pages/CreateSnapshot/utils/index.ts +8 -0
  144. package/pages/Instance/Clones/ClonesList/ConnectionModal/index.tsx +196 -0
  145. package/pages/Instance/Clones/ClonesList/MenuCell/index.tsx +98 -0
  146. package/pages/Instance/Clones/ClonesList/MenuCell/utils.ts +21 -0
  147. package/pages/Instance/Clones/ClonesList/index.tsx +246 -0
  148. package/pages/Instance/Clones/ClonesModal/index.tsx +71 -0
  149. package/pages/Instance/Clones/ClonesModal/utils.ts +21 -0
  150. package/pages/Instance/Clones/Header/Item/index.tsx +15 -0
  151. package/pages/Instance/Clones/Header/index.tsx +74 -0
  152. package/pages/Instance/Clones/index.tsx +141 -0
  153. package/pages/Instance/Configuration/Header/index.tsx +84 -0
  154. package/pages/Instance/Configuration/InputWithTooltip/index.tsx +240 -0
  155. package/pages/Instance/Configuration/ResponseMessage/index.tsx +71 -0
  156. package/pages/Instance/Configuration/configOptions.ts +60 -0
  157. package/pages/Instance/Configuration/index.tsx +1233 -0
  158. package/pages/Instance/Configuration/tooltipText.tsx +170 -0
  159. package/pages/Instance/Configuration/useForm.ts +108 -0
  160. package/pages/Instance/Configuration/utils/index.ts +236 -0
  161. package/pages/Instance/InactiveInstance/index.tsx +157 -0
  162. package/pages/Instance/InactiveInstance/utils.ts +9 -0
  163. package/pages/Instance/Info/Connection/ConnectModal/Content/index.tsx +176 -0
  164. package/pages/Instance/Info/Connection/ConnectModal/Content/utils.ts +24 -0
  165. package/pages/Instance/Info/Connection/ConnectModal/index.tsx +36 -0
  166. package/pages/Instance/Info/Connection/index.tsx +81 -0
  167. package/pages/Instance/Info/Details/index.tsx +20 -0
  168. package/pages/Instance/Info/Disks/Disk/ActionsMenu/index.tsx +100 -0
  169. package/pages/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.tsx +20 -0
  170. package/pages/Instance/Info/Disks/Disk/ProgressBar/index.tsx +76 -0
  171. package/pages/Instance/Info/Disks/Disk/Status/index.tsx +75 -0
  172. package/pages/Instance/Info/Disks/PoolSection/DatasetRow/index.tsx +117 -0
  173. package/pages/Instance/Info/Disks/PoolSection/index.tsx +112 -0
  174. package/pages/Instance/Info/Disks/index.tsx +114 -0
  175. package/pages/Instance/Info/Icons/index.tsx +39 -0
  176. package/pages/Instance/Info/Retrieval/ConfirmFullRefreshModal/index.tsx +109 -0
  177. package/pages/Instance/Info/Retrieval/RefreshFailedAlert/index.tsx +32 -0
  178. package/pages/Instance/Info/Retrieval/RetrievalModal/index.tsx +43 -0
  179. package/pages/Instance/Info/Retrieval/RetrievalTable/index.tsx +53 -0
  180. package/pages/Instance/Info/Retrieval/index.tsx +113 -0
  181. package/pages/Instance/Info/Retrieval/utils.ts +10 -0
  182. package/pages/Instance/Info/Snapshots/Calendar/Day/index.tsx +125 -0
  183. package/pages/Instance/Info/Snapshots/Calendar/index.tsx +133 -0
  184. package/pages/Instance/Info/Snapshots/Calendar/utils.ts +74 -0
  185. package/pages/Instance/Info/Snapshots/TimeLine/Day/index.tsx +79 -0
  186. package/pages/Instance/Info/Snapshots/TimeLine/index.tsx +57 -0
  187. package/pages/Instance/Info/Snapshots/index.tsx +102 -0
  188. package/pages/Instance/Info/Snapshots/utils.ts +31 -0
  189. package/pages/Instance/Info/Status/InstanceResponseModal/index.tsx +32 -0
  190. package/pages/Instance/Info/Status/index.tsx +89 -0
  191. package/pages/Instance/Info/Status/utils.ts +24 -0
  192. package/pages/Instance/Info/components/Property/index.tsx +32 -0
  193. package/pages/Instance/Info/components/Section/index.tsx +50 -0
  194. package/pages/Instance/Info/components/ValueStatus/index.tsx +51 -0
  195. package/pages/Instance/Info/index.tsx +137 -0
  196. package/pages/Instance/Snapshots/components/SnapshotHeader/index.tsx +77 -0
  197. package/pages/Instance/Snapshots/components/SnapshotsList/index.tsx +285 -0
  198. package/pages/Instance/Snapshots/components/SnapshotsModal/utils.ts +17 -0
  199. package/pages/Instance/Snapshots/components/SnapshotsTable/index.tsx +231 -0
  200. package/pages/Instance/Snapshots/index.tsx +171 -0
  201. package/pages/Instance/Snapshots/utils/index.ts +39 -0
  202. package/pages/Instance/SnapshotsModal/index.tsx +159 -0
  203. package/pages/Instance/Tabs/PlatformTabs.tsx +83 -0
  204. package/pages/Instance/Tabs/index.tsx +140 -0
  205. package/pages/Instance/Tabs/styles.ts +68 -0
  206. package/pages/Instance/components/ErrorStub/index.tsx +77 -0
  207. package/pages/Instance/components/ModalReloadButton/index.tsx +42 -0
  208. package/pages/Instance/components/Tags/Tag/index.tsx +60 -0
  209. package/pages/Instance/components/Tags/index.tsx +42 -0
  210. package/pages/Instance/context.ts +46 -0
  211. package/pages/Instance/index.tsx +257 -0
  212. package/pages/Instance/stores/ClonesModal.ts +35 -0
  213. package/pages/Instance/stores/Main.ts +484 -0
  214. package/pages/Instance/stores/SnapshotsModal.ts +35 -0
  215. package/pages/Instance/useCreatedStores.ts +14 -0
  216. package/pages/Logs/Icons/PlusIcon.tsx +9 -0
  217. package/pages/Logs/constants/index.ts +7 -0
  218. package/pages/Logs/hooks/useWsScroll.tsx +47 -0
  219. package/pages/Logs/index.tsx +287 -0
  220. package/pages/Logs/utils/index.ts +20 -0
  221. package/pages/Logs/wsLogs.ts +126 -0
  222. package/pages/Logs/wsSnackbar.ts +26 -0
  223. package/pages/Snapshots/Snapshot/DestorySnapshotModal/index.tsx +144 -0
  224. package/pages/Snapshots/Snapshot/context.ts +26 -0
  225. package/pages/Snapshots/Snapshot/index.tsx +485 -0
  226. package/pages/Snapshots/Snapshot/stores/Main.ts +120 -0
  227. package/pages/Snapshots/Snapshot/useCreatedStores.ts +10 -0
  228. package/postgres.ai-shared-4.1.0.tgz +0 -0
  229. package/react-app-env.d.ts +0 -7
  230. package/scripts/copy-assets.js +30 -0
  231. package/scripts/pack.js +70 -0
  232. package/stores/Snapshots.ts +97 -0
  233. package/styles/colors.ts +67 -0
  234. package/styles/icons.tsx +1917 -0
  235. package/styles/styles.ts +87 -0
  236. package/styles/theme.ts +53 -0
  237. package/styles/vars.ts +40 -0
  238. package/tsconfig.build.json +0 -1
  239. package/types/api/endpoints/createBranch.ts +14 -0
  240. package/types/api/endpoints/createClone.ts +11 -0
  241. package/types/api/endpoints/createSnapshot.ts +10 -0
  242. package/types/api/endpoints/deleteBranch.ts +4 -0
  243. package/types/api/endpoints/destroyClone.ts +7 -0
  244. package/types/api/endpoints/destroySnapshot.ts +8 -0
  245. package/types/api/endpoints/fullRefresh.ts +6 -0
  246. package/types/api/endpoints/getBranchSnapshot.ts +6 -0
  247. package/types/api/endpoints/getBranches.ts +22 -0
  248. package/types/api/endpoints/getClone.ts +6 -0
  249. package/types/api/endpoints/getConfig.ts +6 -0
  250. package/types/api/endpoints/getEngine.ts +13 -0
  251. package/types/api/endpoints/getFullConfig.ts +4 -0
  252. package/types/api/endpoints/getInstance.ts +6 -0
  253. package/types/api/endpoints/getInstanceRetrieval.ts +6 -0
  254. package/types/api/endpoints/getSeImages.ts +22 -0
  255. package/types/api/endpoints/getSnapshotList.ts +14 -0
  256. package/types/api/endpoints/getSnapshots.ts +6 -0
  257. package/types/api/endpoints/getWSToken.ts +6 -0
  258. package/types/api/endpoints/initWS.ts +1 -0
  259. package/types/api/endpoints/refreshInstance.ts +4 -0
  260. package/types/api/endpoints/resetClone.ts +8 -0
  261. package/types/api/endpoints/testDbSource.ts +48 -0
  262. package/types/api/endpoints/updateClone.ts +11 -0
  263. package/types/api/endpoints/updateConfig.ts +9 -0
  264. package/types/api/entities/branchSnapshot.ts +8 -0
  265. package/types/api/entities/branchSnapshots.ts +10 -0
  266. package/types/api/entities/clone.ts +47 -0
  267. package/types/api/entities/config.ts +117 -0
  268. package/types/api/entities/createBranch.ts +7 -0
  269. package/types/api/entities/createSnapshot.ts +7 -0
  270. package/types/api/entities/dbSource.ts +14 -0
  271. package/types/api/entities/instance.ts +67 -0
  272. package/types/api/entities/instanceRetrieval.ts +46 -0
  273. package/types/api/entities/instanceState.ts +106 -0
  274. package/types/api/entities/pool.ts +27 -0
  275. package/types/api/entities/snapshot.ts +22 -0
  276. package/types/api/entities/wsToken.ts +7 -0
  277. package/types/byte-size/index.d.ts +22 -0
  278. package/utils/api.ts +30 -0
  279. package/utils/clone.ts +31 -0
  280. package/utils/connection.ts +38 -0
  281. package/utils/date.ts +136 -0
  282. package/utils/instance.ts +10 -0
  283. package/utils/numbers.ts +11 -0
  284. package/utils/react.ts +10 -0
  285. package/utils/snapshot.ts +8 -0
  286. package/utils/strings.ts +11 -0
  287. package/utils/units.ts +23 -0
  288. package/helpers/getEntropy.d.ts +0 -3
  289. package/icons/PostgresSQL/index.js +0 -40
  290. package/pages/CreateClone/utils/index.js +0 -17
  291. package/pages/Instance/Info/Disks/Disk/Marker/index.d.ts +0 -6
  292. package/pages/Instance/Info/Disks/Disk/Marker/index.js +0 -15
  293. package/pages/Instance/Info/Disks/Disk/index.js +0 -71
  294. package/pages/Instance/Info/Disks/index.js +0 -24
  295. /package/{components → dist/components}/AlertSnackbar/index.d.ts +0 -0
  296. /package/{components → dist/components}/AlertSnackbar/index.js +0 -0
  297. /package/{components → dist/components}/AlertSnackbar/useAlertSnackbar.d.ts +0 -0
  298. /package/{components → dist/components}/AlertSnackbar/useAlertSnackbar.js +0 -0
  299. /package/{components → dist/components}/Button/index.d.ts +0 -0
  300. /package/{components → dist/components}/Button/index.js +0 -0
  301. /package/{components → dist/components}/Button2/index.d.ts +0 -0
  302. /package/{components → dist/components}/Button2/index.js +0 -0
  303. /package/{components → dist/components}/DestroyCloneModal/index.d.ts +0 -0
  304. /package/{components → dist/components}/DestroyCloneModal/index.js +0 -0
  305. /package/{components → dist/components}/DestroyCloneRestrictionModal/index.d.ts +0 -0
  306. /package/{components → dist/components}/DestroyCloneRestrictionModal/index.js +0 -0
  307. /package/{components → dist/components}/ErrorStub/index.d.ts +0 -0
  308. /package/{components → dist/components}/ErrorStub/index.js +0 -0
  309. /package/{components → dist/components}/FormattedText/index.d.ts +0 -0
  310. /package/{components → dist/components}/FormattedText/index.js +0 -0
  311. /package/{components → dist/components}/GatewayLink/index.d.ts +0 -0
  312. /package/{components → dist/components}/GatewayLink/index.js +0 -0
  313. /package/{components → dist/components}/HorizontalScrollContainer/index.d.ts +0 -0
  314. /package/{components → dist/components}/HorizontalScrollContainer/index.js +0 -0
  315. /package/{components → dist/components}/HorizontalScrollContainer/types.d.ts +0 -0
  316. /package/{components → dist/components}/HorizontalScrollContainer/types.js +0 -0
  317. /package/{components → dist/components}/HorizontalScrollContainer/utils.d.ts +0 -0
  318. /package/{components → dist/components}/HorizontalScrollContainer/utils.js +0 -0
  319. /package/{components → dist/components}/ImportantText/index.d.ts +0 -0
  320. /package/{components → dist/components}/ImportantText/index.js +0 -0
  321. /package/{components → dist/components}/Link2/index.d.ts +0 -0
  322. /package/{components → dist/components}/Link2/index.js +0 -0
  323. /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
  324. /package/{components → dist/components}/MenuButton/index.js +0 -0
  325. /package/{components → dist/components}/Modal/index.d.ts +0 -0
  326. /package/{components → dist/components}/Modal/index.js +0 -0
  327. /package/{components → dist/components}/PageSpinner/index.d.ts +0 -0
  328. /package/{components → dist/components}/PageSpinner/index.js +0 -0
  329. /package/{components → dist/components}/ResetCloneModal/index.d.ts +0 -0
  330. /package/{components → dist/components}/ResetCloneModal/index.js +0 -0
  331. /package/{components → dist/components}/SectionTitle/index.d.ts +0 -0
  332. /package/{components → dist/components}/SectionTitle/index.js +0 -0
  333. /package/{components → dist/components}/Select/index.js +0 -0
  334. /package/{components → dist/components}/SimpleModalControls/index.d.ts +0 -0
  335. /package/{components → dist/components}/SimpleModalControls/index.js +0 -0
  336. /package/{components → dist/components}/Spinner/icon.d.ts +0 -0
  337. /package/{components → dist/components}/Spinner/icon.js +0 -0
  338. /package/{components → dist/components}/Spinner/index.d.ts +0 -0
  339. /package/{components → dist/components}/Spinner/index.js +0 -0
  340. /package/{components → dist/components}/Status/index.d.ts +0 -0
  341. /package/{components → dist/components}/Status/index.js +0 -0
  342. /package/{components → dist/components}/StubContainer/index.d.ts +0 -0
  343. /package/{components → dist/components}/StubContainer/index.js +0 -0
  344. /package/{components → dist/components}/StubSpinner/index.d.ts +0 -0
  345. /package/{components → dist/components}/StubSpinner/index.js +0 -0
  346. /package/{components → dist/components}/StubSpinnerFlex/index.d.ts +0 -0
  347. /package/{components → dist/components}/StubSpinnerFlex/index.js +0 -0
  348. /package/{components → dist/components}/SyntaxHighlight/index.d.ts +0 -0
  349. /package/{components → dist/components}/SyntaxHighlight/index.js +0 -0
  350. /package/{components → dist/components}/Table/RowMenu/index.d.ts +0 -0
  351. /package/{components → dist/components}/Table/RowMenu/index.js +0 -0
  352. /package/{components → dist/components}/Table/index.d.ts +0 -0
  353. /package/{components → dist/components}/Table/index.js +0 -0
  354. /package/{components → dist/components}/Text/index.d.ts +0 -0
  355. /package/{components → dist/components}/Text/index.js +0 -0
  356. /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
  357. /package/{components → dist/components}/Tooltip/index.js +0 -0
  358. /package/{config → dist/config}/index.d.ts +0 -0
  359. /package/{config → dist/config}/index.js +0 -0
  360. /package/{config → dist/config}/links.d.ts +0 -0
  361. /package/{config → dist/config}/links.js +0 -0
  362. /package/{helpers → dist/helpers}/localStorage.d.ts +0 -0
  363. /package/{helpers → dist/helpers}/localStorage.js +0 -0
  364. /package/{helpers → dist/helpers}/request.d.ts +0 -0
  365. /package/{helpers → dist/helpers}/request.js +0 -0
  366. /package/{hooks → dist/hooks}/useWindowDimensions.d.ts +0 -0
  367. /package/{hooks → dist/hooks}/useWindowDimensions.js +0 -0
  368. /package/{icons → dist/icons}/ArrowDropDown/index.d.ts +0 -0
  369. /package/{icons → dist/icons}/ArrowDropDown/index.js +0 -0
  370. /package/{icons → dist/icons}/Circle/index.d.ts +0 -0
  371. /package/{icons → dist/icons}/Circle/index.js +0 -0
  372. /package/{icons → dist/icons}/External/index.d.ts +0 -0
  373. /package/{icons → dist/icons}/External/index.js +0 -0
  374. /package/{icons → dist/icons}/Info/index.d.ts +0 -0
  375. /package/{icons → dist/icons}/Info/index.js +0 -0
  376. /package/{icons → dist/icons}/PostgresSQL/index.d.ts +0 -0
  377. /package/{icons → dist/icons}/Renewable/index.d.ts +0 -0
  378. /package/{icons → dist/icons}/Renewable/index.js +0 -0
  379. /package/{icons → dist/icons}/Shield/index.d.ts +0 -0
  380. /package/{icons → dist/icons}/Shield/index.js +0 -0
  381. /package/{icons → dist/icons}/Warning/index.d.ts +0 -0
  382. /package/{icons → dist/icons}/Warning/index.js +0 -0
  383. /package/{pages → dist/pages}/Branches/Branch/context.d.ts +0 -0
  384. /package/{pages → dist/pages}/Branches/Branch/context.js +0 -0
  385. /package/{pages → dist/pages}/Branches/Branch/index.d.ts +0 -0
  386. /package/{pages → dist/pages}/Branches/Branch/index.js +0 -0
  387. /package/{pages → dist/pages}/Branches/Branch/stores/Main.d.ts +0 -0
  388. /package/{pages → dist/pages}/Branches/Branch/stores/Main.js +0 -0
  389. /package/{pages → dist/pages}/Branches/Branch/useCreatedStores.d.ts +0 -0
  390. /package/{pages → dist/pages}/Branches/Branch/useCreatedStores.js +0 -0
  391. /package/{pages → dist/pages}/Branches/components/BranchesTable/index.d.ts +0 -0
  392. /package/{pages → dist/pages}/Branches/components/BranchesTable/index.js +0 -0
  393. /package/{pages → dist/pages}/Branches/components/Modals/DeleteBranchModal/index.d.ts +0 -0
  394. /package/{pages → dist/pages}/Branches/components/Modals/DeleteBranchModal/index.js +0 -0
  395. /package/{pages → dist/pages}/Branches/components/Modals/types.d.ts +0 -0
  396. /package/{pages → dist/pages}/Branches/components/Modals/types.js +0 -0
  397. /package/{pages → dist/pages}/Branches/index.d.ts +0 -0
  398. /package/{pages → dist/pages}/Branches/index.js +0 -0
  399. /package/{pages → dist/pages}/Clone/Status/index.d.ts +0 -0
  400. /package/{pages → dist/pages}/Clone/Status/index.js +0 -0
  401. /package/{pages → dist/pages}/Clone/context.d.ts +0 -0
  402. /package/{pages → dist/pages}/Clone/context.js +0 -0
  403. /package/{pages → dist/pages}/Clone/index.d.ts +0 -0
  404. /package/{pages → dist/pages}/Clone/useCreatedStores.d.ts +0 -0
  405. /package/{pages → dist/pages}/Clone/useCreatedStores.js +0 -0
  406. /package/{pages → dist/pages}/Clone/utils/index.d.ts +0 -0
  407. /package/{pages → dist/pages}/Clone/utils/index.js +0 -0
  408. /package/{pages → dist/pages}/CreateBranch/index.d.ts +0 -0
  409. /package/{pages → dist/pages}/CreateBranch/index.js +0 -0
  410. /package/{pages → dist/pages}/CreateBranch/stores/Main.d.ts +0 -0
  411. /package/{pages → dist/pages}/CreateBranch/stores/Main.js +0 -0
  412. /package/{pages → dist/pages}/CreateBranch/useCreatedStores.d.ts +0 -0
  413. /package/{pages → dist/pages}/CreateBranch/useCreatedStores.js +0 -0
  414. /package/{pages → dist/pages}/CreateBranch/useForm.js +0 -0
  415. /package/{pages → dist/pages}/CreateBranch/utils/index.d.ts +0 -0
  416. /package/{pages → dist/pages}/CreateBranch/utils/index.js +0 -0
  417. /package/{pages → dist/pages}/CreateClone/index.d.ts +0 -0
  418. /package/{pages → dist/pages}/CreateClone/useCreatedStores.d.ts +0 -0
  419. /package/{pages → dist/pages}/CreateClone/useCreatedStores.js +0 -0
  420. /package/{pages → dist/pages}/CreateSnapshot/index.d.ts +0 -0
  421. /package/{pages → dist/pages}/CreateSnapshot/index.js +0 -0
  422. /package/{pages → dist/pages}/CreateSnapshot/stores/Main.d.ts +0 -0
  423. /package/{pages → dist/pages}/CreateSnapshot/stores/Main.js +0 -0
  424. /package/{pages → dist/pages}/CreateSnapshot/useCreatedStores.d.ts +0 -0
  425. /package/{pages → dist/pages}/CreateSnapshot/useCreatedStores.js +0 -0
  426. /package/{pages → dist/pages}/CreateSnapshot/useForm.js +0 -0
  427. /package/{pages → dist/pages}/CreateSnapshot/utils/index.d.ts +0 -0
  428. /package/{pages → dist/pages}/CreateSnapshot/utils/index.js +0 -0
  429. /package/{pages → dist/pages}/Instance/Clones/ClonesList/ConnectionModal/index.d.ts +0 -0
  430. /package/{pages → dist/pages}/Instance/Clones/ClonesList/ConnectionModal/index.js +0 -0
  431. /package/{pages → dist/pages}/Instance/Clones/ClonesList/MenuCell/index.d.ts +0 -0
  432. /package/{pages → dist/pages}/Instance/Clones/ClonesList/MenuCell/index.js +0 -0
  433. /package/{pages → dist/pages}/Instance/Clones/ClonesList/MenuCell/utils.d.ts +0 -0
  434. /package/{pages → dist/pages}/Instance/Clones/ClonesList/MenuCell/utils.js +0 -0
  435. /package/{pages → dist/pages}/Instance/Clones/ClonesList/index.d.ts +0 -0
  436. /package/{pages → dist/pages}/Instance/Clones/ClonesList/index.js +0 -0
  437. /package/{pages → dist/pages}/Instance/Clones/ClonesModal/index.d.ts +0 -0
  438. /package/{pages → dist/pages}/Instance/Clones/ClonesModal/index.js +0 -0
  439. /package/{pages → dist/pages}/Instance/Clones/ClonesModal/utils.d.ts +0 -0
  440. /package/{pages → dist/pages}/Instance/Clones/ClonesModal/utils.js +0 -0
  441. /package/{pages → dist/pages}/Instance/Clones/Header/Item/index.d.ts +0 -0
  442. /package/{pages → dist/pages}/Instance/Clones/Header/Item/index.js +0 -0
  443. /package/{pages → dist/pages}/Instance/Clones/Header/index.d.ts +0 -0
  444. /package/{pages → dist/pages}/Instance/Clones/Header/index.js +0 -0
  445. /package/{pages → dist/pages}/Instance/Clones/index.d.ts +0 -0
  446. /package/{pages → dist/pages}/Instance/Clones/index.js +0 -0
  447. /package/{pages → dist/pages}/Instance/Configuration/Header/index.d.ts +0 -0
  448. /package/{pages → dist/pages}/Instance/Configuration/Header/index.js +0 -0
  449. /package/{pages → dist/pages}/Instance/Configuration/InputWithTooltip/index.d.ts +0 -0
  450. /package/{pages → dist/pages}/Instance/Configuration/InputWithTooltip/index.js +0 -0
  451. /package/{pages → dist/pages}/Instance/Configuration/ResponseMessage/index.d.ts +0 -0
  452. /package/{pages → dist/pages}/Instance/Configuration/ResponseMessage/index.js +0 -0
  453. /package/{pages → dist/pages}/Instance/Configuration/configOptions.d.ts +0 -0
  454. /package/{pages → dist/pages}/Instance/Configuration/configOptions.js +0 -0
  455. /package/{pages → dist/pages}/Instance/Configuration/index.d.ts +0 -0
  456. /package/{pages → dist/pages}/Instance/Configuration/tooltipText.d.ts +0 -0
  457. /package/{pages → dist/pages}/Instance/Configuration/tooltipText.js +0 -0
  458. /package/{pages → dist/pages}/Instance/Configuration/useForm.js +0 -0
  459. /package/{pages → dist/pages}/Instance/Configuration/utils/index.d.ts +0 -0
  460. /package/{pages → dist/pages}/Instance/Configuration/utils/index.js +0 -0
  461. /package/{pages → dist/pages}/Instance/InactiveInstance/index.d.ts +0 -0
  462. /package/{pages → dist/pages}/Instance/InactiveInstance/index.js +0 -0
  463. /package/{pages → dist/pages}/Instance/InactiveInstance/utils.d.ts +0 -0
  464. /package/{pages → dist/pages}/Instance/InactiveInstance/utils.js +0 -0
  465. /package/{pages → dist/pages}/Instance/Info/Connection/ConnectModal/Content/index.d.ts +0 -0
  466. /package/{pages → dist/pages}/Instance/Info/Connection/ConnectModal/Content/index.js +0 -0
  467. /package/{pages → dist/pages}/Instance/Info/Connection/ConnectModal/Content/utils.d.ts +0 -0
  468. /package/{pages → dist/pages}/Instance/Info/Connection/ConnectModal/Content/utils.js +0 -0
  469. /package/{pages → dist/pages}/Instance/Info/Connection/ConnectModal/index.d.ts +0 -0
  470. /package/{pages → dist/pages}/Instance/Info/Connection/ConnectModal/index.js +0 -0
  471. /package/{pages → dist/pages}/Instance/Info/Connection/index.d.ts +0 -0
  472. /package/{pages → dist/pages}/Instance/Info/Connection/index.js +0 -0
  473. /package/{pages → dist/pages}/Instance/Info/Details/index.d.ts +0 -0
  474. /package/{pages → dist/pages}/Instance/Info/Details/index.js +0 -0
  475. /package/{pages → dist/pages}/Instance/Info/Disks/Disk/ActionsMenu/index.d.ts +0 -0
  476. /package/{pages → dist/pages}/Instance/Info/Disks/Disk/ActionsMenu/index.js +0 -0
  477. /package/{pages → dist/pages}/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.d.ts +0 -0
  478. /package/{pages → dist/pages}/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.js +0 -0
  479. /package/{pages → dist/pages}/Instance/Info/Disks/Disk/Status/index.d.ts +0 -0
  480. /package/{pages → dist/pages}/Instance/Info/Disks/Disk/Status/index.js +0 -0
  481. /package/{pages → dist/pages}/Instance/Info/Disks/index.d.ts +0 -0
  482. /package/{pages → dist/pages}/Instance/Info/Icons/index.d.ts +0 -0
  483. /package/{pages → dist/pages}/Instance/Info/Icons/index.js +0 -0
  484. /package/{pages → dist/pages}/Instance/Info/Retrieval/ConfirmFullRefreshModal/index.d.ts +0 -0
  485. /package/{pages → dist/pages}/Instance/Info/Retrieval/ConfirmFullRefreshModal/index.js +0 -0
  486. /package/{pages → dist/pages}/Instance/Info/Retrieval/RefreshFailedAlert/index.d.ts +0 -0
  487. /package/{pages → dist/pages}/Instance/Info/Retrieval/RefreshFailedAlert/index.js +0 -0
  488. /package/{pages → dist/pages}/Instance/Info/Retrieval/RetrievalModal/index.d.ts +0 -0
  489. /package/{pages → dist/pages}/Instance/Info/Retrieval/RetrievalModal/index.js +0 -0
  490. /package/{pages → dist/pages}/Instance/Info/Retrieval/RetrievalTable/index.d.ts +0 -0
  491. /package/{pages → dist/pages}/Instance/Info/Retrieval/RetrievalTable/index.js +0 -0
  492. /package/{pages → dist/pages}/Instance/Info/Retrieval/index.d.ts +0 -0
  493. /package/{pages → dist/pages}/Instance/Info/Retrieval/index.js +0 -0
  494. /package/{pages → dist/pages}/Instance/Info/Retrieval/utils.d.ts +0 -0
  495. /package/{pages → dist/pages}/Instance/Info/Retrieval/utils.js +0 -0
  496. /package/{pages → dist/pages}/Instance/Info/Snapshots/Calendar/Day/index.d.ts +0 -0
  497. /package/{pages → dist/pages}/Instance/Info/Snapshots/Calendar/Day/index.js +0 -0
  498. /package/{pages → dist/pages}/Instance/Info/Snapshots/Calendar/index.d.ts +0 -0
  499. /package/{pages → dist/pages}/Instance/Info/Snapshots/Calendar/index.js +0 -0
  500. /package/{pages → dist/pages}/Instance/Info/Snapshots/Calendar/utils.d.ts +0 -0
  501. /package/{pages → dist/pages}/Instance/Info/Snapshots/Calendar/utils.js +0 -0
  502. /package/{pages → dist/pages}/Instance/Info/Snapshots/TimeLine/Day/index.d.ts +0 -0
  503. /package/{pages → dist/pages}/Instance/Info/Snapshots/TimeLine/Day/index.js +0 -0
  504. /package/{pages → dist/pages}/Instance/Info/Snapshots/TimeLine/index.d.ts +0 -0
  505. /package/{pages → dist/pages}/Instance/Info/Snapshots/TimeLine/index.js +0 -0
  506. /package/{pages → dist/pages}/Instance/Info/Snapshots/index.d.ts +0 -0
  507. /package/{pages → dist/pages}/Instance/Info/Snapshots/index.js +0 -0
  508. /package/{pages → dist/pages}/Instance/Info/Snapshots/utils.d.ts +0 -0
  509. /package/{pages → dist/pages}/Instance/Info/Snapshots/utils.js +0 -0
  510. /package/{pages → dist/pages}/Instance/Info/Status/InstanceResponseModal/index.d.ts +0 -0
  511. /package/{pages → dist/pages}/Instance/Info/Status/InstanceResponseModal/index.js +0 -0
  512. /package/{pages → dist/pages}/Instance/Info/Status/index.d.ts +0 -0
  513. /package/{pages → dist/pages}/Instance/Info/Status/index.js +0 -0
  514. /package/{pages → dist/pages}/Instance/Info/Status/utils.d.ts +0 -0
  515. /package/{pages → dist/pages}/Instance/Info/Status/utils.js +0 -0
  516. /package/{pages → dist/pages}/Instance/Info/components/Property/index.d.ts +0 -0
  517. /package/{pages → dist/pages}/Instance/Info/components/Property/index.js +0 -0
  518. /package/{pages → dist/pages}/Instance/Info/components/Section/index.d.ts +0 -0
  519. /package/{pages → dist/pages}/Instance/Info/components/Section/index.js +0 -0
  520. /package/{pages → dist/pages}/Instance/Info/components/ValueStatus/index.d.ts +0 -0
  521. /package/{pages → dist/pages}/Instance/Info/components/ValueStatus/index.js +0 -0
  522. /package/{pages → dist/pages}/Instance/Info/index.d.ts +0 -0
  523. /package/{pages → dist/pages}/Instance/Info/index.js +0 -0
  524. /package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotHeader/index.d.ts +0 -0
  525. /package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotHeader/index.js +0 -0
  526. /package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotsList/index.d.ts +0 -0
  527. /package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotsModal/utils.d.ts +0 -0
  528. /package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotsModal/utils.js +0 -0
  529. /package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotsTable/index.d.ts +0 -0
  530. /package/{pages → dist/pages}/Instance/Snapshots/components/SnapshotsTable/index.js +0 -0
  531. /package/{pages → dist/pages}/Instance/Snapshots/index.d.ts +0 -0
  532. /package/{pages → dist/pages}/Instance/Snapshots/index.js +0 -0
  533. /package/{pages → dist/pages}/Instance/Snapshots/utils/index.d.ts +0 -0
  534. /package/{pages → dist/pages}/Instance/Snapshots/utils/index.js +0 -0
  535. /package/{pages → dist/pages}/Instance/SnapshotsModal/index.d.ts +0 -0
  536. /package/{pages → dist/pages}/Instance/SnapshotsModal/index.js +0 -0
  537. /package/{pages → dist/pages}/Instance/Tabs/PlatformTabs.d.ts +0 -0
  538. /package/{pages → dist/pages}/Instance/Tabs/PlatformTabs.js +0 -0
  539. /package/{pages → dist/pages}/Instance/Tabs/index.d.ts +0 -0
  540. /package/{pages → dist/pages}/Instance/Tabs/index.js +0 -0
  541. /package/{pages → dist/pages}/Instance/Tabs/styles.d.ts +0 -0
  542. /package/{pages → dist/pages}/Instance/Tabs/styles.js +0 -0
  543. /package/{pages → dist/pages}/Instance/components/ErrorStub/index.d.ts +0 -0
  544. /package/{pages → dist/pages}/Instance/components/ErrorStub/index.js +0 -0
  545. /package/{pages → dist/pages}/Instance/components/ModalReloadButton/index.d.ts +0 -0
  546. /package/{pages → dist/pages}/Instance/components/ModalReloadButton/index.js +0 -0
  547. /package/{pages → dist/pages}/Instance/components/Tags/Tag/index.d.ts +0 -0
  548. /package/{pages → dist/pages}/Instance/components/Tags/Tag/index.js +0 -0
  549. /package/{pages → dist/pages}/Instance/components/Tags/index.d.ts +0 -0
  550. /package/{pages → dist/pages}/Instance/components/Tags/index.js +0 -0
  551. /package/{pages → dist/pages}/Instance/context.d.ts +0 -0
  552. /package/{pages → dist/pages}/Instance/context.js +0 -0
  553. /package/{pages → dist/pages}/Instance/index.d.ts +0 -0
  554. /package/{pages → dist/pages}/Instance/index.js +0 -0
  555. /package/{pages → dist/pages}/Instance/stores/ClonesModal.d.ts +0 -0
  556. /package/{pages → dist/pages}/Instance/stores/ClonesModal.js +0 -0
  557. /package/{pages → dist/pages}/Instance/stores/Main.d.ts +0 -0
  558. /package/{pages → dist/pages}/Instance/stores/Main.js +0 -0
  559. /package/{pages → dist/pages}/Instance/stores/SnapshotsModal.d.ts +0 -0
  560. /package/{pages → dist/pages}/Instance/stores/SnapshotsModal.js +0 -0
  561. /package/{pages → dist/pages}/Instance/useCreatedStores.d.ts +0 -0
  562. /package/{pages → dist/pages}/Instance/useCreatedStores.js +0 -0
  563. /package/{pages → dist/pages}/Logs/Icons/PlusIcon.d.ts +0 -0
  564. /package/{pages → dist/pages}/Logs/Icons/PlusIcon.js +0 -0
  565. /package/{pages → dist/pages}/Logs/constants/index.d.ts +0 -0
  566. /package/{pages → dist/pages}/Logs/constants/index.js +0 -0
  567. /package/{pages → dist/pages}/Logs/hooks/useWsScroll.d.ts +0 -0
  568. /package/{pages → dist/pages}/Logs/hooks/useWsScroll.js +0 -0
  569. /package/{pages → dist/pages}/Logs/index.d.ts +0 -0
  570. /package/{pages → dist/pages}/Logs/index.js +0 -0
  571. /package/{pages → dist/pages}/Logs/utils/index.d.ts +0 -0
  572. /package/{pages → dist/pages}/Logs/utils/index.js +0 -0
  573. /package/{pages → dist/pages}/Logs/wsLogs.d.ts +0 -0
  574. /package/{pages → dist/pages}/Logs/wsLogs.js +0 -0
  575. /package/{pages → dist/pages}/Logs/wsSnackbar.d.ts +0 -0
  576. /package/{pages → dist/pages}/Logs/wsSnackbar.js +0 -0
  577. /package/{pages → dist/pages}/Snapshots/Snapshot/DestorySnapshotModal/index.d.ts +0 -0
  578. /package/{pages → dist/pages}/Snapshots/Snapshot/DestorySnapshotModal/index.js +0 -0
  579. /package/{pages → dist/pages}/Snapshots/Snapshot/context.d.ts +0 -0
  580. /package/{pages → dist/pages}/Snapshots/Snapshot/context.js +0 -0
  581. /package/{pages → dist/pages}/Snapshots/Snapshot/index.d.ts +0 -0
  582. /package/{pages → dist/pages}/Snapshots/Snapshot/index.js +0 -0
  583. /package/{pages → dist/pages}/Snapshots/Snapshot/stores/Main.d.ts +0 -0
  584. /package/{pages → dist/pages}/Snapshots/Snapshot/stores/Main.js +0 -0
  585. /package/{pages → dist/pages}/Snapshots/Snapshot/useCreatedStores.d.ts +0 -0
  586. /package/{pages → dist/pages}/Snapshots/Snapshot/useCreatedStores.js +0 -0
  587. /package/{stores → dist/stores}/Snapshots.d.ts +0 -0
  588. /package/{stores → dist/stores}/Snapshots.js +0 -0
  589. /package/{styles → dist/styles}/colors.d.ts +0 -0
  590. /package/{styles → dist/styles}/colors.js +0 -0
  591. /package/{styles → dist/styles}/icons.d.ts +0 -0
  592. /package/{styles → dist/styles}/icons.js +0 -0
  593. /package/{styles → dist/styles}/styles.d.ts +0 -0
  594. /package/{styles → dist/styles}/styles.js +0 -0
  595. /package/{styles → dist/styles}/theme.d.ts +0 -0
  596. /package/{styles → dist/styles}/theme.js +0 -0
  597. /package/{styles → dist/styles}/vars.d.ts +0 -0
  598. /package/{styles → dist/styles}/vars.js +0 -0
  599. /package/{types → dist/types}/api/endpoints/createBranch.d.ts +0 -0
  600. /package/{types → dist/types}/api/endpoints/createBranch.js +0 -0
  601. /package/{types → dist/types}/api/endpoints/createClone.js +0 -0
  602. /package/{types → dist/types}/api/endpoints/createSnapshot.d.ts +0 -0
  603. /package/{types → dist/types}/api/endpoints/createSnapshot.js +0 -0
  604. /package/{types → dist/types}/api/endpoints/deleteBranch.d.ts +0 -0
  605. /package/{types → dist/types}/api/endpoints/deleteBranch.js +0 -0
  606. /package/{types → dist/types}/api/endpoints/destroyClone.d.ts +0 -0
  607. /package/{types → dist/types}/api/endpoints/destroyClone.js +0 -0
  608. /package/{types → dist/types}/api/endpoints/destroySnapshot.d.ts +0 -0
  609. /package/{types → dist/types}/api/endpoints/destroySnapshot.js +0 -0
  610. /package/{types → dist/types}/api/endpoints/fullRefresh.d.ts +0 -0
  611. /package/{types → dist/types}/api/endpoints/fullRefresh.js +0 -0
  612. /package/{types → dist/types}/api/endpoints/getBranchSnapshot.d.ts +0 -0
  613. /package/{types → dist/types}/api/endpoints/getBranchSnapshot.js +0 -0
  614. /package/{types → dist/types}/api/endpoints/getBranches.d.ts +0 -0
  615. /package/{types → dist/types}/api/endpoints/getBranches.js +0 -0
  616. /package/{types → dist/types}/api/endpoints/getClone.d.ts +0 -0
  617. /package/{types → dist/types}/api/endpoints/getClone.js +0 -0
  618. /package/{types → dist/types}/api/endpoints/getConfig.d.ts +0 -0
  619. /package/{types → dist/types}/api/endpoints/getConfig.js +0 -0
  620. /package/{types → dist/types}/api/endpoints/getEngine.d.ts +0 -0
  621. /package/{types → dist/types}/api/endpoints/getEngine.js +0 -0
  622. /package/{types → dist/types}/api/endpoints/getFullConfig.d.ts +0 -0
  623. /package/{types → dist/types}/api/endpoints/getFullConfig.js +0 -0
  624. /package/{types → dist/types}/api/endpoints/getInstance.d.ts +0 -0
  625. /package/{types → dist/types}/api/endpoints/getInstance.js +0 -0
  626. /package/{types → dist/types}/api/endpoints/getInstanceRetrieval.d.ts +0 -0
  627. /package/{types → dist/types}/api/endpoints/getInstanceRetrieval.js +0 -0
  628. /package/{types → dist/types}/api/endpoints/getSeImages.d.ts +0 -0
  629. /package/{types → dist/types}/api/endpoints/getSeImages.js +0 -0
  630. /package/{types → dist/types}/api/endpoints/getSnapshotList.d.ts +0 -0
  631. /package/{types → dist/types}/api/endpoints/getSnapshotList.js +0 -0
  632. /package/{types → dist/types}/api/endpoints/getSnapshots.d.ts +0 -0
  633. /package/{types → dist/types}/api/endpoints/getSnapshots.js +0 -0
  634. /package/{types → dist/types}/api/endpoints/getWSToken.d.ts +0 -0
  635. /package/{types → dist/types}/api/endpoints/getWSToken.js +0 -0
  636. /package/{types → dist/types}/api/endpoints/initWS.d.ts +0 -0
  637. /package/{types → dist/types}/api/endpoints/initWS.js +0 -0
  638. /package/{types → dist/types}/api/endpoints/refreshInstance.d.ts +0 -0
  639. /package/{types → dist/types}/api/endpoints/refreshInstance.js +0 -0
  640. /package/{types → dist/types}/api/endpoints/resetClone.d.ts +0 -0
  641. /package/{types → dist/types}/api/endpoints/resetClone.js +0 -0
  642. /package/{types → dist/types}/api/endpoints/testDbSource.d.ts +0 -0
  643. /package/{types → dist/types}/api/endpoints/testDbSource.js +0 -0
  644. /package/{types → dist/types}/api/endpoints/updateClone.js +0 -0
  645. /package/{types → dist/types}/api/endpoints/updateConfig.d.ts +0 -0
  646. /package/{types → dist/types}/api/endpoints/updateConfig.js +0 -0
  647. /package/{types → dist/types}/api/entities/branchSnapshot.d.ts +0 -0
  648. /package/{types → dist/types}/api/entities/branchSnapshot.js +0 -0
  649. /package/{types → dist/types}/api/entities/branchSnapshots.d.ts +0 -0
  650. /package/{types → dist/types}/api/entities/branchSnapshots.js +0 -0
  651. /package/{types → dist/types}/api/entities/config.d.ts +0 -0
  652. /package/{types → dist/types}/api/entities/createBranch.d.ts +0 -0
  653. /package/{types → dist/types}/api/entities/createBranch.js +0 -0
  654. /package/{types → dist/types}/api/entities/createSnapshot.d.ts +0 -0
  655. /package/{types → dist/types}/api/entities/createSnapshot.js +0 -0
  656. /package/{types → dist/types}/api/entities/dbSource.d.ts +0 -0
  657. /package/{types → dist/types}/api/entities/dbSource.js +0 -0
  658. /package/{types → dist/types}/api/entities/instance.js +0 -0
  659. /package/{types → dist/types}/api/entities/instanceRetrieval.d.ts +0 -0
  660. /package/{types → dist/types}/api/entities/instanceRetrieval.js +0 -0
  661. /package/{types → dist/types}/api/entities/pool.d.ts +0 -0
  662. /package/{types → dist/types}/api/entities/pool.js +0 -0
  663. /package/{types → dist/types}/api/entities/snapshot.d.ts +0 -0
  664. /package/{types → dist/types}/api/entities/snapshot.js +0 -0
  665. /package/{types → dist/types}/api/entities/wsToken.d.ts +0 -0
  666. /package/{types → dist/types}/api/entities/wsToken.js +0 -0
  667. /package/{utils → dist/utils}/api.d.ts +0 -0
  668. /package/{utils → dist/utils}/api.js +0 -0
  669. /package/{utils → dist/utils}/clone.d.ts +0 -0
  670. /package/{utils → dist/utils}/clone.js +0 -0
  671. /package/{utils → dist/utils}/connection.d.ts +0 -0
  672. /package/{utils → dist/utils}/connection.js +0 -0
  673. /package/{utils → dist/utils}/date.d.ts +0 -0
  674. /package/{utils → dist/utils}/date.js +0 -0
  675. /package/{utils → dist/utils}/instance.d.ts +0 -0
  676. /package/{utils → dist/utils}/instance.js +0 -0
  677. /package/{utils → dist/utils}/numbers.d.ts +0 -0
  678. /package/{utils → dist/utils}/numbers.js +0 -0
  679. /package/{utils → dist/utils}/react.d.ts +0 -0
  680. /package/{utils → dist/utils}/react.js +0 -0
  681. /package/{utils → dist/utils}/snapshot.d.ts +0 -0
  682. /package/{utils → dist/utils}/snapshot.js +0 -0
  683. /package/{utils → dist/utils}/strings.d.ts +0 -0
  684. /package/{utils → dist/utils}/strings.js +0 -0
  685. /package/{utils → dist/utils}/units.d.ts +0 -0
  686. /package/{utils → dist/utils}/units.js +0 -0
@@ -0,0 +1,170 @@
1
+ import styles from './styles.module.scss'
2
+
3
+ export const tooltipText = {
4
+ dockerTag: () => (
5
+ <div>
6
+ Docker image version — the latest ones are listed first. If you are unsure,
7
+ pick the first one.
8
+ </div>
9
+ ),
10
+ dockerImage: () => (
11
+ <div>
12
+ Major PostgreSQL version (e.g., "9.6", "15"). For logical provisioning
13
+ mode, the version used by DBLab does not need to match the version on the
14
+ source, although matching versions is recommended. <br />
15
+ If you need a version that is not listed here, contact support.
16
+ </div>
17
+ ),
18
+ dockerImageType: () => (
19
+ <div>
20
+ Docker image used to run all database containers — clones, snapshot
21
+ preparation containers, and sync containers. Although such images are based on
22
+ traditional Docker images for PostgreSQL, DBLab expects slightly different
23
+ behavior: for example, PostgreSQL is not the first process used to start the
24
+ container, so PostgreSQL restarts do not trigger a container state change.
25
+ For details, see{' '}
26
+ <a
27
+ target={'_blank'}
28
+ href={'https://postgres.ai/docs/database-lab/supported-databases'}
29
+ className={styles.externalLink}
30
+ >
31
+ the docs
32
+ </a>
33
+ .
34
+ </div>
35
+ ),
36
+ sharedBuffers: () => (
37
+ <div>
38
+ Defines the default buffer pool size for each PostgreSQL instance managed by
39
+ DBLab. Note that this amount of RAM is immediately allocated at PostgreSQL
40
+ startup time. For example, if the machine running DBLab has 32 GiB of RAM and
41
+ the value used here is '1GB', then the theoretical limit of clones is 32.
42
+ Practically, this limit is even lower because some memory is consumed by
43
+ other processes. If you need more clones, reduce the value of{' '}
44
+ <span className={styles.firaCodeFont}>configs.shared_buffers</span>.
45
+ </div>
46
+ ),
47
+ sharedPreloadLibraries: () => (
48
+ <div>
49
+ Specifies one or more shared libraries (comma-separated list) to be
50
+ preloaded at PostgreSQL server start (
51
+ <a
52
+ target={'_blank'}
53
+ href={'https://postgresqlco.nf/doc/en/param/shared_preload_libraries/'}
54
+ className={styles.externalLink}
55
+ >
56
+ details
57
+ </a>
58
+ ). If some libraries or extensions are missing, PostgreSQL fails to start,
59
+ so make sure that <span className={styles.firaCodeFont}>dockerImage</span>{' '}
60
+ used above contains all required extensions.
61
+ </div>
62
+ ),
63
+ host: () => (
64
+ <div>
65
+ Hostname or IP of the database that will be used as the source for data
66
+ retrieval (full data refresh).
67
+ </div>
68
+ ),
69
+ port: () => (
70
+ <div>
71
+ Port of the database that will be used as the source for data retrieval
72
+ (full data refresh).
73
+ </div>
74
+ ),
75
+ username: () => (
76
+ <div>
77
+ Username used to connect to the database that will be used as the source
78
+ for data retrieval (full data refresh).
79
+ </div>
80
+ ),
81
+ password: () => (
82
+ <div>
83
+ Password used to connect to the database that will be used as the source
84
+ for data retrieval (full data refresh).
85
+ </div>
86
+ ),
87
+ dbname: () => (
88
+ <div>
89
+ Database name used to connect to the source to run diagnostic queries.
90
+ This database is not necessarily copied (another field,{' '}
91
+ <span className={styles.firaCodeFont}>databases</span>, defines which
92
+ database to copy).
93
+ </div>
94
+ ),
95
+ databases: () => (
96
+ <div>
97
+ Specifies the list of databases the PostgreSQL server will copy during data
98
+ retrieval (full data refresh). To specify multiple database names, provide
99
+ each value on a separate line or use spaces as dividers. To copy all
100
+ available databases, leave this value empty.
101
+ </div>
102
+ ),
103
+ dumpParallelJobs: () => (
104
+ <div>
105
+ Number of parallel workers used to dump the source databases to disk. If
106
+ the source is a production server under load, it is not recommended to use
107
+ more than 50% of its available vCPUs. Increasing this number speeds up
108
+ dumping but increases the risk of performance issues on the source (e.g.,
109
+ due to CPU or disk I/O saturation).
110
+ </div>
111
+ ),
112
+ pgDumpCustomOptions: () => (
113
+ <div>
114
+ pg_dump options to be used to create a database dump, for example:
115
+ '--exclude-schema=repack --exclude-schema="camelStyleSchemaName"'. Note
116
+ that due to security reasons, the current implementation supports only
117
+ letters, numbers, hyphen, underscore, equal sign, and double quotes.
118
+ </div>
119
+ ),
120
+ restoreParallelJobs: () => (
121
+ <div>
122
+ Number of parallel workers used to restore databases from dump to
123
+ PostgreSQL managed by DBLab. For initial data retrieval (the first data
124
+ refresh), it is recommended to match the number of available vCPUs on the
125
+ machine running DBLab. This yields faster restore times but can increase
126
+ CPU and disk I/O usage on that machine (up to temporary resource
127
+ saturation). For subsequent refreshes, if DBLab is in continuous use, it is
128
+ recommended to reduce this value by 50% to reserve capacity for normal
129
+ DBLab operations (such as working with clones).
130
+ </div>
131
+ ),
132
+ pgRestoreCustomOptions: () => (
133
+ <div>
134
+ pg_restore options to be used to restore from a database dump, for
135
+ example: '--exclude-schema=repack
136
+ --exclude-schema="camelStyleSchemaName"'. Note that due to security
137
+ reasons, the current implementation supports only letters, numbers,
138
+ hyphen, underscore, equal sign, and double quotes.
139
+ </div>
140
+ ),
141
+ timetable: () => (
142
+ <div>
143
+ Schedule for full data refreshes, in{' '}
144
+ <a
145
+ target={'_blank'}
146
+ href={'https://en.wikipedia.org/wiki/Cron#Overview'}
147
+ className={styles.externalLink}
148
+ >
149
+ crontab format
150
+ </a>
151
+ .
152
+ </div>
153
+ ),
154
+ tuningParams: () => (
155
+ <div>
156
+ Query tuning parameters. These are essential to ensure that cloned
157
+ PostgreSQL instances generate the same plans as the source (specifically,
158
+ they are crucial for query performance troubleshooting and optimization,
159
+ including working with EXPLAIN plans). For details, see the{' '}
160
+ <a
161
+ target={'_blank'}
162
+ href={'https://postgres.ai/docs/how-to-guides/administration/postgresql-configuration#postgresql-configuration-in-clones'}
163
+ className={styles.externalLink}
164
+ >
165
+ docs
166
+ </a>
167
+ .
168
+ </div>
169
+ ),
170
+ }
@@ -0,0 +1,108 @@
1
+ /*--------------------------------------------------------------------------
2
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
3
+ * All Rights Reserved. Proprietary and confidential.
4
+ * Unauthorized copying of this file, via any medium is strictly prohibited
5
+ *--------------------------------------------------------------------------
6
+ */
7
+
8
+ import { useFormik } from 'formik'
9
+ import * as Yup from 'yup'
10
+
11
+ export type FormValues = {
12
+ debug: boolean
13
+ dockerImage: string
14
+ dockerTag: string
15
+ dockerPath: string
16
+ dockerImageType: string
17
+ sharedBuffers: string
18
+ sharedPreloadLibraries: string
19
+ tuningParams: string
20
+ timetable: string
21
+ dbname: string
22
+ host: string
23
+ port: string
24
+ username: string
25
+ password: string
26
+ databases: string
27
+ dumpParallelJobs: string
28
+ dumpIgnoreErrors: boolean
29
+ restoreParallelJobs: string
30
+ restoreIgnoreErrors: boolean
31
+ pgDumpCustomOptions: string
32
+ pgRestoreCustomOptions: string
33
+ }
34
+
35
+ const Schema = Yup.object().shape({
36
+ dockerImage: Yup.string().required('Docker image is required'),
37
+ dbname: Yup.string().required('Dbname is required'),
38
+ host: Yup.string().required('Host is required'),
39
+ port: Yup.string().required('Port is required'),
40
+ username: Yup.string().required('Username is required'),
41
+ })
42
+
43
+ export const useForm = (onSubmit: (values: FormValues) => void) => {
44
+ const formik = useFormik<FormValues>({
45
+ initialValues: {
46
+ debug: false,
47
+ dockerImage: '',
48
+ dockerTag: '',
49
+ dockerPath: '',
50
+ dockerImageType: '',
51
+ sharedBuffers: '',
52
+ sharedPreloadLibraries: '',
53
+ tuningParams: '',
54
+ timetable: '',
55
+ dbname: '',
56
+ host: '',
57
+ port: '',
58
+ username: '',
59
+ password: '',
60
+ databases: '',
61
+ dumpParallelJobs: '',
62
+ restoreParallelJobs: '',
63
+ pgDumpCustomOptions: '',
64
+ pgRestoreCustomOptions: '',
65
+ dumpIgnoreErrors: false,
66
+ restoreIgnoreErrors: false,
67
+ },
68
+ validationSchema: Schema,
69
+ onSubmit,
70
+ validateOnBlur: false,
71
+ validateOnChange: false,
72
+ })
73
+
74
+ const formatDatabaseArray = (database: string) => {
75
+ let databases = []
76
+ const splitDatabaseArray = database.split(/[,(\s)(\n)(\r)(\t)(\r\n)]/)
77
+
78
+ for (let i = 0; i < splitDatabaseArray.length; i++) {
79
+ if (splitDatabaseArray[i] !== '') {
80
+ databases.push(splitDatabaseArray[i])
81
+ }
82
+ }
83
+
84
+ return databases
85
+ }
86
+
87
+ const connectionData = {
88
+ host: formik.values.host,
89
+ port: formik.values.port,
90
+ username: formik.values.username,
91
+ password: formik.values.password,
92
+ dbname: formik.values.dbname,
93
+ ...(formik.values.databases && {
94
+ db_list: formatDatabaseArray(formik.values.databases),
95
+ }),
96
+ ...(formik.values.dockerImageType === 'custom' && {
97
+ dockerImage: formik.values.dockerImage,
98
+ }),
99
+ }
100
+
101
+ const isConnectionDataValid =
102
+ formik.values.host &&
103
+ formik.values.port &&
104
+ formik.values.username &&
105
+ formik.values.dbname
106
+
107
+ return [{ formik, connectionData, isConnectionDataValid }]
108
+ }
@@ -0,0 +1,236 @@
1
+ import { DatabaseType } from '@postgres.ai/shared/types/api/entities/config'
2
+
3
+ import { dockerImageOptions } from '../configOptions'
4
+ import { FormValues } from '../useForm'
5
+
6
+ const seContainerRegistry = 'se-images'
7
+ const genericImagePrefix = 'postgresai/extended-postgres'
8
+ // Predefined list of Docker images for UI display
9
+ // This list is shown to users for convenient selection
10
+ // IMPORTANT: if user specified an image in config that's not in this list,
11
+ // it will be automatically added via createEnhancedDockerImages()
12
+ const dockerImagesConfig = {
13
+ '9.6': ['0.5.3', '0.5.2', '0.5.1'],
14
+ '10': ['0.5.3', '0.5.2', '0.5.1'],
15
+ '11': ['0.5.3', '0.5.2', '0.5.1'],
16
+ '12': ['0.5.3', '0.5.2', '0.5.1'],
17
+ '13': ['0.5.3', '0.5.2', '0.5.1'],
18
+ '14': ['0.5.3', '0.5.2', '0.5.1'],
19
+ '15': ['0.5.3', '0.5.2', '0.5.1'],
20
+ '16': ['0.5.3', '0.5.2', '0.5.1'],
21
+ '17': ['0.5.3', '0.5.2', '0.5.1'],
22
+ '18': ['0.6.1'],
23
+ }
24
+
25
+ export type FormValuesKey = keyof FormValues
26
+
27
+ interface DockerImage {
28
+ package_group: string
29
+ pg_major_version: string
30
+ tag: string
31
+ location: string
32
+ }
33
+
34
+ type DockerImagesConfig = Record<string, string[]>
35
+
36
+ export const uniqueChipValue = (values: string) => {
37
+ const splitChipArray = values.split(/[,(\s)(\n)(\r)(\t)(\r\n)]/)
38
+ let databaseArray = []
39
+
40
+ for (let i in splitChipArray) {
41
+ if (
42
+ splitChipArray[i] !== '' &&
43
+ databaseArray.indexOf(splitChipArray[i]) === -1
44
+ ) {
45
+ databaseArray.push(splitChipArray[i])
46
+ }
47
+ }
48
+
49
+ return databaseArray.join(' ')
50
+ }
51
+
52
+ export const postUniqueDatabases = (values: string) => {
53
+ const splitDatabaseArray = values.split(/[,(\s)(\n)(\r)(\t)(\r\n)]/)
54
+
55
+ const databases = splitDatabaseArray.reduce((acc: DatabaseType, curr) => {
56
+ acc[curr] = {}
57
+ return acc
58
+ }, {})
59
+
60
+ const nonEmptyDatabase = Object.fromEntries(
61
+ Object.entries(databases).filter(([name]) => name != ''),
62
+ )
63
+
64
+ return values.length !== 0 ? nonEmptyDatabase : null
65
+ }
66
+
67
+ const createDockerImages = (
68
+ dockerImagesConfig: DockerImagesConfig,
69
+ ): DockerImage[] => {
70
+ const dockerImages: DockerImage[] = []
71
+
72
+ for (const pg_major_version in dockerImagesConfig) {
73
+ if (dockerImagesConfig.hasOwnProperty(pg_major_version)) {
74
+ const customTags = dockerImagesConfig[pg_major_version]
75
+
76
+ customTags.forEach((tag) => {
77
+ const image: DockerImage = {
78
+ package_group: 'postgresai',
79
+ pg_major_version,
80
+ tag: `${pg_major_version}-${tag}`,
81
+ location: `${genericImagePrefix}:${pg_major_version}-${tag}`,
82
+ }
83
+
84
+ dockerImages.push(image)
85
+ })
86
+ }
87
+ }
88
+
89
+ return dockerImages
90
+ }
91
+
92
+ export const genericDockerImages = createDockerImages(dockerImagesConfig)
93
+
94
+ export const isSeDockerImage = (dockerImage: string | undefined) => {
95
+ const dockerImageType =
96
+ dockerImage?.includes(seContainerRegistry) &&
97
+ dockerImage.split(`${seContainerRegistry}/`)[1]?.split(':')[0]
98
+
99
+ return dockerImageOptions.some((element) => element.type === dockerImageType)
100
+ }
101
+
102
+ export const getImageType = (imageUrl: string) => {
103
+ const postgresCustomImageType =
104
+ imageUrl.includes(seContainerRegistry) &&
105
+ imageUrl.split(`${seContainerRegistry}/`)[1]?.split(':')[0]
106
+
107
+ if (imageUrl.includes(genericImagePrefix)) {
108
+ return 'Generic Postgres'
109
+ } else if (postgresCustomImageType && isSeDockerImage(imageUrl)) {
110
+ return postgresCustomImageType
111
+ } else {
112
+ return 'custom'
113
+ }
114
+ }
115
+
116
+ export const getImageMajorVersion = (pgImage: string | undefined) => {
117
+ if (!pgImage) return undefined
118
+
119
+ try {
120
+ const pgImageVersion = pgImage.split(':')[1]
121
+ if (!pgImageVersion) return undefined
122
+
123
+ const pgServerVersion = pgImageVersion.split('-')[0]
124
+ if (!pgServerVersion) return undefined
125
+
126
+ return pgServerVersion.includes('.')
127
+ ? pgServerVersion.split('.')[0]
128
+ : pgServerVersion
129
+ } catch (error) {
130
+ // Return undefined for malformed image strings
131
+ return undefined
132
+ }
133
+ }
134
+
135
+ export const formatDatabases = (databases: DatabaseType | null) => {
136
+ let formattedDatabases = ''
137
+
138
+ if (databases !== null) {
139
+ Object.keys(databases).forEach(function (key) {
140
+ formattedDatabases += key + ' '
141
+ })
142
+ }
143
+
144
+ return formattedDatabases
145
+ }
146
+
147
+ export const formatDumpCustomOptions = (options: string[] | null) => {
148
+ let formattedOptions = ''
149
+
150
+ if (options !== null) {
151
+ options.forEach(function (key) {
152
+ formattedOptions += key + ' '
153
+ })
154
+ }
155
+
156
+ return formattedOptions
157
+ }
158
+
159
+ export const postUniqueCustomOptions = (options: string) => {
160
+ const splitOptionsArray = options.split(/[,(\s)(\n)(\r)(\t)(\r\n)]/)
161
+ const uniqueOptions = splitOptionsArray.filter(
162
+ (item, index) => splitOptionsArray.indexOf(item) === index && item !== '',
163
+ )
164
+ return uniqueOptions
165
+ }
166
+
167
+ export const customOrGenericImage = (dockerImage: string | undefined) =>
168
+ dockerImage === 'Generic Postgres' || dockerImage === 'custom'
169
+
170
+ export const createFallbackDockerImage = (
171
+ dockerPath: string,
172
+ dockerTag: string,
173
+ ): DockerImage => {
174
+ const majorVersion = getImageMajorVersion(dockerPath) || '18' // Default to 18 if version can't be extracted
175
+
176
+ return {
177
+ package_group: 'postgresai',
178
+ pg_major_version: majorVersion,
179
+ tag: dockerTag || `${majorVersion}-custom`,
180
+ location: dockerPath,
181
+ }
182
+ }
183
+
184
+ // Creates enhanced list of Docker images, including image from configuration
185
+ export const createEnhancedDockerImages = (
186
+ configDockerPath?: string,
187
+ configDockerTag?: string,
188
+ ): DockerImage[] => {
189
+ let enhancedImages = [...genericDockerImages]
190
+
191
+ // If there's an image in config, check if we need to add it
192
+ if (configDockerPath && configDockerTag) {
193
+ const existingImage = genericDockerImages.find(
194
+ (image) => image.location === configDockerPath || image.tag === configDockerTag
195
+ )
196
+
197
+ // If image not found in predefined list, add it
198
+ if (!existingImage) {
199
+ // Check if this is a Generic Postgres image
200
+ if (configDockerPath.includes(genericImagePrefix)) {
201
+ // For Generic Postgres images create proper structure
202
+ const majorVersion = getImageMajorVersion(configDockerPath)
203
+ if (majorVersion) {
204
+ const configImage: DockerImage = {
205
+ package_group: 'postgresai',
206
+ pg_major_version: majorVersion,
207
+ tag: configDockerTag,
208
+ location: configDockerPath,
209
+ }
210
+ enhancedImages.push(configImage)
211
+ } else {
212
+ // Fallback if version extraction failed
213
+ const configImage = createFallbackDockerImage(configDockerPath, configDockerTag)
214
+ enhancedImages.push(configImage)
215
+ }
216
+ } else {
217
+ // For custom images use fallback
218
+ const configImage = createFallbackDockerImage(configDockerPath, configDockerTag)
219
+ enhancedImages.push(configImage)
220
+ }
221
+ }
222
+ }
223
+
224
+ return enhancedImages
225
+ }
226
+
227
+ // Checks if image is loaded from configuration (not from predefined list)
228
+ export const isConfigLoadedImage = (
229
+ dockerPath: string,
230
+ dockerTag: string,
231
+ ): boolean => {
232
+ const existingImage = genericDockerImages.find(
233
+ (image) => image.location === dockerPath || image.tag === dockerTag
234
+ )
235
+ return !existingImage
236
+ }
@@ -0,0 +1,157 @@
1
+ import { Tooltip } from '@material-ui/core'
2
+ import { makeStyles } from '@material-ui/core'
3
+ import { formatDistanceSafe } from '@postgres.ai/shared/utils/date'
4
+
5
+ import { Link } from '@postgres.ai/shared/components/Link2'
6
+ import { Instance } from '@postgres.ai/shared/types/api/entities/instance'
7
+
8
+ import { formatTimestampUtc } from './utils'
9
+
10
+ const useStyles = makeStyles(
11
+ {
12
+ container: {
13
+ maxWidth: '650px',
14
+ width: '100%',
15
+ },
16
+ timeLabel: {
17
+ lineHeight: '16px',
18
+ fontSize: 14,
19
+ cursor: 'pointer',
20
+ flex: '2 1 0',
21
+
22
+ '& span': {
23
+ fontWeight: 'normal !important',
24
+ },
25
+ },
26
+ toolTip: {
27
+ fontSize: '10px !important',
28
+ maxWidth: '100%',
29
+ },
30
+ content: {
31
+ margin: '25px 0',
32
+ },
33
+ flexContainer: {
34
+ display: 'flex',
35
+ alignItems: 'center',
36
+ flexDirection: 'row',
37
+ padding: '10px 0',
38
+ borderBottom: '1px solid rgba(224, 224, 224, 1)',
39
+
40
+ '& span:first-child': {
41
+ flex: '1 1 0',
42
+ fontWeight: '500',
43
+ },
44
+
45
+ '& span': {
46
+ flex: '2 1 0',
47
+ margin: '0',
48
+ },
49
+ },
50
+ },
51
+ { index: 1 },
52
+ )
53
+
54
+ export const InactiveInstance = ({
55
+ org,
56
+ instance,
57
+ }: {
58
+ org: string
59
+ instance: Instance | null
60
+ }) => {
61
+ const classes = useStyles()
62
+
63
+ const getVersionDigits = (str: string | undefined | null) => {
64
+ if (!str) {
65
+ return 'N/A'
66
+ }
67
+
68
+ const digits = str.match(/\d+/g)
69
+
70
+ if (digits && digits.length > 0) {
71
+ return `${digits[0]}.${digits[1]}.${digits[2]}`
72
+ }
73
+ return ''
74
+ }
75
+
76
+ return (
77
+ <div className={classes.container}>
78
+ <div className={classes.flexContainer}>
79
+ <span>Plan</span>
80
+ <span>{instance?.dto.plan || '---'}</span>
81
+ </div>
82
+ <div className={classes.flexContainer}>
83
+ <span>Version</span>
84
+ <span>
85
+ {getVersionDigits(
86
+ instance?.state && (instance?.state?.engine?.version as string),
87
+ )}
88
+ </span>
89
+ </div>
90
+ <div className={classes.flexContainer}>
91
+ <span>Registered</span>
92
+ <span className={classes.timeLabel}>
93
+ <Tooltip
94
+ title={formatTimestampUtc(instance?.createdAt) ?? ''}
95
+ classes={{ tooltip: classes.toolTip }}
96
+ >
97
+ <span>
98
+ {instance?.createdAt ? formatDistanceSafe(new Date(instance?.createdAt)) : '-'}
99
+ </span>
100
+ </Tooltip>
101
+ </span>
102
+ </div>
103
+ {instance?.telemetryLastReportedAt && (
104
+ <div className={classes.flexContainer}>
105
+ <span>Telemetry last reported</span>
106
+ <span className={classes.timeLabel}>
107
+ <Tooltip
108
+ title={
109
+ formatTimestampUtc(instance?.telemetryLastReportedAt) ?? ''
110
+ }
111
+ classes={{ tooltip: classes.toolTip }}
112
+ >
113
+ <span>
114
+ {instance?.telemetryLastReportedAt ? formatDistanceSafe(new Date(instance?.telemetryLastReportedAt)) : '-'}
115
+ </span>
116
+ </Tooltip>
117
+ </span>
118
+ </div>
119
+ )}
120
+ <div className={classes.flexContainer}>
121
+ <span>Instance ID</span>
122
+ <span>
123
+ <span
124
+ style={{
125
+ fontWeight: 'normal',
126
+ }}
127
+ >
128
+ <Link to={`/${org}/instances/${instance?.id}`}>{instance?.id}</Link>
129
+ &nbsp; (self-assigned:{' '}
130
+ {instance?.dto?.selfassigned_instance_id || 'N/A'})
131
+ </span>
132
+ </span>
133
+ </div>
134
+ {instance?.dto.plan !== 'CE' && (
135
+ <div className={classes.flexContainer}>
136
+ <span>Billing data</span>
137
+ <span>
138
+ <Link to={`/${org}/billing`}>Billing data</Link>
139
+ </span>
140
+ </div>
141
+ )}
142
+ <p className={classes.content}>
143
+ To work with this instance, access its UI or API directly. Full
144
+ integration of UI to the Platform is currently available only to the EE
145
+ users. If you have any questions, reach out to{' '}
146
+ <a
147
+ href="https://postgres.ai/contact"
148
+ target="_blank"
149
+ rel="noopener noreferrer"
150
+ >
151
+ the Postgres.ai team
152
+ </a>
153
+ .
154
+ </p>
155
+ </div>
156
+ )
157
+ }
@@ -0,0 +1,9 @@
1
+ import moment from 'moment'
2
+
3
+ export const formatTimestampUtc = (timestamp: moment.MomentInput) => {
4
+ if (!timestamp) {
5
+ return null
6
+ }
7
+
8
+ return moment(timestamp).utc().format('YYYY-MM-DD HH:mm:ss UTC')
9
+ }