Flowfile 0.3.4.1__py3-none-any.whl → 0.3.6__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.

Potentially problematic release.


This version of Flowfile might be problematic. Click here for more details.

Files changed (122) hide show
  1. flowfile/__init__.py +3 -3
  2. flowfile/api.py +36 -15
  3. flowfile/web/static/assets/CloudConnectionManager-2dfdce2f.css +86 -0
  4. flowfile/web/static/assets/CloudConnectionManager-d004942f.js +784 -0
  5. flowfile/web/static/assets/CloudStorageReader-29d14fcc.css +143 -0
  6. flowfile/web/static/assets/CloudStorageReader-eccf9fc2.js +437 -0
  7. flowfile/web/static/assets/CloudStorageWriter-49c9a4b2.css +138 -0
  8. flowfile/web/static/assets/CloudStorageWriter-b1ba6bba.js +430 -0
  9. flowfile/web/static/assets/{CrossJoin-dfcf7351.js → CrossJoin-68981877.js} +8 -8
  10. flowfile/web/static/assets/{DatabaseConnectionSettings-b2afb1d7.js → DatabaseConnectionSettings-0b06649c.js} +2 -2
  11. flowfile/web/static/assets/{DatabaseManager-824a49b2.js → DatabaseManager-8349a426.js} +2 -2
  12. flowfile/web/static/assets/{DatabaseReader-a48124d8.js → DatabaseReader-905344f8.js} +9 -9
  13. flowfile/web/static/assets/{DatabaseWriter-b47cbae2.js → DatabaseWriter-9f5b8638.js} +9 -9
  14. flowfile/web/static/assets/{ExploreData-fdfc45a4.js → ExploreData-131a6d53.js} +5 -5
  15. flowfile/web/static/assets/{ExternalSource-861b0e71.js → ExternalSource-e3549dcc.js} +6 -6
  16. flowfile/web/static/assets/{Filter-f87bb897.js → Filter-6e0730ae.js} +8 -8
  17. flowfile/web/static/assets/{Formula-1e2ed720.js → Formula-02f033e6.js} +75 -9
  18. flowfile/web/static/assets/{Formula-b8cefc31.css → Formula-29f19d21.css} +10 -0
  19. flowfile/web/static/assets/{FuzzyMatch-b6cc4fdd.js → FuzzyMatch-54c14036.js} +9 -9
  20. flowfile/web/static/assets/{GraphSolver-6a371f4c.js → GraphSolver-08a3f499.js} +5 -5
  21. flowfile/web/static/assets/{GroupBy-f7b7f472.js → GroupBy-2ae38139.js} +6 -6
  22. flowfile/web/static/assets/{Join-eec38203.js → Join-493b9772.js} +23 -15
  23. flowfile/web/static/assets/{Join-41c0f331.css → Join-f45eff22.css} +20 -20
  24. flowfile/web/static/assets/{ManualInput-9aaa46fb.js → ManualInput-4373d163.js} +106 -34
  25. flowfile/web/static/assets/{ManualInput-ac7b9972.css → ManualInput-a71b52c6.css} +29 -17
  26. flowfile/web/static/assets/{Output-3b2ca045.js → Output-b534f3c7.js} +4 -4
  27. flowfile/web/static/assets/{Pivot-a4f5d88f.js → Pivot-2968ff65.js} +6 -6
  28. flowfile/web/static/assets/{PolarsCode-49ce444f.js → PolarsCode-65136536.js} +6 -6
  29. flowfile/web/static/assets/{Read-07acdc9a.js → Read-c56339ed.js} +6 -6
  30. flowfile/web/static/assets/{RecordCount-6a21da56.js → RecordCount-1c641a5e.js} +5 -5
  31. flowfile/web/static/assets/{RecordId-949bdc17.js → RecordId-df308b8f.js} +6 -6
  32. flowfile/web/static/assets/{Sample-7afca6e1.js → Sample-293e8a64.js} +5 -5
  33. flowfile/web/static/assets/{SecretManager-b41c029d.js → SecretManager-03911655.js} +2 -2
  34. flowfile/web/static/assets/{Select-32b28406.js → Select-3058a13d.js} +8 -8
  35. flowfile/web/static/assets/{SettingsSection-a0f15a05.js → SettingsSection-fbf4fb39.js} +1 -1
  36. flowfile/web/static/assets/{Sort-fc6ba0e2.js → Sort-a29bbaf7.js} +6 -6
  37. flowfile/web/static/assets/{TextToRows-23127596.js → TextToRows-c7d7760e.js} +8 -8
  38. flowfile/web/static/assets/{UnavailableFields-c42880a3.js → UnavailableFields-118f1d20.js} +2 -2
  39. flowfile/web/static/assets/{Union-39eecc6c.js → Union-f0589571.js} +5 -5
  40. flowfile/web/static/assets/{Unique-a0e8fe61.js → Unique-7329a207.js} +8 -8
  41. flowfile/web/static/assets/{Unpivot-1e2d43f0.js → Unpivot-30b0be15.js} +5 -5
  42. flowfile/web/static/assets/{api-44ca9e9c.js → api-602fb95c.js} +1 -1
  43. flowfile/web/static/assets/api-fb67319c.js +80 -0
  44. flowfile/web/static/assets/cloud_storage_reader-aa1415d6.png +0 -0
  45. flowfile/web/static/assets/{designer-267d44f1.js → designer-94a6bf4d.js} +36 -34
  46. flowfile/web/static/assets/{documentation-6c0810a2.js → documentation-a224831e.js} +1 -1
  47. flowfile/web/static/assets/{dropDown-52790b15.js → dropDown-c2d2aa97.js} +1 -1
  48. flowfile/web/static/assets/{fullEditor-e272b506.js → fullEditor-921ac5fd.js} +2 -2
  49. flowfile/web/static/assets/{genericNodeSettings-4bdcf98e.js → genericNodeSettings-7013cc94.js} +3 -3
  50. flowfile/web/static/assets/{index-e235a8bc.js → index-3a75211d.js} +19 -6
  51. flowfile/web/static/assets/{nodeTitle-fc3fc4b7.js → nodeTitle-a63d4680.js} +3 -3
  52. flowfile/web/static/assets/{secretApi-cdc2a3fd.js → secretApi-763aec6e.js} +1 -1
  53. flowfile/web/static/assets/{selectDynamic-96aa82cd.js → selectDynamic-08464729.js} +3 -3
  54. flowfile/web/static/assets/{vue-codemirror.esm-25e75a08.js → vue-codemirror.esm-f15a5f87.js} +2 -1
  55. flowfile/web/static/assets/{vue-content-loader.es-6c4b1c24.js → vue-content-loader.es-93bd09d7.js} +1 -1
  56. flowfile/web/static/index.html +1 -1
  57. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/METADATA +8 -3
  58. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/RECORD +109 -104
  59. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/entry_points.txt +2 -0
  60. flowfile_core/__init__.py +2 -0
  61. flowfile_core/configs/node_store/nodes.py +8 -6
  62. flowfile_core/database/connection.py +63 -15
  63. flowfile_core/database/init_db.py +0 -1
  64. flowfile_core/database/models.py +49 -2
  65. flowfile_core/flowfile/code_generator/code_generator.py +402 -18
  66. flowfile_core/flowfile/connection_manager/models.py +1 -1
  67. flowfile_core/flowfile/database_connection_manager/db_connections.py +216 -2
  68. flowfile_core/flowfile/extensions.py +1 -1
  69. flowfile_core/flowfile/flow_data_engine/cloud_storage_reader.py +259 -0
  70. flowfile_core/flowfile/flow_data_engine/create/funcs.py +19 -8
  71. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +522 -59
  72. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +12 -2
  73. flowfile_core/flowfile/flow_data_engine/fuzzy_matching/settings_validator.py +1 -1
  74. flowfile_core/flowfile/flow_data_engine/join/__init__.py +2 -1
  75. flowfile_core/flowfile/flow_data_engine/join/utils.py +25 -0
  76. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +29 -22
  77. flowfile_core/flowfile/flow_data_engine/utils.py +1 -40
  78. flowfile_core/flowfile/flow_graph.py +119 -82
  79. flowfile_core/flowfile/flow_node/flow_node.py +68 -33
  80. flowfile_core/flowfile/flow_node/models.py +32 -3
  81. flowfile_core/flowfile/flow_node/schema_callback.py +3 -2
  82. flowfile_core/flowfile/sources/external_sources/__init__.py +0 -2
  83. flowfile_core/flowfile/sources/external_sources/factory.py +4 -7
  84. flowfile_core/flowfile/utils.py +1 -23
  85. flowfile_core/main.py +3 -2
  86. flowfile_core/routes/cloud_connections.py +81 -0
  87. flowfile_core/routes/logs.py +0 -1
  88. flowfile_core/routes/routes.py +3 -39
  89. flowfile_core/schemas/cloud_storage_schemas.py +215 -0
  90. flowfile_core/schemas/input_schema.py +37 -15
  91. flowfile_core/schemas/schemas.py +7 -2
  92. flowfile_core/schemas/transform_schema.py +97 -22
  93. flowfile_core/utils/utils.py +40 -1
  94. flowfile_core/utils/validate_setup.py +41 -0
  95. flowfile_frame/flow_frame.py +253 -102
  96. flowfile_frame/flow_frame_methods.py +13 -13
  97. flowfile_worker/external_sources/s3_source/main.py +216 -0
  98. flowfile_worker/external_sources/s3_source/models.py +142 -0
  99. flowfile_worker/funcs.py +51 -6
  100. flowfile_worker/models.py +22 -2
  101. flowfile_worker/routes.py +40 -38
  102. flowfile_worker/utils.py +1 -1
  103. test_utils/s3/commands.py +46 -0
  104. test_utils/s3/data_generator.py +291 -0
  105. test_utils/s3/fixtures.py +209 -0
  106. flowfile/web/static/assets/AirbyteReader-1ac35765.css +0 -314
  107. flowfile/web/static/assets/AirbyteReader-e08044e5.js +0 -922
  108. flowfile/web/static/assets/dropDownGeneric-60f56a8a.js +0 -72
  109. flowfile/web/static/assets/dropDownGeneric-895680d6.css +0 -10
  110. flowfile_core/flowfile/sources/external_sources/airbyte_sources/airbyte.py +0 -159
  111. flowfile_core/flowfile/sources/external_sources/airbyte_sources/models.py +0 -172
  112. flowfile_core/flowfile/sources/external_sources/airbyte_sources/settings.py +0 -173
  113. flowfile_core/schemas/external_sources/airbyte_schemas.py +0 -20
  114. flowfile_worker/external_sources/airbyte_sources/__init__.py +0 -0
  115. flowfile_worker/external_sources/airbyte_sources/cache_manager.py +0 -161
  116. flowfile_worker/external_sources/airbyte_sources/main.py +0 -89
  117. flowfile_worker/external_sources/airbyte_sources/models.py +0 -133
  118. flowfile_worker/external_sources/airbyte_sources/settings.py +0 -0
  119. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/LICENSE +0 -0
  120. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/WHEEL +0 -0
  121. {flowfile_core/flowfile/sources/external_sources/airbyte_sources → flowfile_worker/external_sources/s3_source}/__init__.py +0 -0
  122. {flowfile_core/schemas/external_sources → test_utils/s3}/__init__.py +0 -0
@@ -1,314 +0,0 @@
1
-
2
- /* Array input styles */
3
- .array-input-section[data-v-b2f2d704] {
4
- display: flex;
5
- flex-direction: column;
6
- gap: 8px;
7
- }
8
- .input-with-button[data-v-b2f2d704] {
9
- display: flex;
10
- gap: 8px;
11
- align-items: center;
12
- }
13
- .items-container[data-v-b2f2d704] {
14
- display: flex;
15
- flex-wrap: wrap;
16
- gap: 10px; /* Space between items */
17
- }
18
- .item-box[data-v-b2f2d704] {
19
- display: flex;
20
- align-items: center;
21
- padding: 5px 10px;
22
- background-color: #f0f0f0;
23
- border-radius: 4px;
24
- font-size: 12px;
25
- position: relative;
26
- }
27
- .remove-btn[data-v-b2f2d704] {
28
- margin-left: 8px;
29
- cursor: pointer;
30
- color: #100f0f72;
31
- font-weight: bold;
32
- }
33
- .add-btn[data-v-b2f2d704] {
34
- padding: 4px 12px;
35
- background: #7878ff5b;
36
- border: none;
37
- border-radius: 3px;
38
- cursor: pointer;
39
- font-size: 12px;
40
- transition: background-color 0.2s;
41
- white-space: nowrap;
42
- }
43
- .add-btn[data-v-b2f2d704]:hover {
44
- background: #6363ff5b;
45
- }
46
-
47
- /* Your existing styles */
48
- .form-container[data-v-b2f2d704] {
49
- font-family: -apple-system, BlinkMacSystemFont, sans-serif;
50
- font-size: 13px;
51
- color: #333;
52
- }
53
- .form-grid[data-v-b2f2d704] {
54
- display: grid;
55
- gap: 8px;
56
- padding: 12px;
57
- background: #fff;
58
- border: 1px solid #eee;
59
- border-radius: 4px;
60
- }
61
- .form-item-wrapper[data-v-b2f2d704] {
62
- margin-bottom: 2px;
63
- }
64
- .single-item[data-v-b2f2d704] {
65
- margin-bottom: 4px;
66
- }
67
- .compact-header[data-v-b2f2d704] {
68
- font-size: 12px;
69
- color: #666;
70
- margin-bottom: 2px;
71
- display: flex;
72
- align-items: center;
73
- gap: 4px;
74
- }
75
- .minimal-header[data-v-b2f2d704] {
76
- width: 100%;
77
- text-align: left;
78
- padding: 6px 8px;
79
- background: #f5f5f5;
80
- border: 1px solid #eee;
81
- border-radius: 3px;
82
- font-size: 12px;
83
- display: flex;
84
- align-items: center;
85
- gap: 6px;
86
- cursor: pointer;
87
- transition: background 0.2s;
88
- }
89
- .minimal-header[data-v-b2f2d704]:hover {
90
- background: #f0f0f0;
91
- }
92
- .minimal-header.is-open[data-v-b2f2d704] {
93
- border-bottom-left-radius: 0;
94
- border-bottom-right-radius: 0;
95
- }
96
- .minimal-chevron[data-v-b2f2d704] {
97
- font-size: 14px;
98
- color: #999;
99
- width: 12px;
100
- }
101
- .tag[data-v-b2f2d704] {
102
- color: #ff4757;
103
- font-size: 14px;
104
- }
105
- .type-indicator[data-v-b2f2d704] {
106
- color: #999;
107
- font-size: 11px;
108
- }
109
- .nested-content[data-v-b2f2d704] {
110
- padding: 8px;
111
- border: 1px solid #eee;
112
- border-top: none;
113
- background: #fff;
114
- border-bottom-left-radius: 3px;
115
- border-bottom-right-radius: 3px;
116
- }
117
- .nested-item[data-v-b2f2d704] {
118
- margin-bottom: 6px;
119
- }
120
- .nested-item[data-v-b2f2d704]:last-child {
121
- margin-bottom: 0;
122
- }
123
- .minimal-input[data-v-b2f2d704] {
124
- box-sizing: border-box; /* Add this to include padding in width calculation */
125
- width: 100%;
126
- padding: 4px 8px;
127
- border: 1px solid #ddd;
128
- border-radius: 3px;
129
- font-size: 12px;
130
- background: #fff;
131
- transition: border 0.2s;
132
- }
133
- .minimal-input[data-v-b2f2d704]:focus {
134
- outline: none;
135
- border-color: #666;
136
- }
137
- .minimal-input[data-v-b2f2d704]::placeholder {
138
- color: #ccc;
139
- }
140
- .minimal-popover[data-v-b2f2d704] {
141
- position: fixed;
142
- background: rgba(0, 0, 0, 0.8);
143
- color: #fff;
144
- padding: 4px 8px;
145
- border-radius: 3px;
146
- font-size: 12px;
147
- max-width: 250px;
148
- z-index: 100;
149
- pointer-events: none;
150
- }
151
- @media (max-width: 640px) {
152
- .form-grid[data-v-b2f2d704] {
153
- padding: 8px;
154
- gap: 6px;
155
- }
156
- .minimal-header[data-v-b2f2d704] {
157
- padding: 4px 6px;
158
- }
159
- .minimal-input[data-v-b2f2d704] {
160
- padding: 3px 6px;
161
- }
162
- }
163
-
164
- .to-front[data-v-9dcbd94f] {
165
- z-index: 1000;
166
- }
167
- .config-section[data-v-9dcbd94f] {
168
- margin-top: 16px;
169
- }
170
- .stream-section[data-v-9dcbd94f] {
171
- margin-top: 16px;
172
- }
173
- .stream-select[data-v-9dcbd94f] {
174
- width: 100%;
175
- max-width: 400px;
176
- }
177
- .icon-button[data-v-9dcbd94f] {
178
- padding: 2px;
179
- border: none;
180
- background: none;
181
- cursor: pointer;
182
- color: #666;
183
- }
184
- .icon-button[data-v-9dcbd94f]:hover {
185
- color: #333;
186
- }
187
- .primary-button[data-v-9dcbd94f] {
188
- display: inline-flex;
189
- align-items: center;
190
- justify-content: center;
191
- cursor: pointer;
192
- padding: 8px 16px;
193
- background-color: #7878ff5b;
194
- border: none;
195
- border-radius: 4px;
196
- font-size: 13px;
197
- transition: background-color 0.3s ease;
198
- }
199
- .primary-button[data-v-9dcbd94f]:hover:not(:disabled) {
200
- background-color: #b3b5ba;
201
- }
202
- .primary-button[data-v-9dcbd94f]:disabled {
203
- opacity: 0.6;
204
- cursor: not-allowed;
205
- }
206
- .secondary-button[data-v-9dcbd94f] {
207
- display: inline-flex;
208
- align-items: center;
209
- gap: 4px;
210
- padding: 4px 8px;
211
- background-color: #f1f1f1;
212
- border: 1px solid #ddd;
213
- border-radius: 4px;
214
- font-size: 12px;
215
- color: #666;
216
- transition: all 0.2s ease;
217
- }
218
- .secondary-button[data-v-9dcbd94f]:hover {
219
- background-color: #e4e4e4;
220
- color: #333;
221
- }
222
- .validation-banner[data-v-9dcbd94f] {
223
- display: flex;
224
- align-items: center;
225
- gap: 8px;
226
- padding: 12px;
227
- margin-top: 12px;
228
- border-radius: 4px;
229
- font-size: 14px;
230
- }
231
- .validation-banner.success[data-v-9dcbd94f] {
232
- background-color: #ecfdf5;
233
- color: #047857;
234
- }
235
- .validation-banner.error[data-v-9dcbd94f] {
236
- background-color: #fef2f2;
237
- color: #dc2626;
238
- }
239
- .spin[data-v-9dcbd94f] {
240
- animation: spin-9dcbd94f 1s linear infinite;
241
- }
242
- @keyframes spin-9dcbd94f {
243
- from {
244
- transform: rotate(0deg);
245
- }
246
- to {
247
- transform: rotate(360deg);
248
- }
249
- }
250
- .file-upload-label[data-v-9dcbd94f] {
251
- display: flex;
252
- align-items: center;
253
- justify-content: flex-start;
254
- background-color: #f5f5f5;
255
- border: 1px solid #ddd;
256
- border-radius: 4px;
257
- padding: 10px 15px;
258
- color: #333;
259
- font-size: 16px;
260
- font-weight: 500;
261
- text-align: left;
262
- user-select: none;
263
- cursor: pointer;
264
- transition: background-color 0.3s ease;
265
- }
266
- .file-upload-label[data-v-9dcbd94f]:hover {
267
- background-color: #e4e4e4;
268
- }
269
- .file-icon[data-v-9dcbd94f] {
270
- margin-right: 10px;
271
- font-size: 20px;
272
- width: 24px;
273
- height: auto;
274
- }
275
- .attention-notice[data-v-9dcbd94f] {
276
- display: flex;
277
- align-items: center;
278
- gap: 6px;
279
- padding: 4px 8px;
280
- border-radius: 4px;
281
- width: fit-content;
282
- margin-top: 4px;
283
- }
284
- .docker-notice[data-v-9dcbd94f] {
285
- font-size: 12px;
286
- font-weight: 600;
287
- }
288
- .warning-icon[data-v-9dcbd94f] {
289
- font-size: 14px;
290
- animation: pulse-9dcbd94f 2s infinite;
291
- }
292
- .flex[data-v-9dcbd94f] {
293
- display: flex;
294
- }
295
- .justify-between[data-v-9dcbd94f] {
296
- justify-content: space-between;
297
- }
298
- .items-center[data-v-9dcbd94f] {
299
- align-items: center;
300
- }
301
- .gap-2[data-v-9dcbd94f] {
302
- gap: 8px;
303
- }
304
- @keyframes pulse-9dcbd94f {
305
- 0% {
306
- opacity: 1;
307
- }
308
- 50% {
309
- opacity: 0.5;
310
- }
311
- 100% {
312
- opacity: 1;
313
- }
314
- }