@kong-ui-public/entities-gateway-services 3.24.0 → 3.25.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.
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineComponent as $e, computed as b, ref as I, watch as Le, onBeforeMount as at, resolveComponent as $, openBlock as y, createElementBlock as V, createVNode as n, unref as t, createSlots as ke, withCtx as c, createTextVNode as F, toDisplayString as _, createBlock as N, createCommentVNode as
|
|
1
|
+
import { defineComponent as $e, computed as b, ref as I, watch as Le, onBeforeMount as at, resolveComponent as $, openBlock as y, createElementBlock as V, createVNode as n, unref as t, createSlots as ke, withCtx as c, createTextVNode as F, toDisplayString as _, createBlock as N, createCommentVNode as S, createElementVNode as P, withModifiers as Be, Teleport as st, Fragment as Ne, renderList as Je, reactive as Oe, onMounted as ot, Transition as Me, renderSlot as lt } from "vue";
|
|
2
2
|
import { useRouter as Qe } from "vue-router";
|
|
3
3
|
import { BookIcon as je, AddIcon as Pe, ServicesIcon as rt, TrashIcon as it } from "@kong/icons";
|
|
4
4
|
import { createI18n as nt, i18nTComponent as ct } from "@kong-ui-public/i18n";
|
|
5
|
-
import { useAxios as Xe, useTableState as dt, useFetcher as ut, useDeleteUrlBuilder as ft, FetcherStatus as pt, EntityBaseTable as mt, PermissionsWrapper as pe, TableTags as vt, EntityFilter as gt, EntityToggleModal as yt, EntityDeleteModal as _t, EntityTypes as ht, useHelpers as Ye, ConfigurationSchemaType as bt, ConfigurationSchemaSection as Fe, EntityBaseConfigCard as wt, SupportedEntityType as et, useErrors as kt, useValidators as Vt, EntityBaseFormType as ze, useGatewayFeatureSupported as
|
|
5
|
+
import { useAxios as Xe, useTableState as dt, useFetcher as ut, useDeleteUrlBuilder as ft, FetcherStatus as pt, EntityBaseTable as mt, PermissionsWrapper as pe, TableTags as vt, EntityFilter as gt, EntityToggleModal as yt, EntityDeleteModal as _t, EntityTypes as ht, useHelpers as Ye, ConfigurationSchemaType as bt, ConfigurationSchemaSection as Fe, EntityBaseConfigCard as wt, SupportedEntityType as et, useErrors as kt, useValidators as Vt, EntityBaseFormType as ze, useGatewayFeatureSupported as Ct, EntityBaseForm as St, EntityFormSection as He } from "@kong-ui-public/entities-shared";
|
|
6
6
|
const Et = { create: "New gateway service", debugger: "Start debugging", serverless_create: "Add a service", copy_id: "Copy ID", copy_json: "Copy JSON", edit: "Edit", clear: "Clear", view: "View details", delete: { title: "Delete a gateway service", menu_label: "Delete", related_entities: { plugins_only: "{pluginCount} associated {plugin} will be deleted along with this gateway service.", check_failed: "We couldn't verify whether this gateway service has routes or plugins attached. Check the box below to force delete it anyway.", plugin: "{count, plural, one {plugin} other {plugins}}", force_delete_checkbox: "Force delete", force_delete_help: "Check this box to force deletion of all routes and plugins on linked service." } } }, It = { placeholder: { konnect: "Filter by name", kongManager: "Filter by exact name or ID" } }, Ft = { title: "Gateway services", list: { toolbar_actions: { new_gateway_service: "New gateway service" }, table_headers: { name: "Name", control_plane: "Control plane", protocol: "Protocol", host: "Host", port: "Port", path: "Path", enabled: "Enabled", tags: "Tags", id: "ID", created_at: "Created at", updated_at: "Last modified" }, empty_state: { title: "Configure a new gateway service", description: "Gateway services are used to proxy traffic.", serverless_title: "Configure your first gateway service" } }, empty_state_v2: { create: "New gateway service", create_new: "Create new", import_spec: "Import via Open API spec", title: "Configure your first gateway service", group: "Services created in gateways within this group will automatically appear here.", description: "Gateway services represent backend APIs or microservices that receive traffic routed through the gateway.", learn_more: "Learn more" }, form: { buttons: { try_sample: "Try sample API" }, errors: { host: { empty: "Host cannot be empty", invalid: "Invalid host" }, port: { type: "Port must be a number", invalid: "Port must be between 0 and 65535" }, path: { prefix: "Path must begin with /", invalid: "Path should not include characters outside of the reserved list of RFC 3986" }, protocol: { empty: "Protocol cannot be empty", invalid: "Protocol - value must be one of http, https, grpc, grpcs, tcp, udp, tls, tls_passthrough, ws, wss" }, url: { invalid: "The URL must follow a valid format. Example: https://api.kong-air.com/flights" } }, sections: { general: { title: "General information", description: "Provide a name and tags to help identify and manage this service." }, keys: { title: "Service endpoint", description: "Define where this service should send requests.", checkedGroupLabel: "Choose how and where to send traffic", urlLabel: "Full URL", checkedGroupAltLabel: "Protocol, host, port and path", url: { label: "Full URL", description: "Define the service using a single, complete API URL for simple setup." }, protocol: { label: "Protocol, host, port, and path", description: "Manually specify each component of the API’s URL for advanced configurations." }, viewAdvancedFields: "View advanced fields" } }, fields: { upstream_url: { label: "Full URL", placeholder: "e.g. https://api.kong-air.com/flights", tooltip_for_konnect: "This is the URL of the API you will manage in Konnect.", tooltip_for_km: "This is the URL of the API you will manage in Kong Gateway." }, name: { label: "Name", placeholder: "Enter a unique name", tooltip: "The gateway service name." }, protocol: { label: "Protocol", tooltip: "The protocol used to communicate with the upstream.", options: { http: "http", https: "https", tcp: "tcp", tls: "tls", tls_passthrough: "tls_passthrough", grpc: "grpc", grpcs: "grpcs", ws: "ws", wss: "wss", udp: "udp" } }, host: { label: "Host", placeholder: "e.g. api.kong-air.com", tooltip: "The host of the upstream server. Note that the host value is case sensitive." }, path: { label: "Path", placeholder: "e.g. /sample", tooltip: "The path to be used in request to the upstream server." }, port: { label: "Port", tooltip: "The upstream server port." }, retries: { label: "Retries", tooltip: "The number of retries to execute upon failure to proxy." }, connect_timeout: { label: "Connection timeout", tooltip: "The timeout in milliseconds for establishing a connection to the upstream server." }, write_timeout: { label: "Write timeout", tooltip: "The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server." }, read_timeout: { label: "Read timeout", tooltip: "The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server." }, client_certificate: { label: "Client certificate", placeholder: "Enter a certificate ID", tooltip: "Certificate to be used as client certificate while TLS handshaking to the upstream server." }, tls_sans_dnsnames: { label: "TLS SANs - DNS names", placeholder: "Enter a DNS name", tooltip: "Additional DNS names that can be matched on the upstream server's TLS certificate.", add: "Add DNS name" }, tls_sans_uris: { label: "TLS SANs - URIs", placeholder: "Enter a URI", tooltip: "Additional URIs that can be matched on the upstream server's TLS certificate.", add: "Add URI" }, ca_certificates: { label: "CA certificates", placeholder: "Enter a comma separated list of CA certificate IDs", tooltip: "Array of {code1} object UUIDs that are used to build the trust store while verifying upstream server's TLS certificate. If set to {code2} when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted).", code1: "CA certificate", code2: "null" }, tls_verify_enabled: { label: "TLS verify", help: "If unchecked, use default system setting", tooltip: "Whether to enable verification of upstream server TLS certificate. If set to {code1}, then the Nginx default is respected.", code1: "null" }, tls_verify_option: { unset: { display: "Use default system setting" }, true: { label: "True", display: "On" }, false: { label: "False", display: "Off" } }, tags: { label: "Tags", tooltip: "An optional set of strings associated with the service for grouping and filtering.", placeholder: "Enter a list of tags separated by comma", help: "e.g. tag1, tag2, tag3", collapse: "Add tags" }, enabled: { label: "Enabled", tooltip: "Whether the service is active. If set to {false}, the proxy behavior will be as if any routes attached to it do not exist (404). Default: {true}.", false: "false", true: "true" } } } }, Pt = { general: "Gateway services could not be retrieved", delete: "The gateway service could not be deleted at this time.", copy: "Failed to copy to clipboard", urlErrorMessage: "Error: invalid URL" }, $t = { success: "Copied {val} to clipboard", success_brief: "Successfully copied to clipboard" }, Tt = { gateway_services: "gateway services" }, xt = {
|
|
7
7
|
actions: Et,
|
|
8
8
|
search: It,
|
|
@@ -12,10 +12,10 @@ const Et = { create: "New gateway service", debugger: "Start debugging", serverl
|
|
|
12
12
|
glossary: Tt
|
|
13
13
|
};
|
|
14
14
|
function Rt() {
|
|
15
|
-
const
|
|
15
|
+
const o = nt("en-us", xt);
|
|
16
16
|
return {
|
|
17
|
-
i18n:
|
|
18
|
-
i18nT: ct(
|
|
17
|
+
i18n: o,
|
|
18
|
+
i18nT: ct(o)
|
|
19
19
|
// Translation component <i18n-t>
|
|
20
20
|
};
|
|
21
21
|
}
|
|
@@ -37,12 +37,12 @@ function Ut() {
|
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
const At = /^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?)*(\.)?$/, Dt = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/, Bt = (
|
|
40
|
+
const At = /^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?)*(\.)?$/, Dt = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/, Bt = (o) => /^[0-9A-Fa-f:.]+$/.test(o) && o.includes(":");
|
|
41
41
|
function Mt() {
|
|
42
|
-
const { i18n: { t:
|
|
42
|
+
const { i18n: { t: o } } = oe.useI18n();
|
|
43
43
|
return {
|
|
44
44
|
validateHost: (m) => {
|
|
45
|
-
if (!m || m.trim() === "") return
|
|
45
|
+
if (!m || m.trim() === "") return o("gateway_services.form.errors.host.empty");
|
|
46
46
|
try {
|
|
47
47
|
if (Bt(m))
|
|
48
48
|
return new URL("/", `https://[${m}]`), "";
|
|
@@ -50,21 +50,21 @@ function Mt() {
|
|
|
50
50
|
return new URL("/", `https://${m}`), "";
|
|
51
51
|
} catch {
|
|
52
52
|
}
|
|
53
|
-
return
|
|
53
|
+
return o("gateway_services.form.errors.host.invalid");
|
|
54
54
|
},
|
|
55
|
-
validateProtocol: (m, R) => !m || m.trim() === "" ?
|
|
56
|
-
if (
|
|
57
|
-
}) === void 0 ?
|
|
58
|
-
validatePath: (m) => !m || m === "" ? "" : m.startsWith("/") ? /[^A-Za-z0-9\-._~:/?#[\]@!$&'()*+,;=%]/.test(m) ?
|
|
55
|
+
validateProtocol: (m, R) => !m || m.trim() === "" ? o("gateway_services.form.errors.protocol.empty") : (m = m.slice(0, -1), R.find((l) => {
|
|
56
|
+
if (l.value === m) return l;
|
|
57
|
+
}) === void 0 ? o("gateway_services.form.errors.protocol.invalid") : ""),
|
|
58
|
+
validatePath: (m) => !m || m === "" ? "" : m.startsWith("/") ? /[^A-Za-z0-9\-._~:/?#[\]@!$&'()*+,;=%]/.test(m) ? o("gateway_services.form.errors.path.invalid") : "" : o("gateway_services.form.errors.path.prefix"),
|
|
59
59
|
validatePort: (m) => {
|
|
60
60
|
if (m == null || m === "")
|
|
61
61
|
return "";
|
|
62
62
|
const R = typeof m == "string" ? parseInt(m, 10) : m;
|
|
63
|
-
return isNaN(R) ?
|
|
63
|
+
return isNaN(R) ? o("gateway_services.form.errors.port.type") : R < 0 || R > 65535 ? o("gateway_services.form.errors.port.invalid") : "";
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
const
|
|
67
|
+
const oe = {
|
|
68
68
|
useI18n: Rt,
|
|
69
69
|
usePortFromProtocol: Ut,
|
|
70
70
|
useUrlValidators: Mt
|
|
@@ -101,7 +101,7 @@ const le = {
|
|
|
101
101
|
config: {
|
|
102
102
|
type: Object,
|
|
103
103
|
required: !0,
|
|
104
|
-
validator: (
|
|
104
|
+
validator: (o) => !(!o || !["konnect", "kongManager"].includes(o?.app) || !o.createRoute || !o.getViewRoute || !o.getEditRoute || o.app === "kongManager" && !o.isExactMatch && !o.filterSchema)
|
|
105
105
|
},
|
|
106
106
|
// used to override the default identifier for the cache entry
|
|
107
107
|
cacheIdentifier: {
|
|
@@ -151,11 +151,16 @@ const le = {
|
|
|
151
151
|
canImportSpecs: {
|
|
152
152
|
type: Boolean,
|
|
153
153
|
default: !1
|
|
154
|
+
},
|
|
155
|
+
/** Feature flag KM-3028-service-force-delete: when enabled, checks for attached routes/plugins before deleting a Konnect gateway service and requires a force-delete confirmation if any are found */
|
|
156
|
+
enableForceDeleteConfirmation: {
|
|
157
|
+
type: Boolean,
|
|
158
|
+
default: !1
|
|
154
159
|
}
|
|
155
160
|
},
|
|
156
161
|
emits: ["error", "click:learn-more", "copy:success", "copy:error", "delete:success", "toggle:success", "click:import"],
|
|
157
|
-
setup(
|
|
158
|
-
const p = D, d =
|
|
162
|
+
setup(o, { emit: D }) {
|
|
163
|
+
const p = D, d = o, { i18n: { t: r, formatUnixTimeStamp: m } } = oe.useI18n(), R = Qe(), { axiosInstance: U } = Xe(d.config?.axiosRequestConfig), { hasRecords: l, handleStateChange: T } = dt(() => L.value), E = b(() => l.value && d.config.app === "konnect"), Z = b(() => d.config.app !== "kongManager" || !!d.config.disableSorting), le = {
|
|
159
164
|
// the Name column is non-hidable
|
|
160
165
|
name: { label: r("gateway_services.list.table_headers.name"), searchable: !0, sortable: !0, hidable: !1 },
|
|
161
166
|
...d.config.showControlPlaneColumn ? { control_plane: { label: r("gateway_services.list.table_headers.control_plane") } } : {},
|
|
@@ -171,7 +176,7 @@ const le = {
|
|
|
171
176
|
columnVisibility: {
|
|
172
177
|
created_at: !1
|
|
173
178
|
}
|
|
174
|
-
}, J =
|
|
179
|
+
}, J = le, ve = (i) => {
|
|
175
180
|
let v = `${d.config.apiBaseUrl}${i}`;
|
|
176
181
|
return d.config.app === "konnect" && (v = v.replace(/{controlPlaneId}/gi, d.config?.controlPlaneId || "")), v.replace(/\/{workspace}/gi, d.config?.workspace ? `/${d.config.workspace}` : "");
|
|
177
182
|
}, re = b(() => ve(se.list[d.config.app].all)), Te = b(() => d.config.app === "konnect" && d.config.workspace && L.value ? ve(se.list.konnect.search) : re.value), Q = b(() => d.config.apiBaseUrl.startsWith("/") ? new URL(`${window.location.origin}${re.value}`) : new URL(re.value)), L = I(""), X = b(() => {
|
|
@@ -181,7 +186,7 @@ const le = {
|
|
|
181
186
|
isExactMatch: i,
|
|
182
187
|
placeholder: r(`search.placeholder.${d.config.app}`)
|
|
183
188
|
};
|
|
184
|
-
const { name: v, enabled: w, protocol: k, host: H, port: u, path: De } =
|
|
189
|
+
const { name: v, enabled: w, protocol: k, host: H, port: u, path: De } = le;
|
|
185
190
|
return {
|
|
186
191
|
isExactMatch: i,
|
|
187
192
|
fields: { name: v, enabled: w, protocol: k, host: H, port: u, path: De },
|
|
@@ -197,9 +202,9 @@ const le = {
|
|
|
197
202
|
Y.value++;
|
|
198
203
|
}, h = I(null), Re = b(() => ({
|
|
199
204
|
ctaPath: d.config.createRoute,
|
|
200
|
-
ctaText:
|
|
205
|
+
ctaText: C.value ? d.isServerless ? r("actions.serverless_create") : r("actions.create") : void 0,
|
|
201
206
|
message: `${r("gateway_services.list.empty_state.description")}${d.config.additionMessageForEmptyState ? ` ${d.config.additionMessageForEmptyState}` : ""}`,
|
|
202
|
-
title:
|
|
207
|
+
title: C.value ? d.isServerless ? r("gateway_services.list.empty_state.serverless_title") : r("gateway_services.list.empty_state.title") : r("gateway_services.title")
|
|
203
208
|
})), ie = I(!1), A = I(null), ye = b(() => {
|
|
204
209
|
const i = {
|
|
205
210
|
action: "disable",
|
|
@@ -228,9 +233,9 @@ const le = {
|
|
|
228
233
|
} catch (k) {
|
|
229
234
|
p("error", k);
|
|
230
235
|
}
|
|
231
|
-
},
|
|
236
|
+
}, Ce = (i) => {
|
|
232
237
|
d.config.getControlPlaneRoute && R.push(d.config.getControlPlaneRoute(i));
|
|
233
|
-
},
|
|
238
|
+
}, Se = async (i, v) => {
|
|
234
239
|
const w = i.id;
|
|
235
240
|
if (!await v(w)) {
|
|
236
241
|
p("copy:error", {
|
|
@@ -272,7 +277,7 @@ const le = {
|
|
|
272
277
|
label: r("actions.debugger"),
|
|
273
278
|
to: d.config.getDebugRoute(i)
|
|
274
279
|
};
|
|
275
|
-
}, B = I(void 0), he = I(!1), be = I(!1), de = I(""), j = ft(d.config, re.value), ue = I(0), fe = I(0), q = I(!1), W = I(!1), Ee = b(() => W.value || ue.value > 0 || fe.value > 0), ae = b(() => W.value || ue.value > 0), Ae = b(() => {
|
|
280
|
+
}, B = I(void 0), he = I(!1), be = I(!1), de = I(""), j = ft(d.config, re.value), ue = I(0), fe = I(0), q = I(!1), W = I(!1), Ee = b(() => d.enableForceDeleteConfirmation && (W.value || ue.value > 0 || fe.value > 0)), ae = b(() => d.enableForceDeleteConfirmation && (W.value || ue.value > 0)), Ae = b(() => {
|
|
276
281
|
if (W.value)
|
|
277
282
|
return r("actions.delete.related_entities.check_failed");
|
|
278
283
|
const i = fe.value;
|
|
@@ -284,7 +289,7 @@ const le = {
|
|
|
284
289
|
const w = ve(i).replace(/{id}/gi, v), { data: k } = await U.get(w, { params: { size: Wt } });
|
|
285
290
|
return k?.total ?? k?.data?.length ?? 0;
|
|
286
291
|
}, we = async (i) => {
|
|
287
|
-
if (B.value = i, de.value = "", q.value = !1, ue.value = 0, fe.value = 0, W.value = !1, d.config.app === "konnect")
|
|
292
|
+
if (B.value = i, de.value = "", q.value = !1, ue.value = 0, fe.value = 0, W.value = !1, d.enableForceDeleteConfirmation && d.config.app === "konnect")
|
|
288
293
|
try {
|
|
289
294
|
const [v, w] = await Promise.all([
|
|
290
295
|
z(se.relatedEntities.konnect.routes, i.id),
|
|
@@ -324,14 +329,14 @@ const le = {
|
|
|
324
329
|
}
|
|
325
330
|
h.value = null;
|
|
326
331
|
});
|
|
327
|
-
const
|
|
332
|
+
const C = I(!1);
|
|
328
333
|
return at(async () => {
|
|
329
|
-
|
|
334
|
+
C.value = await d.canCreate();
|
|
330
335
|
}), (i, v) => {
|
|
331
336
|
const w = $("KButton"), k = $("KDropdownItem"), H = $("KDropdown"), u = $("KEmptyState"), De = $("KBadge"), We = $("KInputSwitch"), Ge = $("KClipboardProvider"), tt = $("KCheckbox");
|
|
332
337
|
return y(), V("div", Kt, [
|
|
333
338
|
n(t(mt), {
|
|
334
|
-
"cache-identifier":
|
|
339
|
+
"cache-identifier": o.cacheIdentifier,
|
|
335
340
|
"default-table-preferences": M,
|
|
336
341
|
"disable-sorting": Z.value,
|
|
337
342
|
"empty-state-options": Re.value,
|
|
@@ -357,7 +362,7 @@ const le = {
|
|
|
357
362
|
]),
|
|
358
363
|
"toolbar-button": c(() => [
|
|
359
364
|
(y(), N(st, {
|
|
360
|
-
disabled: !
|
|
365
|
+
disabled: !o.useActionOutside,
|
|
361
366
|
to: "#kong-ui-app-page-header-action-button"
|
|
362
367
|
}, [
|
|
363
368
|
P("div", Lt, [
|
|
@@ -373,14 +378,14 @@ const le = {
|
|
|
373
378
|
n(t(je), { decorative: "" })
|
|
374
379
|
]),
|
|
375
380
|
_: 1
|
|
376
|
-
})) :
|
|
377
|
-
n(t(pe), { "auth-function":
|
|
381
|
+
})) : S("", !0),
|
|
382
|
+
n(t(pe), { "auth-function": o.canCreate }, {
|
|
378
383
|
default: c(() => [
|
|
379
384
|
n(w, {
|
|
380
385
|
appearance: "primary",
|
|
381
386
|
"data-testid": "toolbar-add-gateway-service",
|
|
382
|
-
size:
|
|
383
|
-
to:
|
|
387
|
+
size: o.useActionOutside ? "medium" : "large",
|
|
388
|
+
to: o.config.createRoute
|
|
384
389
|
}, {
|
|
385
390
|
default: c(() => [
|
|
386
391
|
n(t(Pe)),
|
|
@@ -402,7 +407,7 @@ const le = {
|
|
|
402
407
|
key: 0,
|
|
403
408
|
tooltip: g.x_meta.cluster_id,
|
|
404
409
|
"truncation-tooltip": "",
|
|
405
|
-
onClick: Be((G) =>
|
|
410
|
+
onClick: Be((G) => Ce(g.x_meta.cluster_id), ["stop"])
|
|
406
411
|
}, {
|
|
407
412
|
default: c(() => [
|
|
408
413
|
F(_(g.x_meta.cluster_id), 1)
|
|
@@ -412,7 +417,7 @@ const le = {
|
|
|
412
417
|
]),
|
|
413
418
|
enabled: c(({ row: g }) => [
|
|
414
419
|
n(t(pe), {
|
|
415
|
-
"auth-function": () =>
|
|
420
|
+
"auth-function": () => o.canEdit(g),
|
|
416
421
|
"force-show": ""
|
|
417
422
|
}, {
|
|
418
423
|
default: c(({ isAllowed: G }) => [
|
|
@@ -446,7 +451,7 @@ const le = {
|
|
|
446
451
|
default: c(({ copyToClipboard: G }) => [
|
|
447
452
|
n(k, {
|
|
448
453
|
"data-testid": "action-entity-copy-id",
|
|
449
|
-
onClick: (Ie) =>
|
|
454
|
+
onClick: (Ie) => Se(g, G)
|
|
450
455
|
}, {
|
|
451
456
|
default: c(() => [
|
|
452
457
|
F(_(t(r)("actions.copy_id")), 1)
|
|
@@ -471,7 +476,7 @@ const le = {
|
|
|
471
476
|
_: 2
|
|
472
477
|
}, 1024),
|
|
473
478
|
n(t(pe), {
|
|
474
|
-
"auth-function": () =>
|
|
479
|
+
"auth-function": () => o.canRetrieve(g)
|
|
475
480
|
}, {
|
|
476
481
|
default: c(() => [
|
|
477
482
|
n(k, {
|
|
@@ -483,19 +488,19 @@ const le = {
|
|
|
483
488
|
_: 2
|
|
484
489
|
}, 1032, ["auth-function"]),
|
|
485
490
|
n(t(pe), {
|
|
486
|
-
"auth-function": () =>
|
|
491
|
+
"auth-function": () => o.canDebug(g)
|
|
487
492
|
}, {
|
|
488
493
|
default: c(() => [
|
|
489
|
-
|
|
494
|
+
o.config.getDebugRoute ? (y(), N(k, {
|
|
490
495
|
key: 0,
|
|
491
496
|
"data-testid": "action-entity-debug",
|
|
492
497
|
item: O(g.id)
|
|
493
|
-
}, null, 8, ["item"])) :
|
|
498
|
+
}, null, 8, ["item"])) : S("", !0)
|
|
494
499
|
]),
|
|
495
500
|
_: 2
|
|
496
501
|
}, 1032, ["auth-function"]),
|
|
497
502
|
n(t(pe), {
|
|
498
|
-
"auth-function": () =>
|
|
503
|
+
"auth-function": () => o.canEdit(g)
|
|
499
504
|
}, {
|
|
500
505
|
default: c(() => [
|
|
501
506
|
n(k, {
|
|
@@ -506,7 +511,7 @@ const le = {
|
|
|
506
511
|
_: 2
|
|
507
512
|
}, 1032, ["auth-function"]),
|
|
508
513
|
n(t(pe), {
|
|
509
|
-
"auth-function": () =>
|
|
514
|
+
"auth-function": () => o.canDelete(g)
|
|
510
515
|
}, {
|
|
511
516
|
default: c(() => [
|
|
512
517
|
n(k, {
|
|
@@ -526,7 +531,7 @@ const le = {
|
|
|
526
531
|
]),
|
|
527
532
|
_: 2
|
|
528
533
|
}, [
|
|
529
|
-
!L.value &&
|
|
534
|
+
!L.value && o.config.app === "konnect" ? {
|
|
530
535
|
name: "empty-state",
|
|
531
536
|
fn: c(() => [
|
|
532
537
|
n(u, {
|
|
@@ -539,8 +544,8 @@ const le = {
|
|
|
539
544
|
n(t(rt), { decorative: "" })
|
|
540
545
|
]),
|
|
541
546
|
action: c(() => [
|
|
542
|
-
|
|
543
|
-
|
|
547
|
+
C.value ? (y(), V(Ne, { key: 0 }, [
|
|
548
|
+
o.canImportSpecs ? (y(), N(H, {
|
|
544
549
|
key: 0,
|
|
545
550
|
"data-testid": "entity-create-dropdown",
|
|
546
551
|
"show-caret": "",
|
|
@@ -579,7 +584,7 @@ const le = {
|
|
|
579
584
|
]),
|
|
580
585
|
_: 1
|
|
581
586
|
}))
|
|
582
|
-
], 64)) :
|
|
587
|
+
], 64)) : S("", !0),
|
|
583
588
|
n(w, {
|
|
584
589
|
appearance: "secondary",
|
|
585
590
|
"data-testid": "entity-learn-more-button",
|
|
@@ -594,7 +599,7 @@ const le = {
|
|
|
594
599
|
]),
|
|
595
600
|
_: 2
|
|
596
601
|
}, [
|
|
597
|
-
|
|
602
|
+
o.config?.isControlPlaneGroup ? {
|
|
598
603
|
name: "default",
|
|
599
604
|
fn: c(() => [
|
|
600
605
|
F(_(t(r)("gateway_services.empty_state_v2.group")), 1)
|
|
@@ -630,7 +635,7 @@ const le = {
|
|
|
630
635
|
Ee.value ? {
|
|
631
636
|
name: "extra",
|
|
632
637
|
fn: c(() => [
|
|
633
|
-
W.value || !ae.value ? (y(), V("p", qt, _(Ae.value), 1)) :
|
|
638
|
+
W.value || !ae.value ? (y(), V("p", qt, _(Ae.value), 1)) : S("", !0),
|
|
634
639
|
ae.value ? (y(), N(tt, {
|
|
635
640
|
key: 1,
|
|
636
641
|
modelValue: q.value,
|
|
@@ -638,7 +643,7 @@ const le = {
|
|
|
638
643
|
"data-testid": "gateway-service-delete-force-checkbox",
|
|
639
644
|
description: t(r)("actions.delete.related_entities.force_delete_help"),
|
|
640
645
|
label: t(r)("actions.delete.related_entities.force_delete_checkbox")
|
|
641
|
-
}, null, 8, ["modelValue", "description", "label"])) :
|
|
646
|
+
}, null, 8, ["modelValue", "description", "label"])) : S("", !0)
|
|
642
647
|
]),
|
|
643
648
|
key: "0"
|
|
644
649
|
} : void 0
|
|
@@ -646,19 +651,19 @@ const le = {
|
|
|
646
651
|
]);
|
|
647
652
|
};
|
|
648
653
|
}
|
|
649
|
-
}), qe = (
|
|
650
|
-
const p =
|
|
654
|
+
}), qe = (o, D) => {
|
|
655
|
+
const p = o.__vccOpts || o;
|
|
651
656
|
for (const [d, r] of D)
|
|
652
657
|
p[d] = r;
|
|
653
658
|
return p;
|
|
654
|
-
},
|
|
659
|
+
}, Sa = /* @__PURE__ */ qe(Gt, [["__scopeId", "data-v-58576265"]]), Ot = { class: "kong-ui-gateway-service-entity-config-card" }, Ea = /* @__PURE__ */ $e({
|
|
655
660
|
__name: "GatewayServiceConfigCard",
|
|
656
661
|
props: {
|
|
657
662
|
/** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
|
|
658
663
|
config: {
|
|
659
664
|
type: Object,
|
|
660
665
|
required: !0,
|
|
661
|
-
validator: (
|
|
666
|
+
validator: (o) => !(!o || !["konnect", "kongManager"].includes(o?.app) || o.app === "konnect" && !o.controlPlaneId || o.app === "kongManager" && typeof o.workspace != "string" || !o.entityId)
|
|
662
667
|
},
|
|
663
668
|
/**
|
|
664
669
|
* External link for documentation that determines visibility of Documentation button
|
|
@@ -677,8 +682,8 @@ const le = {
|
|
|
677
682
|
}
|
|
678
683
|
},
|
|
679
684
|
emits: ["loading", "fetch:error", "fetch:success"],
|
|
680
|
-
setup(
|
|
681
|
-
const D =
|
|
685
|
+
setup(o) {
|
|
686
|
+
const D = o, { i18n: { t: p }, i18nT: d } = oe.useI18n(), r = b(() => se.form[D.config.app].edit), { getPropValue: m } = Ye(), R = (l, T) => m(l, T) === !0 ? p("gateway_services.form.fields.tls_verify_option.true.display") : p("gateway_services.form.fields.tls_verify_option.false.display"), U = I({
|
|
682
687
|
id: {},
|
|
683
688
|
name: {
|
|
684
689
|
tooltip: p("gateway_services.form.fields.name.tooltip")
|
|
@@ -738,17 +743,17 @@ const le = {
|
|
|
738
743
|
hidden: !0
|
|
739
744
|
}
|
|
740
745
|
});
|
|
741
|
-
return (
|
|
746
|
+
return (l, T) => (y(), V("div", Ot, [
|
|
742
747
|
n(t(wt), {
|
|
743
|
-
config:
|
|
744
|
-
"config-card-doc":
|
|
748
|
+
config: o.config,
|
|
749
|
+
"config-card-doc": o.configCardDoc,
|
|
745
750
|
"config-schema": U.value,
|
|
746
751
|
"entity-type": t(et).GatewayService,
|
|
747
752
|
"fetch-url": r.value,
|
|
748
|
-
"hide-title":
|
|
749
|
-
"onFetch:error": T[0] || (T[0] = (E) =>
|
|
750
|
-
"onFetch:success": T[1] || (T[1] = (E) =>
|
|
751
|
-
onLoading: T[2] || (T[2] = (E) =>
|
|
753
|
+
"hide-title": o.hideTitle,
|
|
754
|
+
"onFetch:error": T[0] || (T[0] = (E) => l.$emit("fetch:error", E)),
|
|
755
|
+
"onFetch:success": T[1] || (T[1] = (E) => l.$emit("fetch:success", E)),
|
|
756
|
+
onLoading: T[2] || (T[2] = (E) => l.$emit("loading", E))
|
|
752
757
|
}, {
|
|
753
758
|
"enabled-label-tooltip": c(() => [
|
|
754
759
|
n(t(d), {
|
|
@@ -821,43 +826,43 @@ const le = {
|
|
|
821
826
|
readonly: { type: Boolean }
|
|
822
827
|
},
|
|
823
828
|
emits: ["update:modelValue", "input"],
|
|
824
|
-
setup(
|
|
825
|
-
const p =
|
|
829
|
+
setup(o, { emit: D }) {
|
|
830
|
+
const p = o, d = D, r = () => {
|
|
826
831
|
d("update:modelValue", [...p.modelValue, ""]);
|
|
827
832
|
}, m = (U) => {
|
|
828
|
-
const
|
|
829
|
-
|
|
830
|
-
}, R = (U,
|
|
833
|
+
const l = [...p.modelValue];
|
|
834
|
+
l.splice(U, 1), d("update:modelValue", l);
|
|
835
|
+
}, R = (U, l) => {
|
|
831
836
|
const T = [...p.modelValue];
|
|
832
|
-
T[U] =
|
|
837
|
+
T[U] = l, d("update:modelValue", T), d("input");
|
|
833
838
|
};
|
|
834
|
-
return (U,
|
|
839
|
+
return (U, l) => {
|
|
835
840
|
const T = $("KLabel"), E = $("KInput"), Z = $("KButton");
|
|
836
841
|
return y(), V("div", zt, [
|
|
837
|
-
n(T, { info:
|
|
842
|
+
n(T, { info: o.tooltip }, {
|
|
838
843
|
default: c(() => [
|
|
839
|
-
F(_(
|
|
844
|
+
F(_(o.label), 1)
|
|
840
845
|
]),
|
|
841
846
|
_: 1
|
|
842
847
|
}, 8, ["info"]),
|
|
843
|
-
(y(!0), V(Ne, null, Je(
|
|
848
|
+
(y(!0), V(Ne, null, Je(o.modelValue, (le, M) => (y(), V("div", {
|
|
844
849
|
key: M,
|
|
845
850
|
class: "tls-sans-field-input"
|
|
846
851
|
}, [
|
|
847
852
|
n(E, {
|
|
848
853
|
autocomplete: "off",
|
|
849
|
-
"data-testid": `${
|
|
850
|
-
error:
|
|
851
|
-
"model-value":
|
|
852
|
-
placeholder:
|
|
853
|
-
readonly:
|
|
854
|
+
"data-testid": `${o.testIdPrefix}-input-${M}`,
|
|
855
|
+
error: o.error,
|
|
856
|
+
"model-value": o.modelValue[M],
|
|
857
|
+
placeholder: o.placeholder,
|
|
858
|
+
readonly: o.readonly,
|
|
854
859
|
type: "text",
|
|
855
860
|
"onUpdate:modelValue": (J) => R(M, J.trim())
|
|
856
861
|
}, null, 8, ["data-testid", "error", "model-value", "placeholder", "readonly", "onUpdate:modelValue"]),
|
|
857
|
-
|
|
862
|
+
o.readonly ? S("", !0) : (y(), V("div", Ht, [
|
|
858
863
|
n(Z, {
|
|
859
864
|
appearance: "tertiary",
|
|
860
|
-
"data-testid": `remove-${
|
|
865
|
+
"data-testid": `remove-${o.testIdPrefix}`,
|
|
861
866
|
icon: "",
|
|
862
867
|
onClick: (J) => m(M)
|
|
863
868
|
}, {
|
|
@@ -870,8 +875,8 @@ const le = {
|
|
|
870
875
|
}, 8, ["data-testid", "onClick"]),
|
|
871
876
|
n(Z, {
|
|
872
877
|
appearance: "tertiary",
|
|
873
|
-
"data-testid": `add-${
|
|
874
|
-
disabled: M !==
|
|
878
|
+
"data-testid": `add-${o.testIdPrefix}`,
|
|
879
|
+
disabled: M !== o.modelValue.length - 1,
|
|
875
880
|
icon: "",
|
|
876
881
|
onClick: r
|
|
877
882
|
}, {
|
|
@@ -882,18 +887,18 @@ const le = {
|
|
|
882
887
|
}, 8, ["data-testid", "disabled"])
|
|
883
888
|
]))
|
|
884
889
|
]))), 128)),
|
|
885
|
-
|
|
890
|
+
o.modelValue.length === 0 && !o.readonly ? (y(), V("div", Zt, [
|
|
886
891
|
n(Z, {
|
|
887
|
-
"data-testid": `add-${
|
|
892
|
+
"data-testid": `add-${o.testIdPrefix}`,
|
|
888
893
|
onClick: r
|
|
889
894
|
}, {
|
|
890
895
|
default: c(() => [
|
|
891
896
|
n(t(Pe)),
|
|
892
|
-
F(" " + _(
|
|
897
|
+
F(" " + _(o.addButtonText), 1)
|
|
893
898
|
]),
|
|
894
899
|
_: 1
|
|
895
900
|
}, 8, ["data-testid"])
|
|
896
|
-
])) :
|
|
901
|
+
])) : S("", !0)
|
|
897
902
|
]);
|
|
898
903
|
};
|
|
899
904
|
}
|
|
@@ -909,7 +914,7 @@ const le = {
|
|
|
909
914
|
}, aa = { key: 0 }, sa = {
|
|
910
915
|
key: 0,
|
|
911
916
|
class: "gateway-service-form-advanced-fields"
|
|
912
|
-
},
|
|
917
|
+
}, oa = { class: "gateway-service-form-margin-bottom" }, la = { class: "gateway-service-form-margin-bottom" }, ra = { class: "gateway-service-form-margin-bottom" }, ia = { class: "gateway-service-form-margin-bottom" }, na = {
|
|
913
918
|
key: 0,
|
|
914
919
|
class: "gateway-service-form-margin-bottom"
|
|
915
920
|
}, ca = {
|
|
@@ -931,7 +936,7 @@ const le = {
|
|
|
931
936
|
config: {
|
|
932
937
|
type: Object,
|
|
933
938
|
required: !0,
|
|
934
|
-
validator: (
|
|
939
|
+
validator: (o) => !(!o || !["konnect", "kongManager"].includes(o?.app) || o.app === "konnect" && !o.controlPlaneId || o.app === "kongManager" && typeof o.workspace != "string" || !o.cancelRoute)
|
|
935
940
|
},
|
|
936
941
|
/** If a valid Gateway Service ID is provided, it will put the form in Edit mode instead of Create */
|
|
937
942
|
gatewayServiceId: {
|
|
@@ -959,8 +964,8 @@ const le = {
|
|
|
959
964
|
}
|
|
960
965
|
},
|
|
961
966
|
emits: ["update", "error", "url-valid:success", "url-valid:error", "loading", "model-updated", "try-sample-api"],
|
|
962
|
-
setup(
|
|
963
|
-
const d = p, r =
|
|
967
|
+
setup(o, { expose: D, emit: p }) {
|
|
968
|
+
const d = p, r = o, m = I(!0), R = Qe(), { i18nT: U, i18n: { t: l } } = oe.useI18n(), { getErrorFieldsFromError: T } = kt(), { axiosInstance: E } = Xe(r.config?.axiosRequestConfig), Z = Vt(), { validateHost: le, validatePath: M, validatePort: J, validateProtocol: ve } = oe.useUrlValidators(), { objectsAreEqual: re } = Ye(), Te = b(() => se.form[r.config.app].edit), Q = b(() => r.gatewayServiceId ? ze.Edit : ze.Create), L = I(!1), X = b(() => !!r.gatewayServiceId), x = I(X.value ? "protocol" : "url"), ge = oe.usePortFromProtocol(), Y = I(""), xe = b(() => !!Y.value || !!te("name")), e = Oe({
|
|
964
969
|
fields: {
|
|
965
970
|
name: "",
|
|
966
971
|
protocol: "http",
|
|
@@ -1018,7 +1023,7 @@ const le = {
|
|
|
1018
1023
|
tls_verify_value: !1,
|
|
1019
1024
|
tags: "",
|
|
1020
1025
|
enabled: !0
|
|
1021
|
-
}), Re = r.config.app === "konnect" ||
|
|
1026
|
+
}), Re = r.config.app === "konnect" || Ct({
|
|
1022
1027
|
gatewayInfo: r.config.gatewayInfo,
|
|
1023
1028
|
// 'ws' and 'wss' are not valid values for the protocol field in Gateway Community Edition or before Gateway Enterprise Edition 3.0
|
|
1024
1029
|
supportedRange: {
|
|
@@ -1026,54 +1031,54 @@ const le = {
|
|
|
1026
1031
|
}
|
|
1027
1032
|
}), ie = [
|
|
1028
1033
|
{
|
|
1029
|
-
label:
|
|
1034
|
+
label: l("gateway_services.form.fields.protocol.options.http"),
|
|
1030
1035
|
value: "http",
|
|
1031
1036
|
group: "http"
|
|
1032
1037
|
},
|
|
1033
1038
|
{
|
|
1034
|
-
label:
|
|
1039
|
+
label: l("gateway_services.form.fields.protocol.options.https"),
|
|
1035
1040
|
value: "https",
|
|
1036
1041
|
group: "http"
|
|
1037
1042
|
},
|
|
1038
1043
|
{
|
|
1039
|
-
label:
|
|
1044
|
+
label: l("gateway_services.form.fields.protocol.options.tcp"),
|
|
1040
1045
|
value: "tcp",
|
|
1041
1046
|
group: "tcp"
|
|
1042
1047
|
},
|
|
1043
1048
|
{
|
|
1044
|
-
label:
|
|
1049
|
+
label: l("gateway_services.form.fields.protocol.options.tls"),
|
|
1045
1050
|
value: "tls",
|
|
1046
1051
|
group: "tcp"
|
|
1047
1052
|
},
|
|
1048
1053
|
{
|
|
1049
|
-
label:
|
|
1054
|
+
label: l("gateway_services.form.fields.protocol.options.tls_passthrough"),
|
|
1050
1055
|
value: "tls_passthrough",
|
|
1051
1056
|
group: "tcp"
|
|
1052
1057
|
},
|
|
1053
1058
|
{
|
|
1054
|
-
label:
|
|
1059
|
+
label: l("gateway_services.form.fields.protocol.options.grpc"),
|
|
1055
1060
|
value: "grpc",
|
|
1056
1061
|
group: "grpc"
|
|
1057
1062
|
},
|
|
1058
1063
|
{
|
|
1059
|
-
label:
|
|
1064
|
+
label: l("gateway_services.form.fields.protocol.options.grpcs"),
|
|
1060
1065
|
value: "grpcs",
|
|
1061
1066
|
group: "grpc"
|
|
1062
1067
|
},
|
|
1063
1068
|
...Re ? [
|
|
1064
1069
|
{
|
|
1065
|
-
label:
|
|
1070
|
+
label: l("gateway_services.form.fields.protocol.options.ws"),
|
|
1066
1071
|
value: "ws",
|
|
1067
1072
|
group: "websocket"
|
|
1068
1073
|
},
|
|
1069
1074
|
{
|
|
1070
|
-
label:
|
|
1075
|
+
label: l("gateway_services.form.fields.protocol.options.wss"),
|
|
1071
1076
|
value: "wss",
|
|
1072
1077
|
group: "websocket"
|
|
1073
1078
|
}
|
|
1074
1079
|
] : [],
|
|
1075
1080
|
{
|
|
1076
|
-
label:
|
|
1081
|
+
label: l("gateway_services.form.fields.protocol.options.udp"),
|
|
1077
1082
|
value: "udp",
|
|
1078
1083
|
group: "udp"
|
|
1079
1084
|
}
|
|
@@ -1086,7 +1091,7 @@ const le = {
|
|
|
1086
1091
|
}, e.fields.ca_certificates = h.ca_certificates, e.fields.tls_verify_enabled = h.tls_verify_enabled, e.fields.tls_verify_value = h.tls_verify_value, e.fields.enabled = h.enabled;
|
|
1087
1092
|
}, Ve = () => {
|
|
1088
1093
|
m.value = !0, O(), e.errorMessages = [], _e();
|
|
1089
|
-
},
|
|
1094
|
+
}, Ce = () => {
|
|
1090
1095
|
switch (_e(), e.fields.name = `${K.name}-${(/* @__PURE__ */ new Date()).toISOString().replace(/\D/g, "").slice(0, 17)}`, x.value) {
|
|
1091
1096
|
case "url":
|
|
1092
1097
|
e.fields.url = `${K.protocol}://${K.host}${K.path}`;
|
|
@@ -1097,24 +1102,24 @@ const le = {
|
|
|
1097
1102
|
default:
|
|
1098
1103
|
e.fields.url = `${K.protocol}://${K.host}${K.path}`;
|
|
1099
1104
|
}
|
|
1100
|
-
},
|
|
1105
|
+
}, Se = () => {
|
|
1101
1106
|
if (O(), e.fields.url.length)
|
|
1102
1107
|
try {
|
|
1103
1108
|
const s = new URL(e.fields.url), a = ve(s.protocol, ie);
|
|
1104
1109
|
if (a) throw new Error(a);
|
|
1105
1110
|
e.fields.protocol = s.protocol.slice(0, -1);
|
|
1106
|
-
const f =
|
|
1111
|
+
const f = le(s.hostname);
|
|
1107
1112
|
if (f) throw new Error(f);
|
|
1108
1113
|
e.fields.host = s.hostname;
|
|
1109
|
-
const
|
|
1110
|
-
if (
|
|
1114
|
+
const C = M(s.pathname);
|
|
1115
|
+
if (C) throw new Error(C);
|
|
1111
1116
|
e.fields.path = s.pathname;
|
|
1112
1117
|
const i = J(s.port);
|
|
1113
1118
|
if (i) throw new Error(i);
|
|
1114
1119
|
const v = Number(s.port);
|
|
1115
1120
|
L.value = !!v, e.fields.port = v || ge.getPortFromProtocol(e.fields.protocol), d("url-valid:success");
|
|
1116
1121
|
} catch {
|
|
1117
|
-
d("url-valid:error",
|
|
1122
|
+
d("url-valid:error", l("gateway_services.form.errors.url.invalid")), e.formFieldErrors.url = l("gateway_services.form.errors.url.invalid");
|
|
1118
1123
|
}
|
|
1119
1124
|
}, ne = (s) => {
|
|
1120
1125
|
O(s);
|
|
@@ -1124,12 +1129,12 @@ const le = {
|
|
|
1124
1129
|
return a[s] ? a[s] : "";
|
|
1125
1130
|
}, ce = (s) => {
|
|
1126
1131
|
O(s ?? void 0);
|
|
1127
|
-
const a =
|
|
1132
|
+
const a = le(e.fields.host);
|
|
1128
1133
|
a && (e.formFieldErrors.host = a);
|
|
1129
1134
|
const f = M(e.fields.path);
|
|
1130
1135
|
f && (e.formFieldErrors.path = f);
|
|
1131
|
-
const
|
|
1132
|
-
|
|
1136
|
+
const C = J(e.fields.port);
|
|
1137
|
+
C && (e.formFieldErrors.port = C), B.value ? d("url-valid:success") : d("url-valid:error", e.errorMessages.join(",") || l("gateway_services.form.errors.url.invalid"));
|
|
1133
1138
|
}, O = (s) => {
|
|
1134
1139
|
if (s)
|
|
1135
1140
|
e.formFieldErrors[s] = "";
|
|
@@ -1143,7 +1148,7 @@ const le = {
|
|
|
1143
1148
|
return !1;
|
|
1144
1149
|
return !0;
|
|
1145
1150
|
}), he = () => {
|
|
1146
|
-
e.fields.url && x.value === "url" ?
|
|
1151
|
+
e.fields.url && x.value === "url" ? Se() : ce();
|
|
1147
1152
|
}, be = () => `new-service-${(/* @__PURE__ */ new Date()).toISOString().replace(/\D/g, "").slice(0, 17)}`, de = b(() => !["tcp", "tls", "tls_passthrough", "grpc", "grpcs", "udp"].includes(e.fields.protocol)), j = b(() => {
|
|
1148
1153
|
if (x.value === "url")
|
|
1149
1154
|
return !0;
|
|
@@ -1219,11 +1224,11 @@ const le = {
|
|
|
1219
1224
|
return a;
|
|
1220
1225
|
} catch (s) {
|
|
1221
1226
|
const { fields: a, messages: f } = T(s);
|
|
1222
|
-
e.errorMessages = f, a.length && a.forEach((
|
|
1223
|
-
const i =
|
|
1224
|
-
i === "client_certificate.id" ? e.formFieldErrors.client_certificate =
|
|
1227
|
+
e.errorMessages = f, a.length && a.forEach((C) => {
|
|
1228
|
+
const i = C.field;
|
|
1229
|
+
i === "client_certificate.id" ? e.formFieldErrors.client_certificate = C.message : i.startsWith("tls_sans.dnsnames") ? e.formFieldErrors.tls_sans_dnsnames = C.message : i.startsWith("tls_sans.uris") ? e.formFieldErrors.tls_sans_uris = C.message : i.startsWith("ca_certificates") ? e.formFieldErrors.ca_certificates = C.message : Object.keys(e.formFieldErrors).includes(i) && (e.formFieldErrors = {
|
|
1225
1230
|
...e.formFieldErrors,
|
|
1226
|
-
[i]:
|
|
1231
|
+
[i]: C.message
|
|
1227
1232
|
});
|
|
1228
1233
|
}), d("error", s);
|
|
1229
1234
|
} finally {
|
|
@@ -1234,7 +1239,7 @@ const le = {
|
|
|
1234
1239
|
Object.assign(e.fields, h);
|
|
1235
1240
|
}), Le(e.fields, () => {
|
|
1236
1241
|
d("model-updated", z.value);
|
|
1237
|
-
}),
|
|
1242
|
+
}), ot(() => {
|
|
1238
1243
|
d("model-updated", z.value), X.value || (e.fields.name = be());
|
|
1239
1244
|
}), D({
|
|
1240
1245
|
validateUrl: he,
|
|
@@ -1243,12 +1248,12 @@ const le = {
|
|
|
1243
1248
|
canSubmit: q,
|
|
1244
1249
|
initForm: W
|
|
1245
1250
|
}), (s, a) => {
|
|
1246
|
-
const f = $("KRadio"),
|
|
1251
|
+
const f = $("KRadio"), C = $("KButton"), i = $("KInput"), v = $("KSelect"), w = $("KCheckbox"), k = $("KCollapse"), H = $("KAlert");
|
|
1247
1252
|
return y(), V("div", Qt, [
|
|
1248
|
-
n(t(
|
|
1253
|
+
n(t(St), {
|
|
1249
1254
|
"can-submit": q.value,
|
|
1250
|
-
config:
|
|
1251
|
-
"edit-id":
|
|
1255
|
+
config: o.config,
|
|
1256
|
+
"edit-id": o.gatewayServiceId,
|
|
1252
1257
|
"entity-type": t(et).GatewayService,
|
|
1253
1258
|
"fetch-url": Te.value,
|
|
1254
1259
|
"form-fields": z.value,
|
|
@@ -1260,7 +1265,7 @@ const le = {
|
|
|
1260
1265
|
onSubmit: we
|
|
1261
1266
|
}, {
|
|
1262
1267
|
"form-actions": c(() => [
|
|
1263
|
-
|
|
1268
|
+
lt(s.$slots, "form-actions", {
|
|
1264
1269
|
canSubmit: q.value,
|
|
1265
1270
|
cancel: Ee,
|
|
1266
1271
|
submit: we
|
|
@@ -1268,12 +1273,12 @@ const le = {
|
|
|
1268
1273
|
]),
|
|
1269
1274
|
default: c(() => [
|
|
1270
1275
|
n(t(He), {
|
|
1271
|
-
description: t(
|
|
1272
|
-
"hide-info-header":
|
|
1273
|
-
title: t(
|
|
1276
|
+
description: t(l)("gateway_services.form.sections.keys.description"),
|
|
1277
|
+
"hide-info-header": o.hideSectionsInfo,
|
|
1278
|
+
title: t(l)("gateway_services.form.sections.keys.title")
|
|
1274
1279
|
}, {
|
|
1275
1280
|
default: c(() => [
|
|
1276
|
-
X.value ?
|
|
1281
|
+
X.value ? S("", !0) : (y(), V("div", Xt, [
|
|
1277
1282
|
P("div", Yt, [
|
|
1278
1283
|
n(f, {
|
|
1279
1284
|
modelValue: x.value,
|
|
@@ -1281,8 +1286,8 @@ const le = {
|
|
|
1281
1286
|
card: "",
|
|
1282
1287
|
"card-orientation": "horizontal",
|
|
1283
1288
|
"data-testid": "gateway-service-url-radio",
|
|
1284
|
-
description: t(
|
|
1285
|
-
label: t(
|
|
1289
|
+
description: t(l)("gateway_services.form.sections.keys.url.description"),
|
|
1290
|
+
label: t(l)("gateway_services.form.sections.keys.url.label"),
|
|
1286
1291
|
"selected-value": A.url,
|
|
1287
1292
|
onChange: Ve
|
|
1288
1293
|
}, null, 8, ["modelValue", "description", "label", "selected-value"]),
|
|
@@ -1293,8 +1298,8 @@ const le = {
|
|
|
1293
1298
|
"card-orientation": "horizontal",
|
|
1294
1299
|
"checked-group": "protocol",
|
|
1295
1300
|
"data-testid": "gateway-service-protocol-radio",
|
|
1296
|
-
description: t(
|
|
1297
|
-
label: t(
|
|
1301
|
+
description: t(l)("gateway_services.form.sections.keys.protocol.description"),
|
|
1302
|
+
label: t(l)("gateway_services.form.sections.keys.protocol.label"),
|
|
1298
1303
|
"selected-value": A.protocol,
|
|
1299
1304
|
onChange: Ve
|
|
1300
1305
|
}, null, 8, ["modelValue", "description", "label", "selected-value"])
|
|
@@ -1310,27 +1315,27 @@ const le = {
|
|
|
1310
1315
|
"data-testid": "gateway-service-url-input",
|
|
1311
1316
|
error: Ue.value,
|
|
1312
1317
|
"error-message": te("url"),
|
|
1313
|
-
label: t(
|
|
1318
|
+
label: t(l)("gateway_services.form.fields.upstream_url.label"),
|
|
1314
1319
|
"label-attributes": {
|
|
1315
|
-
info:
|
|
1320
|
+
info: o.config.app === "konnect" ? t(l)("gateway_services.form.fields.upstream_url.tooltip_for_konnect") : t(l)("gateway_services.form.fields.upstream_url.tooltip_for_km"),
|
|
1316
1321
|
tooltipAttributes: { maxWidth: "400" }
|
|
1317
1322
|
},
|
|
1318
1323
|
name: "url",
|
|
1319
|
-
placeholder: t(
|
|
1324
|
+
placeholder: t(l)("gateway_services.form.fields.upstream_url.placeholder"),
|
|
1320
1325
|
required: "",
|
|
1321
|
-
onInput:
|
|
1326
|
+
onInput: Se
|
|
1322
1327
|
}, ke({ _: 2 }, [
|
|
1323
|
-
|
|
1328
|
+
o.hideTrySampleApiButton ? void 0 : {
|
|
1324
1329
|
name: "after",
|
|
1325
1330
|
fn: c(() => [
|
|
1326
|
-
n(
|
|
1331
|
+
n(C, {
|
|
1327
1332
|
appearance: "tertiary",
|
|
1328
1333
|
"data-testid": "try-sample-api",
|
|
1329
1334
|
size: "small",
|
|
1330
|
-
onClick:
|
|
1335
|
+
onClick: Ce
|
|
1331
1336
|
}, {
|
|
1332
1337
|
default: c(() => [
|
|
1333
|
-
F(_(t(
|
|
1338
|
+
F(_(t(l)("gateway_services.form.buttons.try_sample")), 1)
|
|
1334
1339
|
]),
|
|
1335
1340
|
_: 1
|
|
1336
1341
|
})
|
|
@@ -1338,7 +1343,7 @@ const le = {
|
|
|
1338
1343
|
key: "0"
|
|
1339
1344
|
}
|
|
1340
1345
|
]), 1032, ["modelValue", "error", "error-message", "label", "label-attributes", "placeholder"])
|
|
1341
|
-
])) :
|
|
1346
|
+
])) : S("", !0)
|
|
1342
1347
|
]),
|
|
1343
1348
|
_: 1
|
|
1344
1349
|
})
|
|
@@ -1351,9 +1356,9 @@ const le = {
|
|
|
1351
1356
|
"onUpdate:modelValue": a[3] || (a[3] = (u) => e.fields.protocol = u),
|
|
1352
1357
|
"data-testid": "gateway-service-protocol-select",
|
|
1353
1358
|
items: ie,
|
|
1354
|
-
label: t(
|
|
1359
|
+
label: t(l)("gateway_services.form.fields.protocol.label"),
|
|
1355
1360
|
"label-attributes": {
|
|
1356
|
-
info: t(
|
|
1361
|
+
info: t(l)("gateway_services.form.fields.protocol.tooltip"),
|
|
1357
1362
|
tooltipAttributes: { maxWidth: "400" }
|
|
1358
1363
|
},
|
|
1359
1364
|
readonly: e.isReadonly,
|
|
@@ -1369,26 +1374,26 @@ const le = {
|
|
|
1369
1374
|
"data-testid": "gateway-service-host-input",
|
|
1370
1375
|
error: !!e.formFieldErrors.host,
|
|
1371
1376
|
"error-message": te("host"),
|
|
1372
|
-
label: t(
|
|
1377
|
+
label: t(l)("gateway_services.form.fields.host.label"),
|
|
1373
1378
|
"label-attributes": {
|
|
1374
|
-
info: t(
|
|
1379
|
+
info: t(l)("gateway_services.form.fields.host.tooltip"),
|
|
1375
1380
|
tooltipAttributes: { maxWidth: "400" }
|
|
1376
1381
|
},
|
|
1377
1382
|
name: "host",
|
|
1378
|
-
placeholder: t(
|
|
1383
|
+
placeholder: t(l)("gateway_services.form.fields.host.placeholder"),
|
|
1379
1384
|
required: "",
|
|
1380
1385
|
onInput: a[5] || (a[5] = (u) => ce("host"))
|
|
1381
1386
|
}, ke({ _: 2 }, [
|
|
1382
|
-
|
|
1387
|
+
o.hideTrySampleApiButton ? void 0 : {
|
|
1383
1388
|
name: "after",
|
|
1384
1389
|
fn: c(() => [
|
|
1385
|
-
n(
|
|
1390
|
+
n(C, {
|
|
1386
1391
|
appearance: "tertiary",
|
|
1387
1392
|
size: "small",
|
|
1388
|
-
onClick:
|
|
1393
|
+
onClick: Ce
|
|
1389
1394
|
}, {
|
|
1390
1395
|
default: c(() => [
|
|
1391
|
-
F(_(t(
|
|
1396
|
+
F(_(t(l)("gateway_services.form.buttons.try_sample")), 1)
|
|
1392
1397
|
]),
|
|
1393
1398
|
_: 1
|
|
1394
1399
|
})
|
|
@@ -1405,16 +1410,16 @@ const le = {
|
|
|
1405
1410
|
"data-testid": "gateway-service-path-input",
|
|
1406
1411
|
error: !!e.formFieldErrors.path,
|
|
1407
1412
|
"error-message": te("path"),
|
|
1408
|
-
label: t(
|
|
1413
|
+
label: t(l)("gateway_services.form.fields.path.label"),
|
|
1409
1414
|
"label-attributes": {
|
|
1410
|
-
info: t(
|
|
1415
|
+
info: t(l)("gateway_services.form.fields.path.tooltip"),
|
|
1411
1416
|
tooltipAttributes: { maxWidth: "400" }
|
|
1412
1417
|
},
|
|
1413
1418
|
name: "path",
|
|
1414
|
-
placeholder: t(
|
|
1419
|
+
placeholder: t(l)("gateway_services.form.fields.path.placeholder"),
|
|
1415
1420
|
onInput: a[7] || (a[7] = (u) => ce("path"))
|
|
1416
1421
|
}, null, 8, ["modelValue", "error", "error-message", "label", "label-attributes", "placeholder"])
|
|
1417
|
-
])) :
|
|
1422
|
+
])) : S("", !0),
|
|
1418
1423
|
n(i, {
|
|
1419
1424
|
modelValue: e.fields.port,
|
|
1420
1425
|
"onUpdate:modelValue": [
|
|
@@ -1427,16 +1432,16 @@ const le = {
|
|
|
1427
1432
|
"data-testid": "gateway-service-port-input",
|
|
1428
1433
|
error: !!e.formFieldErrors.port,
|
|
1429
1434
|
"error-message": te("port"),
|
|
1430
|
-
label: t(
|
|
1435
|
+
label: t(l)("gateway_services.form.fields.port.label"),
|
|
1431
1436
|
"label-attributes": {
|
|
1432
|
-
info: t(
|
|
1437
|
+
info: t(l)("gateway_services.form.fields.port.tooltip"),
|
|
1433
1438
|
tooltipAttributes: { maxWidth: "400" }
|
|
1434
1439
|
},
|
|
1435
1440
|
name: "port",
|
|
1436
1441
|
type: "number",
|
|
1437
1442
|
onInput: a[9] || (a[9] = (u) => ce("port"))
|
|
1438
1443
|
}, null, 8, ["modelValue", "error", "error-message", "label", "label-attributes"])
|
|
1439
|
-
])) :
|
|
1444
|
+
])) : S("", !0)
|
|
1440
1445
|
]),
|
|
1441
1446
|
_: 1
|
|
1442
1447
|
}),
|
|
@@ -1445,13 +1450,13 @@ const le = {
|
|
|
1445
1450
|
"onUpdate:modelValue": a[30] || (a[30] = (u) => m.value = u),
|
|
1446
1451
|
"data-testid": "advanced-fields-collapse",
|
|
1447
1452
|
"trigger-alignment": "leading",
|
|
1448
|
-
"trigger-label": t(
|
|
1453
|
+
"trigger-label": t(l)("gateway_services.form.sections.keys.viewAdvancedFields")
|
|
1449
1454
|
}, {
|
|
1450
1455
|
default: c(() => [
|
|
1451
1456
|
n(Me, { name: "slide-fade" }, {
|
|
1452
1457
|
default: c(() => [
|
|
1453
|
-
m.value ?
|
|
1454
|
-
P("div",
|
|
1458
|
+
m.value ? S("", !0) : (y(), V("div", sa, [
|
|
1459
|
+
P("div", oa, [
|
|
1455
1460
|
n(i, {
|
|
1456
1461
|
modelValue: e.fields.retries,
|
|
1457
1462
|
"onUpdate:modelValue": [
|
|
@@ -1462,9 +1467,9 @@ const le = {
|
|
|
1462
1467
|
],
|
|
1463
1468
|
autocomplete: "off",
|
|
1464
1469
|
"data-testid": "gateway-service-retries-input",
|
|
1465
|
-
label: t(
|
|
1470
|
+
label: t(l)("gateway_services.form.fields.retries.label"),
|
|
1466
1471
|
"label-attributes": {
|
|
1467
|
-
info: t(
|
|
1472
|
+
info: t(l)("gateway_services.form.fields.retries.tooltip"),
|
|
1468
1473
|
tooltipAttributes: { maxWidth: "400" }
|
|
1469
1474
|
},
|
|
1470
1475
|
name: "retries",
|
|
@@ -1472,7 +1477,7 @@ const le = {
|
|
|
1472
1477
|
type: "number"
|
|
1473
1478
|
}, null, 8, ["modelValue", "label", "label-attributes", "readonly"])
|
|
1474
1479
|
]),
|
|
1475
|
-
P("div",
|
|
1480
|
+
P("div", la, [
|
|
1476
1481
|
n(i, {
|
|
1477
1482
|
modelValue: e.fields.connect_timeout,
|
|
1478
1483
|
"onUpdate:modelValue": [
|
|
@@ -1483,9 +1488,9 @@ const le = {
|
|
|
1483
1488
|
],
|
|
1484
1489
|
autocomplete: "off",
|
|
1485
1490
|
"data-testid": "gateway-service-connTimeout-input",
|
|
1486
|
-
label: t(
|
|
1491
|
+
label: t(l)("gateway_services.form.fields.connect_timeout.label"),
|
|
1487
1492
|
"label-attributes": {
|
|
1488
|
-
info: t(
|
|
1493
|
+
info: t(l)("gateway_services.form.fields.connect_timeout.tooltip"),
|
|
1489
1494
|
tooltipAttributes: { maxWidth: "400" }
|
|
1490
1495
|
},
|
|
1491
1496
|
name: "connTimeout",
|
|
@@ -1504,9 +1509,9 @@ const le = {
|
|
|
1504
1509
|
],
|
|
1505
1510
|
autocomplete: "off",
|
|
1506
1511
|
"data-testid": "gateway-service-writeTimeout-input",
|
|
1507
|
-
label: t(
|
|
1512
|
+
label: t(l)("gateway_services.form.fields.write_timeout.label"),
|
|
1508
1513
|
"label-attributes": {
|
|
1509
|
-
info: t(
|
|
1514
|
+
info: t(l)("gateway_services.form.fields.write_timeout.tooltip"),
|
|
1510
1515
|
tooltipAttributes: { maxWidth: "400" }
|
|
1511
1516
|
},
|
|
1512
1517
|
name: "writeTimeout",
|
|
@@ -1525,9 +1530,9 @@ const le = {
|
|
|
1525
1530
|
],
|
|
1526
1531
|
autocomplete: "off",
|
|
1527
1532
|
"data-testid": "gateway-service-readTimeout-input",
|
|
1528
|
-
label: t(
|
|
1533
|
+
label: t(l)("gateway_services.form.fields.read_timeout.label"),
|
|
1529
1534
|
"label-attributes": {
|
|
1530
|
-
info: t(
|
|
1535
|
+
info: t(l)("gateway_services.form.fields.read_timeout.tooltip"),
|
|
1531
1536
|
tooltipAttributes: { maxWidth: "400" }
|
|
1532
1537
|
},
|
|
1533
1538
|
name: "readTimeout",
|
|
@@ -1543,48 +1548,48 @@ const le = {
|
|
|
1543
1548
|
autocomplete: "off",
|
|
1544
1549
|
"data-testid": "gateway-service-clientCert-input",
|
|
1545
1550
|
error: !!e.formFieldErrors.client_certificate,
|
|
1546
|
-
label: t(
|
|
1551
|
+
label: t(l)("gateway_services.form.fields.client_certificate.label"),
|
|
1547
1552
|
"label-attributes": {
|
|
1548
|
-
info: t(
|
|
1553
|
+
info: t(l)("gateway_services.form.fields.client_certificate.tooltip"),
|
|
1549
1554
|
tooltipAttributes: { maxWidth: "400" }
|
|
1550
1555
|
},
|
|
1551
1556
|
name: "clientCert",
|
|
1552
|
-
placeholder: t(
|
|
1557
|
+
placeholder: t(l)("gateway_services.form.fields.client_certificate.placeholder"),
|
|
1553
1558
|
readonly: e.isReadonly,
|
|
1554
1559
|
type: "text",
|
|
1555
1560
|
onInput: a[20] || (a[20] = (u) => ne("client_certificate"))
|
|
1556
1561
|
}, null, 8, ["modelValue", "error", "label", "label-attributes", "placeholder", "readonly"])
|
|
1557
|
-
])) :
|
|
1558
|
-
j.value &&
|
|
1562
|
+
])) : S("", !0),
|
|
1563
|
+
j.value && o.isTlsSansSupported ? (y(), N(Ze, {
|
|
1559
1564
|
key: 1,
|
|
1560
1565
|
modelValue: e.fields.tls_sans.dnsnames,
|
|
1561
1566
|
"onUpdate:modelValue": a[21] || (a[21] = (u) => e.fields.tls_sans.dnsnames = u),
|
|
1562
|
-
"add-button-text": t(
|
|
1567
|
+
"add-button-text": t(l)("gateway_services.form.fields.tls_sans_dnsnames.add"),
|
|
1563
1568
|
class: "gateway-service-form-margin-bottom",
|
|
1564
1569
|
"data-testid": "gateway-service-tls-sans-dnsnames",
|
|
1565
1570
|
error: !!e.formFieldErrors.tls_sans_dnsnames,
|
|
1566
|
-
label: t(
|
|
1567
|
-
placeholder: t(
|
|
1571
|
+
label: t(l)("gateway_services.form.fields.tls_sans_dnsnames.label"),
|
|
1572
|
+
placeholder: t(l)("gateway_services.form.fields.tls_sans_dnsnames.placeholder"),
|
|
1568
1573
|
readonly: e.isReadonly,
|
|
1569
1574
|
"test-id-prefix": "tls-sans-dnsnames",
|
|
1570
|
-
tooltip: t(
|
|
1575
|
+
tooltip: t(l)("gateway_services.form.fields.tls_sans_dnsnames.tooltip"),
|
|
1571
1576
|
onInput: a[22] || (a[22] = (u) => ne("tls_sans_dnsnames"))
|
|
1572
|
-
}, null, 8, ["modelValue", "add-button-text", "error", "label", "placeholder", "readonly", "tooltip"])) :
|
|
1573
|
-
j.value &&
|
|
1577
|
+
}, null, 8, ["modelValue", "add-button-text", "error", "label", "placeholder", "readonly", "tooltip"])) : S("", !0),
|
|
1578
|
+
j.value && o.isTlsSansSupported ? (y(), N(Ze, {
|
|
1574
1579
|
key: 2,
|
|
1575
1580
|
modelValue: e.fields.tls_sans.uris,
|
|
1576
1581
|
"onUpdate:modelValue": a[23] || (a[23] = (u) => e.fields.tls_sans.uris = u),
|
|
1577
|
-
"add-button-text": t(
|
|
1582
|
+
"add-button-text": t(l)("gateway_services.form.fields.tls_sans_uris.add"),
|
|
1578
1583
|
class: "gateway-service-form-margin-bottom",
|
|
1579
1584
|
"data-testid": "gateway-service-tls-sans-uris",
|
|
1580
1585
|
error: !!e.formFieldErrors.tls_sans_uris,
|
|
1581
|
-
label: t(
|
|
1582
|
-
placeholder: t(
|
|
1586
|
+
label: t(l)("gateway_services.form.fields.tls_sans_uris.label"),
|
|
1587
|
+
placeholder: t(l)("gateway_services.form.fields.tls_sans_uris.placeholder"),
|
|
1583
1588
|
readonly: e.isReadonly,
|
|
1584
1589
|
"test-id-prefix": "tls-sans-uris",
|
|
1585
|
-
tooltip: t(
|
|
1590
|
+
tooltip: t(l)("gateway_services.form.fields.tls_sans_uris.tooltip"),
|
|
1586
1591
|
onInput: a[24] || (a[24] = (u) => ne("tls_sans_uris"))
|
|
1587
|
-
}, null, 8, ["modelValue", "add-button-text", "error", "label", "placeholder", "readonly", "tooltip"])) :
|
|
1592
|
+
}, null, 8, ["modelValue", "add-button-text", "error", "label", "placeholder", "readonly", "tooltip"])) : S("", !0),
|
|
1588
1593
|
ue.value ? (y(), V("div", ca, [
|
|
1589
1594
|
n(i, {
|
|
1590
1595
|
modelValue: e.fields.ca_certificates,
|
|
@@ -1593,9 +1598,9 @@ const le = {
|
|
|
1593
1598
|
autocomplete: "off",
|
|
1594
1599
|
"data-testid": "gateway-service-ca-certs-input",
|
|
1595
1600
|
error: !!e.formFieldErrors.ca_certificates,
|
|
1596
|
-
label: t(
|
|
1601
|
+
label: t(l)("gateway_services.form.fields.ca_certificates.label"),
|
|
1597
1602
|
"label-attributes": { tooltipAttributes: { maxWidth: "400" } },
|
|
1598
|
-
placeholder: t(
|
|
1603
|
+
placeholder: t(l)("gateway_services.form.fields.ca_certificates.placeholder"),
|
|
1599
1604
|
readonly: e.isReadonly,
|
|
1600
1605
|
type: "text",
|
|
1601
1606
|
onInput: a[26] || (a[26] = (u) => ne("ca_certificates"))
|
|
@@ -1606,24 +1611,24 @@ const le = {
|
|
|
1606
1611
|
scope: "global"
|
|
1607
1612
|
}, {
|
|
1608
1613
|
code1: c(() => [
|
|
1609
|
-
P("code", null, _(t(
|
|
1614
|
+
P("code", null, _(t(l)("gateway_services.form.fields.ca_certificates.code1")), 1)
|
|
1610
1615
|
]),
|
|
1611
1616
|
code2: c(() => [
|
|
1612
|
-
P("code", null, _(t(
|
|
1617
|
+
P("code", null, _(t(l)("gateway_services.form.fields.ca_certificates.code2")), 1)
|
|
1613
1618
|
]),
|
|
1614
1619
|
_: 1
|
|
1615
1620
|
})
|
|
1616
1621
|
]),
|
|
1617
1622
|
_: 1
|
|
1618
1623
|
}, 8, ["modelValue", "error", "label", "placeholder", "readonly"])
|
|
1619
|
-
])) :
|
|
1624
|
+
])) : S("", !0),
|
|
1620
1625
|
j.value ? (y(), V("div", da, [
|
|
1621
1626
|
n(w, {
|
|
1622
1627
|
modelValue: e.fields.tls_verify_enabled,
|
|
1623
1628
|
"onUpdate:modelValue": a[27] || (a[27] = (u) => e.fields.tls_verify_enabled = u),
|
|
1624
1629
|
"data-testid": "gateway-service-tls-verify-checkbox",
|
|
1625
|
-
description: t(
|
|
1626
|
-
label: t(
|
|
1630
|
+
description: t(l)("gateway_services.form.fields.tls_verify_enabled.help"),
|
|
1631
|
+
label: t(l)("gateway_services.form.fields.tls_verify_enabled.label"),
|
|
1627
1632
|
"label-attributes": { tooltipAttributes: { maxWidth: "400" } }
|
|
1628
1633
|
}, {
|
|
1629
1634
|
tooltip: c(() => [
|
|
@@ -1632,7 +1637,7 @@ const le = {
|
|
|
1632
1637
|
scope: "global"
|
|
1633
1638
|
}, {
|
|
1634
1639
|
code1: c(() => [
|
|
1635
|
-
P("code", null, _(t(
|
|
1640
|
+
P("code", null, _(t(l)("gateway_services.form.fields.tls_verify_enabled.code1")), 1)
|
|
1636
1641
|
]),
|
|
1637
1642
|
_: 1
|
|
1638
1643
|
})
|
|
@@ -1644,20 +1649,20 @@ const le = {
|
|
|
1644
1649
|
modelValue: e.fields.tls_verify_value,
|
|
1645
1650
|
"onUpdate:modelValue": a[28] || (a[28] = (u) => e.fields.tls_verify_value = u),
|
|
1646
1651
|
"data-testid": "gateway-service-tls-verify-true-option",
|
|
1647
|
-
label: t(
|
|
1652
|
+
label: t(l)("gateway_services.form.fields.tls_verify_option.true.label"),
|
|
1648
1653
|
"selected-value": !0
|
|
1649
1654
|
}, null, 8, ["modelValue", "label"])
|
|
1650
|
-
])) :
|
|
1655
|
+
])) : S("", !0),
|
|
1651
1656
|
e.fields.tls_verify_enabled ? (y(), V("div", fa, [
|
|
1652
1657
|
n(f, {
|
|
1653
1658
|
modelValue: e.fields.tls_verify_value,
|
|
1654
1659
|
"onUpdate:modelValue": a[29] || (a[29] = (u) => e.fields.tls_verify_value = u),
|
|
1655
1660
|
"data-testid": "gateway-service-tls-verify-false-option",
|
|
1656
|
-
label: t(
|
|
1661
|
+
label: t(l)("gateway_services.form.fields.tls_verify_option.false.label"),
|
|
1657
1662
|
"selected-value": !1
|
|
1658
1663
|
}, null, 8, ["modelValue", "label"])
|
|
1659
|
-
])) :
|
|
1660
|
-
])) :
|
|
1664
|
+
])) : S("", !0)
|
|
1665
|
+
])) : S("", !0)
|
|
1661
1666
|
]))
|
|
1662
1667
|
]),
|
|
1663
1668
|
_: 1
|
|
@@ -1669,9 +1674,9 @@ const le = {
|
|
|
1669
1674
|
_: 1
|
|
1670
1675
|
}, 8, ["description", "hide-info-header", "title"]),
|
|
1671
1676
|
n(t(He), {
|
|
1672
|
-
description: t(
|
|
1673
|
-
"hide-info-header":
|
|
1674
|
-
title: t(
|
|
1677
|
+
description: t(l)("gateway_services.form.sections.general.description"),
|
|
1678
|
+
"hide-info-header": o.hideSectionsInfo,
|
|
1679
|
+
title: t(l)("gateway_services.form.sections.general.title")
|
|
1675
1680
|
}, {
|
|
1676
1681
|
default: c(() => [
|
|
1677
1682
|
n(i, {
|
|
@@ -1682,13 +1687,13 @@ const le = {
|
|
|
1682
1687
|
"data-testid": "gateway-service-name-input",
|
|
1683
1688
|
error: xe.value,
|
|
1684
1689
|
"error-message": Y.value,
|
|
1685
|
-
label: t(
|
|
1690
|
+
label: t(l)("gateway_services.form.fields.name.label"),
|
|
1686
1691
|
"label-attributes": {
|
|
1687
|
-
info: t(
|
|
1692
|
+
info: t(l)("gateway_services.form.fields.name.tooltip"),
|
|
1688
1693
|
tooltipAttributes: { maxWidth: "400" }
|
|
1689
1694
|
},
|
|
1690
1695
|
name: "name",
|
|
1691
|
-
placeholder: t(
|
|
1696
|
+
placeholder: t(l)("gateway_services.form.fields.name.placeholder"),
|
|
1692
1697
|
readonly: e.isReadonly,
|
|
1693
1698
|
type: "text",
|
|
1694
1699
|
onInput: fe
|
|
@@ -1696,7 +1701,7 @@ const le = {
|
|
|
1696
1701
|
n(k, {
|
|
1697
1702
|
"data-testid": "tags-collapse",
|
|
1698
1703
|
"trigger-alignment": "leading",
|
|
1699
|
-
"trigger-label": t(
|
|
1704
|
+
"trigger-label": t(l)("gateway_services.form.fields.tags.collapse")
|
|
1700
1705
|
}, {
|
|
1701
1706
|
default: c(() => [
|
|
1702
1707
|
P("div", pa, [
|
|
@@ -1706,14 +1711,14 @@ const le = {
|
|
|
1706
1711
|
modelModifiers: { trim: !0 },
|
|
1707
1712
|
autocomplete: "off",
|
|
1708
1713
|
"data-testid": "gateway-service-tags-input",
|
|
1709
|
-
help: t(
|
|
1710
|
-
label: t(
|
|
1714
|
+
help: t(l)("gateway_services.form.fields.tags.help"),
|
|
1715
|
+
label: t(l)("gateway_services.form.fields.tags.label"),
|
|
1711
1716
|
"label-attributes": {
|
|
1712
|
-
info: t(
|
|
1717
|
+
info: t(l)("gateway_services.form.fields.tags.tooltip"),
|
|
1713
1718
|
tooltipAttributes: { maxWidth: "400" }
|
|
1714
1719
|
},
|
|
1715
1720
|
name: "tags",
|
|
1716
|
-
placeholder: t(
|
|
1721
|
+
placeholder: t(l)("gateway_services.form.fields.tags.placeholder"),
|
|
1717
1722
|
readonly: e.isReadonly,
|
|
1718
1723
|
type: "text",
|
|
1719
1724
|
onInput: a[33] || (a[33] = (u) => O("tags"))
|
|
@@ -1736,14 +1741,14 @@ const le = {
|
|
|
1736
1741
|
])
|
|
1737
1742
|
]),
|
|
1738
1743
|
_: 1
|
|
1739
|
-
})) :
|
|
1744
|
+
})) : S("", !0)
|
|
1740
1745
|
]),
|
|
1741
1746
|
_: 3
|
|
1742
1747
|
}, 8, ["can-submit", "config", "edit-id", "entity-type", "fetch-url", "form-fields", "is-readonly"])
|
|
1743
1748
|
]);
|
|
1744
1749
|
};
|
|
1745
1750
|
}
|
|
1746
|
-
}), Ia = /* @__PURE__ */ qe(va, [["__scopeId", "data-v-fac65b64"]]), { validateHost: ga, validatePort: ya, validateProtocol: _a, validatePath: ha } =
|
|
1751
|
+
}), Ia = /* @__PURE__ */ qe(va, [["__scopeId", "data-v-fac65b64"]]), { validateHost: ga, validatePort: ya, validateProtocol: _a, validatePath: ha } = oe.useUrlValidators(), Fa = () => ({
|
|
1747
1752
|
validateHost: ga,
|
|
1748
1753
|
validatePort: ya,
|
|
1749
1754
|
validateProtocol: _a,
|
|
@@ -1752,6 +1757,6 @@ const le = {
|
|
|
1752
1757
|
export {
|
|
1753
1758
|
Ea as GatewayServiceConfigCard,
|
|
1754
1759
|
Ia as GatewayServiceForm,
|
|
1755
|
-
|
|
1760
|
+
Sa as GatewayServiceList,
|
|
1756
1761
|
Fa as useUrlValidator
|
|
1757
1762
|
};
|