Flowfile 0.3.0__py3-none-any.whl → 0.3.0.1__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.
- flowfile/__init__.py +13 -6
- flowfile/__main__.py +51 -15
- flowfile/api.py +379 -0
- flowfile/web/__init__.py +155 -0
- flowfile/web/static/assets/AirbyteReader-1ac35765.css +314 -0
- flowfile/web/static/assets/AirbyteReader-cb0c1d4a.js +921 -0
- flowfile/web/static/assets/CrossJoin-41efa4cb.css +100 -0
- flowfile/web/static/assets/CrossJoin-a514fa59.js +153 -0
- flowfile/web/static/assets/DatabaseConnectionSettings-0c04b2e5.css +77 -0
- flowfile/web/static/assets/DatabaseConnectionSettings-f2cecf33.js +151 -0
- flowfile/web/static/assets/DatabaseManager-30fa27e5.css +64 -0
- flowfile/web/static/assets/DatabaseManager-83ee3c98.js +484 -0
- flowfile/web/static/assets/DatabaseReader-dc0c6881.js +426 -0
- flowfile/web/static/assets/DatabaseReader-f50c6558.css +158 -0
- flowfile/web/static/assets/DatabaseWriter-2f570e53.css +96 -0
- flowfile/web/static/assets/DatabaseWriter-5afe9f8d.js +312 -0
- flowfile/web/static/assets/ExploreData-5bdae813.css +45 -0
- flowfile/web/static/assets/ExploreData-c7ee19cf.js +118306 -0
- flowfile/web/static/assets/ExternalSource-17b23a01.js +225 -0
- flowfile/web/static/assets/ExternalSource-e37b6275.css +94 -0
- flowfile/web/static/assets/Filter-90856b4f.js +238 -0
- flowfile/web/static/assets/Filter-a9d08ba1.css +20 -0
- flowfile/web/static/assets/Formula-38b71e9e.js +197 -0
- flowfile/web/static/assets/Formula-d60a74f4.css +17 -0
- flowfile/web/static/assets/FuzzyMatch-6857de82.css +254 -0
- flowfile/web/static/assets/FuzzyMatch-d0f1fe81.js +422 -0
- flowfile/web/static/assets/GoogleSheet-854294a4.js +2616 -0
- flowfile/web/static/assets/GoogleSheet-92084da7.css +233 -0
- flowfile/web/static/assets/GraphSolver-0c86bbc6.js +382 -0
- flowfile/web/static/assets/GraphSolver-17fd26db.css +68 -0
- flowfile/web/static/assets/GroupBy-ab1ea74b.css +51 -0
- flowfile/web/static/assets/GroupBy-f2772e9f.js +413 -0
- flowfile/web/static/assets/Join-41c0f331.css +109 -0
- flowfile/web/static/assets/Join-bc3e1cf7.js +247 -0
- flowfile/web/static/assets/ManualInput-03aa0245.js +391 -0
- flowfile/web/static/assets/ManualInput-ac7b9972.css +84 -0
- flowfile/web/static/assets/Output-48f81019.css +2642 -0
- flowfile/web/static/assets/Output-5b35eee8.js +536 -0
- flowfile/web/static/assets/Pivot-7164087c.js +408 -0
- flowfile/web/static/assets/Pivot-f415e85f.css +35 -0
- flowfile/web/static/assets/PolarsCode-3abf6507.js +2863 -0
- flowfile/web/static/assets/PolarsCode-650322d1.css +35 -0
- flowfile/web/static/assets/PopOver-b37ff9be.js +577 -0
- flowfile/web/static/assets/PopOver-bccfde04.css +32 -0
- flowfile/web/static/assets/Read-65966a3e.js +701 -0
- flowfile/web/static/assets/Read-80dc1675.css +197 -0
- flowfile/web/static/assets/RecordCount-c66c6d6d.js +121 -0
- flowfile/web/static/assets/RecordId-826dc095.js +339 -0
- flowfile/web/static/assets/Sample-4ed555c8.js +184 -0
- flowfile/web/static/assets/SecretManager-eac1e97d.js +382 -0
- flowfile/web/static/assets/Select-085f05cc.js +231 -0
- flowfile/web/static/assets/SettingsSection-1f5e79c1.js +87 -0
- flowfile/web/static/assets/SettingsSection-9c836ecc.css +47 -0
- flowfile/web/static/assets/Sort-3e6cb414.js +309 -0
- flowfile/web/static/assets/Sort-7ccfa0fe.css +51 -0
- flowfile/web/static/assets/TextToRows-606349bc.js +307 -0
- flowfile/web/static/assets/TextToRows-c92d1ec2.css +48 -0
- flowfile/web/static/assets/UnavailableFields-5edd5322.css +49 -0
- flowfile/web/static/assets/UnavailableFields-b41976ed.js +36 -0
- flowfile/web/static/assets/Union-8d9ac7f9.css +30 -0
- flowfile/web/static/assets/Union-fca91665.js +145 -0
- flowfile/web/static/assets/Unique-a59f830e.js +273 -0
- flowfile/web/static/assets/Unique-b5615727.css +51 -0
- flowfile/web/static/assets/Unpivot-246e9bbd.css +77 -0
- flowfile/web/static/assets/Unpivot-c3815565.js +441 -0
- flowfile/web/static/assets/airbyte-292aa232.png +0 -0
- flowfile/web/static/assets/api-22b338bd.js +60 -0
- flowfile/web/static/assets/cross_join-d30c0290.png +0 -0
- flowfile/web/static/assets/database_reader-ce1e55f3.svg +24 -0
- flowfile/web/static/assets/database_writer-b4ad0753.svg +23 -0
- flowfile/web/static/assets/designer-2394122a.css +10697 -0
- flowfile/web/static/assets/designer-e5bbe26f.js +69712 -0
- flowfile/web/static/assets/documentation-08045cf2.js +33 -0
- flowfile/web/static/assets/documentation-12216a74.css +50 -0
- flowfile/web/static/assets/dropDown-35135ba8.css +143 -0
- flowfile/web/static/assets/dropDown-5e7e9a5a.js +319 -0
- flowfile/web/static/assets/dropDownGeneric-50a91b99.js +72 -0
- flowfile/web/static/assets/dropDownGeneric-895680d6.css +10 -0
- flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
- flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
- flowfile/web/static/assets/explore_data-8a0a2861.png +0 -0
- flowfile/web/static/assets/fa-brands-400-808443ae.ttf +0 -0
- flowfile/web/static/assets/fa-brands-400-d7236a19.woff2 +0 -0
- flowfile/web/static/assets/fa-regular-400-54cf6086.ttf +0 -0
- flowfile/web/static/assets/fa-regular-400-e3456d12.woff2 +0 -0
- flowfile/web/static/assets/fa-solid-900-aa759986.woff2 +0 -0
- flowfile/web/static/assets/fa-solid-900-d2f05935.ttf +0 -0
- flowfile/web/static/assets/fa-v4compatibility-0ce9033c.woff2 +0 -0
- flowfile/web/static/assets/fa-v4compatibility-30f6abf6.ttf +0 -0
- flowfile/web/static/assets/filter-d7708bda.png +0 -0
- flowfile/web/static/assets/formula-eeeb1611.png +0 -0
- flowfile/web/static/assets/fullEditor-178376bb.css +256 -0
- flowfile/web/static/assets/fullEditor-705c6ccb.js +630 -0
- flowfile/web/static/assets/fuzzy_match-40c161b2.png +0 -0
- flowfile/web/static/assets/genericNodeSettings-65587f20.js +137 -0
- flowfile/web/static/assets/genericNodeSettings-924759c7.css +46 -0
- flowfile/web/static/assets/graph_solver-8b7888b8.png +0 -0
- flowfile/web/static/assets/group_by-80561fc3.png +0 -0
- flowfile/web/static/assets/index-552863fd.js +58652 -0
- flowfile/web/static/assets/index-681a3ed0.css +8843 -0
- flowfile/web/static/assets/input_data-ab2eb678.png +0 -0
- flowfile/web/static/assets/join-349043ae.png +0 -0
- flowfile/web/static/assets/manual_input-ae98f31d.png +0 -0
- flowfile/web/static/assets/nodeTitle-cf9bae3c.js +227 -0
- flowfile/web/static/assets/nodeTitle-f4b12bcb.css +134 -0
- flowfile/web/static/assets/old_join-5d0eb604.png +0 -0
- flowfile/web/static/assets/output-06ec0371.png +0 -0
- flowfile/web/static/assets/pivot-9660df51.png +0 -0
- flowfile/web/static/assets/polars_code-05ce5dc6.png +0 -0
- flowfile/web/static/assets/record_count-dab44eb5.png +0 -0
- flowfile/web/static/assets/record_id-0b15856b.png +0 -0
- flowfile/web/static/assets/sample-693a88b5.png +0 -0
- flowfile/web/static/assets/secretApi-3ad510e1.js +46 -0
- flowfile/web/static/assets/select-b0d0437a.png +0 -0
- flowfile/web/static/assets/selectDynamic-b062bc9b.css +107 -0
- flowfile/web/static/assets/selectDynamic-bd644891.js +302 -0
- flowfile/web/static/assets/sort-2aa579f0.png +0 -0
- flowfile/web/static/assets/summarize-2a099231.png +0 -0
- flowfile/web/static/assets/text_to_rows-859b29ea.png +0 -0
- flowfile/web/static/assets/union-2d8609f4.png +0 -0
- flowfile/web/static/assets/unique-1958b98a.png +0 -0
- flowfile/web/static/assets/unpivot-d3cb4b5b.png +0 -0
- flowfile/web/static/assets/view-7a0f0be1.png +0 -0
- flowfile/web/static/assets/vue-codemirror.esm-dd17b478.js +22281 -0
- flowfile/web/static/assets/vue-content-loader.es-6b36f05e.js +210 -0
- flowfile/web/static/flowfile.svg +47 -0
- flowfile/web/static/icons/flowfile.png +0 -0
- flowfile/web/static/images/airbyte.png +0 -0
- flowfile/web/static/images/flowfile.svg +47 -0
- flowfile/web/static/images/google.svg +1 -0
- flowfile/web/static/images/sheets.png +0 -0
- flowfile/web/static/index.html +22 -0
- flowfile/web/static/vite.svg +1 -0
- flowfile/web/static/vue.svg +1 -0
- {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/METADATA +1 -1
- {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/RECORD +146 -15
- {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/entry_points.txt +1 -1
- flowfile_core/configs/settings.py +7 -32
- flowfile_core/flowfile/FlowfileFlow.py +4 -2
- flowfile_core/flowfile/analytics/analytics_processor.py +1 -1
- flowfile_core/main.py +4 -1
- flowfile_core/schemas/input_schema.py +1 -8
- flowfile_frame/__init__.py +0 -1
- flowfile_frame/utils.py +0 -139
- flowfile_frame/__main__.py +0 -12
- {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/LICENSE +0 -0
- {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/WHEEL +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { g as getImageUrl } from "./designer-e5bbe26f.js";
|
|
2
|
+
import { u as useNodeStore } from "./PopOver-b37ff9be.js";
|
|
3
|
+
import { d as defineComponent, r as ref, l as computed, n as onMounted, m as watch, R as nextTick, c as openBlock, e as createElementBlock, p as createBaseVNode, t as toDisplayString, s as normalizeClass, u as unref, _ as _export_sfc, b as resolveComponent, h as createBlock, w as withCtx, f as createVNode } from "./index-552863fd.js";
|
|
4
|
+
const _hoisted_1$1 = { class: "component-wrapper" };
|
|
5
|
+
const _hoisted_2$1 = { class: "tooltip-text" };
|
|
6
|
+
const _hoisted_3$1 = ["src", "alt"];
|
|
7
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
8
|
+
__name: "nodeButton",
|
|
9
|
+
props: {
|
|
10
|
+
nodeId: { type: Number, required: true },
|
|
11
|
+
imageSrc: { type: String, required: true },
|
|
12
|
+
title: { type: String, required: true }
|
|
13
|
+
},
|
|
14
|
+
emits: ["click"],
|
|
15
|
+
setup(__props, { emit: __emit }) {
|
|
16
|
+
const description = ref("");
|
|
17
|
+
const mouseX = ref(0);
|
|
18
|
+
const mouseY = ref(0);
|
|
19
|
+
const nodeStore = useNodeStore();
|
|
20
|
+
const props = __props;
|
|
21
|
+
const isSelected = computed(() => {
|
|
22
|
+
return nodeStore.node_id == props.nodeId;
|
|
23
|
+
});
|
|
24
|
+
computed(() => {
|
|
25
|
+
const overlayWidth = 400;
|
|
26
|
+
const overlayHeight = 200;
|
|
27
|
+
const buffer = 100;
|
|
28
|
+
let left = mouseX.value + buffer;
|
|
29
|
+
let top = mouseY.value + buffer;
|
|
30
|
+
if (left + overlayWidth > window.innerWidth) {
|
|
31
|
+
left -= overlayWidth + 2 * buffer;
|
|
32
|
+
}
|
|
33
|
+
if (top + overlayHeight > window.innerHeight) {
|
|
34
|
+
top -= overlayHeight + 2 * buffer;
|
|
35
|
+
}
|
|
36
|
+
left = Math.max(left, buffer);
|
|
37
|
+
top = Math.max(top, buffer);
|
|
38
|
+
return {
|
|
39
|
+
top: `${top}px`,
|
|
40
|
+
left: `${left}px`
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
const nodeResult = computed(() => {
|
|
44
|
+
const nodeResult2 = nodeStore.getNodeResult(props.nodeId);
|
|
45
|
+
const nodeValidation = nodeStore.getNodeValidation(props.nodeId);
|
|
46
|
+
if (nodeResult2 && nodeResult2.is_running) {
|
|
47
|
+
return {
|
|
48
|
+
success: void 0,
|
|
49
|
+
statusIndicator: "running",
|
|
50
|
+
hasRun: false,
|
|
51
|
+
error: void 0
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (nodeResult2 && !nodeResult2.is_running) {
|
|
55
|
+
if (nodeValidation) {
|
|
56
|
+
if (nodeResult2.success === true && !nodeValidation.isValid && nodeValidation.validationTime > nodeResult2.start_timestamp) {
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
statusIndicator: "warning",
|
|
60
|
+
error: nodeValidation.error,
|
|
61
|
+
hasRun: true
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (nodeResult2.success === true && nodeValidation.isValid) {
|
|
65
|
+
return {
|
|
66
|
+
success: true,
|
|
67
|
+
statusIndicator: "success",
|
|
68
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
69
|
+
hasRun: true
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (nodeResult2.success === false && nodeValidation.isValid && nodeValidation.validationTime > nodeResult2.start_timestamp) {
|
|
73
|
+
return {
|
|
74
|
+
success: false,
|
|
75
|
+
statusIndicator: "unknown",
|
|
76
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
77
|
+
hasRun: true
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (nodeResult2.success === false && (!nodeValidation.isValid || !nodeValidation.validationTime)) {
|
|
81
|
+
return {
|
|
82
|
+
success: false,
|
|
83
|
+
statusIndicator: "failure",
|
|
84
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
85
|
+
hasRun: true
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
success: nodeResult2.success ?? false,
|
|
91
|
+
statusIndicator: nodeResult2.success ? "success" : "failure",
|
|
92
|
+
error: nodeResult2.error,
|
|
93
|
+
hasRun: true
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (nodeValidation) {
|
|
97
|
+
if (!nodeValidation.isValid) {
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
statusIndicator: "warning",
|
|
101
|
+
error: nodeValidation.error,
|
|
102
|
+
hasRun: false
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
if (nodeValidation.isValid) {
|
|
106
|
+
return {
|
|
107
|
+
success: true,
|
|
108
|
+
statusIndicator: "unknown",
|
|
109
|
+
error: nodeValidation.error,
|
|
110
|
+
hasRun: false
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return void 0;
|
|
115
|
+
});
|
|
116
|
+
const tooltipContent = computed(() => {
|
|
117
|
+
var _a, _b, _c;
|
|
118
|
+
switch ((_a = nodeResult.value) == null ? void 0 : _a.statusIndicator) {
|
|
119
|
+
case "success":
|
|
120
|
+
return "Operation successful";
|
|
121
|
+
case "failure":
|
|
122
|
+
return "Operation failed: \n" + (((_b = nodeResult.value) == null ? void 0 : _b.error) || "No error message available");
|
|
123
|
+
case "warning":
|
|
124
|
+
return "Operation warning: \n" + (((_c = nodeResult.value) == null ? void 0 : _c.error) || "No warning message available");
|
|
125
|
+
case "running":
|
|
126
|
+
return "Operation in progress...";
|
|
127
|
+
case "unknown":
|
|
128
|
+
default:
|
|
129
|
+
return "Status unknown";
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
const getNodeDescription = async () => {
|
|
133
|
+
description.value = await nodeStore.getNodeDescription(props.nodeId);
|
|
134
|
+
};
|
|
135
|
+
const emits = __emit;
|
|
136
|
+
const onClick = () => {
|
|
137
|
+
emits("click");
|
|
138
|
+
};
|
|
139
|
+
onMounted(() => {
|
|
140
|
+
watch(
|
|
141
|
+
() => props.nodeId,
|
|
142
|
+
async (newVal) => {
|
|
143
|
+
if (newVal !== -1) {
|
|
144
|
+
await nextTick();
|
|
145
|
+
getNodeDescription();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
});
|
|
150
|
+
return (_ctx, _cache) => {
|
|
151
|
+
var _a;
|
|
152
|
+
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
153
|
+
createBaseVNode("div", {
|
|
154
|
+
class: normalizeClass(["status-indicator", (_a = nodeResult.value) == null ? void 0 : _a.statusIndicator])
|
|
155
|
+
}, [
|
|
156
|
+
createBaseVNode("span", _hoisted_2$1, toDisplayString(tooltipContent.value), 1)
|
|
157
|
+
], 2),
|
|
158
|
+
createBaseVNode("button", {
|
|
159
|
+
class: normalizeClass(["node-button", { selected: isSelected.value }]),
|
|
160
|
+
onClick
|
|
161
|
+
}, [
|
|
162
|
+
createBaseVNode("img", {
|
|
163
|
+
src: unref(getImageUrl)(props.imageSrc),
|
|
164
|
+
alt: props.title,
|
|
165
|
+
width: "50"
|
|
166
|
+
}, null, 8, _hoisted_3$1)
|
|
167
|
+
], 2)
|
|
168
|
+
]);
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
const nodeButton_vue_vue_type_style_index_0_scoped_a984e3d6_lang = "";
|
|
173
|
+
const NodeButton = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-a984e3d6"]]);
|
|
174
|
+
const _hoisted_1 = { class: "listbox-wrapper" };
|
|
175
|
+
const _hoisted_2 = { class: "listbox-title" };
|
|
176
|
+
const _hoisted_3 = { class: "intro-content" };
|
|
177
|
+
const _hoisted_4 = {
|
|
178
|
+
key: 1,
|
|
179
|
+
class: "title"
|
|
180
|
+
};
|
|
181
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
182
|
+
__name: "nodeTitle",
|
|
183
|
+
props: {
|
|
184
|
+
title: {
|
|
185
|
+
type: String,
|
|
186
|
+
required: true
|
|
187
|
+
},
|
|
188
|
+
intro: {
|
|
189
|
+
type: String,
|
|
190
|
+
required: false,
|
|
191
|
+
default: ""
|
|
192
|
+
// Add default value to resolve warning
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
setup(__props) {
|
|
196
|
+
const props = __props;
|
|
197
|
+
return (_ctx, _cache) => {
|
|
198
|
+
const _component_el_collapse_item = resolveComponent("el-collapse-item");
|
|
199
|
+
const _component_el_collapse = resolveComponent("el-collapse");
|
|
200
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
201
|
+
props.intro ? (openBlock(), createBlock(_component_el_collapse, {
|
|
202
|
+
key: 0,
|
|
203
|
+
class: "listbox-expandable"
|
|
204
|
+
}, {
|
|
205
|
+
default: withCtx(() => [
|
|
206
|
+
createVNode(_component_el_collapse_item, null, {
|
|
207
|
+
title: withCtx(() => [
|
|
208
|
+
createBaseVNode("div", _hoisted_2, toDisplayString(props.title), 1)
|
|
209
|
+
]),
|
|
210
|
+
default: withCtx(() => [
|
|
211
|
+
createBaseVNode("div", _hoisted_3, toDisplayString(props.intro), 1)
|
|
212
|
+
]),
|
|
213
|
+
_: 1
|
|
214
|
+
})
|
|
215
|
+
]),
|
|
216
|
+
_: 1
|
|
217
|
+
})) : (openBlock(), createElementBlock("div", _hoisted_4, toDisplayString(props.title), 1))
|
|
218
|
+
]);
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
const nodeTitle_vue_vue_type_style_index_0_scoped_0db5c358_lang = "";
|
|
223
|
+
const NodeTitle = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0db5c358"]]);
|
|
224
|
+
export {
|
|
225
|
+
NodeButton as N,
|
|
226
|
+
NodeTitle as a
|
|
227
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
|
|
2
|
+
.status-indicator[data-v-a984e3d6] {
|
|
3
|
+
position: relative;
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
margin-right: 8px;
|
|
7
|
+
}
|
|
8
|
+
.status-indicator[data-v-a984e3d6]::before {
|
|
9
|
+
content: "";
|
|
10
|
+
display: block;
|
|
11
|
+
width: 10px;
|
|
12
|
+
height: 10px;
|
|
13
|
+
border-radius: 50%;
|
|
14
|
+
}
|
|
15
|
+
.status-indicator.success[data-v-a984e3d6]::before {
|
|
16
|
+
background-color: #4caf50;
|
|
17
|
+
}
|
|
18
|
+
.status-indicator.failure[data-v-a984e3d6]::before {
|
|
19
|
+
background-color: #f44336;
|
|
20
|
+
}
|
|
21
|
+
.status-indicator.warning[data-v-a984e3d6]::before {
|
|
22
|
+
background-color: #f09f5dd1;
|
|
23
|
+
}
|
|
24
|
+
.status-indicator.unknown[data-v-a984e3d6]::before {
|
|
25
|
+
background-color: #ffffff;
|
|
26
|
+
}
|
|
27
|
+
.status-indicator.running[data-v-a984e3d6]::before {
|
|
28
|
+
background-color: #0909ca;
|
|
29
|
+
animation: pulse-a984e3d6 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
30
|
+
box-shadow: 0 0 10px #0909ca;
|
|
31
|
+
}
|
|
32
|
+
@keyframes pulse-a984e3d6 {
|
|
33
|
+
0% {
|
|
34
|
+
transform: scale(1);
|
|
35
|
+
opacity: 1;
|
|
36
|
+
box-shadow: 0 0 5px #0909ca;
|
|
37
|
+
}
|
|
38
|
+
50% {
|
|
39
|
+
transform: scale(1.3);
|
|
40
|
+
opacity: 0.6;
|
|
41
|
+
box-shadow: 0 0 15px #0909ca;
|
|
42
|
+
}
|
|
43
|
+
100% {
|
|
44
|
+
transform: scale(1);
|
|
45
|
+
opacity: 1;
|
|
46
|
+
box-shadow: 0 0 5px #0909ca;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
.tooltip-text[data-v-a984e3d6] {
|
|
50
|
+
visibility: hidden;
|
|
51
|
+
width: 120px;
|
|
52
|
+
background-color: black;
|
|
53
|
+
color: #fff;
|
|
54
|
+
text-align: center;
|
|
55
|
+
border-radius: 6px;
|
|
56
|
+
padding: 5px 0;
|
|
57
|
+
position: absolute;
|
|
58
|
+
z-index: 1;
|
|
59
|
+
bottom: 100%;
|
|
60
|
+
left: 50%;
|
|
61
|
+
margin-left: -60px;
|
|
62
|
+
opacity: 0;
|
|
63
|
+
transition: opacity 0.3s;
|
|
64
|
+
}
|
|
65
|
+
.status-indicator:hover .tooltip-text[data-v-a984e3d6] {
|
|
66
|
+
visibility: visible;
|
|
67
|
+
opacity: 1;
|
|
68
|
+
}
|
|
69
|
+
.description-input[data-v-a984e3d6]:hover,
|
|
70
|
+
.description-input[data-v-a984e3d6]:focus {
|
|
71
|
+
background-color: #e7e7e7; /* Slightly darker on hover/focus */
|
|
72
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); /* More pronounced shadow on hover/focus */
|
|
73
|
+
}
|
|
74
|
+
.component-wrapper[data-v-a984e3d6] {
|
|
75
|
+
position: relative; /* This makes the absolute positioning of the child relative to this container */
|
|
76
|
+
max-width: 60px;
|
|
77
|
+
overflow: visible; /* Allows children to visually overflow */
|
|
78
|
+
}
|
|
79
|
+
.description-display[data-v-a984e3d6] {
|
|
80
|
+
padding: 8px;
|
|
81
|
+
width: 200px !important;
|
|
82
|
+
max-height: 8px !important;
|
|
83
|
+
background-color: #ffffff; /* Light grey background */
|
|
84
|
+
border-radius: 4px; /* Rounded corners for a modern look */
|
|
85
|
+
cursor: pointer; /* Indicates the text can be clicked */
|
|
86
|
+
}
|
|
87
|
+
.overlay[data-v-a984e3d6] {
|
|
88
|
+
position: fixed; /* This is key for viewport-level positioning */
|
|
89
|
+
width: 200px; /* Or whatever width you prefer */
|
|
90
|
+
height: 200px; /* Or whatever height you prefer */
|
|
91
|
+
left: 50%; /* Center horizontally */
|
|
92
|
+
top: 50%; /* Center vertically */
|
|
93
|
+
transform: translate(-50%, -50%); /* Adjust based on its own dimensions */
|
|
94
|
+
z-index: 1000; /* High enough to float above everything else */
|
|
95
|
+
/* Your existing styles for background, padding, etc. */
|
|
96
|
+
}
|
|
97
|
+
.node-button[data-v-a984e3d6] {
|
|
98
|
+
background-color: #ffffff;
|
|
99
|
+
border-radius: 10px;
|
|
100
|
+
border-width: 0.5px;
|
|
101
|
+
}
|
|
102
|
+
.node-button[data-v-a984e3d6]:hover {
|
|
103
|
+
background-color: #f5f5f5;
|
|
104
|
+
transform: translateY(-1px);
|
|
105
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
106
|
+
}
|
|
107
|
+
.overlay-content[data-v-a984e3d6] {
|
|
108
|
+
padding: 20px;
|
|
109
|
+
border-radius: 10px;
|
|
110
|
+
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-direction: column;
|
|
113
|
+
align-items: stretch;
|
|
114
|
+
}
|
|
115
|
+
.overlay-prompt[data-v-a984e3d6] {
|
|
116
|
+
margin-bottom: 10px;
|
|
117
|
+
color: #333;
|
|
118
|
+
font-size: 16px;
|
|
119
|
+
}
|
|
120
|
+
.description-input[data-v-a984e3d6] {
|
|
121
|
+
margin-bottom: 10px;
|
|
122
|
+
border: 1px solid #ccc;
|
|
123
|
+
border-radius: 4px;
|
|
124
|
+
padding: 10px;
|
|
125
|
+
font-size: 14px;
|
|
126
|
+
height: 100px; /* Adjust based on your needs */
|
|
127
|
+
}
|
|
128
|
+
.selected[data-v-a984e3d6] {
|
|
129
|
+
border: 2px solid #828282;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.intro-content[data-v-0db5c358] {
|
|
133
|
+
white-space: pre-wrap; /* Preserves whitespace and line breaks */
|
|
134
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { a as axios } from "./index-552863fd.js";
|
|
2
|
+
const API_BASE_URL = "/secrets/secrets";
|
|
3
|
+
const fetchSecretsApi = async () => {
|
|
4
|
+
try {
|
|
5
|
+
const response = await axios.get(API_BASE_URL);
|
|
6
|
+
return response.data;
|
|
7
|
+
} catch (error) {
|
|
8
|
+
console.error("API Error: Failed to load secrets:", error);
|
|
9
|
+
throw error;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const addSecretApi = async (secretData) => {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
try {
|
|
15
|
+
await axios.post(API_BASE_URL, secretData);
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.error("API Error: Failed to add secret:", error);
|
|
18
|
+
const errorMsg = ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "Failed to add secret";
|
|
19
|
+
throw new Error(errorMsg);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const getSecretValueApi = async (secretName) => {
|
|
23
|
+
try {
|
|
24
|
+
const response = await axios.get(
|
|
25
|
+
`${API_BASE_URL}/${encodeURIComponent(secretName)}`
|
|
26
|
+
);
|
|
27
|
+
return response.data.value;
|
|
28
|
+
} catch (error) {
|
|
29
|
+
console.error("API Error: Failed to get secret value:", error);
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const deleteSecretApi = async (secretName) => {
|
|
34
|
+
try {
|
|
35
|
+
await axios.delete(`${API_BASE_URL}/${encodeURIComponent(secretName)}`);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error("API Error: Failed to delete secret:", error);
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
export {
|
|
42
|
+
addSecretApi as a,
|
|
43
|
+
deleteSecretApi as d,
|
|
44
|
+
fetchSecretsApi as f,
|
|
45
|
+
getSecretValueApi as g
|
|
46
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
|
|
2
|
+
/* Context menu styling */
|
|
3
|
+
.context-menu[data-v-86b67fdf] {
|
|
4
|
+
position: fixed;
|
|
5
|
+
z-index: 1000;
|
|
6
|
+
border: 1px solid #ccc;
|
|
7
|
+
background-color: white;
|
|
8
|
+
padding: 8px;
|
|
9
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
|
10
|
+
border-radius: 4px;
|
|
11
|
+
user-select: none;
|
|
12
|
+
}
|
|
13
|
+
.context-menu button[data-v-86b67fdf] {
|
|
14
|
+
display: block;
|
|
15
|
+
background: none;
|
|
16
|
+
border: none;
|
|
17
|
+
padding: 4px 8px;
|
|
18
|
+
text-align: left;
|
|
19
|
+
width: 100%;
|
|
20
|
+
cursor: pointer;
|
|
21
|
+
}
|
|
22
|
+
.context-menu button[data-v-86b67fdf]:hover {
|
|
23
|
+
background-color: #f0f0f0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Table wrapper for scrolling */
|
|
27
|
+
.table-wrapper[data-v-86b67fdf] {
|
|
28
|
+
max-height: 700px;
|
|
29
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
30
|
+
border-radius: 8px;
|
|
31
|
+
overflow: auto;
|
|
32
|
+
margin: 5px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Adjusted font size for input fields */
|
|
36
|
+
[data-v-86b67fdf] .smaller-el-input .el-input__inner {
|
|
37
|
+
padding: 2px 10px;
|
|
38
|
+
font-size: 12px;
|
|
39
|
+
height: 24px;
|
|
40
|
+
line-height: 20px;
|
|
41
|
+
}
|
|
42
|
+
.smaller-el-input[data-v-86b67fdf] {
|
|
43
|
+
line-height: 20px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Highlight selected rows */
|
|
47
|
+
.highlight-row[data-v-86b67fdf] {
|
|
48
|
+
background-color: #e7e6e6 !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Greyed out styling for unavailable fields */
|
|
52
|
+
.greyed-out[data-v-86b67fdf] {
|
|
53
|
+
background-color: #dcdcdc !important;
|
|
54
|
+
color: #888 !important;
|
|
55
|
+
z-index: 1;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Unavailable field styling */
|
|
59
|
+
.unavailable-field[data-v-86b67fdf] {
|
|
60
|
+
display: flex;
|
|
61
|
+
align-items: center;
|
|
62
|
+
position: relative;
|
|
63
|
+
pointer-events: auto;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Remove missing fields button styling */
|
|
67
|
+
.remove-missing-fields[data-v-86b67fdf] {
|
|
68
|
+
display: flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
background-color: #d9534f;
|
|
71
|
+
padding: 4px 8px;
|
|
72
|
+
margin: 10px 20px;
|
|
73
|
+
text-align: center;
|
|
74
|
+
cursor: pointer;
|
|
75
|
+
border-radius: 4px;
|
|
76
|
+
font-weight: bold;
|
|
77
|
+
font-size: 0.9em;
|
|
78
|
+
}
|
|
79
|
+
.remove-missing-fields[data-v-86b67fdf]:hover {
|
|
80
|
+
background-color: #c9302c;
|
|
81
|
+
}
|
|
82
|
+
.remove-missing-fields > unavailable-field[data-v-86b67fdf] {
|
|
83
|
+
margin-right: 4px;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Adjustments for el-checkbox component */
|
|
87
|
+
[data-v-86b67fdf] .el-checkbox {
|
|
88
|
+
font-size: 12px;
|
|
89
|
+
height: 20px;
|
|
90
|
+
line-height: 20px;
|
|
91
|
+
display: flex;
|
|
92
|
+
align-items: center;
|
|
93
|
+
}
|
|
94
|
+
[data-v-86b67fdf] .el-checkbox .el-checkbox__input {
|
|
95
|
+
height: 16px;
|
|
96
|
+
width: 16px;
|
|
97
|
+
margin: 0;
|
|
98
|
+
}
|
|
99
|
+
[data-v-86b67fdf] .el-checkbox .el-checkbox__inner {
|
|
100
|
+
height: 16px;
|
|
101
|
+
width: 16px;
|
|
102
|
+
}
|
|
103
|
+
[data-v-86b67fdf] .el-checkbox .el-checkbox__label {
|
|
104
|
+
font-size: 12px;
|
|
105
|
+
line-height: 20px;
|
|
106
|
+
margin-left: 4px;
|
|
107
|
+
}
|