Flowfile 0.5.3__py3-none-any.whl → 0.5.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. flowfile/__init__.py +16 -0
  2. flowfile/web/static/assets/{AdminView-49392a9a.js → AdminView-f9847d67.js} +1 -1
  3. flowfile/web/static/assets/{CloudConnectionView-36bcd6df.css → CloudConnectionView-cf85f943.css} +17 -17
  4. flowfile/web/static/assets/{CloudConnectionView-f13f202b.js → CloudConnectionView-faace55b.js} +4 -4
  5. flowfile/web/static/assets/{CloudStorageReader-0023d4a5.js → CloudStorageReader-d86ecaa7.js} +8 -8
  6. flowfile/web/static/assets/{CloudStorageWriter-8e781e11.js → CloudStorageWriter-0f4d9a44.js} +8 -8
  7. flowfile/web/static/assets/ColumnActionInput-c44b7aee.css +159 -0
  8. flowfile/web/static/assets/ColumnActionInput-f4189ae0.js +330 -0
  9. flowfile/web/static/assets/{ColumnSelector-8ad68ea9.js → ColumnSelector-e66b33da.js} +1 -1
  10. flowfile/web/static/assets/ContextMenu-49463352.js +9 -0
  11. flowfile/web/static/assets/ContextMenu-dd5f3f25.js +9 -0
  12. flowfile/web/static/assets/ContextMenu-f709b884.js +9 -0
  13. flowfile/web/static/assets/ContextMenu.vue_vue_type_script_setup_true_lang-a1bd6314.js +59 -0
  14. flowfile/web/static/assets/{CrossJoin-03df6938.js → CrossJoin-24694b8f.js} +9 -9
  15. flowfile/web/static/assets/{CustomNode-8479239b.js → CustomNode-569d45ff.js} +27 -20
  16. flowfile/web/static/assets/CustomNode-edb9b939.css +42 -0
  17. flowfile/web/static/assets/{DatabaseConnectionSettings-e91df89a.css → DatabaseConnectionSettings-c20a1e16.css} +22 -20
  18. flowfile/web/static/assets/{DatabaseConnectionSettings-869e3efd.js → DatabaseConnectionSettings-cfc08938.js} +4 -4
  19. flowfile/web/static/assets/{DatabaseReader-36898a00.css → DatabaseReader-5bf8c75b.css} +39 -44
  20. flowfile/web/static/assets/{DatabaseReader-c58b9552.js → DatabaseReader-701feabb.js} +13 -13
  21. flowfile/web/static/assets/{DatabaseView-d26a9140.js → DatabaseView-0482e5b5.js} +2 -2
  22. flowfile/web/static/assets/{DatabaseWriter-4d05ddc7.js → DatabaseWriter-16721989.js} +12 -12
  23. flowfile/web/static/assets/{DatabaseWriter-217a99f1.css → DatabaseWriter-bdcf2c8b.css} +27 -25
  24. flowfile/web/static/assets/{DesignerView-a6d0ee84.css → DesignerView-49abb835.css} +391 -339
  25. flowfile/web/static/assets/{DesignerView-e6f5c0e8.js → DesignerView-f64749fb.js} +220 -118
  26. flowfile/web/static/assets/{DocumentationView-2e78ef1b.js → DocumentationView-61bd2990.js} +3 -3
  27. flowfile/web/static/assets/{DocumentationView-fd46c656.css → DocumentationView-9ea6e871.css} +9 -9
  28. flowfile/web/static/assets/{ExploreData-7b54caca.js → ExploreData-e2735b13.js} +7 -7
  29. flowfile/web/static/assets/{ExternalSource-3fa399b2.js → ExternalSource-2535c3b2.js} +9 -9
  30. flowfile/web/static/assets/{ExternalSource-47ab05a3.css → ExternalSource-7ac7373f.css} +17 -17
  31. flowfile/web/static/assets/{Filter-8cbbdbf3.js → Filter-2cdbc93c.js} +9 -9
  32. flowfile/web/static/assets/{Formula-aac42b1e.js → Formula-fcda3c2c.js} +9 -9
  33. flowfile/web/static/assets/{FuzzyMatch-cd9bbfca.js → FuzzyMatch-f8d3b7d3.js} +10 -10
  34. flowfile/web/static/assets/{GraphSolver-c24dec17.css → GraphSolver-4b4d7db9.css} +4 -4
  35. flowfile/web/static/assets/{GraphSolver-c7e6780e.js → GraphSolver-72eaa695.js} +11 -11
  36. flowfile/web/static/assets/GroupBy-5792782d.css +9 -0
  37. flowfile/web/static/assets/{GroupBy-93c5d22b.js → GroupBy-8aa0598b.js} +9 -9
  38. flowfile/web/static/assets/{Join-a19b2de2.js → Join-e40f0ffa.js} +10 -10
  39. flowfile/web/static/assets/{LoginView-0df4ed0a.js → LoginView-5111c9ae.js} +1 -1
  40. flowfile/web/static/assets/{ManualInput-8d3374b2.js → ManualInput-9b6f3224.js} +6 -6
  41. flowfile/web/static/assets/{MultiSelect-ad1b6243.js → MultiSelect-ef28e19e.js} +2 -2
  42. flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-e278950d.js → MultiSelect.vue_vue_type_script_setup_true_lang-83b3bbfd.js} +1 -1
  43. flowfile/web/static/assets/{NodeDesigner-5f53be3f.css → NodeDesigner-94cd4dd3.css} +190 -190
  44. flowfile/web/static/assets/{NodeDesigner-40b647c9.js → NodeDesigner-d2b7ee2b.js} +171 -69
  45. flowfile/web/static/assets/{NumericInput-7100234c.js → NumericInput-1d789794.js} +2 -2
  46. flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-5130219f.js → NumericInput.vue_vue_type_script_setup_true_lang-7775f83e.js} +1 -1
  47. flowfile/web/static/assets/{Output-35e97000.css → Output-692dd25d.css} +10 -10
  48. flowfile/web/static/assets/{Output-f5efd2aa.js → Output-cefef801.js} +13 -12
  49. flowfile/web/static/assets/{Pivot-d981d23c.js → Pivot-bab1b75b.js} +10 -10
  50. flowfile/web/static/assets/{PivotValidation-63de1f73.js → PivotValidation-e7941f91.js} +1 -1
  51. flowfile/web/static/assets/{PivotValidation-39386e95.js → PivotValidation-fba09336.js} +1 -1
  52. flowfile/web/static/assets/{PolarsCode-f9d69217.js → PolarsCode-740e40fa.js} +7 -7
  53. flowfile/web/static/assets/{PopOver-b22f049e.js → PopOver-862d7e28.js} +1 -1
  54. flowfile/web/static/assets/{Read-aec2e377.js → Read-225cc63f.js} +15 -14
  55. flowfile/web/static/assets/{Read-36e7bd51.css → Read-90f366bc.css} +13 -13
  56. flowfile/web/static/assets/{RecordCount-78ed6845.js → RecordCount-ffc71eca.js} +6 -6
  57. flowfile/web/static/assets/{RecordId-2156e890.js → RecordId-a70bb8df.js} +9 -9
  58. flowfile/web/static/assets/{SQLQueryComponent-48c72f5b.js → SQLQueryComponent-15a421f5.js} +3 -3
  59. flowfile/web/static/assets/SQLQueryComponent-edb90b98.css +29 -0
  60. flowfile/web/static/assets/{Sample-1352ca74.js → Sample-6c26afc7.js} +6 -6
  61. flowfile/web/static/assets/{SecretSelector-22b5ff89.js → SecretSelector-ceed9496.js} +2 -2
  62. flowfile/web/static/assets/{SecretsView-17df66ee.js → SecretsView-214d255a.js} +2 -2
  63. flowfile/web/static/assets/{Select-0aee4c54.js → Select-8fc29999.js} +9 -9
  64. flowfile/web/static/assets/{SettingsSection-f2002a6d.js → SettingsSection-3f70e4c3.js} +1 -1
  65. flowfile/web/static/assets/{SettingsSection-0784e157.js → SettingsSection-83090218.js} +1 -1
  66. flowfile/web/static/assets/{SettingsSection-cd341bb6.js → SettingsSection-9f0d1725.js} +1 -1
  67. flowfile/web/static/assets/SetupView-3fa0aa03.js +160 -0
  68. flowfile/web/static/assets/SetupView-e2da3442.css +230 -0
  69. flowfile/web/static/assets/{SingleSelect-460cc0ea.js → SingleSelect-a4a568cb.js} +2 -2
  70. flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-30741bb2.js → SingleSelect.vue_vue_type_script_setup_true_lang-c8ebdd33.js} +1 -1
  71. flowfile/web/static/assets/{SliderInput-5d926864.js → SliderInput-be533e71.js} +1 -1
  72. flowfile/web/static/assets/{Sort-3cdc971b.js → Sort-154dad81.js} +9 -9
  73. flowfile/web/static/assets/Sort-4abb7fae.css +9 -0
  74. flowfile/web/static/assets/{TextInput-a2d0bfbd.js → TextInput-454e2bda.js} +2 -2
  75. flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-abad1ca2.js → TextInput.vue_vue_type_script_setup_true_lang-e86510d0.js} +1 -1
  76. flowfile/web/static/assets/{TextToRows-918945f7.js → TextToRows-ea73433d.js} +9 -9
  77. flowfile/web/static/assets/{ToggleSwitch-f0ef5196.js → ToggleSwitch-9d7b30f1.js} +2 -2
  78. flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-5605c793.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-00f2580e.js} +1 -1
  79. flowfile/web/static/assets/{UnavailableFields-54d2f518.css → UnavailableFields-394a1f78.css} +13 -13
  80. flowfile/web/static/assets/{UnavailableFields-bdad6144.js → UnavailableFields-b72a2c72.js} +4 -4
  81. flowfile/web/static/assets/{Union-e8ab8c86.js → Union-1e44f263.js} +6 -6
  82. flowfile/web/static/assets/Unique-2b705521.css +3 -0
  83. flowfile/web/static/assets/{Unique-8cd4f976.js → Unique-a3bc6d0a.js} +12 -12
  84. flowfile/web/static/assets/{Unpivot-710a2948.css → Unpivot-b6ad6427.css} +6 -6
  85. flowfile/web/static/assets/{Unpivot-8da14095.js → Unpivot-e27935fc.js} +11 -11
  86. flowfile/web/static/assets/{UnpivotValidation-6f7d89ff.js → UnpivotValidation-72497680.js} +1 -1
  87. flowfile/web/static/assets/{VueGraphicWalker-3fb312e1.js → VueGraphicWalker-d9ab70a3.js} +1 -1
  88. flowfile/web/static/assets/{api-24483f0d.js → api-a2102880.js} +1 -1
  89. flowfile/web/static/assets/{api-8b81fa73.js → api-f75042b0.js} +1 -1
  90. flowfile/web/static/assets/{dropDown-3d8dc5fa.css → dropDown-1d6acbd9.css} +26 -26
  91. flowfile/web/static/assets/{dropDown-ac0fda9d.js → dropDown-2798a109.js} +3 -3
  92. flowfile/web/static/assets/{fullEditor-5497a84a.js → fullEditor-cf7d7d93.js} +3 -3
  93. flowfile/web/static/assets/{fullEditor-a0be62b3.css → fullEditor-fe9f7e18.css} +3 -3
  94. flowfile/web/static/assets/{genericNodeSettings-99014e1d.js → genericNodeSettings-14eac1c3.js} +3 -3
  95. flowfile/web/static/assets/{index-fb6493ae.js → index-387a6f18.js} +175 -86
  96. flowfile/web/static/assets/{index-07dda503.js → index-6b367bb5.js} +1 -1
  97. flowfile/web/static/assets/{index-e6289dd0.css → index-e96ab018.css} +249 -10
  98. flowfile/web/static/assets/{index-3ba44389.js → index-f0a6e5a5.js} +2 -2
  99. flowfile/web/static/assets/nodeInput-ed2ae8d7.js +2 -0
  100. flowfile/web/static/assets/{outputCsv-8f8ba42d.js → outputCsv-3c1757e8.js} +1 -1
  101. flowfile/web/static/assets/{outputExcel-393f4fef.js → outputExcel-686e1f48.js} +1 -1
  102. flowfile/web/static/assets/{outputParquet-07c81f65.js → outputParquet-df28faa7.js} +1 -1
  103. flowfile/web/static/assets/{readCsv-07f6d9ad.js → readCsv-e37eee21.js} +1 -1
  104. flowfile/web/static/assets/{readExcel-ed69bc8f.js → readExcel-a13f14bb.js} +3 -3
  105. flowfile/web/static/assets/{readParquet-e3ed4528.js → readParquet-344cf746.js} +1 -1
  106. flowfile/web/static/assets/{secrets.api-002e7d7e.js → secrets.api-ae198c5c.js} +1 -1
  107. flowfile/web/static/assets/{selectDynamic-80b92899.js → selectDynamic-6b4b0767.js} +3 -3
  108. flowfile/web/static/assets/{vue-codemirror.esm-0965f39f.js → vue-codemirror.esm-31ba0e0b.js} +1 -1
  109. flowfile/web/static/assets/{vue-content-loader.es-c506ad97.js → vue-content-loader.es-4469c8ff.js} +1 -1
  110. flowfile/web/static/index.html +2 -2
  111. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/METADATA +2 -2
  112. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/RECORD +134 -129
  113. flowfile_core/auth/secrets.py +56 -13
  114. flowfile_core/fileExplorer/funcs.py +26 -4
  115. flowfile_core/flowfile/code_generator/__init__.py +11 -0
  116. flowfile_core/flowfile/code_generator/code_generator.py +347 -2
  117. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +13 -1
  118. flowfile_core/flowfile/flow_graph.py +2 -0
  119. flowfile_core/flowfile/flow_node/flow_node.py +52 -28
  120. flowfile_core/flowfile/node_designer/__init__.py +4 -0
  121. flowfile_core/flowfile/node_designer/ui_components.py +144 -1
  122. flowfile_core/routes/public.py +43 -1
  123. flowfile_core/schemas/cloud_storage_schemas.py +39 -15
  124. flowfile_core/secret_manager/secret_manager.py +107 -6
  125. flowfile_frame/__init__.py +11 -0
  126. flowfile_frame/database/__init__.py +36 -0
  127. flowfile_frame/database/connection_manager.py +205 -0
  128. flowfile_frame/database/frame_helpers.py +249 -0
  129. flowfile_worker/configs.py +31 -15
  130. flowfile_worker/secrets.py +105 -15
  131. flowfile_worker/spawner.py +10 -6
  132. flowfile/web/static/assets/ContextMenu-26d4dd27.css +0 -26
  133. flowfile/web/static/assets/ContextMenu-31ee57f0.js +0 -41
  134. flowfile/web/static/assets/ContextMenu-69a74055.js +0 -41
  135. flowfile/web/static/assets/ContextMenu-8e2051c6.js +0 -41
  136. flowfile/web/static/assets/ContextMenu-8ec1729e.css +0 -26
  137. flowfile/web/static/assets/ContextMenu-9b310c60.css +0 -26
  138. flowfile/web/static/assets/CustomNode-59e99a86.css +0 -32
  139. flowfile/web/static/assets/GroupBy-be7ac0bf.css +0 -51
  140. flowfile/web/static/assets/SQLQueryComponent-1c2f26b4.css +0 -27
  141. flowfile/web/static/assets/Sort-8a871341.css +0 -51
  142. flowfile/web/static/assets/Unique-9fb2f567.css +0 -51
  143. flowfile/web/static/assets/nodeInput-0eb13f1a.js +0 -2
  144. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/WHEEL +0 -0
  145. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/entry_points.txt +0 -0
  146. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
 
2
- .sr-only[data-v-837d0f9b] {
2
+ .sr-only[data-v-0a21b463] {
3
3
  position: absolute;
4
4
  width: 1px;
5
5
  height: 1px;
@@ -9,17 +9,17 @@
9
9
  clip: rect(0, 0, 0, 0);
10
10
  border: 0;
11
11
  }
12
- .dropdown-container[data-v-837d0f9b] {
12
+ .dropdown-container[data-v-0a21b463] {
13
13
  position: relative;
14
14
  width: 100%;
15
15
  font-family: var(--font-family-base);
16
16
  }
17
- .input-wrapper[data-v-837d0f9b] {
17
+ .input-wrapper[data-v-0a21b463] {
18
18
  position: relative;
19
19
  display: flex;
20
20
  align-items: center;
21
21
  }
22
- .select-box[data-v-837d0f9b] {
22
+ .select-box[data-v-0a21b463] {
23
23
  width: 100%;
24
24
  box-sizing: border-box;
25
25
  padding: 8px 30px 8px 12px;
@@ -33,20 +33,20 @@
33
33
  background-color: var(--color-background-primary);
34
34
  color: var(--color-text-primary);
35
35
  }
36
- .select-box[data-v-837d0f9b]:focus {
36
+ .select-box[data-v-0a21b463]:focus {
37
37
  border-color: #3182ce;
38
38
  box-shadow: 0 0 0 3px rgba(49, 130, 206, 0.15);
39
39
  }
40
- .select-box.has-error[data-v-837d0f9b] {
40
+ .select-box.has-error[data-v-0a21b463] {
41
41
  border-color: #e53e3e;
42
42
  box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.15);
43
43
  }
44
- .select-box[data-v-837d0f9b]:disabled {
44
+ .select-box[data-v-0a21b463]:disabled {
45
45
  background-color: var(--color-background-muted);
46
46
  cursor: not-allowed;
47
47
  opacity: 0.7;
48
48
  }
49
- .icon-container[data-v-837d0f9b] {
49
+ .icon-container[data-v-0a21b463] {
50
50
  position: absolute;
51
51
  right: 10px;
52
52
  top: 50%;
@@ -56,19 +56,19 @@
56
56
  align-items: center;
57
57
  justify-content: center;
58
58
  }
59
- .dropdown-icon[data-v-837d0f9b] {
59
+ .dropdown-icon[data-v-0a21b463] {
60
60
  width: 16px;
61
61
  height: 16px;
62
62
  color: #718096;
63
63
  transition: transform 0.2s ease;
64
64
  }
65
- .options-container[data-v-837d0f9b] {
65
+ .options-container[data-v-0a21b463] {
66
66
  position: fixed;
67
- z-index: 9999;
67
+ z-index: var(--z-index-canvas-dropdown, 100001);
68
68
  width: 100%;
69
69
  margin-top: 4px;
70
70
  }
71
- .options-list[data-v-837d0f9b] {
71
+ .options-list[data-v-0a21b463] {
72
72
  background: var(--color-background-primary);
73
73
  border-radius: 6px;
74
74
  box-shadow: var(--shadow-lg);
@@ -80,17 +80,17 @@
80
80
  border: 1px solid var(--color-border-primary);
81
81
  scrollbar-width: thin;
82
82
  }
83
- .options-list[data-v-837d0f9b]::-webkit-scrollbar {
83
+ .options-list[data-v-0a21b463]::-webkit-scrollbar {
84
84
  width: 6px;
85
85
  }
86
- .options-list[data-v-837d0f9b]::-webkit-scrollbar-track {
86
+ .options-list[data-v-0a21b463]::-webkit-scrollbar-track {
87
87
  background: var(--color-background-secondary);
88
88
  }
89
- .options-list[data-v-837d0f9b]::-webkit-scrollbar-thumb {
89
+ .options-list[data-v-0a21b463]::-webkit-scrollbar-thumb {
90
90
  background-color: var(--color-border-secondary);
91
91
  border-radius: 3px;
92
92
  }
93
- .option-item[data-v-837d0f9b] {
93
+ .option-item[data-v-0a21b463] {
94
94
  padding: 8px 12px;
95
95
  cursor: pointer;
96
96
  font-size: 14px;
@@ -99,28 +99,28 @@
99
99
  transition: all 0.15s ease;
100
100
  border-left: 2px solid transparent;
101
101
  }
102
- .option-item[data-v-837d0f9b]:hover,
103
- .option-item.is-active[data-v-837d0f9b] {
102
+ .option-item[data-v-0a21b463]:hover,
103
+ .option-item.is-active[data-v-0a21b463] {
104
104
  background-color: var(--color-background-hover);
105
105
  color: var(--color-accent);
106
106
  border-left-color: var(--color-accent);
107
107
  }
108
- .no-options[data-v-837d0f9b] {
108
+ .no-options[data-v-0a21b463] {
109
109
  padding: 10px 12px;
110
110
  font-size: 14px;
111
111
  color: #718096;
112
112
  text-align: center;
113
113
  font-style: italic;
114
114
  }
115
- .spinner[data-v-837d0f9b] {
115
+ .spinner[data-v-0a21b463] {
116
116
  width: 16px;
117
117
  height: 16px;
118
118
  border: 2px solid rgba(49, 130, 206, 0.2);
119
119
  border-top: 2px solid #3182ce;
120
120
  border-radius: 50%;
121
- animation: spin-837d0f9b 0.8s linear infinite;
121
+ animation: spin-0a21b463 0.8s linear infinite;
122
122
  }
123
- @keyframes spin-837d0f9b {
123
+ @keyframes spin-0a21b463 {
124
124
  0% {
125
125
  transform: rotate(0deg);
126
126
  }
@@ -130,14 +130,14 @@
130
130
  }
131
131
 
132
132
  /* Fade transition for dropdown */
133
- .fade-enter-active[data-v-837d0f9b],
134
- .fade-leave-active[data-v-837d0f9b] {
133
+ .fade-enter-active[data-v-0a21b463],
134
+ .fade-leave-active[data-v-0a21b463] {
135
135
  transition:
136
136
  opacity 0.15s,
137
137
  transform 0.15s;
138
138
  }
139
- .fade-enter-from[data-v-837d0f9b],
140
- .fade-leave-to[data-v-837d0f9b] {
139
+ .fade-enter-from[data-v-0a21b463],
140
+ .fade-leave-to[data-v-0a21b463] {
141
141
  opacity: 0;
142
142
  transform: translateY(-5px);
143
143
  }
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, r as ref, A as computed, C as onMounted, k as onUnmounted, B as watch, X as nextTick, o as openBlock, c as createElementBlock, b as createBaseVNode, t as toDisplayString, g as withDirectives, v as vModelText, n as normalizeClass, m as createVNode, p as withCtx, F as Fragment, D as renderList, w as withModifiers, f as createCommentVNode, ag as Transition, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, r as ref, B as computed, F as onMounted, l as onUnmounted, C as watch, Z as nextTick, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, i as withDirectives, v as vModelText, n as normalizeClass, p as createVNode, q as withCtx, G as Fragment, H as renderList, w as withModifiers, e as createCommentVNode, ai as Transition, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "input-wrapper" };
3
3
  const _hoisted_2 = ["placeholder", "aria-expanded", "aria-controls", "aria-activedescendant", "disabled"];
4
4
  const _hoisted_3 = { class: "icon-container" };
@@ -312,8 +312,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
312
312
  };
313
313
  }
314
314
  });
315
- const dropDown_vue_vue_type_style_index_0_scoped_837d0f9b_lang = "";
316
- const ColumnSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-837d0f9b"]]);
315
+ const dropDown_vue_vue_type_style_index_0_scoped_0a21b463_lang = "";
316
+ const ColumnSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0a21b463"]]);
317
317
  export {
318
318
  ColumnSelector as C
319
319
  };
@@ -4,9 +4,9 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { u as useNodeStore, P as PopOver } from "./PopOver-b22f049e.js";
8
- import { d as defineComponent, r as ref, B as watch, C as onMounted, o as openBlock, c as createElementBlock, D as renderList, b as createBaseVNode, t as toDisplayString, F as Fragment, i as _export_sfc, n as normalizeClass, m as createVNode, p as withCtx, a2 as shallowRef, s as unref, j as axios, X as nextTick, f as createCommentVNode, A as computed, at as debounce, Z as normalizeStyle, x as createBlock } from "./index-fb6493ae.js";
9
- import { V as ViewPlugin, x as Decoration, c as EditorState, d as autocompletion, R as RangeSetBuilder, T } from "./vue-codemirror.esm-0965f39f.js";
7
+ import { u as useNodeStore, P as PopOver } from "./PopOver-862d7e28.js";
8
+ import { d as defineComponent, r as ref, C as watch, F as onMounted, o as openBlock, c as createElementBlock, H as renderList, a as createBaseVNode, t as toDisplayString, G as Fragment, g as _export_sfc, n as normalizeClass, p as createVNode, q as withCtx, a4 as shallowRef, x as unref, k as axios, Z as nextTick, e as createCommentVNode, B as computed, aw as debounce, a0 as normalizeStyle, y as createBlock } from "./index-387a6f18.js";
9
+ import { V as ViewPlugin, x as Decoration, c as EditorState, d as autocompletion, R as RangeSetBuilder, T } from "./vue-codemirror.esm-31ba0e0b.js";
10
10
  const _hoisted_1$5 = { class: "cool-button-container" };
11
11
  const _hoisted_2$4 = ["onClick"];
12
12
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
@@ -67,14 +67,14 @@
67
67
 
68
68
  /* Custom syntax highlighting - these are specific to this editor */
69
69
  .cm-function {
70
- color: #f08d49;
70
+ color: var(--color-code-keyword);
71
71
  font-weight: bold;
72
72
  }
73
73
  .cm-column {
74
- color: #8ec07c;
74
+ color: var(--color-code-string);
75
75
  }
76
76
  .cm-string {
77
- color: #b8bb26;
77
+ color: var(--color-code-function);
78
78
  }
79
79
 
80
80
  .container[data-v-eefd07b6] {
@@ -1,6 +1,6 @@
1
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
2
- import { d as defineComponent, r as ref, B as watch, l as resolveComponent, o as openBlock, c as createElementBlock, m as createVNode, p as withCtx, R as renderSlot, b as createBaseVNode, q as createTextVNode, s as unref, i as _export_sfc } from "./index-fb6493ae.js";
3
- import { i as info_filled_default } from "./DesignerView-e6f5c0e8.js";
1
+ import { u as useNodeStore } from "./PopOver-862d7e28.js";
2
+ import { d as defineComponent, r as ref, C as watch, m as resolveComponent, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, T as renderSlot, a as createBaseVNode, f as createTextVNode, x as unref, g as _export_sfc } from "./index-387a6f18.js";
3
+ import { i as info_filled_default } from "./DesignerView-f64749fb.js";
4
4
  const _hoisted_1 = { class: "settings-wrapper" };
5
5
  const _hoisted_2 = { class: "settings-section" };
6
6
  const _hoisted_3 = { class: "setting-group" };
@@ -19051,15 +19051,74 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
19051
19051
  }
19052
19052
  });
19053
19053
  const AppLayout_vue_vue_type_style_index_0_lang = "";
19054
+ class SetupService {
19055
+ constructor() {
19056
+ __publicField(this, "cachedStatus", null);
19057
+ __publicField(this, "statusPromise", null);
19058
+ }
19059
+ async getSetupStatus(forceRefresh = false) {
19060
+ if (!forceRefresh && this.cachedStatus) {
19061
+ return this.cachedStatus;
19062
+ }
19063
+ if (this.statusPromise) {
19064
+ return this.statusPromise;
19065
+ }
19066
+ this.statusPromise = this.fetchStatus();
19067
+ try {
19068
+ this.cachedStatus = await this.statusPromise;
19069
+ return this.cachedStatus;
19070
+ } finally {
19071
+ this.statusPromise = null;
19072
+ }
19073
+ }
19074
+ async fetchStatus() {
19075
+ const maxRetries = 5;
19076
+ const retryDelay = 1e3;
19077
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
19078
+ try {
19079
+ const response = await axios$1.get("/health/status", {
19080
+ headers: { "X-Skip-Auth-Header": "true" },
19081
+ timeout: 5e3
19082
+ });
19083
+ return response.data;
19084
+ } catch {
19085
+ if (attempt < maxRetries) {
19086
+ await new Promise((resolve2) => setTimeout(resolve2, retryDelay));
19087
+ }
19088
+ }
19089
+ }
19090
+ return {
19091
+ setup_required: true,
19092
+ master_key_configured: false,
19093
+ mode: "unknown"
19094
+ };
19095
+ }
19096
+ async generateKey() {
19097
+ const response = await axios$1.post("/setup/generate-key", null, {
19098
+ headers: { "X-Skip-Auth-Header": "true" }
19099
+ });
19100
+ return response.data;
19101
+ }
19102
+ clearCache() {
19103
+ this.cachedStatus = null;
19104
+ }
19105
+ }
19106
+ const setupService = new SetupService();
19054
19107
  const routes = [
19055
19108
  {
19056
19109
  path: "/",
19057
19110
  redirect: "/main"
19058
19111
  },
19112
+ {
19113
+ path: "/setup",
19114
+ name: "setup",
19115
+ component: () => __vitePreload(() => import("./SetupView-3fa0aa03.js"), true ? ["assets/SetupView-3fa0aa03.js","assets/SetupView-e2da3442.css"] : void 0),
19116
+ meta: { requiresAuth: false, isSetupPage: true }
19117
+ },
19059
19118
  {
19060
19119
  path: "/login",
19061
19120
  name: "login",
19062
- component: () => __vitePreload(() => import("./LoginView-0df4ed0a.js"), true ? ["assets/LoginView-0df4ed0a.js","assets/LoginView-d325d632.css"] : void 0),
19121
+ component: () => __vitePreload(() => import("./LoginView-5111c9ae.js"), true ? ["assets/LoginView-5111c9ae.js","assets/LoginView-d325d632.css"] : void 0),
19063
19122
  meta: { requiresAuth: false }
19064
19123
  },
19065
19124
  {
@@ -19075,42 +19134,42 @@ const routes = [
19075
19134
  {
19076
19135
  path: "designer",
19077
19136
  name: "designer",
19078
- component: () => __vitePreload(() => import("./DesignerView-e6f5c0e8.js").then((n) => n.D), true ? ["assets/DesignerView-e6f5c0e8.js","assets/PopOver-b22f049e.js","assets/PopOver-d96599db.css","assets/index-3ba44389.js","assets/vue-codemirror.esm-0965f39f.js","assets/DesignerView-a6d0ee84.css"] : void 0)
19137
+ component: () => __vitePreload(() => import("./DesignerView-f64749fb.js").then((n) => n.D), true ? ["assets/DesignerView-f64749fb.js","assets/PopOver-862d7e28.js","assets/PopOver-d96599db.css","assets/index-f0a6e5a5.js","assets/vue-codemirror.esm-31ba0e0b.js","assets/DesignerView-49abb835.css"] : void 0)
19079
19138
  },
19080
19139
  {
19081
19140
  name: "nodeData",
19082
19141
  path: "nodeData",
19083
- component: () => __vitePreload(() => import("./fullEditor-5497a84a.js"), true ? ["assets/fullEditor-5497a84a.js","assets/PopOver-b22f049e.js","assets/PopOver-d96599db.css","assets/vue-codemirror.esm-0965f39f.js","assets/fullEditor-a0be62b3.css"] : void 0)
19142
+ component: () => __vitePreload(() => import("./fullEditor-cf7d7d93.js"), true ? ["assets/fullEditor-cf7d7d93.js","assets/PopOver-862d7e28.js","assets/PopOver-d96599db.css","assets/vue-codemirror.esm-31ba0e0b.js","assets/fullEditor-fe9f7e18.css"] : void 0)
19084
19143
  },
19085
19144
  {
19086
19145
  name: "documentation",
19087
19146
  path: "documentation",
19088
- component: () => __vitePreload(() => import("./DocumentationView-2e78ef1b.js"), true ? ["assets/DocumentationView-2e78ef1b.js","assets/DocumentationView-fd46c656.css"] : void 0)
19147
+ component: () => __vitePreload(() => import("./DocumentationView-61bd2990.js"), true ? ["assets/DocumentationView-61bd2990.js","assets/DocumentationView-9ea6e871.css"] : void 0)
19089
19148
  },
19090
19149
  {
19091
19150
  name: "databaseManager",
19092
19151
  path: "databaseManager",
19093
- component: () => __vitePreload(() => import("./DatabaseView-d26a9140.js"), true ? ["assets/DatabaseView-d26a9140.js","assets/api-24483f0d.js","assets/DatabaseView-6655afd6.css"] : void 0)
19152
+ component: () => __vitePreload(() => import("./DatabaseView-0482e5b5.js"), true ? ["assets/DatabaseView-0482e5b5.js","assets/api-a2102880.js","assets/DatabaseView-6655afd6.css"] : void 0)
19094
19153
  },
19095
19154
  {
19096
19155
  name: "cloudConnectionManager",
19097
19156
  path: "cloudConnectionManager",
19098
- component: () => __vitePreload(() => import("./CloudConnectionView-f13f202b.js"), true ? ["assets/CloudConnectionView-f13f202b.js","assets/api-8b81fa73.js","assets/CloudConnectionView-36bcd6df.css"] : void 0)
19157
+ component: () => __vitePreload(() => import("./CloudConnectionView-faace55b.js"), true ? ["assets/CloudConnectionView-faace55b.js","assets/api-f75042b0.js","assets/CloudConnectionView-cf85f943.css"] : void 0)
19099
19158
  },
19100
19159
  {
19101
19160
  name: "secretManager",
19102
19161
  path: "secretManager",
19103
- component: () => __vitePreload(() => import("./SecretsView-17df66ee.js"), true ? ["assets/SecretsView-17df66ee.js","assets/secrets.api-002e7d7e.js","assets/SecretsView-aa291340.css"] : void 0)
19162
+ component: () => __vitePreload(() => import("./SecretsView-214d255a.js"), true ? ["assets/SecretsView-214d255a.js","assets/secrets.api-ae198c5c.js","assets/SecretsView-aa291340.css"] : void 0)
19104
19163
  },
19105
19164
  {
19106
19165
  name: "nodeDesigner",
19107
19166
  path: "nodeDesigner",
19108
- component: () => __vitePreload(() => import("./NodeDesigner-40b647c9.js"), true ? ["assets/NodeDesigner-40b647c9.js","assets/vue-codemirror.esm-0965f39f.js","assets/index-3ba44389.js","assets/NodeDesigner-5f53be3f.css"] : void 0)
19167
+ component: () => __vitePreload(() => import("./NodeDesigner-d2b7ee2b.js"), true ? ["assets/NodeDesigner-d2b7ee2b.js","assets/vue-codemirror.esm-31ba0e0b.js","assets/index-f0a6e5a5.js","assets/NodeDesigner-94cd4dd3.css"] : void 0)
19109
19168
  },
19110
19169
  {
19111
19170
  name: "admin",
19112
19171
  path: "admin",
19113
- component: () => __vitePreload(() => import("./AdminView-49392a9a.js"), true ? ["assets/AdminView-49392a9a.js","assets/AdminView-f53bad23.css"] : void 0),
19172
+ component: () => __vitePreload(() => import("./AdminView-f9847d67.js"), true ? ["assets/AdminView-f9847d67.js","assets/AdminView-f53bad23.css"] : void 0),
19114
19173
  meta: { requiresAdmin: true, hideInElectron: true }
19115
19174
  }
19116
19175
  ]
@@ -19124,10 +19183,38 @@ const router = createRouter({
19124
19183
  history: createWebHashHistory("/"),
19125
19184
  routes
19126
19185
  });
19186
+ let setupChecked = false;
19187
+ let setupRequired = false;
19127
19188
  router.beforeEach(async (to, _from, next) => {
19128
19189
  const authStore = useAuthStore();
19129
19190
  const requiresAuth = to.matched.some((record) => record.meta.requiresAuth !== false);
19130
19191
  const hideInElectron = to.matched.some((record) => record.meta.hideInElectron);
19192
+ const isSetupPage = to.matched.some((record) => record.meta.isSetupPage);
19193
+ if (!authService.isInElectronMode()) {
19194
+ if (!setupChecked || isSetupPage) {
19195
+ try {
19196
+ const status = await setupService.getSetupStatus(isSetupPage);
19197
+ setupRequired = status.setup_required;
19198
+ setupChecked = status.mode !== "unknown";
19199
+ } catch {
19200
+ setupRequired = true;
19201
+ setupChecked = false;
19202
+ }
19203
+ }
19204
+ if (setupRequired && !isSetupPage) {
19205
+ next({ name: "setup" });
19206
+ return;
19207
+ }
19208
+ if (!setupRequired && isSetupPage) {
19209
+ next({ name: "login" });
19210
+ return;
19211
+ }
19212
+ } else {
19213
+ if (isSetupPage) {
19214
+ next({ name: "designer" });
19215
+ return;
19216
+ }
19217
+ }
19131
19218
  if (authService.isAuthenticated() && !authStore.user) {
19132
19219
  await authStore.initialize();
19133
19220
  }
@@ -60572,92 +60659,94 @@ authService.initialize().then((authenticated) => {
60572
60659
  }
60573
60660
  });
60574
60661
  export {
60575
- onBeforeUnmount as $,
60576
- computed as A,
60577
- watch as B,
60578
- onMounted as C,
60579
- renderList as D,
60662
+ onBeforeMount as $,
60663
+ getDefaultExportFromCjs as A,
60664
+ computed as B,
60665
+ watch as C,
60666
+ onActivated as D,
60580
60667
  ElNotification as E,
60581
- Fragment as F,
60582
- withKeys as G,
60583
- ElMessage as H,
60584
- ElMessageBox as I,
60585
- inject as J,
60586
- effectScope as K,
60587
- provide as L,
60588
- getCurrentInstance as M,
60589
- getCurrentScope as N,
60590
- onScopeDispose as O,
60591
- createPropsRestProxy as P,
60592
- toRef as Q,
60593
- renderSlot as R,
60594
- reactive as S,
60595
- useSlots as T,
60596
- isRef as U,
60597
- toRefs as V,
60598
- customRef as W,
60599
- nextTick as X,
60600
- onBeforeMount as Y,
60601
- normalizeStyle as Z,
60668
+ onMounted as F,
60669
+ Fragment as G,
60670
+ renderList as H,
60671
+ withKeys as I,
60672
+ ElMessage as J,
60673
+ ElMessageBox as K,
60674
+ inject as L,
60675
+ effectScope as M,
60676
+ provide as N,
60677
+ getCurrentInstance as O,
60678
+ getCurrentScope as P,
60679
+ onScopeDispose as Q,
60680
+ createPropsRestProxy as R,
60681
+ toRef as S,
60682
+ renderSlot as T,
60683
+ reactive as U,
60684
+ useSlots as V,
60685
+ isRef as W,
60686
+ toRefs as X,
60687
+ customRef as Y,
60688
+ nextTick as Z,
60602
60689
  _imports_1 as _,
60603
- useAuthStore as a,
60604
- isMemoSame as a0,
60605
- toValue as a1,
60606
- shallowRef as a2,
60607
- h$1 as a3,
60608
- markRaw as a4,
60609
- readonly as a5,
60610
- useAttrs$1 as a6,
60611
- mergeProps as a7,
60612
- resolveDynamicComponent as a8,
60613
- watchEffect as a9,
60614
- normalizeProps as aa,
60615
- defineAsyncComponent as ab,
60616
- onErrorCaptured as ac,
60617
- __vitePreload as ad,
60618
- Teleport as ae,
60619
- guardReactiveProps as af,
60620
- Transition as ag,
60621
- render$$ as ah,
60622
- vShow as ai,
60623
- authService as aj,
60624
- flowfileCorebaseURL as ak,
60625
- useCssVars as al,
60626
- vModelSelect as am,
60627
- vModelCheckbox as an,
60628
- ElDialog as ao,
60629
- ElButton as ap,
60630
- toRaw as aq,
60631
- ElRadio as ar,
60632
- useThemeStore as as,
60633
- debounce$2 as at,
60634
- ElIcon as au,
60635
- ElPopover as av,
60636
- ElOption$1 as aw,
60637
- ElSelect as ax,
60638
- createBaseVNode as b,
60690
+ createBaseVNode as a,
60691
+ normalizeStyle as a0,
60692
+ onBeforeUnmount as a1,
60693
+ isMemoSame as a2,
60694
+ toValue as a3,
60695
+ shallowRef as a4,
60696
+ h$1 as a5,
60697
+ markRaw as a6,
60698
+ readonly as a7,
60699
+ useAttrs$1 as a8,
60700
+ mergeProps as a9,
60701
+ resolveDynamicComponent as aa,
60702
+ watchEffect as ab,
60703
+ normalizeProps as ac,
60704
+ defineAsyncComponent as ad,
60705
+ onErrorCaptured as ae,
60706
+ __vitePreload as af,
60707
+ Teleport as ag,
60708
+ guardReactiveProps as ah,
60709
+ Transition as ai,
60710
+ render$$ as aj,
60711
+ vShow as ak,
60712
+ authService as al,
60713
+ flowfileCorebaseURL as am,
60714
+ useCssVars as an,
60715
+ vModelSelect as ao,
60716
+ vModelCheckbox as ap,
60717
+ ElDialog as aq,
60718
+ ElButton as ar,
60719
+ toRaw as as,
60720
+ ElIcon as at,
60721
+ ElRadio as au,
60722
+ useThemeStore as av,
60723
+ debounce$2 as aw,
60724
+ ElPopover as ax,
60725
+ ElOption$1 as ay,
60726
+ ElSelect as az,
60727
+ createStaticVNode as b,
60639
60728
  createElementBlock as c,
60640
60729
  defineComponent as d,
60641
- createStaticVNode as e,
60642
- createCommentVNode as f,
60643
- withDirectives as g,
60644
- vModelDynamic as h,
60645
- _export_sfc as i,
60646
- axios$1 as j,
60647
- onUnmounted as k,
60648
- resolveComponent as l,
60649
- createVNode as m,
60730
+ createCommentVNode as e,
60731
+ createTextVNode as f,
60732
+ _export_sfc as g,
60733
+ useAuthStore as h,
60734
+ withDirectives as i,
60735
+ vModelDynamic as j,
60736
+ axios$1 as k,
60737
+ onUnmounted as l,
60738
+ resolveComponent as m,
60650
60739
  normalizeClass as n,
60651
60740
  openBlock as o,
60652
- withCtx as p,
60653
- createTextVNode as q,
60741
+ createVNode as p,
60742
+ withCtx as q,
60654
60743
  ref as r,
60655
- unref as s,
60744
+ setupService as s,
60656
60745
  toDisplayString$1 as t,
60657
60746
  useRouter as u,
60658
60747
  vModelText as v,
60659
60748
  withModifiers as w,
60660
- createBlock as x,
60661
- defineStore as y,
60662
- getDefaultExportFromCjs as z
60749
+ unref as x,
60750
+ createBlock as y,
60751
+ defineStore as z
60663
60752
  };
@@ -1,4 +1,4 @@
1
- import { j as axios } from "./index-fb6493ae.js";
1
+ import { k as axios } from "./index-387a6f18.js";
2
2
  const {
3
3
  Axios,
4
4
  AxiosError,