@kong-ui-public/entities-plugins 9.255.3 → 9.256.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,6 +1,6 @@
1
- import { toValue as xt, warn as Jg, onScopeDispose as Xg, inject as rt, openBlock as k, createElementBlock as Z, createElementVNode as j, computed as R, ref as pe, nextTick as Zt, shallowRef as gn, watch as Xe, provide as Pt, readonly as Zg, defineComponent as Oe, normalizeClass as mt, toDisplayString as W, createCommentVNode as ge, unref as s, withModifiers as Ct, normalizeStyle as Di, Fragment as Ve, renderList as tt, createBlock as z, withCtx as I, resolveDynamicComponent as Nt, useCssVars as Sa, resolveComponent as ke, createSlots as ft, createTextVNode as Te, useSlots as Gt, createVNode as _, renderSlot as nt, useTemplateRef as wt, mergeProps as Ye, useModel as Zn, onMounted as rn, mergeModels as Qn, toRef as St, isRef as Kl, markRaw as Qg, onBeforeUnmount as xa, reactive as Ci, toRaw as Pr, onUnmounted as Ia, createPropsRestProxy as xn, withDirectives as Wt, vShow as Yt, normalizeProps as yn, useAttrs as ni, guardReactiveProps as Nn, Transition as eh, useId as Aa, onBeforeMount as Hi, withKeys as ai, Teleport as Nr, watchEffect as sp, shallowReactive as th } from "vue";
1
+ import { toValue as xt, warn as Jg, onScopeDispose as Xg, inject as rt, openBlock as k, createElementBlock as Z, createElementVNode as j, computed as R, ref as pe, nextTick as Zt, shallowRef as gn, watch as Xe, provide as Pt, readonly as Zg, defineComponent as Oe, normalizeClass as mt, toDisplayString as W, createCommentVNode as ge, unref as s, withModifiers as Ct, normalizeStyle as Di, Fragment as Be, renderList as et, createBlock as z, withCtx as I, resolveDynamicComponent as Nt, useCssVars as Sa, resolveComponent as ke, createSlots as ft, createTextVNode as Te, useSlots as Gt, createVNode as _, renderSlot as nt, useTemplateRef as wt, mergeProps as Ye, useModel as Zn, onMounted as rn, mergeModels as Qn, toRef as St, isRef as Kl, markRaw as Qg, onBeforeUnmount as xa, reactive as Ci, toRaw as Pr, onUnmounted as Ia, createPropsRestProxy as xn, withDirectives as Wt, vShow as Yt, normalizeProps as yn, useAttrs as ni, guardReactiveProps as Nn, Transition as eh, useId as Aa, onBeforeMount as Hi, withKeys as ai, Teleport as Nr, watchEffect as sp, shallowReactive as th } from "vue";
2
2
  import { NetworkIcon as nh, CachedIcon as ih, ArrowSplitIcon as lp, GatewayIcon as oh, CodeblockIcon as Dl, DataObjectIcon as ah, CodeIcon as rh, StackIcon as sh, DeployIcon as cp, EditSquareIcon as lh, KeyIcon as Rr, CloudIcon as ja, WarningIcon as ch, MoreIcon as Po, UnfoldMoreIcon as Yc, UnfoldLessIcon as Jc, AddIcon as Bt, RemoveIcon as Mr, FullscreenIcon as uh, AutoLayoutIcon as dh, CloseIcon as Si, TrashIcon as up, ChevronRightIcon as dp, InfoIcon as ph, TeamIcon as fh, AccountTreeIcon as mh, BookIcon as ca, SparklesIcon as gh, ChevronDownIcon as Xc, ArrowLeftIcon as hh, ChevronDoubleLeftIcon as vh, ChevronDoubleRightIcon as yh, UndoIcon as _h, RedoIcon as bh, ExternalLinkIcon as kh, DatabaseIcon as wh, ExpandIcon as Ch, DesignIcon as Eh, WorldIcon as Sh, ClearIcon as qa, CheckCircleIcon as xh, SearchIcon as Ih, ArrowTopLeftIcon as Ah, PlugIcon as Th, TransformationIcon as $h, TrafficIcon as Oh, RuntimeServerlessIcon as Ph, SecurityIcon as Nh, MoneyIcon as Rh, ServiceDocumentIcon as Mh, LockIcon as Lh, AnalyticsIcon as Fh, BotIcon as Kh, PopularIcon as Dh, GridIcon as jh, ListIcon as qh } from "@kong/icons";
3
- import { KTooltip as Bn, KDropdown as pp, KButton as en, KDropdownItem as or, KInputSwitch as jl, KLabel as Vt, KTextArea as Uh, KInput as ri, KCheckbox as pr, KCard as ua, KMultiselect as fp, KSelect as fr, KSegmentedControl as mp, KRadio as tn, KCollapse as ql, KSkeletonBox as Bh, KEmptyState as Vh, KAlert as Ul, KPrompt as gp, KModal as zh, KSlideout as Gh, KExternalLink as Fi, KSkeleton as Zc, KTabs as Hh } from "@kong/kongponents";
3
+ import { KTooltip as Bn, KDropdown as pp, KButton as en, KDropdownItem as or, KInputSwitch as jl, KLabel as Vt, KTextArea as Uh, KInput as ri, KCheckbox as pr, KCard as ua, KMultiselect as fp, KSelect as fr, KSegmentedControl as mp, KRadio as an, KCollapse as ql, KSkeletonBox as Bh, KEmptyState as Vh, KAlert as Ul, KPrompt as gp, KModal as zh, KSlideout as Gh, KExternalLink as Fi, KSkeleton as Zc, KTabs as Hh } from "@kong/kongponents";
4
4
  import { Background as Wh } from "@vue-flow/background";
5
5
  import { Controls as Yh, ControlButton as Jh } from "@vue-flow/controls";
6
6
  import { useVueFlow as Eo, MarkerType as hp, Position as Yn, Handle as so, VueFlow as vp } from "@vue-flow/core";
@@ -9,7 +9,7 @@ import { createI18n as Xt, i18nTComponent as yp } from "@kong-ui-public/i18n";
9
9
  import "@vue-flow/controls/dist/style.css";
10
10
  import "@vue-flow/core/dist/style.css";
11
11
  import "@vue-flow/core/dist/theme-default.css";
12
- import { ConfigurationSchemaType as an, useAxios as sn, useStringHelpers as Vl, useErrors as Ai, EntityFormBlock as qn, PLUGIN_FORM_LAYOUT_STATE as zl, SupportedEntityType as Jn, EntityBaseForm as _p, useHelpers as Ta, EntityBaseFormType as Ti, useBaseFormDeckOptions as nv, DeckCodeBlock as iv, TerraformCodeBlock as ov, YamlCodeBlock as av, JsonCodeBlock as rv, useTableState as sv, useGatewayFeatureSupported as lv, useFetcher as cv, useDeleteUrlBuilder as uv, FetcherStatus as dv, EntityBaseTable as pv, PermissionsWrapper as vi, TableTags as fv, EntityFilter as mv, EntityToggleModal as gv, EntityDeleteModal as bp, EntityTypes as kp, ConfigCardItem as hv, ConfigurationSchemaSection as io, useSchemaProvider as vv, EntityBaseConfigCard as yv, InternalLinkItem as Ho } from "@kong-ui-public/entities-shared";
12
+ import { ConfigurationSchemaType as on, useAxios as sn, useStringHelpers as Vl, useErrors as Ai, EntityFormBlock as qn, PLUGIN_FORM_LAYOUT_STATE as zl, SupportedEntityType as Jn, EntityBaseForm as _p, useHelpers as Ta, EntityBaseFormType as Ti, useBaseFormDeckOptions as nv, DeckCodeBlock as iv, TerraformCodeBlock as ov, YamlCodeBlock as av, JsonCodeBlock as rv, useTableState as sv, useGatewayFeatureSupported as lv, useFetcher as cv, useDeleteUrlBuilder as uv, FetcherStatus as dv, EntityBaseTable as pv, PermissionsWrapper as vi, TableTags as fv, EntityFilter as mv, EntityToggleModal as gv, EntityDeleteModal as bp, EntityTypes as kp, ConfigCardItem as hv, ConfigurationSchemaSection as io, useSchemaProvider as vv, EntityBaseConfigCard as yv, InternalLinkItem as Ho } from "@kong-ui-public/entities-shared";
13
13
  import { PluginIcon as ji } from "@kong-ui-public/entities-plugins-icon";
14
14
  import { PluginIcon as y8, getPluginIconURL as _8 } from "@kong-ui-public/entities-plugins-icon";
15
15
  import { PluginGroup as st, PLUGIN_GROUP_AND_SCOPE_MAP as Me, PluginScope as _t, GATEWAY_VERSION_TIMESTAMP_MAP as _v } from "@kong-ui-public/entities-plugins-metadata";
@@ -30,7 +30,7 @@ import { z as X } from "zod";
30
30
  import { isAxiosError as _o } from "axios";
31
31
  import "@kong-ui-public/entities-vaults/dist/style.css";
32
32
  import "@kong-ui-public/forms/dist/style.css";
33
- const $v = { cancel: "Cancel", view_configuration: "View configuration", create: "New plugin", create_custom: "Create", configure: "Configure", copy_id: "Copy ID", copy_json: "Copy JSON", edit: "Edit", enable: "Enable", enabled: "Enabled", disable: "Disable", delete: "Delete", disabled: "Disabled", confirm_delete: "Yes, delete", view: "View details", configure_dynamic_ordering: "Configure dynamic ordering", go_to_plugins: "Go to plugins", save: "Save", add_entity: "Add {entity}", remove_entity: "Remove {entity}", loading_spinner: "Loading..." }, Ov = { title: "Configuration", message: "Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML, JSON, or Terraform. This allows for straightforward importing into APIOps tools like decK with YAML, Insomnia and cURL with JSON, or Terraform products with Terraform.", yaml: "YAML", terraform: "Terraform", json: "JSON", deck: "decK" }, Pv = { success: "Copied {val} to clipboard", success_brief: "Successfully copied to clipboard", tooltip: "Copy {label}", success_tooltip: "Copied!" }, Nv = { general: "Plugins could not be retrieved", delete: "The plugin could not be deleted at this time.", copy: "Failed to copy to clipboard", load_results: "Error loading available plugins", load_schema: "Error loading plugin schema" }, Rv = { placeholder: { konnect: "Filter by name", exact: "Filter by exact instance name or ID", kongManager: "Filter by exact instance name or ID", select: "Filter plugins", search_plugins: "Search plugins", search: "Search", tags_filter: "Type part of a tag and press Enter", scope_filter: "Select scopes" }, filter: { field: { enabled: "Enabled" }, tags_invalid: "Tags can't contain commas, slashes, or leading/trailing spaces" }, no_results: 'No results found for "{filter}"' }, Mv = { new: "New" }, Lv = /* @__PURE__ */ JSON.parse(`{"title":"Plugins","list":{"toolbar_actions":{"new_plugin":"New plugin"},"table_headers":{"applied_to":"Applied to","applied_to_badges":{"consumer":"Consumer","global":"Global","route":"Route","service":"Service","consumer_group":"Consumer group"},"id":"ID","plugin":"Plugin","name":"Name","instance_name":"Instance name","scope":"Scope","status":"Status","ordering":"Ordering","ordering_badge":{"dynamic":"Dynamic","static":"Static"},"enabled":"Enabled","tags":"Tags","updated_at":"Last modified"},"empty_state":{"title":"Configure a new plugin","description":"Plugins are used to extend Kong functionality."},"empty_state_v2":{"title":"Configure your first plugin","description":"Plugins extend gateways functionalities, offering features like authentication, rate limiting, and request transformations to enhance security and performance.","create_cta":"New plugin","group":"Plugins created in gateways within this group will automatically appear here.","learn_more":"Learn more"}},"meta":{"basic-auth":{"name":"Basic Authentication","credential_name":"Basic Auth Credential","description":"Add Basic Authentication to your services"},"hmac-auth":{"name":"HMAC Authentication","credential_name":"HMAC Credential","description":"Add HMAC Authentication to your services"},"jwt-signer":{"name":"JWT Signer","description":"Verify and (re-)sign one or two tokens in a request"},"jwt":{"name":"JWT","credential_name":"JWT Credential","description":"Verify and authenticate JSON Web Tokens"},"key-auth":{"name":"Key Authentication","credential_name":"Key Auth Credential","description":"Add key authentication to your services"},"key-auth-enc":{"name":"Key Authentication Encrypted","credential_name":"Key Auth Encrypted","description":"Add key authentication to your services with an encrypted token"},"ldap-auth-advanced":{"name":"LDAP Authentication Advanced","description":"Integrate Kong with a LDAP server"},"ldap-auth":{"name":"LDAP Authentication","description":"Integrate Kong with a LDAP server"},"oauth2-introspection":{"name":"OAuth 2.0 Introspection","description":"Integrate Kong with a third-party OAuth 2.0 Authorization Server"},"oauth2":{"name":"OAuth 2.0 Authentication","credential_name":"OAuth 2.0 Application","description":"Add OAuth 2.0 authentication to your services"},"openid-connect":{"name":"OpenID Connect","description":"Integrate Kong with a third-party OpenID Connect 1.0 provider"},"mtls-auth":{"name":"Mutual TLS Authentication","description":"Secure routes and services with client certificate and mutual TLS authentication"},"vault-auth":{"name":"Vault Authentication","description":"Secure routes and services with an access token and secret token, stored securely via Vault"},"bot-detection":{"name":"Bot Detection","description":"Detect and clock bots or custom clients"},"cors":{"name":"CORS","description":"Allow developers to make requests from the browser"},"ip-restriction":{"name":"IP Restriction","description":"Whitelist or blacklist IPs that can make requests"},"opa":{"name":"OPA","description":"Authorize requests against Open Policy Agent"},"kubernetes-sidecar-injector":{"name":"Kubernetes Sidecar Injector","description":"This plugin will inject Kong dataplane nodes and form a service mesh on top of Kubernetes"},"request-validator":{"name":"Request Validator","description":"Validate requests before they reach their upstream service."},"acl":{"name":"ACL","credential_name":"Access Control Group","description":"Control which consumers can access services"},"canary":{"name":"Canary Release","description":"Methodically roll out software changes to a subset of users"},"forward-proxy":{"name":"Forward Proxy","description":"Allow Kong to connect to intermediary transparent HTTP proxies"},"proxy-cache":{"name":"Proxy Caching","description":"Cache and serve commonly requested responses in Kong"},"proxy-cache-advanced":{"name":"Proxy Caching Advanced","description":"Cache and serve commonly requested responses in Kong"},"graphql-proxy-cache-advanced":{"name":"GraphQL Proxy Caching Advanced","description":"Cache and serve commonly requested responses in Kong"},"rate-limiting-advanced":{"name":"Rate Limiting Advanced","description":"Rate-limit how many HTTP requests a developer can make"},"rate-limiting":{"name":"Rate Limiting","description":"Rate-limit how many HTTP requests a developer can make"},"graphql-rate-limiting-advanced":{"name":"GraphQL Rate Limiting Advanced","description":"Rate-limit how many HTTP requests a developer can make"},"mocking":{"name":"Mocking","description":"Provide mock endpoints to test your APIs in development against your services"},"request-size-limiting":{"name":"Request Size Limiting","description":"Block requests with bodies greater than a specific size"},"request-termination":{"name":"Request Termination","description":"Terminate all requests with a specific response"},"response-ratelimiting":{"name":"Response Rate Limiting","description":"Rate-Limiting based on a custom response header value"},"route-by-header":{"name":"Route by Header","description":"Route requests based on request headers"},"ai-proxy":{"name":"AI Proxy","description":"Directly call a configured LLM, with mediated security and tuning parameters, and using standardised Kong request and response formats."},"ai-prompt-decorator":{"name":"AI Prompt Decorator","description":"Prepend and append chat prompts to AI Proxy plugin LLM requests."},"ai-prompt-template":{"name":"AI Prompt Template","description":"Define a set of templates, containing string variable placeholders, that can be consumed by users when used with the AI Proxy plugin."},"ai-prompt-guard":{"name":"AI Prompt Guard","description":"Define a set of valid, and a set of invalid, regular expression patterns when calling LLM models with the AI Proxy plugin."},"ai-request-transformer":{"name":"AI Request Transformer","description":"Use an LLM to transform API request from a user, before sending to the upstream service."},"ai-response-transformer":{"name":"AI Response Transformer","description":"Use an LLM to transform API responses from the upstream service, before returning to the user."},"ai-rate-limiting-advanced":{"name":"AI Rate Limiting Advanced","description":"Provides rate limiting for the providers used by any AI plugins."},"ai-azure-content-safety":{"name":"AI Azure Content Safety","description":"Allows checking and auditing of AI-Proxy plugin messages, using Azure Cognitive Services, before proxying to upstream large-language model."},"aws-lambda":{"name":"AWS Lambda","description":"Invoke and manage AWS Lambda functions from Kong"},"azure-functions":{"name":"Azure Functions","description":"Invoke Azure functions"},"openwhisk":{"name":"OpenWhisk","description":"Invoke and manage OpenWhisk actions from Kong"},"pre-function":{"name":"Kong Functions (Pre-Plugins)","description":"Add and manage custom lua functions to run before other plugins"},"post-function":{"name":"Kong Functions (Post-Plugins)","description":"Add and manage custom lua functions to run after other plugins"},"datadog":{"name":"Datadog","description":"Visualize metrics on Datadog"},"prometheus":{"name":"Prometheus","description":"Export performance metrics to Prometheus"},"zipkin":{"name":"Zipkin","description":"Propagate zipkin spans and report spans to a zipkin server"},"collector":{"name":"Collector","description":"Automate spec-driven development & anomaly detection (Early Access)"},"response-transformer-advanced":{"name":"Response Transformer Advanced","description":"Transform the response sent by the upstream server on the fly on Kong, before returning the response to the client."},"correlation-id":{"name":"Correlation ID","description":"Correlate requests and responses using a unique ID"},"request-transformer-advanced":{"name":"Request Transformer Advanced","description":"Use powerful regular expressions, variables and templates to transform API requests"},"request-transformer":{"name":"Request Transformer","description":"Modify the request before hitting the upstream server"},"response-transformer":{"name":"Response Transformer","description":"Modify the upstream response before returning it to the client"},"route-transformer-advanced":{"name":"Route Transformer Advanced","description":"Transforms the routing on the fly in Kong, changing the upstream server/port/path to hit"},"kafka-upstream":{"name":"Kafka Upstream","description":"Transform requests into Kafka messages in a topic"},"degraphql":{"name":"DeGraphQL","description":"Transform a GraphQL upstream into a REST API"},"exit-transformer":{"name":"Exit Transformer","description":"Customize Kong exit responses sent downstream"},"jq":{"name":"jq","description":"Transform JSON objects included in API requests or responses using jq programs"},"file-log":{"name":"File Log","description":"Append request and response data to a log file on disk"},"http-log":{"name":"HTTP Log","description":"Send request and response logs to an HTTP server"},"loggly":{"name":"Loggly","description":"Send request and response logs to Loggly"},"statsd-advanced":{"name":"StatsD Advanced","description":"Send traffic and Kong performance metrics to StatsD"},"statsd":{"name":"StatsD","description":"Send request and response logs to StatsD"},"syslog":{"name":"Syslog","description":"Send request and response logs to Syslog"},"tcp-log":{"name":"TCP Log","description":"Send request and response logs to a TCP server"},"udp-log":{"name":"UDP Log","description":"Send request and response logs to a UDP server"},"kafka-log":{"name":"Kafka Log","description":"Publish request and response logs to a Kafka topic"},"session":{"name":"Session","description":"Sessions for Kong authentication"},"upstream-tls":{"name":"Upstream TLS","description":"Enable TLS on upstream traffic by providing Kong with a list of trusted certificates."},"application-registration":{"name":"Portal Application Registration","description":"Allow portal developers to register applications against services"},"konnect-application-auth":{"name":"Konnect Application Auth","description":"Allow Konnect portal developers to register applications against services"},"acme":{"name":"ACME","description":"Let's Encrypt and ACMEv2 integration with Kong"},"grpc-gateway":{"name":"gRPC Gateway","description":"Access gRPC services through HTTP REST"},"grpc-web":{"name":"gRPC Web","description":"Allow browser clients to call gRPC services"},"upstream-timeout":{"name":"Upstream Timeout","description":"Configure read, send and connect timeouts to an upstream"},"opentelemetry":{"name":"OpenTelemetry","description":"Propagate distributed tracing spans and report low-level spans to a OTLP-compatible server"},"websocket-validator":{"name":"WebSocket Validator","description":"Validate individual WebSocket messages against to a user-specified schema before proxying them"},"websocket-size-limit":{"name":"WebSocket Size Limit","description":"Allows operators to specify a maximum size for incoming WebSocket messages"},"tls-metadata-headers":{"name":"TLS Metadata Headers","description":"Detects client certificates in requests, retrieves the TLS metadata, and proxies this metadata via HTTP headers"},"tls-handshake-modifier":{"name":"TLS Handshake Modifier","description":"Requests the client certificate and if it exists, makes it available to other plugins acting on the request"},"oas-validation":{"name":"OAS Validation","description":"Validate HTTP requests and responses based on an API specification."},"jwe-decrypt":{"name":"Kong JWE Decrypt","description":"The Kong JWE Decrypt plugin makes it possible to decrypt an inbound token(JWE) in a request."},"xml-threat-protection":{"name":"XML Threat Protection","description":"Reduce the risk of XML attacks by checking the structure of XML payloads."},"saml":{"name":"SAML","description":"Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorization data between an identity provider and a service provider."},"app-dynamics":{"name":"AppDynamics","description":"This plugin integrates Kong with the AppDynamics APM platform so that proxy requests handled by Kong can be identified and analyzed in AppDynamics."},"json-threat-protection":{"name":"JSON Threat Protection","description":"Apply size checks on JSON payload and minimize risk of content-level attacks"},"standard-webhooks":{"name":"Standard Webhooks","description":"Validate incoming webhooks adhere to the Standard Webhooks specification, to which Kong is a contributor"},"ai-proxy-advanced":{"name":"AI Proxy Advanced","description":"Route across different LLMs and models using advanced load balancing algorithms, including semantic routing."},"ai-semantic-cache":{"name":"AI Semantic Cache","description":"Semantically cache AI requests to any LLM to reduce latency, improve end-user experiences and optimize GenAI costs."},"ai-semantic-prompt-guard":{"name":"AI Semantic Prompt Guard","description":"Semantically and intelligently create allow and deny lists of topics that can be requested across every LLM."},"header-cert-auth":{"name":"Header Certificate Authentication","description":"Authenticate clients with MTLS certificate passed in header by a WAF or load balancer"},"upstream-oauth":{"name":"Upstream OAuth","description":"Configure Kong to obtain a OAuth2 token to consume an upstream API"},"confluent":{"name":"Confluent","description":"Streamlines integration with Confluent Cloud and transforms requests into messages published to a Confluent topic."},"service-protection":{"name":"Service Protection","description":"Prevent abuse and protect services with absolute limits on the number of requests reaching the service."},"injection-protection":{"name":"Injection Protection","description":"Protect against injection attacks by rejecting requests that match common injections patterns."},"redirect":{"name":"Redirect","description":"Redirect incoming requests to a new URL"},"kafka-consume":{"name":"Kafka Consume","description":"Consume messages from Kafka topics over HTTP protocols."},"confluent-consume":{"name":"Confluent Consume","description":"Consume messages from Confluent Kafka topics over HTTP protocols"},"request-callout":{"name":"Request Callout","description":"Callout to third party APIs as part of request processing."},"ai-sanitizer":{"name":"AI Sanitizer","description":"Sanitize personal or sensitive information from prompts before sending to LLM."},"ai-rag-injector":{"name":"AI RAG Injector","description":"Attach contextual knowledge from vector databases with flexible template to LLM prompts."},"datakit":{"name":"Datakit","description":"Datakit is a workflow engine for working with external APIs."},"ai-prompt-compressor":{"name":"AI Prompt Compressor","description":"The AI Prompt Compressor reduces costs associated with LLMs by compressing prompts."},"solace-upstream":{"name":"Solace Upstream","description":"Transform requests into Solace messages in a Solace queue or topic."},"ai-aws-guardrails":{"name":"AI AWS GuardRails","description":"The AI AWS GuardRails enables enforcement of introspection with the AWS GuardRails service for all requests processed by the AI Proxy plugin."},"ace":{"name":"Konnect Access Control Enforcement","description":"Enable Developer Self-Service for Konnect Dev Portals."},"solace-consume":{"name":"Solace Consume","description":"Consume messages from Solace and make them available through HTTP endpoints."},"solace-log":{"name":"Solace Log","description":"Publish request and response logs to a Solace topic."},"ai-llm-as-judge":{"name":"AI LLM Judge","description":"Evaluate LLM responses with an external LLM service and use accuracy scores to drive dynamic load balancing for \`llm/v1/chat\` requests."},"ai-mcp-proxy":{"name":"AI MCP Proxy","description":"Convert APIs into MCP tools, proxy MCP servers, expose multiple MCP tools, and observe MCP traffic in real time."},"ai-gcp-model-armor":{"name":"AI GCP Model Armor","description":"Audit and validate AI Proxy messages with Google Cloud Model Armor before forwarding them to an upstream LLM."},"ai-mcp-oauth2":{"name":"AI MCP OAuth2","description":"Secure MCP server access with OAuth2 authentication."},"ai-semantic-response-guard":{"name":"AI Semantic Response Guard","description":"Permit or block prompts based on semantic similarity to known LLM responses, preventing misuse of \`llm/v1/chat\` or \`llm/v1/completions\` requests."},"ai-lakera-guard":{"name":"AI Lakera Guard","description":"Audit and enforce safety policies on LLM requests and responses using the AI AWS Lakera plugin before they reach upstream LLMs."},"ai-a2a-proxy":{"name":"AI A2A Proxy","description":"Securely proxy A2A agents, with real-time RPC tracing and monitoring."},"ai-custom-guardrail":{"name":"AI Custom Guardrail","description":"Integrate with any 3rd-party Guardrail service, with customizable enforcement modes — choose whether violations block, log, or allow traffic to proceed."},"metering-and-billing":{"name":"Metering & Billing","description":"Meter API requests and AI token usage for usage-based billing. Supports flexible customer identification, custom pricing dimensions, and fine-grained traffic filtering. Integrates natively with Konnect Metering & Billing."},"governance":{"name":"Governance","description":"Enforce feature-level access control and credit-balance gating for API consumers. Integrates with Konnect Metering & Billing to allow or deny requests based on customer entitlements."}},"fields":{"service":"Service ID","route":"Route ID","consumer":"Consumer ID","consumer_group":"Consumer group ID"},"select":{"custom_badge_text":"This plugin is data plane node specific","cloned_from_badge":"Cloned from {link}","installed_custom_badge":"Installed custom","streamed_custom_badge":"Streamed custom","unavailable_tooltip":"This plugin is not available","already_exists":"This plugin is already applied to this resource","misc_plugins":"Other plugins","show_all":"Show all","view_more":"View more","view_less":"View less","filter":{"title":"Filter plugins","featured":"Featured","type":"Type","clear":"Clear"},"list":{"table_headers":{"name":"Plugin","description":"Description"}},"tabs":{"kong":{"title":"Kong plugins","description":"Kong plugins are bundled by default with Kong Gateway and are available across all control planes.","empty_title":"No plugins","empty_description":"No plugins are available."},"custom":{"title":"Custom plugins","description":"Custom plugins will be available in this control plane only.","disabled_tooltip":"Custom plugins are not available with this gateway. Create a hybrid or dedicated cloud gateway to leverage custom plugins.","fetch_error":"Unable to load some custom plugins. Bundled plugins are still available.","license_required":"Plugin cloning requires a license to be used.","empty_title":"No custom plugins","empty_description":"No custom plugins have been added to this control plane.","create":{"name":"Custom plugin","description":"Upload schema file to create custom plugin"}}},"highlighted_plugins":{"title":"Highlighted plugins"}},"form":{"button_deck_customize":"Customize before copying to CLI","disable_data_retrieving":"You do not have permission to select {scope}","disable_source_scope_change":"Changing the {scope} is not allowed when configuring a plugin under it","no_selection":"No selection...","fields":{"enabled":{"label":"Enabled","on_text":"This plugin is enabled","off_text":"This plugin is disabled"},"plugin_status":{"label":"Plugin status","text_on":"Enabled","text_off":"Disabled"},"instance_name":{"label":"Name","placeholder":"Enter a unique name","help":"A custom name for this plugin instance to help with identifying from the list view."},"condition":{"label":"Execution condition","placeholder":"Enter an expression","tooltip":"An expression used for conditional control over plugin execution. If the expression evaluates to true during the request flow, the plugin is executed; otherwise, it is skipped.","help":{"learn":"Learn more","about":"{link} about plugin conditions."}},"protocols":{"label":"Protocols","placeholder":"Select valid protocols for the plugin","placeholderWithDefaultValues":"Select valid protocols for the plugin. Default protocols: {protocols}","help":"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type."},"tags":{"label":"Tags","help":"An optional set of strings for grouping and filtering, separated by commas.","placeholder":"Tag1, Tag2, Tag3"}},"scoping":{"label":"Scoped","placeholder":"Search by name or UUID","disable_global_radio":"The plugin is set to 'scoped' by default. To apply a plugin globally, please navigate to the global plugin list page.","global":{"label":"Global","help":"All services, routes, and consumers"},"gateway_service":{"label":"Select a gateway service","help":"The gateway service to which this plugin configuration will apply","placeholder":"Select a gateway service","plural":"Gateway services"},"route":{"label":"Select a route","help":"The route that this plugin configuration will target","placeholder":"Select a route","plural":"Routes"},"consumer":{"label":"Select a consumer","help":"The consumer that this plugin configuration will target","placeholder":"Select a consumer","plural":"Consumers"},"consumer_group":{"label":"Select a consumer group","help":"The consumer group that this plugin configuration will target","placeholder":"Select a consumer group","plural":"Consumer groups"}},"grouping":{"plugin_configuration":{"title":"Plugin configuration","description":"Configuration parameters for this plugin. View advanced parameters for extended configuration.","empty":"This plugin does not have required parameters."},"advanced_parameters":{"view":"Show additional settings","hide":"Hide additional settings"}},"field_rules":{"at_least_one_of":"At least one of the following values is required: {parameters}.","only_one_of":"Exactly one of these parameters is required: {parameters}","mutually_required":"These values must be used together: {parameters}.","mutually_exclusive":"Only one of these values can be used: {parameters}.","only_one_of_mutually_required":"Exactly one of the following parameter combinations is required (all parameters within a chosen combination are required):"},"sections":{"plugin_scope":{"title":"Plugin scope","description":"Choose whether this plugin applies to all traffic (global) or is scoped to a specific service, route, or consumer."},"general_info":{"title":"General information","description":"Add details to help identify and manage your plugin."},"plugin_config":{"title":"Plugin configuration","description":"Set the plugin's behavior by defining its configuration settings."},"plugin_general_info":{"description":"Add a name or tags to help you identify and manage this plugin later."},"code_mode":{"title":"Code editor","description":"Configure this plugin by using YAML configuration."}}},"free-form":{"editor_mode":{"visual":"Visual editor","code":"Code editor"},"code-lens":{"entity":{"service":"Service","route":"Route","consumer":"Consumer","consumer_group":"Consumer group","certificate":"Certificate"},"field":{"name":"{entity} \\"{value}\\"","username":"Username \\"{value}\\"","custom_id":"Custom ID \\"{value}\\"","subject":"Subject \\"{value}\\"","expires_after":"Expires after \\"{value}\\""},"action":{"view_entity":"View {title}","copy_certificate":"Copy certificate","copy_uuid":"Copy UUID","retry_fetch":"Retry fetch (Hover for details)"},"unknown_error":"Unknown error"},"acl":{"mode":{"allow":"Use allow list","deny":"Use deny list"}},"ai-mcp-proxy":{"default_acl_item_label":"Default ACL #{index}","tool_item_label":"Tool #{index}"},"openid-connect":{"tabs":{"common":{"title":"Common Configuration Settings","description":"Parameters for enabling the OpenID Connect plugin. Set these parameters before adding authorization, authentication, or other advanced configuration details."},"authorization":{"title":"Authorization Configuration Settings","description":"Parameters for setting up claims-based authorization."},"advanced":{"title":"Advanced Configuration Settings","description":"Advanced parameters for manually configuring the OpenID Connect plugin."}},"auth_methods":{"label":"Authentication methods","placeholder":"Select authentication methods","hint":"Configure which OAuth and OpenID Connect features are supported.","km_label":"Auth methods","methods":{"authorization_code":"Authorization code flow","bearer":"Bearer access token","client_credentials":"Client credentials grant","password":"Passwords grant","introspection":"Introspection","userinfo":"UserInfo","kong_oauth2":"Kong OAuth","refresh_token":"Refresh token"},"session":{"label":"Session management","switch_label":"Enable Session Management","use_label":"Use sessions","use_description":"Issue a session cookie after successful authentication. Subsequent requests use the session instead of re-authenticating with the identity provider.","no_use_label":"Do not use sessions","no_use_description":"Authenticate each request using the configured authentication flow."}},"principals":{"header":"Who should manage authentication and credentials?","description":"Use External auth server to continue using your existing OAuth provider and authentication workflows. Use Kong Identity to adopt a newer principal-based model that centralizes and simplifies identity and authentication management.","learn_more":"Learn more.","kong_identity_label":"Kong Identity","kong_identity_description":"Use Kong Identity to authenticate OpenID Connect tokens. If all data plane nodes are running version 3.15 or later, you can also map requests to Kong Identity principals for advanced policies and integrations.","external_label":"External auth server","external_description":"Connect to your existing identity provider to manage authentication outside of Kong.","guide":{"title":"Add principals","description":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products.","description_external":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. Requires data plane nodes to be running version 3.15 or later.","create":"Create principal","learn_more":"Learn more"},"auth_server":{"label":"Authorization Server","info":"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.","placeholder":"Select an Authorization Server","create":"Create authorization server","create_hint":"You'll need to return here after creating an authorization server. Your progress won't be saved.","no_access_help":"You don't have access to browse authorization servers. Enter the issuer URL of your Kong Identity authorization server directly.","issuer_placeholder":"e.g., https://your-auth-server.identity.konghq.com"},"client":{"label":"Client","id_label":"Client id","secret_label":"Client secret","placeholder":"Select a client","id_placeholder":"e.g., kong-gateway-client","secret_placeholder":"e.g., your-client-secret","create":"Create client","create_hint":"You'll need to return here after creating a client. Your progress won't be saved.","add":"Add client","remove":"Remove client"},"leave_prompt":{"title":"Leave this page?","message":"Your unsaved changes will be lost if you continue.","action":"Leave page"},"dp_version_alert":"We detected that one or more data plane nodes are running a version earlier than 3.15. If principal lookup is enabled, requests handled by those data plane nodes will fail."},"lookup":{"collapse_label":"Show additional settings","toggle_label":"Use principal lookup","toggle_info":"Look up the authenticated principal in Kong Identity after token validation. Enable this when the validated token doesn't contain all of the identity data required for authorization or activity logging.","method":{"label":"Principal lookup method","placeholder":"Select a lookup method","help":"Principal lookup queries Kong Identity for the principal that matches the identity in a verified access token. This enables principal-aware policies and integrations. Requires all data plane nodes to be running version 3.15 or later.","kong_identity_label":"Kong Identity client","kong_identity_description":"Match principals using a token claim, defaulting to the subject (sub) claim.","custom_identity_label":"Custom claim","custom_identity_description":"Match principals using a custom JWT claim."},"custom_identity_name":{"label":"Custom identity name","help":"Enter the custom identity name used to look up the principal. Kong matches the value from the token claim to a principal with the same custom identity name and value.","placeholder":"e.g., Customer_ID"},"token_claim":{"label":"Token claim","placeholder":"e.g., user.employee_id","help":"Defaults to the subject (sub) claim, but you can specify a different token claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id).","help_custom":"The token claim whose value is matched against the Custom identity name. Defaults to the subject (sub) claim, but you can specify a different claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id)."},"error_on_miss":{"label":"If principal lookup fails","reject_label":"Reject the request","reject_description":"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.","continue_label":"Continue without a principal","continue_description":"Allow the request to continue without resolving a principal."},"match_consumer":{"label":"Use linked consumers","description":"Use the consumer linked to the authenticated principal so existing consumer-based plugins and policies continue to work.","link":"Learn how to link a consumer."},"match_consumer_groups":{"label":"Use linked consumer groups","description":"Use consumer groups linked to the authenticated principal so existing consumer group policies and plugins continue to work. Consumer groups can be linked through principal metadata.","link":"Learn how to link a consumer group."}},"advanced_fields":{"client_jwk_link_label":"Client JWK","verify_signature_description":"JSON Web Keys are automatically fetched from the issuer's well-known endpoint. Enter a JWKS URI below to override this."}},"request-callout":{"entity_name":"Request callout","by_lua_placeholder":"Enter Lua script here..."},"jwt-signer":{"keyset_url_required":"Provide a valid HTTP/HTTPS URL to ensure signing works correctly when \\"{signingField}\\" is enabled and \\"{headerField}\\" is set."},"metering-and-billing":{"sections":{"plugin_config":{"title":"Plugin configuration","description":"Configure the Metering & Billing plugin."},"metering":{"title":"What to meter"},"subject":{"title":"Who to bill (subject)","description":"Define how billing subjects are identified."},"ingestion":{"title":"Connection","description":"Configure how metered data is delivered to the billing service."},"queue":{"title":"Queue","description":"Configure internal event queue settings."}},"fields":{"meter_api_requests":{"label":"Meter API requests","description":"Emit a usage event for each API Gateway request."},"meter_ai_token_usage":{"label":"Meter AI token usage","description":"Emit events for LLM input and output tokens on AI Gateway requests. Each request produces separate input/output events so they can be priced independently."},"ingest_endpoint":{"description":"The URL of the metering data ingest endpoint.","help":"For Konnect Metering & Billing, use the regional endpoint from your Metering & Billing settings. For self-hosted OpenMeter, use your ingest URL."},"api_token":{"description":"Bearer token for authenticating requests to the ingest endpoint."},"look_up_value_in":{"label":"Look up subject in","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"e.g. x-customer-id, x-api-key, x-tenant"},"queue":{"max_coalescing_delay":{"label":"Max coalescing delay (s)"},"initial_retry_delay":{"label":"Initial retry delay (s)"},"max_retry_delay":{"label":"Max retry delay (s)"},"max_retry_time":{"label":"Max retry time (s)"}},"attributes":{"title":"Event attributes","description":"Attach custom dimensions to metered events.","look_up_value_in":{"placeholder":"e.g., x-priority-id"},"event_property_name":{"placeholder":"e.g., priority"}},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"}}},"governance":{"unavailable_kong_manager":"The Governance plugin can't be configured in Kong Manager yet.","sections":{"configuration":{"title":"Plugin configuration","description":"Configure the Governance plugin subject, feature, and connection settings."},"governance":{"title":"Governance settings","description":"Configure access control behavior and response codes."},"subject":{"title":"Whose access to govern (subject)"},"feature":{"title":"Feature"},"connection":{"title":"Connection","description":"Configure how the plugin connects to the governance query endpoint."},"redis":{"title":"Redis"},"cache_sync":{"title":"Cache and sync"}},"fields":{"look_up_value_in":{"label":"Whose access to govern (Look up subject in)","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"Name of the header or query parameter that carries the customer identifier."},"feature_key":{"label":"Feature to govern access","help":"Feature that will control access to the scope where the plugin is applied.","create_feature":"+ Create new feature","unavailable":"You don't have access to metering features. Enable Metering & Billing in your Konnect organization to configure the feature to govern.","load_error":"Could not load features from the governance service."},"governance_endpoint":{"help":"For Konnect Metering & Billing, use the regional endpoint for Metering & Billing Query Governance Access. For self-hosted OpenMeter, use the Query Governance Access endpoint of your self-hosted instance."},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"},"sync_rate":{"label":"Sync rate (s)"},"refresh_interval":{"label":"Refresh interval (s)"},"max_stale_seconds":{"label":"Max stale seconds"},"l1_ttl":{"label":"L1 TTL (s)"},"l2_ttl":{"label":"L2 TTL (s)"},"credit_balance_required":{"label":"Credit balance lookup","yes_label":"Yes","yes_description":"A credit balance above zero is required for access to this feature.","no_label":"No","no_description":"Customers can access this feature regardless of their credit balance."},"fail_policy":{"label":"Plugin failure mode","allow_label":"Allow access","allow_description":"In the case of plugin failure, allow access to feature.","deny_label":"Deny access","deny_description":"In the case of plugin failure, deny access to feature."},"deny_unknown_customers":{"label":"Unknown customer access","allow_label":"Allow access","allow_description":"The gateway will allow access for unknown customers.","deny_label":"Deny access","deny_description":"The gateway will deny access for unknown customers."},"response":{"label":"Response mapping","columns":{"code":"Response code","status":"Status code","message":"Message"},"defaults":{"NO_CREDIT_AVAILABLE":"Customer has no credit available.","USAGE_LIMIT_REACHED":"Customer has reached usage limit for feature.","FEATURE_UNAVAILABLE":"Feature is not available for the customer.","FEATURE_NOT_FOUND":"Feature not found.","CUSTOMER_NOT_FOUND":"Customer is not found by subject."}}}},"datakit":{"plugin_config":{"title":"Flow editor"},"description_code":"Configure this plugin by using YAML configuration. If you are copy/pasting in examples from the documentation - paste from below the <code>config</code> block.","description_flow":"Build flows visually with a drag-and-drop editor for Datakit. Visualize node connections, inputs, and outputs as you design.","description_example":"Start with a use case:","detected_config_format":"Detected {format} configuration. Do you want to convert it to Datakit configuration?","detected_config_format_title":"Convert configuration","detected_config_format_confirm":"Convert","examples":{"authenticateThirdPartyWithDynamicUrl":"Authenticate Kong to a third-party service resolved at runtime","authenticateThirdParty":"Authenticate Kong to a third-party service","authenticateWithVaultSecret":"Authenticate to a third-party service using Vault secrets","clearHeaders":"Clear request headers","combineTwoApisIntoOneResponse":"Combine multiple API responses","conditionallyStoreCachedItems":"Conditionally fetch or store cache data","convertJsonIntoXml":"Transform JSON into XML","convertJsonToXmlAndBack":"Transform JSON into XML and back","convertXmlIntoJson":"Transform XML into JSON","manipulateRequestHeaders":"Manipulate request headers"},"flow_editor":{"mode":"Flow editor","name":"Datakit flow editor","cta":"Go to flow editor","disabled_tooltip":"The flow editor is unavailable due to critical configuration errors or features not supported in the flow editor:<br/><code>{reason}</code>","expand_panel":"Expand panel","collapse_panel":"Collapse panel","return_to_config":"Return to plugin configuration","canvas_panel":{"request":"Request","response":"Response","node_count_plural":"{count} nodes","node_count_singular":"1 node"},"panel_segments":{"nodes":"Nodes","resources":{"title":"Resources","vault":{"title":"Vault secrets","add_button":"Add vault resource","name_exists_error":"Vault name already exists","name_required_error":"Vault name is required","edit":"Edit","delete":"Delete"},"cache":{"title":"Cache configuration","add_button":"Add cache configuration","strategy_options":{"memory":"Memory","redis":"Redis"},"select_redis_configuration":"Select a shared Redis configuration","inline_config":"Inline config","inline_config_preview":"You are using a dedicated Redis configuration, This is a preview of your current setup, please edit it in code editor"}}},"vault_secret_picker":{"title":"Add secret to Datakit","proceed_button_text":"Add secret","secret_name":{"label":"Secret name","placeholder":"Enter a name","help":"A unique identifier for this secret in your Datakit configuration"}},"node_panel":{"title":"Node types","description":"Drag a node onto the canvas to add it to your data flow.","groups":{"external_interaction":"External interaction","control_flow":"Control flow","data_transformation":"Data transformation","data_value":"Data value","authentication":"Authentication"}},"examples":"Examples","debug":{"label":"Debug","description":"Enables detailed error messages in client responses, making debugging easier. <a href=\\"https://developer.konghq.com/plugins/datakit/#debugging\\" target=\\"_blank\\">See the docs</a> for details."},"actions":{"zoom_in":"Zoom in","zoom_out":"Zoom out","fit_view":"Zoom to fit","auto_layout":"Auto layout","undo":"Undo","redo":"Redo","duplicate":"Duplicate","remove_from_branch":"Remove from branch","delete":"Delete","view_docs":"View docs","done":"Done"},"node_types":{"call":{"summary":"Call a third-party API","description":"Send an HTTP request and retrieve the response."},"jq":{"summary":"Transform data and cast variables with jq","description":"The <code>jq</code> node executes a jq script for processing JSON. See the official <a href=\\"https://jqlang.org\\" target=\\"_blank\\">jq docs</a> for more details."},"exit":{"summary":"Return directly to the client","description":"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},"property":{"summary":"Get and set Kong Gateway-specific data","description":"Get and set Kong Gateway host and request properties."},"static":{"summary":"Configure static input values ahead of time","description":"Emits static values to be used as inputs for other nodes. The <code>static</code> node can help you with hardcoding some known value for an input."},"branch":{"summary":"Execute nodes based on matching input conditions","description":"Execute different nodes based on matching input conditions, such as a cache hit or miss."},"cache":{"summary":"Store and fetch cached data","description":"Store data into cache and fetch cached data from cache."},"xml_to_json":{"summary":"Transform XML to JSON","description":"Transform XML to JSON."},"json_to_xml":{"summary":"Transform JSON to XML","description":"Transform JSON to XML."},"jwt_decode":{"summary":"Decode JWT headers and claims","description":"Parse a JWT without verifying its signature."},"jwt_sign":{"summary":"Create and sign JWTs","description":"Generate a signed JWT from configured claims and a signing key."},"jwt_verify":{"summary":"Verify JWT signature and claims","description":"Verify a JWT signature and validate claims such as exp, nbf, iss, and aud."},"request":{"name":"request","description":"Reads incoming client request properties. You cannot specify request node input."},"response":{"name":"response","description":"Updates properties of the outgoing client response."},"service_request":{"name":"service request","description":"Updates properties of the request sent to the service being proxied to."},"service_response":{"name":"service response","description":"Reads response properties from the service being proxied to."},"vault":{"name":"Vault","description":"Vault is a tool for securely accessing secrets."}},"node_properties":{"name":"Name","configuration":"Configuration","input":{"label":"Inputs configuration","placeholder":"Select a source","add_button":"Add an input","or":"or","input":"Input","fields":"Fields","source":"Source","tooltip":"Fields are part of the node input. A source can connect to either the fields or the input, but not both."},"input_name":{"label":"Input name","placeholder":"Enter an input name"},"jq":{"label":"jq script","help":"Refer to {link} for full documentation."},"output_value":{"label":"Output value","value_name":"Value name","value":"Value","add_button":"Add a value"},"property":{"get":"get","set":"set"},"branch":{"placeholder":"Select nodes"},"jwt":{"static_claims":{"label":"Static claims","help":"Enter a JSON object. It will be stored as the node's static claims map.","errors":{"invalid_json_object":"Static claims must be a valid JSON object"}}},"errors":{"invalid_identifier_format":"{fieldName} must start with a letter or underscore and contain only letters, numbers, underscores, or hyphens","invalid_url_format":"Not a valid URL format","not_empty":"{fieldName} is required","not_float":"{fieldName} must be a float","not_integer":"{fieldName} must be an integer","not_number":"{fieldName} must be a number","not_unique":"{fieldName} must be unique","number_range":"{fieldName} must be between {min} and {max}","string_len_range":"{fieldName} must be between {minLength} and {maxLength} characters","reserved_node_name":"\\"{nodeName}\\" is a reserved node name","attributes_required":"Provide at least one of attributes_block_name or attributes_name_prefix"}},"error":{"invalid_connection":"Invalid connection","branch_cycle":"Cannot create a circular branch relationship"},"confirm":{"title":"Connection conflict","message":{"confirm":"Are you sure you want to make this change?","switch":"You can connect an output source to either all inputs of a node or to individual inputs.","override":"Each input can connect to only one output, but one output can connect to many inputs.","branch_replace":"This node already belongs to another branch. Move it to the new branch?"},"proceed":"Yes, update"},"leave_confirm":"Leave current page? Changes you made may not be saved."},"code_editor":{"mode":"Code editor"}},"vault_picker":{"component_error":"The vault secret picker is not available"},"tag_helper":"Use comma to separate values. eg: value1, value2","foreign_placeholder":"Enter a UUID of {entity}"}}`), Fv = { title: "Redis configuration", managed_ui: { title: "Redis", shared_configuration: { label: "Use shared configuration", description: "Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.", badge: "Recommended" }, dedicated_configuration: { label: "Use locally-scoped configuration", description: "Create and use a Redis configuration specifically for this plugin." }, selector: { placeholder: "Filter Redis configurations...", create_new: "New Redis" } }, shared_configuration: { label: "Shared configuration", description: "Select an existing shared Redis configuration or create a new one. Changes to this configuration automatically apply to all associated plugins.", title: "Shared Redis configuration", error: "Fetching shared Redis configurations failed." }, dedicated_configuration: { label: "Dedicated configuration", description: "Create a Redis configuration that is used only by this plugin. Changes won’t affect other plugins." }, config_card: { common_fields: { created_at_label: "Created at", updated_at_label: "Last updated at", type_label: "Redis type" } } }, Kv = { plugin: "plugin" }, Dv = { key_auth_identity_realms: { cp_label: "Current control plane", cp_group_label: "Control plane", realm_group_label: "Realms (can only select one)" }, kong_identity: { title: "Who should manage authentication and credentials?", description_with_realms: "Use Consumers or centrally managed consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.", description_without_realms: "Use Consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.", learn_more: "Learn more.", incompatible_data_plane_alert: "We detected that one or more data plane nodes are running a version earlier than 3.15. Requests handled by those data plane nodes will use consumers instead of Kong Identity principals.", kong_identity_label: "Kong Identity", kong_identity_description_key_auth: "Use Kong Identity to authenticate API keys and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.", kong_identity_description_basic_auth: "Use Kong Identity to authenticate Basic Auth credentials and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.", consumers_label: "Consumers", consumers_description_key_auth: "Use consumer-managed API keys. Consumers provide their API key in a request header, query parameter, or request body to authenticate requests.", consumers_description_basic_auth: "Use consumer-managed Basic Auth credentials. Consumers authenticate requests using a username and password.", centrally_managed_label: "Centrally managed consumers", centrally_managed_description: "Authenticate centrally managed consumers in Konnect using identity realms. Identity realms are scoped to the control plane by default.", identity_realms_required: "To use centrally managed consumers, you must select at least one Centrally managed consumer realm.", error_on_miss_label: "If principal lookup fails", error_on_miss_reject_label: "Reject the request", error_on_miss_reject_description: "Treat the request as unauthenticated if Kong Identity cannot resolve the principal.", error_on_miss_continue_label: "Continue without a principal", error_on_miss_continue_description: "Allow the request to continue without resolving a principal.", configure_title: "Configure Kong Identity", configure_description: "Kong Identity uses principals to represent authenticated services or applications. Create your first principal in Kong Identity to start using principal-based authentication. On data plane nodes running versions earlier than 3.15, authentication continues using consumers.", create_principal: "Create principal", configure_learn_more: "Learn more", leave_prompt_title: "Leave this page?", leave_prompt_message: "Your unsaved changes will be lost if you continue.", leave_prompt_action: "Leave page" } }, jv = { window_type: { label: "Rate limit window type", help: "Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window&#39;s counters.</li></ul>", options: { fixed: "Fixed", sliding: "Sliding" } }, request_limits: { title: "Request limits", subtitle: "Set one or more limits on the number of API requests allowed within a defined timeframe.", label: "Limit", label_index: "Limit {index}", request_number: "Request number", time_interval: "Time interval", interval_determiner: "Every", seconds: "Seconds" }, error_message: { label: "Error message", code_placeholder: "Code message", message_placeholder: "Error message", help: "Set a custom error code and message to be returned when the rate limit is exceeded." }, start_with_a_use_case: "Start with a use case:", use_cases: { fixed: { hourly_500: { label: "500 requests every hour", description: "A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit." }, half_hourly_200: { label: "200 requests every 30 minutes", description: "Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits." }, daily_500: { label: "500 requests every day", description: "A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences." } }, sliding: { hourly_100: { label: "100 requests every hour", description: "Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset." }, half_hourly_300: { label: "300 requests every 30 minutes", description: "Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made." }, hourly_500: { label: "500 requests every hour", description: `Each user is allowed 500 requests per hour.
33
+ const $v = { cancel: "Cancel", view_configuration: "View configuration", create: "New plugin", create_custom: "Create", configure: "Configure", copy_id: "Copy ID", copy_json: "Copy JSON", edit: "Edit", enable: "Enable", enabled: "Enabled", disable: "Disable", delete: "Delete", disabled: "Disabled", confirm_delete: "Yes, delete", view: "View details", configure_dynamic_ordering: "Configure dynamic ordering", go_to_plugins: "Go to plugins", save: "Save", add_entity: "Add {entity}", remove_entity: "Remove {entity}", loading_spinner: "Loading..." }, Ov = { title: "Configuration", message: "Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML, JSON, or Terraform. This allows for straightforward importing into APIOps tools like decK with YAML, Insomnia and cURL with JSON, or Terraform products with Terraform.", yaml: "YAML", terraform: "Terraform", json: "JSON", deck: "decK" }, Pv = { success: "Copied {val} to clipboard", success_brief: "Successfully copied to clipboard", tooltip: "Copy {label}", success_tooltip: "Copied!" }, Nv = { general: "Plugins could not be retrieved", delete: "The plugin could not be deleted at this time.", copy: "Failed to copy to clipboard", load_results: "Error loading available plugins", load_schema: "Error loading plugin schema" }, Rv = { placeholder: { konnect: "Filter by name", exact: "Filter by exact instance name or ID", kongManager: "Filter by exact instance name or ID", select: "Filter plugins", search_plugins: "Search plugins", search: "Search", tags_filter: "Type part of a tag and press Enter", scope_filter: "Select scopes" }, filter: { field: { enabled: "Enabled" }, tags_invalid: "Tags can't contain commas, slashes, or leading/trailing spaces" }, no_results: 'No results found for "{filter}"' }, Mv = { new: "New" }, Lv = /* @__PURE__ */ JSON.parse(`{"title":"Plugins","list":{"toolbar_actions":{"new_plugin":"New plugin"},"table_headers":{"applied_to":"Applied to","applied_to_badges":{"consumer":"Consumer","global":"Global","route":"Route","service":"Service","consumer_group":"Consumer group"},"id":"ID","plugin":"Plugin","name":"Name","instance_name":"Instance name","scope":"Scope","status":"Status","ordering":"Ordering","ordering_badge":{"dynamic":"Dynamic","static":"Static"},"enabled":"Enabled","tags":"Tags","updated_at":"Last modified"},"empty_state":{"title":"Configure a new plugin","description":"Plugins are used to extend Kong functionality."},"empty_state_v2":{"title":"Configure your first plugin","description":"Plugins extend gateways functionalities, offering features like authentication, rate limiting, and request transformations to enhance security and performance.","create_cta":"New plugin","group":"Plugins created in gateways within this group will automatically appear here.","learn_more":"Learn more"}},"meta":{"basic-auth":{"name":"Basic Authentication","credential_name":"Basic Auth Credential","description":"Add Basic Authentication to your services"},"hmac-auth":{"name":"HMAC Authentication","credential_name":"HMAC Credential","description":"Add HMAC Authentication to your services"},"jwt-signer":{"name":"JWT Signer","description":"Verify and (re-)sign one or two tokens in a request"},"jwt":{"name":"JWT","credential_name":"JWT Credential","description":"Verify and authenticate JSON Web Tokens"},"key-auth":{"name":"Key Authentication","credential_name":"Key Auth Credential","description":"Add key authentication to your services"},"key-auth-enc":{"name":"Key Authentication Encrypted","credential_name":"Key Auth Encrypted","description":"Add key authentication to your services with an encrypted token"},"ldap-auth-advanced":{"name":"LDAP Authentication Advanced","description":"Integrate Kong with a LDAP server"},"ldap-auth":{"name":"LDAP Authentication","description":"Integrate Kong with a LDAP server"},"oauth2-introspection":{"name":"OAuth 2.0 Introspection","description":"Integrate Kong with a third-party OAuth 2.0 Authorization Server"},"oauth2":{"name":"OAuth 2.0 Authentication","credential_name":"OAuth 2.0 Application","description":"Add OAuth 2.0 authentication to your services"},"openid-connect":{"name":"OpenID Connect","description":"Integrate Kong with a third-party OpenID Connect 1.0 provider"},"mtls-auth":{"name":"Mutual TLS Authentication","description":"Secure routes and services with client certificate and mutual TLS authentication"},"vault-auth":{"name":"Vault Authentication","description":"Secure routes and services with an access token and secret token, stored securely via Vault"},"bot-detection":{"name":"Bot Detection","description":"Detect and clock bots or custom clients"},"cors":{"name":"CORS","description":"Allow developers to make requests from the browser"},"ip-restriction":{"name":"IP Restriction","description":"Whitelist or blacklist IPs that can make requests"},"opa":{"name":"OPA","description":"Authorize requests against Open Policy Agent"},"kubernetes-sidecar-injector":{"name":"Kubernetes Sidecar Injector","description":"This plugin will inject Kong dataplane nodes and form a service mesh on top of Kubernetes"},"request-validator":{"name":"Request Validator","description":"Validate requests before they reach their upstream service."},"acl":{"name":"ACL","credential_name":"Access Control Group","description":"Control which consumers can access services"},"canary":{"name":"Canary Release","description":"Methodically roll out software changes to a subset of users"},"forward-proxy":{"name":"Forward Proxy","description":"Allow Kong to connect to intermediary transparent HTTP proxies"},"proxy-cache":{"name":"Proxy Caching","description":"Cache and serve commonly requested responses in Kong"},"proxy-cache-advanced":{"name":"Proxy Caching Advanced","description":"Cache and serve commonly requested responses in Kong"},"graphql-proxy-cache-advanced":{"name":"GraphQL Proxy Caching Advanced","description":"Cache and serve commonly requested responses in Kong"},"rate-limiting-advanced":{"name":"Rate Limiting Advanced","description":"Rate-limit how many HTTP requests a developer can make"},"rate-limiting":{"name":"Rate Limiting","description":"Rate-limit how many HTTP requests a developer can make"},"graphql-rate-limiting-advanced":{"name":"GraphQL Rate Limiting Advanced","description":"Rate-limit how many HTTP requests a developer can make"},"mocking":{"name":"Mocking","description":"Provide mock endpoints to test your APIs in development against your services"},"request-size-limiting":{"name":"Request Size Limiting","description":"Block requests with bodies greater than a specific size"},"request-termination":{"name":"Request Termination","description":"Terminate all requests with a specific response"},"response-ratelimiting":{"name":"Response Rate Limiting","description":"Rate-Limiting based on a custom response header value"},"route-by-header":{"name":"Route by Header","description":"Route requests based on request headers"},"ai-proxy":{"name":"AI Proxy","description":"Directly call a configured LLM, with mediated security and tuning parameters, and using standardised Kong request and response formats."},"ai-prompt-decorator":{"name":"AI Prompt Decorator","description":"Prepend and append chat prompts to AI Proxy plugin LLM requests."},"ai-prompt-template":{"name":"AI Prompt Template","description":"Define a set of templates, containing string variable placeholders, that can be consumed by users when used with the AI Proxy plugin."},"ai-prompt-guard":{"name":"AI Prompt Guard","description":"Define a set of valid, and a set of invalid, regular expression patterns when calling LLM models with the AI Proxy plugin."},"ai-request-transformer":{"name":"AI Request Transformer","description":"Use an LLM to transform API request from a user, before sending to the upstream service."},"ai-response-transformer":{"name":"AI Response Transformer","description":"Use an LLM to transform API responses from the upstream service, before returning to the user."},"ai-rate-limiting-advanced":{"name":"AI Rate Limiting Advanced","description":"Provides rate limiting for the providers used by any AI plugins."},"ai-azure-content-safety":{"name":"AI Azure Content Safety","description":"Allows checking and auditing of AI-Proxy plugin messages, using Azure Cognitive Services, before proxying to upstream large-language model."},"aws-lambda":{"name":"AWS Lambda","description":"Invoke and manage AWS Lambda functions from Kong"},"azure-functions":{"name":"Azure Functions","description":"Invoke Azure functions"},"openwhisk":{"name":"OpenWhisk","description":"Invoke and manage OpenWhisk actions from Kong"},"pre-function":{"name":"Kong Functions (Pre-Plugins)","description":"Add and manage custom lua functions to run before other plugins"},"post-function":{"name":"Kong Functions (Post-Plugins)","description":"Add and manage custom lua functions to run after other plugins"},"datadog":{"name":"Datadog","description":"Visualize metrics on Datadog"},"prometheus":{"name":"Prometheus","description":"Export performance metrics to Prometheus"},"zipkin":{"name":"Zipkin","description":"Propagate zipkin spans and report spans to a zipkin server"},"collector":{"name":"Collector","description":"Automate spec-driven development & anomaly detection (Early Access)"},"response-transformer-advanced":{"name":"Response Transformer Advanced","description":"Transform the response sent by the upstream server on the fly on Kong, before returning the response to the client."},"correlation-id":{"name":"Correlation ID","description":"Correlate requests and responses using a unique ID"},"request-transformer-advanced":{"name":"Request Transformer Advanced","description":"Use powerful regular expressions, variables and templates to transform API requests"},"request-transformer":{"name":"Request Transformer","description":"Modify the request before hitting the upstream server"},"response-transformer":{"name":"Response Transformer","description":"Modify the upstream response before returning it to the client"},"route-transformer-advanced":{"name":"Route Transformer Advanced","description":"Transforms the routing on the fly in Kong, changing the upstream server/port/path to hit"},"kafka-upstream":{"name":"Kafka Upstream","description":"Transform requests into Kafka messages in a topic"},"degraphql":{"name":"DeGraphQL","description":"Transform a GraphQL upstream into a REST API"},"exit-transformer":{"name":"Exit Transformer","description":"Customize Kong exit responses sent downstream"},"jq":{"name":"jq","description":"Transform JSON objects included in API requests or responses using jq programs"},"file-log":{"name":"File Log","description":"Append request and response data to a log file on disk"},"http-log":{"name":"HTTP Log","description":"Send request and response logs to an HTTP server"},"loggly":{"name":"Loggly","description":"Send request and response logs to Loggly"},"statsd-advanced":{"name":"StatsD Advanced","description":"Send traffic and Kong performance metrics to StatsD"},"statsd":{"name":"StatsD","description":"Send request and response logs to StatsD"},"syslog":{"name":"Syslog","description":"Send request and response logs to Syslog"},"tcp-log":{"name":"TCP Log","description":"Send request and response logs to a TCP server"},"udp-log":{"name":"UDP Log","description":"Send request and response logs to a UDP server"},"kafka-log":{"name":"Kafka Log","description":"Publish request and response logs to a Kafka topic"},"session":{"name":"Session","description":"Sessions for Kong authentication"},"upstream-tls":{"name":"Upstream TLS","description":"Enable TLS on upstream traffic by providing Kong with a list of trusted certificates."},"application-registration":{"name":"Portal Application Registration","description":"Allow portal developers to register applications against services"},"konnect-application-auth":{"name":"Konnect Application Auth","description":"Allow Konnect portal developers to register applications against services"},"acme":{"name":"ACME","description":"Let's Encrypt and ACMEv2 integration with Kong"},"grpc-gateway":{"name":"gRPC Gateway","description":"Access gRPC services through HTTP REST"},"grpc-web":{"name":"gRPC Web","description":"Allow browser clients to call gRPC services"},"upstream-timeout":{"name":"Upstream Timeout","description":"Configure read, send and connect timeouts to an upstream"},"opentelemetry":{"name":"OpenTelemetry","description":"Propagate distributed tracing spans and report low-level spans to a OTLP-compatible server"},"websocket-validator":{"name":"WebSocket Validator","description":"Validate individual WebSocket messages against to a user-specified schema before proxying them"},"websocket-size-limit":{"name":"WebSocket Size Limit","description":"Allows operators to specify a maximum size for incoming WebSocket messages"},"tls-metadata-headers":{"name":"TLS Metadata Headers","description":"Detects client certificates in requests, retrieves the TLS metadata, and proxies this metadata via HTTP headers"},"tls-handshake-modifier":{"name":"TLS Handshake Modifier","description":"Requests the client certificate and if it exists, makes it available to other plugins acting on the request"},"oas-validation":{"name":"OAS Validation","description":"Validate HTTP requests and responses based on an API specification."},"jwe-decrypt":{"name":"Kong JWE Decrypt","description":"The Kong JWE Decrypt plugin makes it possible to decrypt an inbound token(JWE) in a request."},"xml-threat-protection":{"name":"XML Threat Protection","description":"Reduce the risk of XML attacks by checking the structure of XML payloads."},"saml":{"name":"SAML","description":"Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorization data between an identity provider and a service provider."},"app-dynamics":{"name":"AppDynamics","description":"This plugin integrates Kong with the AppDynamics APM platform so that proxy requests handled by Kong can be identified and analyzed in AppDynamics."},"json-threat-protection":{"name":"JSON Threat Protection","description":"Apply size checks on JSON payload and minimize risk of content-level attacks"},"standard-webhooks":{"name":"Standard Webhooks","description":"Validate incoming webhooks adhere to the Standard Webhooks specification, to which Kong is a contributor"},"ai-proxy-advanced":{"name":"AI Proxy Advanced","description":"Route across different LLMs and models using advanced load balancing algorithms, including semantic routing."},"ai-semantic-cache":{"name":"AI Semantic Cache","description":"Semantically cache AI requests to any LLM to reduce latency, improve end-user experiences and optimize GenAI costs."},"ai-semantic-prompt-guard":{"name":"AI Semantic Prompt Guard","description":"Semantically and intelligently create allow and deny lists of topics that can be requested across every LLM."},"header-cert-auth":{"name":"Header Certificate Authentication","description":"Authenticate clients with MTLS certificate passed in header by a WAF or load balancer"},"upstream-oauth":{"name":"Upstream OAuth","description":"Configure Kong to obtain a OAuth2 token to consume an upstream API"},"confluent":{"name":"Confluent","description":"Streamlines integration with Confluent Cloud and transforms requests into messages published to a Confluent topic."},"service-protection":{"name":"Service Protection","description":"Prevent abuse and protect services with absolute limits on the number of requests reaching the service."},"injection-protection":{"name":"Injection Protection","description":"Protect against injection attacks by rejecting requests that match common injections patterns."},"redirect":{"name":"Redirect","description":"Redirect incoming requests to a new URL"},"kafka-consume":{"name":"Kafka Consume","description":"Consume messages from Kafka topics over HTTP protocols."},"confluent-consume":{"name":"Confluent Consume","description":"Consume messages from Confluent Kafka topics over HTTP protocols"},"request-callout":{"name":"Request Callout","description":"Callout to third party APIs as part of request processing."},"ai-sanitizer":{"name":"AI Sanitizer","description":"Sanitize personal or sensitive information from prompts before sending to LLM."},"ai-rag-injector":{"name":"AI RAG Injector","description":"Attach contextual knowledge from vector databases with flexible template to LLM prompts."},"datakit":{"name":"Datakit","description":"Datakit is a workflow engine for working with external APIs."},"ai-prompt-compressor":{"name":"AI Prompt Compressor","description":"The AI Prompt Compressor reduces costs associated with LLMs by compressing prompts."},"solace-upstream":{"name":"Solace Upstream","description":"Transform requests into Solace messages in a Solace queue or topic."},"ai-aws-guardrails":{"name":"AI AWS GuardRails","description":"The AI AWS GuardRails enables enforcement of introspection with the AWS GuardRails service for all requests processed by the AI Proxy plugin."},"ace":{"name":"Konnect Access Control Enforcement","description":"Enable Developer Self-Service for Konnect Dev Portals."},"solace-consume":{"name":"Solace Consume","description":"Consume messages from Solace and make them available through HTTP endpoints."},"solace-log":{"name":"Solace Log","description":"Publish request and response logs to a Solace topic."},"ai-llm-as-judge":{"name":"AI LLM Judge","description":"Evaluate LLM responses with an external LLM service and use accuracy scores to drive dynamic load balancing for \`llm/v1/chat\` requests."},"ai-mcp-proxy":{"name":"AI MCP Proxy","description":"Convert APIs into MCP tools, proxy MCP servers, expose multiple MCP tools, and observe MCP traffic in real time."},"ai-gcp-model-armor":{"name":"AI GCP Model Armor","description":"Audit and validate AI Proxy messages with Google Cloud Model Armor before forwarding them to an upstream LLM."},"ai-mcp-oauth2":{"name":"AI MCP OAuth2","description":"Secure MCP server access with OAuth2 authentication."},"ai-semantic-response-guard":{"name":"AI Semantic Response Guard","description":"Permit or block prompts based on semantic similarity to known LLM responses, preventing misuse of \`llm/v1/chat\` or \`llm/v1/completions\` requests."},"ai-lakera-guard":{"name":"AI Lakera Guard","description":"Audit and enforce safety policies on LLM requests and responses using the AI AWS Lakera plugin before they reach upstream LLMs."},"ai-a2a-proxy":{"name":"AI A2A Proxy","description":"Securely proxy A2A agents, with real-time RPC tracing and monitoring."},"ai-custom-guardrail":{"name":"AI Custom Guardrail","description":"Integrate with any 3rd-party Guardrail service, with customizable enforcement modes — choose whether violations block, log, or allow traffic to proceed."},"metering-and-billing":{"name":"Metering & Billing","description":"Meter API requests and AI token usage for usage-based billing. Supports flexible customer identification, custom pricing dimensions, and fine-grained traffic filtering. Integrates natively with Konnect Metering & Billing."},"governance":{"name":"Governance","description":"Enforce feature-level access control and credit-balance gating for API consumers. Integrates with Konnect Metering & Billing to allow or deny requests based on customer entitlements."}},"fields":{"service":"Service ID","route":"Route ID","consumer":"Consumer ID","consumer_group":"Consumer group ID"},"select":{"custom_badge_text":"This plugin is data plane node specific","cloned_from_badge":"Cloned from {link}","installed_custom_badge":"Installed custom","streamed_custom_badge":"Streamed custom","unavailable_tooltip":"This plugin is not available","already_exists":"This plugin is already applied to this resource","misc_plugins":"Other plugins","show_all":"Show all","view_more":"View more","view_less":"View less","filter":{"title":"Filter plugins","featured":"Featured","type":"Type","clear":"Clear"},"list":{"table_headers":{"name":"Plugin","description":"Description"}},"tabs":{"kong":{"title":"Kong plugins","description":"Kong plugins are bundled by default with Kong Gateway and are available across all control planes.","empty_title":"No plugins","empty_description":"No plugins are available."},"custom":{"title":"Custom plugins","description":"Custom plugins will be available in this control plane only.","disabled_tooltip":"Custom plugins are not available with this gateway. Create a hybrid or dedicated cloud gateway to leverage custom plugins.","fetch_error":"Unable to load some custom plugins. Bundled plugins are still available.","license_required":"Plugin cloning requires a license to be used.","empty_title":"No custom plugins","empty_description":"No custom plugins have been added to this control plane.","create":{"name":"Custom plugin","description":"Upload schema file to create custom plugin"}}},"highlighted_plugins":{"title":"Highlighted plugins"}},"form":{"button_deck_customize":"Customize before copying to CLI","disable_data_retrieving":"You do not have permission to select {scope}","disable_source_scope_change":"Changing the {scope} is not allowed when configuring a plugin under it","no_selection":"No selection...","fields":{"enabled":{"label":"Enabled","on_text":"This plugin is enabled","off_text":"This plugin is disabled"},"plugin_status":{"label":"Plugin status","text_on":"Enabled","text_off":"Disabled"},"instance_name":{"label":"Name","placeholder":"Enter a unique name","help":"A custom name for this plugin instance to help with identifying from the list view."},"condition":{"label":"Execution condition","placeholder":"Enter an expression","tooltip":"An expression used for conditional control over plugin execution. If the expression evaluates to true during the request flow, the plugin is executed; otherwise, it is skipped.","help":{"learn":"Learn more","about":"{link} about plugin conditions."}},"protocols":{"label":"Protocols","placeholder":"Select valid protocols for the plugin","placeholderWithDefaultValues":"Select valid protocols for the plugin. Default protocols: {protocols}","help":"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type."},"tags":{"label":"Tags","help":"An optional set of strings for grouping and filtering, separated by commas.","placeholder":"Tag1, Tag2, Tag3"}},"scoping":{"label":"Scoped","placeholder":"Search by name or UUID","disable_global_radio":"The plugin is set to 'scoped' by default. To apply a plugin globally, please navigate to the global plugin list page.","global":{"label":"Global","help":"All services, routes, and consumers"},"gateway_service":{"label":"Select a gateway service","help":"The gateway service to which this plugin configuration will apply","placeholder":"Select a gateway service","plural":"Gateway services"},"route":{"label":"Select a route","help":"The route that this plugin configuration will target","placeholder":"Select a route","plural":"Routes"},"consumer":{"label":"Select a consumer","help":"The consumer that this plugin configuration will target","placeholder":"Select a consumer","plural":"Consumers"},"consumer_group":{"label":"Select a consumer group","help":"The consumer group that this plugin configuration will target","placeholder":"Select a consumer group","plural":"Consumer groups"}},"grouping":{"plugin_configuration":{"title":"Plugin configuration","description":"Configuration parameters for this plugin. View advanced parameters for extended configuration.","empty":"This plugin does not have required parameters."},"advanced_parameters":{"view":"Show additional settings","hide":"Hide additional settings"}},"field_rules":{"at_least_one_of":"At least one of the following values is required: {parameters}.","only_one_of":"Exactly one of these parameters is required: {parameters}","mutually_required":"These values must be used together: {parameters}.","mutually_exclusive":"Only one of these values can be used: {parameters}.","only_one_of_mutually_required":"Exactly one of the following parameter combinations is required (all parameters within a chosen combination are required):"},"sections":{"plugin_scope":{"title":"Plugin scope","description":"Choose whether this plugin applies to all traffic (global) or is scoped to a specific service, route, or consumer."},"general_info":{"title":"General information","description":"Add details to help identify and manage your plugin."},"plugin_config":{"title":"Plugin configuration","description":"Set the plugin's behavior by defining its configuration settings."},"plugin_general_info":{"description":"Add a name or tags to help you identify and manage this plugin later."},"code_mode":{"title":"Code editor","description":"Configure this plugin by using YAML configuration."}}},"free-form":{"editor_mode":{"visual":"Visual editor","code":"Code editor"},"code-lens":{"entity":{"service":"Service","route":"Route","consumer":"Consumer","consumer_group":"Consumer group","certificate":"Certificate"},"field":{"name":"{entity} \\"{value}\\"","username":"Username \\"{value}\\"","custom_id":"Custom ID \\"{value}\\"","subject":"Subject \\"{value}\\"","expires_after":"Expires after \\"{value}\\""},"action":{"view_entity":"View {title}","copy_certificate":"Copy certificate","copy_uuid":"Copy UUID","retry_fetch":"Retry fetch (Hover for details)"},"unknown_error":"Unknown error"},"acl":{"mode":{"allow":"Use allow list","deny":"Use deny list","allow_when":"Use allow expression list","deny_when":"Use deny expression list"}},"ai-mcp-proxy":{"default_acl_item_label":"Default ACL #{index}","tool_item_label":"Tool #{index}"},"openid-connect":{"tabs":{"common":{"title":"Common Configuration Settings","description":"Parameters for enabling the OpenID Connect plugin. Set these parameters before adding authorization, authentication, or other advanced configuration details."},"authorization":{"title":"Authorization Configuration Settings","description":"Parameters for setting up claims-based authorization."},"advanced":{"title":"Advanced Configuration Settings","description":"Advanced parameters for manually configuring the OpenID Connect plugin."}},"auth_methods":{"label":"Authentication methods","placeholder":"Select authentication methods","hint":"Configure which OAuth and OpenID Connect features are supported.","km_label":"Auth methods","methods":{"authorization_code":"Authorization code flow","bearer":"Bearer access token","client_credentials":"Client credentials grant","password":"Passwords grant","introspection":"Introspection","userinfo":"UserInfo","kong_oauth2":"Kong OAuth","refresh_token":"Refresh token"},"session":{"label":"Session management","switch_label":"Enable Session Management","use_label":"Use sessions","use_description":"Issue a session cookie after successful authentication. Subsequent requests use the session instead of re-authenticating with the identity provider.","no_use_label":"Do not use sessions","no_use_description":"Authenticate each request using the configured authentication flow."}},"principals":{"header":"Who should manage authentication and credentials?","description":"Use External auth server to continue using your existing OAuth provider and authentication workflows. Use Kong Identity to adopt a newer principal-based model that centralizes and simplifies identity and authentication management.","learn_more":"Learn more.","kong_identity_label":"Kong Identity","kong_identity_description":"Use Kong Identity to authenticate OpenID Connect tokens. If all data plane nodes are running version 3.15 or later, you can also map requests to Kong Identity principals for advanced policies and integrations.","external_label":"External auth server","external_description":"Connect to your existing identity provider to manage authentication outside of Kong.","guide":{"title":"Add principals","description":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products.","description_external":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. Requires data plane nodes to be running version 3.15 or later.","create":"Create principal","learn_more":"Learn more"},"auth_server":{"label":"Authorization Server","info":"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.","placeholder":"Select an Authorization Server","create":"Create authorization server","create_hint":"You'll need to return here after creating an authorization server. Your progress won't be saved.","no_access_help":"You don't have access to browse authorization servers. Enter the issuer URL of your Kong Identity authorization server directly.","issuer_placeholder":"e.g., https://your-auth-server.identity.konghq.com"},"client":{"label":"Client","id_label":"Client id","secret_label":"Client secret","placeholder":"Select a client","id_placeholder":"e.g., kong-gateway-client","secret_placeholder":"e.g., your-client-secret","create":"Create client","create_hint":"You'll need to return here after creating a client. Your progress won't be saved.","add":"Add client","remove":"Remove client"},"leave_prompt":{"title":"Leave this page?","message":"Your unsaved changes will be lost if you continue.","action":"Leave page"},"dp_version_alert":"We detected that one or more data plane nodes are running a version earlier than 3.15. If principal lookup is enabled, requests handled by those data plane nodes will fail."},"lookup":{"collapse_label":"Show additional settings","toggle_label":"Use principal lookup","toggle_info":"Look up the authenticated principal in Kong Identity after token validation. Enable this when the validated token doesn't contain all of the identity data required for authorization or activity logging.","method":{"label":"Principal lookup method","placeholder":"Select a lookup method","help":"Principal lookup queries Kong Identity for the principal that matches the identity in a verified access token. This enables principal-aware policies and integrations. Requires all data plane nodes to be running version 3.15 or later.","kong_identity_label":"Kong Identity client","kong_identity_description":"Match principals using a token claim, defaulting to the subject (sub) claim.","custom_identity_label":"Custom claim","custom_identity_description":"Match principals using a custom JWT claim."},"custom_identity_name":{"label":"Custom identity name","help":"Enter the custom identity name used to look up the principal. Kong matches the value from the token claim to a principal with the same custom identity name and value.","placeholder":"e.g., Customer_ID"},"token_claim":{"label":"Token claim","placeholder":"e.g., user.employee_id","help":"Defaults to the subject (sub) claim, but you can specify a different token claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id).","help_custom":"The token claim whose value is matched against the Custom identity name. Defaults to the subject (sub) claim, but you can specify a different claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id)."},"error_on_miss":{"label":"If principal lookup fails","reject_label":"Reject the request","reject_description":"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.","continue_label":"Continue without a principal","continue_description":"Allow the request to continue without resolving a principal."},"match_consumer":{"label":"Use linked consumers","description":"Use the consumer linked to the authenticated principal so existing consumer-based plugins and policies continue to work.","link":"Learn how to link a consumer."},"match_consumer_groups":{"label":"Use linked consumer groups","description":"Use consumer groups linked to the authenticated principal so existing consumer group policies and plugins continue to work. Consumer groups can be linked through principal metadata.","link":"Learn how to link a consumer group."}},"advanced_fields":{"client_jwk_link_label":"Client JWK","verify_signature_description":"JSON Web Keys are automatically fetched from the issuer's well-known endpoint. Enter a JWKS URI below to override this."}},"request-callout":{"entity_name":"Request callout","by_lua_placeholder":"Enter Lua script here..."},"jwt-signer":{"keyset_url_required":"Provide a valid HTTP/HTTPS URL to ensure signing works correctly when \\"{signingField}\\" is enabled and \\"{headerField}\\" is set."},"metering-and-billing":{"sections":{"plugin_config":{"title":"Plugin configuration","description":"Configure the Metering & Billing plugin."},"metering":{"title":"What to meter"},"subject":{"title":"Who to bill (subject)","description":"Define how billing subjects are identified."},"ingestion":{"title":"Connection","description":"Configure how metered data is delivered to the billing service."},"queue":{"title":"Queue","description":"Configure internal event queue settings."}},"fields":{"meter_api_requests":{"label":"Meter API requests","description":"Emit a usage event for each API Gateway request."},"meter_ai_token_usage":{"label":"Meter AI token usage","description":"Emit events for LLM input and output tokens on AI Gateway requests. Each request produces separate input/output events so they can be priced independently."},"ingest_endpoint":{"description":"The URL of the metering data ingest endpoint.","help":"For Konnect Metering & Billing, use the regional endpoint from your Metering & Billing settings. For self-hosted OpenMeter, use your ingest URL."},"api_token":{"description":"Bearer token for authenticating requests to the ingest endpoint."},"look_up_value_in":{"label":"Look up subject in","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"e.g. x-customer-id, x-api-key, x-tenant"},"queue":{"max_coalescing_delay":{"label":"Max coalescing delay (s)"},"initial_retry_delay":{"label":"Initial retry delay (s)"},"max_retry_delay":{"label":"Max retry delay (s)"},"max_retry_time":{"label":"Max retry time (s)"}},"attributes":{"title":"Event attributes","description":"Attach custom dimensions to metered events.","look_up_value_in":{"placeholder":"e.g., x-priority-id"},"event_property_name":{"placeholder":"e.g., priority"}},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"}}},"governance":{"unavailable_kong_manager":"The Governance plugin can't be configured in Kong Manager yet.","sections":{"configuration":{"title":"Plugin configuration","description":"Configure the Governance plugin subject, feature, and connection settings."},"governance":{"title":"Governance settings","description":"Configure access control behavior and response codes."},"subject":{"title":"Whose access to govern (subject)"},"feature":{"title":"Feature"},"connection":{"title":"Connection","description":"Configure how the plugin connects to the governance query endpoint."},"redis":{"title":"Redis"},"cache_sync":{"title":"Cache and sync"}},"fields":{"look_up_value_in":{"label":"Whose access to govern (Look up subject in)","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"Name of the header or query parameter that carries the customer identifier."},"feature_key":{"label":"Feature to govern access","help":"Feature that will control access to the scope where the plugin is applied.","create_feature":"+ Create new feature","unavailable":"You don't have access to metering features. Enable Metering & Billing in your Konnect organization to configure the feature to govern.","load_error":"Could not load features from the governance service."},"governance_endpoint":{"help":"For Konnect Metering & Billing, use the regional endpoint for Metering & Billing Query Governance Access. For self-hosted OpenMeter, use the Query Governance Access endpoint of your self-hosted instance."},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"},"sync_rate":{"label":"Sync rate (s)"},"refresh_interval":{"label":"Refresh interval (s)"},"max_stale_seconds":{"label":"Max stale seconds"},"l1_ttl":{"label":"L1 TTL (s)"},"l2_ttl":{"label":"L2 TTL (s)"},"credit_balance_required":{"label":"Credit balance lookup","yes_label":"Yes","yes_description":"A credit balance above zero is required for access to this feature.","no_label":"No","no_description":"Customers can access this feature regardless of their credit balance."},"fail_policy":{"label":"Plugin failure mode","allow_label":"Allow access","allow_description":"In the case of plugin failure, allow access to feature.","deny_label":"Deny access","deny_description":"In the case of plugin failure, deny access to feature."},"deny_unknown_customers":{"label":"Unknown customer access","allow_label":"Allow access","allow_description":"The gateway will allow access for unknown customers.","deny_label":"Deny access","deny_description":"The gateway will deny access for unknown customers."},"response":{"label":"Response mapping","columns":{"code":"Response code","status":"Status code","message":"Message"},"defaults":{"NO_CREDIT_AVAILABLE":"Customer has no credit available.","USAGE_LIMIT_REACHED":"Customer has reached usage limit for feature.","FEATURE_UNAVAILABLE":"Feature is not available for the customer.","FEATURE_NOT_FOUND":"Feature not found.","CUSTOMER_NOT_FOUND":"Customer is not found by subject."}}}},"datakit":{"plugin_config":{"title":"Flow editor"},"description_code":"Configure this plugin by using YAML configuration. If you are copy/pasting in examples from the documentation - paste from below the <code>config</code> block.","description_flow":"Build flows visually with a drag-and-drop editor for Datakit. Visualize node connections, inputs, and outputs as you design.","description_example":"Start with a use case:","detected_config_format":"Detected {format} configuration. Do you want to convert it to Datakit configuration?","detected_config_format_title":"Convert configuration","detected_config_format_confirm":"Convert","examples":{"authenticateThirdPartyWithDynamicUrl":"Authenticate Kong to a third-party service resolved at runtime","authenticateThirdParty":"Authenticate Kong to a third-party service","authenticateWithVaultSecret":"Authenticate to a third-party service using Vault secrets","clearHeaders":"Clear request headers","combineTwoApisIntoOneResponse":"Combine multiple API responses","conditionallyStoreCachedItems":"Conditionally fetch or store cache data","convertJsonIntoXml":"Transform JSON into XML","convertJsonToXmlAndBack":"Transform JSON into XML and back","convertXmlIntoJson":"Transform XML into JSON","manipulateRequestHeaders":"Manipulate request headers"},"flow_editor":{"mode":"Flow editor","name":"Datakit flow editor","cta":"Go to flow editor","disabled_tooltip":"The flow editor is unavailable due to critical configuration errors or features not supported in the flow editor:<br/><code>{reason}</code>","expand_panel":"Expand panel","collapse_panel":"Collapse panel","return_to_config":"Return to plugin configuration","canvas_panel":{"request":"Request","response":"Response","node_count_plural":"{count} nodes","node_count_singular":"1 node"},"panel_segments":{"nodes":"Nodes","resources":{"title":"Resources","vault":{"title":"Vault secrets","add_button":"Add vault resource","name_exists_error":"Vault name already exists","name_required_error":"Vault name is required","edit":"Edit","delete":"Delete"},"cache":{"title":"Cache configuration","add_button":"Add cache configuration","strategy_options":{"memory":"Memory","redis":"Redis"},"select_redis_configuration":"Select a shared Redis configuration","inline_config":"Inline config","inline_config_preview":"You are using a dedicated Redis configuration, This is a preview of your current setup, please edit it in code editor"}}},"vault_secret_picker":{"title":"Add secret to Datakit","proceed_button_text":"Add secret","secret_name":{"label":"Secret name","placeholder":"Enter a name","help":"A unique identifier for this secret in your Datakit configuration"}},"node_panel":{"title":"Node types","description":"Drag a node onto the canvas to add it to your data flow.","groups":{"external_interaction":"External interaction","control_flow":"Control flow","data_transformation":"Data transformation","data_value":"Data value","authentication":"Authentication"}},"examples":"Examples","debug":{"label":"Debug","description":"Enables detailed error messages in client responses, making debugging easier. <a href=\\"https://developer.konghq.com/plugins/datakit/#debugging\\" target=\\"_blank\\">See the docs</a> for details."},"actions":{"zoom_in":"Zoom in","zoom_out":"Zoom out","fit_view":"Zoom to fit","auto_layout":"Auto layout","undo":"Undo","redo":"Redo","duplicate":"Duplicate","remove_from_branch":"Remove from branch","delete":"Delete","view_docs":"View docs","done":"Done"},"node_types":{"call":{"summary":"Call a third-party API","description":"Send an HTTP request and retrieve the response."},"jq":{"summary":"Transform data and cast variables with jq","description":"The <code>jq</code> node executes a jq script for processing JSON. See the official <a href=\\"https://jqlang.org\\" target=\\"_blank\\">jq docs</a> for more details."},"exit":{"summary":"Return directly to the client","description":"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},"property":{"summary":"Get and set Kong Gateway-specific data","description":"Get and set Kong Gateway host and request properties."},"static":{"summary":"Configure static input values ahead of time","description":"Emits static values to be used as inputs for other nodes. The <code>static</code> node can help you with hardcoding some known value for an input."},"branch":{"summary":"Execute nodes based on matching input conditions","description":"Execute different nodes based on matching input conditions, such as a cache hit or miss."},"cache":{"summary":"Store and fetch cached data","description":"Store data into cache and fetch cached data from cache."},"xml_to_json":{"summary":"Transform XML to JSON","description":"Transform XML to JSON."},"json_to_xml":{"summary":"Transform JSON to XML","description":"Transform JSON to XML."},"jwt_decode":{"summary":"Decode JWT headers and claims","description":"Parse a JWT without verifying its signature."},"jwt_sign":{"summary":"Create and sign JWTs","description":"Generate a signed JWT from configured claims and a signing key."},"jwt_verify":{"summary":"Verify JWT signature and claims","description":"Verify a JWT signature and validate claims such as exp, nbf, iss, and aud."},"request":{"name":"request","description":"Reads incoming client request properties. You cannot specify request node input."},"response":{"name":"response","description":"Updates properties of the outgoing client response."},"service_request":{"name":"service request","description":"Updates properties of the request sent to the service being proxied to."},"service_response":{"name":"service response","description":"Reads response properties from the service being proxied to."},"vault":{"name":"Vault","description":"Vault is a tool for securely accessing secrets."}},"node_properties":{"name":"Name","configuration":"Configuration","input":{"label":"Inputs configuration","placeholder":"Select a source","add_button":"Add an input","or":"or","input":"Input","fields":"Fields","source":"Source","tooltip":"Fields are part of the node input. A source can connect to either the fields or the input, but not both."},"input_name":{"label":"Input name","placeholder":"Enter an input name"},"jq":{"label":"jq script","help":"Refer to {link} for full documentation."},"output_value":{"label":"Output value","value_name":"Value name","value":"Value","add_button":"Add a value"},"property":{"get":"get","set":"set"},"branch":{"placeholder":"Select nodes"},"jwt":{"static_claims":{"label":"Static claims","help":"Enter a JSON object. It will be stored as the node's static claims map.","errors":{"invalid_json_object":"Static claims must be a valid JSON object"}}},"errors":{"invalid_identifier_format":"{fieldName} must start with a letter or underscore and contain only letters, numbers, underscores, or hyphens","invalid_url_format":"Not a valid URL format","not_empty":"{fieldName} is required","not_float":"{fieldName} must be a float","not_integer":"{fieldName} must be an integer","not_number":"{fieldName} must be a number","not_unique":"{fieldName} must be unique","number_range":"{fieldName} must be between {min} and {max}","string_len_range":"{fieldName} must be between {minLength} and {maxLength} characters","reserved_node_name":"\\"{nodeName}\\" is a reserved node name","attributes_required":"Provide at least one of attributes_block_name or attributes_name_prefix"}},"error":{"invalid_connection":"Invalid connection","branch_cycle":"Cannot create a circular branch relationship"},"confirm":{"title":"Connection conflict","message":{"confirm":"Are you sure you want to make this change?","switch":"You can connect an output source to either all inputs of a node or to individual inputs.","override":"Each input can connect to only one output, but one output can connect to many inputs.","branch_replace":"This node already belongs to another branch. Move it to the new branch?"},"proceed":"Yes, update"},"leave_confirm":"Leave current page? Changes you made may not be saved."},"code_editor":{"mode":"Code editor"}},"vault_picker":{"component_error":"The vault secret picker is not available"},"tag_helper":"Use comma to separate values. eg: value1, value2","foreign_placeholder":"Enter a UUID of {entity}"}}`), Fv = { title: "Redis configuration", managed_ui: { title: "Redis", shared_configuration: { label: "Use shared configuration", description: "Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.", badge: "Recommended" }, dedicated_configuration: { label: "Use locally-scoped configuration", description: "Create and use a Redis configuration specifically for this plugin." }, selector: { placeholder: "Filter Redis configurations...", create_new: "New Redis" } }, shared_configuration: { label: "Shared configuration", description: "Select an existing shared Redis configuration or create a new one. Changes to this configuration automatically apply to all associated plugins.", title: "Shared Redis configuration", error: "Fetching shared Redis configurations failed." }, dedicated_configuration: { label: "Dedicated configuration", description: "Create a Redis configuration that is used only by this plugin. Changes won’t affect other plugins." }, config_card: { common_fields: { created_at_label: "Created at", updated_at_label: "Last updated at", type_label: "Redis type" } } }, Kv = { plugin: "plugin" }, Dv = { key_auth_identity_realms: { cp_label: "Current control plane", cp_group_label: "Control plane", realm_group_label: "Realms (can only select one)" }, kong_identity: { title: "Who should manage authentication and credentials?", description_with_realms: "Use Consumers or centrally managed consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.", description_without_realms: "Use Consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.", learn_more: "Learn more.", incompatible_data_plane_alert: "We detected that one or more data plane nodes are running a version earlier than 3.15. Requests handled by those data plane nodes will use consumers instead of Kong Identity principals.", kong_identity_label: "Kong Identity", kong_identity_description_key_auth: "Use Kong Identity to authenticate API keys and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.", kong_identity_description_basic_auth: "Use Kong Identity to authenticate Basic Auth credentials and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.", consumers_label: "Consumers", consumers_description_key_auth: "Use consumer-managed API keys. Consumers provide their API key in a request header, query parameter, or request body to authenticate requests.", consumers_description_basic_auth: "Use consumer-managed Basic Auth credentials. Consumers authenticate requests using a username and password.", centrally_managed_label: "Centrally managed consumers", centrally_managed_description: "Authenticate centrally managed consumers in Konnect using identity realms. Identity realms are scoped to the control plane by default.", identity_realms_required: "To use centrally managed consumers, you must select at least one Centrally managed consumer realm.", error_on_miss_label: "If principal lookup fails", error_on_miss_reject_label: "Reject the request", error_on_miss_reject_description: "Treat the request as unauthenticated if Kong Identity cannot resolve the principal.", error_on_miss_continue_label: "Continue without a principal", error_on_miss_continue_description: "Allow the request to continue without resolving a principal.", configure_title: "Configure Kong Identity", configure_description: "Kong Identity uses principals to represent authenticated services or applications. Create your first principal in Kong Identity to start using principal-based authentication. On data plane nodes running versions earlier than 3.15, authentication continues using consumers.", create_principal: "Create principal", configure_learn_more: "Learn more", leave_prompt_title: "Leave this page?", leave_prompt_message: "Your unsaved changes will be lost if you continue.", leave_prompt_action: "Leave page" } }, jv = { window_type: { label: "Rate limit window type", help: "Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window&#39;s counters.</li></ul>", options: { fixed: "Fixed", sliding: "Sliding" } }, request_limits: { title: "Request limits", subtitle: "Set one or more limits on the number of API requests allowed within a defined timeframe.", label: "Limit", label_index: "Limit {index}", request_number: "Request number", time_interval: "Time interval", interval_determiner: "Every", seconds: "Seconds" }, error_message: { label: "Error message", code_placeholder: "Code message", message_placeholder: "Error message", help: "Set a custom error code and message to be returned when the rate limit is exceeded." }, start_with_a_use_case: "Start with a use case:", use_cases: { fixed: { hourly_500: { label: "500 requests every hour", description: "A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit." }, half_hourly_200: { label: "200 requests every 30 minutes", description: "Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits." }, daily_500: { label: "500 requests every day", description: "A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences." } }, sliding: { hourly_100: { label: "100 requests every hour", description: "Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset." }, half_hourly_300: { label: "300 requests every 30 minutes", description: "Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made." }, hourly_500: { label: "500 requests every hour", description: `Each user is allowed 500 requests per hour.
34
34
  If the limit is exceeded and the user receives a 429 error, each additional request within the sliding window (hour)
35
35
  will extend the wait time by about 12 minutes, continuously adjusting as new requests are made.` } } } }, qv = { step1: { title: "Custom plugin type", types: { installed: { label: "Installed custom plugin", description: "Install and manage plugins with full control over deployment and runtime. Requires restarting data planes." }, streamed: { label: "Streamed custom plugin", description: "Deploy and update plugins on running data planes without requiring gateway access." }, cloned: { label: "Cloned plugin", description: "Duplicate an existing plugin to run multiple instances within a single request." } }, compare_trigger: "Compare deployment options", compare_table: { columns: { installed: "Installed custom plugin", streamed: "Streamed custom plugin", cloned: "Cloned plugin" }, rows: { main_use_case: { header: "Main use case", installed: "Extend Kong functionality with custom plugins and control who can modify and roll out changes.", streamed: "Extend Kong functionality with plugins without requiring sysadmin access to data plane instances.", cloned: "Modify an existing plugin to run multiple instances with different names or priorities." }, file_supplied: { header: "File supplied", installed: { handler: "handler.lua", schema: "schema.lua", additional: "Any additional files or libraries needed" }, streamed: { handler: "handler.lua", schema: "schema.lua" } }, how_installed: { header: "How it's installed", installed: "Install directly on the data plane", streamed: "Through gateway configuration changes", cloned: "Through gateway configuration changes" }, sandboxing: { header: "Sandboxing", streamed: "Follows the standard sandboxing settings. {link}", streamed_link: "Link to docs", cloned: "Inherit the same sandboxing as the original plugins" }, data_plane_reload: { header: "Data plane reload" } } } }, step2_files: { title: "Custom plugin files", schema_file: { label: "Upload schema file", placeholder: "No file selected", placeholder_edit: "File not changed", button_text: "Select File", help: "Only Lua based schemas are supported by Konnect. Other plugin modules can be in any language as desired. Learn more" }, handler_file: { label: "Upload handler file", placeholder: "No file selected", placeholder_edit: "File not changed", button_text: "Select File", help: "Upload plugin handler to the data plane." }, plugin_modules: { label: "Plugin modules", alert: "Upload all plugin modules to the data plane: schema.lua, handler.lua" } }, step2_clone: { title: "Clone plugin", select_plugin: { label: "Select a plugin", placeholder: "Type to search" } }, step3: { title: "General information", description: "Enter a custom name for this custom plugin", name: { label: "Name", placeholder: "Enter a unique name", help: "The name must be identical to the name of the plugin in the schema file." }, alias_name: { label: "Alias name", placeholder: "Enter a unique name", help: "Format: ^[a-z][a-z0-9-]*[a-z0-9]$. The name must be unique enough to avoid future conflicts with bundled plugins." }, priority: { label: "Priority", tooltip: "Set the execution priority for this cloned plugin", help: { text: "Optional. Use a number to set the absolute execution priority. If priority isn't set, plugins run in alphabetical order. {link} in the docs.", link: "Learn more" } } }, errors: { file_read_error: "Failed to read file content. Please try again.", file_too_large: "File size exceeds the maximum limit of 1 MB.", plugin_not_found: "The selected plugin could not be found. Please refresh the list and try again.", no_supported_types: "No supported custom plugin types are available in this context.", unsupported_plugin_type: "Unsupported plugin type {type}." } }, Qt = {
36
36
  actions: $v,
@@ -1722,7 +1722,7 @@ const Lf = [
1722
1722
  "RS256",
1723
1723
  "RS384",
1724
1724
  "RS512"
1725
- ], Be = (e, t) => {
1725
+ ], Ve = (e, t) => {
1726
1726
  const n = e.__vccOpts || e;
1727
1727
  for (const [i, o] of t)
1728
1728
  n[i] = o;
@@ -1741,7 +1741,7 @@ function B1(e, t) {
1741
1741
  }, null, -1)
1742
1742
  ])]);
1743
1743
  }
1744
- const V1 = /* @__PURE__ */ Be(q1, [["render", B1]]), z1 = {}, G1 = {
1744
+ const V1 = /* @__PURE__ */ Ve(q1, [["render", B1]]), z1 = {}, G1 = {
1745
1745
  height: "16",
1746
1746
  viewBox: "0 -960 960 960",
1747
1747
  width: "16",
@@ -1755,7 +1755,7 @@ function H1(e, t) {
1755
1755
  }, null, -1)
1756
1756
  ])]);
1757
1757
  }
1758
- const W1 = /* @__PURE__ */ Be(z1, [["render", H1]]), Pa = [
1758
+ const W1 = /* @__PURE__ */ Ve(z1, [["render", H1]]), Pa = [
1759
1759
  {
1760
1760
  id: "external_interaction",
1761
1761
  colors: {
@@ -5931,7 +5931,7 @@ const oE = {
5931
5931
  j("kbd", aE, W(s(t)), 1)
5932
5932
  ], 2));
5933
5933
  }
5934
- }), Sr = /* @__PURE__ */ Be(rE, [["__scopeId", "data-v-7ca86b0d"]]), sE = ["onClick"], lE = {
5934
+ }), Sr = /* @__PURE__ */ Ve(rE, [["__scopeId", "data-v-7ca86b0d"]]), sE = ["onClick"], lE = {
5935
5935
  key: 0,
5936
5936
  class: "additional-count"
5937
5937
  }, Bu = 24, cE = 16, uE = /* @__PURE__ */ Oe({
@@ -5994,7 +5994,7 @@ const oE = {
5994
5994
  class: "target-boxes",
5995
5995
  style: Di(u.value)
5996
5996
  }, [
5997
- (k(!0), Z(Ve, null, tt(f.value, (h, b) => (k(), z(s(Bn), {
5997
+ (k(!0), Z(Be, null, et(f.value, (h, b) => (k(), z(s(Bn), {
5998
5998
  key: h.key,
5999
5999
  class: "target-box-wrapper",
6000
6000
  "kpop-attributes": n,
@@ -6019,7 +6019,7 @@ const oE = {
6019
6019
  ], 4)
6020
6020
  ], 34));
6021
6021
  }
6022
- }), za = /* @__PURE__ */ Be(uE, [["__scopeId", "data-v-45ce7484"]]), dE = /* @__PURE__ */ Oe({
6022
+ }), za = /* @__PURE__ */ Ve(uE, [["__scopeId", "data-v-45ce7484"]]), dE = /* @__PURE__ */ Oe({
6023
6023
  __name: "HandleTwig",
6024
6024
  props: {
6025
6025
  color: {},
@@ -6040,7 +6040,7 @@ const oE = {
6040
6040
  style: Di(t.value)
6041
6041
  }, null, 6));
6042
6042
  }
6043
- }), Ga = /* @__PURE__ */ Be(dE, [["__scopeId", "data-v-74b600f2"]]), pE = /* @__PURE__ */ Oe({
6043
+ }), Ga = /* @__PURE__ */ Ve(dE, [["__scopeId", "data-v-74b600f2"]]), pE = /* @__PURE__ */ Oe({
6044
6044
  __name: "NodeBadge",
6045
6045
  props: {
6046
6046
  type: {},
@@ -6078,7 +6078,7 @@ const oE = {
6078
6078
  ]), 1032, ["class", "size"]);
6079
6079
  };
6080
6080
  }
6081
- }), Jf = /* @__PURE__ */ Be(pE, [["__scopeId", "data-v-409d29e5"]]), fE = { class: "body" }, mE = { class: "name" }, gE = { class: "handle" }, hE = { class: "handle-label-wrapper" }, vE = { class: "handle-label-wrapper" }, yE = { class: "handle-label text" }, _E = { class: "handle" }, bE = { class: "handle-label-wrapper" }, kE = { class: "handle-label-wrapper" }, wE = { class: "handle-label text" }, CE = {
6081
+ }), Jf = /* @__PURE__ */ Ve(pE, [["__scopeId", "data-v-409d29e5"]]), fE = { class: "body" }, mE = { class: "name" }, gE = { class: "handle" }, hE = { class: "handle-label-wrapper" }, vE = { class: "handle-label-wrapper" }, yE = { class: "handle-label text" }, _E = { class: "handle" }, bE = { class: "handle-label-wrapper" }, kE = { class: "handle-label-wrapper" }, wE = { class: "handle-label text" }, CE = {
6082
6082
  key: 2,
6083
6083
  class: "branch-handles"
6084
6084
  }, EE = { class: "handle-label-wrapper" }, SE = { class: "handle-label text" }, xE = /* @__PURE__ */ Oe({
@@ -6289,7 +6289,7 @@ const oE = {
6289
6289
  onClick: te[2] || (te[2] = Ct((q) => Y("input"), ["stop"]))
6290
6290
  }, [
6291
6291
  te[4] || (te[4] = j("div", { class: "text" }, " inputs ", -1)),
6292
- g.value ? (k(), Z(Ve, { key: 0 }, [
6292
+ g.value ? (k(), Z(Be, { key: 0 }, [
6293
6293
  b.value ? ge("", !0) : (k(), z(s(Yc), {
6294
6294
  key: 0,
6295
6295
  size: `var(--kui-icon-size-20, ${s(po)})`
@@ -6309,7 +6309,7 @@ const oE = {
6309
6309
  }, null, 8, ["color", "position"])) : ge("", !0)
6310
6310
  ])
6311
6311
  ]),
6312
- g.value && b.value ? (k(!0), Z(Ve, { key: 0 }, tt(e.data.fields.input, (q, O) => (k(), Z("div", {
6312
+ g.value && b.value ? (k(!0), Z(Be, { key: 0 }, et(e.data.fields.input, (q, O) => (k(), Z("div", {
6313
6313
  key: `inputs-${q.id}`,
6314
6314
  class: "handle indented"
6315
6315
  }, [
@@ -6347,7 +6347,7 @@ const oE = {
6347
6347
  onClick: te[3] || (te[3] = Ct((q) => Y("output"), ["stop"]))
6348
6348
  }, [
6349
6349
  te[5] || (te[5] = j("div", { class: "text" }, " outputs ", -1)),
6350
- y.value ? (k(), Z(Ve, { key: 0 }, [
6350
+ y.value ? (k(), Z(Be, { key: 0 }, [
6351
6351
  E.value ? ge("", !0) : (k(), z(s(Yc), {
6352
6352
  key: 0,
6353
6353
  size: `var(--kui-icon-size-20, ${s(po)})`
@@ -6378,7 +6378,7 @@ const oE = {
6378
6378
  targets: B.value.get("output")
6379
6379
  }, null, 8, ["reversed", "targets"])) : ge("", !0)
6380
6380
  ]),
6381
- y.value && E.value ? (k(!0), Z(Ve, { key: 0 }, tt(e.data.fields.output, (q, O) => (k(), Z("div", {
6381
+ y.value && E.value ? (k(!0), Z(Be, { key: 0 }, et(e.data.fields.output, (q, O) => (k(), Z("div", {
6382
6382
  key: `outputs-${q.id}`,
6383
6383
  class: "handle indented"
6384
6384
  }, [
@@ -6404,7 +6404,7 @@ const oE = {
6404
6404
  ]))), 128)) : ge("", !0)
6405
6405
  ], 2)) : ge("", !0),
6406
6406
  x.value ? (k(), Z("div", CE, [
6407
- (k(!0), Z(Ve, null, tt(S.value, (q) => (k(), Z("div", {
6407
+ (k(!0), Z(Be, null, et(S.value, (q) => (k(), Z("div", {
6408
6408
  key: `branch-${q}`,
6409
6409
  class: "handle"
6410
6410
  }, [
@@ -6426,7 +6426,7 @@ const oE = {
6426
6426
  }, void 0, !0) : ge("", !0)
6427
6427
  ], 2));
6428
6428
  }
6429
- }), Xf = /* @__PURE__ */ Be(xE, [["__scopeId", "data-v-1de3b7cb"]]), IE = /* @__PURE__ */ Oe({
6429
+ }), Xf = /* @__PURE__ */ Ve(xE, [["__scopeId", "data-v-1de3b7cb"]]), IE = /* @__PURE__ */ Oe({
6430
6430
  __name: "GroupNode",
6431
6431
  props: {
6432
6432
  data: {},
@@ -6445,7 +6445,7 @@ const oE = {
6445
6445
  }, null, 8, ["position"])
6446
6446
  ], 2));
6447
6447
  }
6448
- }), AE = /* @__PURE__ */ Be(IE, [["__scopeId", "data-v-cf30ffea"]]), TE = /* @__PURE__ */ Oe({
6448
+ }), AE = /* @__PURE__ */ Ve(IE, [["__scopeId", "data-v-cf30ffea"]]), TE = /* @__PURE__ */ Oe({
6449
6449
  __name: "FlowCanvas",
6450
6450
  props: {
6451
6451
  flowId: {},
@@ -6632,7 +6632,7 @@ const oE = {
6632
6632
  "show-zoom": !1
6633
6633
  }, {
6634
6634
  default: I(() => [
6635
- (k(!0), Z(Ve, null, tt(G.value, (se) => (k(), z(s(Bn), {
6635
+ (k(!0), Z(Be, null, et(G.value, (se) => (k(), z(s(Bn), {
6636
6636
  key: se.name,
6637
6637
  placement: "right",
6638
6638
  text: s(l)(`plugins.free-form.datakit.flow_editor.actions.${se.name}`)
@@ -6658,7 +6658,7 @@ const oE = {
6658
6658
  }, 16, ["id", "class", "elements-selectable", "max-zoom", "min-zoom", "nodes-connectable", "nodes-draggable"])
6659
6659
  ], 512));
6660
6660
  }
6661
- }), Vu = /* @__PURE__ */ Be(TE, [["__scopeId", "data-v-11561a7e"]]);
6661
+ }), Vu = /* @__PURE__ */ Ve(TE, [["__scopeId", "data-v-11561a7e"]]);
6662
6662
  function Zf() {
6663
6663
  const e = ["methods", "logout_methods"];
6664
6664
  return {
@@ -6667,49 +6667,49 @@ function Zf() {
6667
6667
  switch (f.type) {
6668
6668
  case "boolean":
6669
6669
  d[p] = {
6670
- type: an.BadgeStatus,
6670
+ type: on.BadgeStatus,
6671
6671
  ...d[p]
6672
6672
  };
6673
6673
  break;
6674
6674
  case "string":
6675
6675
  f.encrypted ? d[p] = {
6676
- type: an.Redacted,
6676
+ type: on.Redacted,
6677
6677
  ...d[p]
6678
6678
  } : d[p] = {
6679
- type: an.Text,
6679
+ type: on.Text,
6680
6680
  ...d[p]
6681
6681
  };
6682
6682
  break;
6683
6683
  case "set":
6684
6684
  f.elements?.type === "string" && (d[p] = {
6685
- type: an.BadgeTag,
6685
+ type: on.BadgeTag,
6686
6686
  ...d[p]
6687
6687
  });
6688
6688
  break;
6689
6689
  case "array":
6690
6690
  e.includes(p) ? d[p] = {
6691
- type: an.BadgeMethod,
6691
+ type: on.BadgeMethod,
6692
6692
  ...d[p]
6693
6693
  } : f.elements?.type === "string" ? f.encrypted ? d[p] = {
6694
- type: an.RedactedArray,
6694
+ type: on.RedactedArray,
6695
6695
  ...d[p]
6696
6696
  } : d[p] = {
6697
- type: an.BadgeTag,
6697
+ type: on.BadgeTag,
6698
6698
  ...d[p]
6699
6699
  } : f.elements?.type === "record" && (d[p] = {
6700
- type: an.Json,
6700
+ type: on.Json,
6701
6701
  ...d[p]
6702
6702
  });
6703
6703
  break;
6704
6704
  case "record":
6705
6705
  d[p] = {
6706
- type: an.Json,
6706
+ type: on.Json,
6707
6707
  ...d[p]
6708
6708
  };
6709
6709
  break;
6710
6710
  default:
6711
6711
  d[p] = {
6712
- type: an.Text,
6712
+ type: on.Text,
6713
6713
  ...d[p]
6714
6714
  };
6715
6715
  break;
@@ -6965,7 +6965,7 @@ const Oi = (e) => {
6965
6965
  }, null, 8, ["modelValue"])
6966
6966
  ]));
6967
6967
  }
6968
- }), qE = /* @__PURE__ */ Be(jE, [["__scopeId", "data-v-269e85ed"]]), Wu = {
6968
+ }), qE = /* @__PURE__ */ Ve(jE, [["__scopeId", "data-v-269e85ed"]]), Wu = {
6969
6969
  fields: [
6970
6970
  {
6971
6971
  key: {
@@ -9648,7 +9648,7 @@ const mx = ["data-testid"], gx = /* @__PURE__ */ Oe({
9648
9648
  ]);
9649
9649
  };
9650
9650
  }
9651
- }), hx = /* @__PURE__ */ Be(gx, [["__scopeId", "data-v-0b4c3942"]]), vx = ["data-testid"], yx = {
9651
+ }), hx = /* @__PURE__ */ Ve(gx, [["__scopeId", "data-v-0b4c3942"]]), vx = ["data-testid"], yx = {
9652
9652
  key: 1,
9653
9653
  class: "ff-scope-entity-help"
9654
9654
  }, _x = /* @__PURE__ */ Oe({
@@ -9732,7 +9732,7 @@ const mx = ["data-testid"], gx = /* @__PURE__ */ Oe({
9732
9732
  [Yt, !s(o)]
9733
9733
  ]);
9734
9734
  }
9735
- }), bx = /* @__PURE__ */ Be(_x, [["__scopeId", "data-v-10ff0d5c"]]), kx = { add_entity: "Add {entity}", remove_entity: "Remove {entity}" }, wx = { form: { field_rules: { at_least_one_of: "At least one of the following values is required: {parameters}.", mutually_required: "These values must be used together: {parameters}.", mutually_exclusive: "Only one of these values can be used: {parameters}." } }, "free-form": { tag_helper: "Use comma to separate values. eg: value1, value2", foreign_placeholder: "Enter a UUID of {entity}", vault_picker: { component_error: "The vault secret picker is not available" } } }, Cx = {
9735
+ }), bx = /* @__PURE__ */ Ve(_x, [["__scopeId", "data-v-10ff0d5c"]]), kx = { add_entity: "Add {entity}", remove_entity: "Remove {entity}" }, wx = { form: { field_rules: { at_least_one_of: "At least one of the following values is required: {parameters}.", mutually_required: "These values must be used together: {parameters}.", mutually_exclusive: "Only one of these values can be used: {parameters}." } }, "free-form": { tag_helper: "Use comma to separate values. eg: value1, value2", foreign_placeholder: "Enter a UUID of {entity}", vault_picker: { component_error: "The vault secret picker is not available" } } }, Cx = {
9736
9736
  actions: kx,
9737
9737
  plugins: wx
9738
9738
  };
@@ -9767,7 +9767,7 @@ const Ko = /* @__PURE__ */ Oe({
9767
9767
  onChange: d,
9768
9768
  "onUpdate:modelValue": u
9769
9769
  }), ft({ _: 2 }, [
9770
- tt(Gt(), (g, y) => ({
9770
+ et(Gt(), (g, y) => ({
9771
9771
  name: y,
9772
9772
  fn: I((v) => [
9773
9773
  nt(p.$slots, y, yn(Nn(v)))
@@ -9868,7 +9868,7 @@ const Ko = /* @__PURE__ */ Oe({
9868
9868
  key: "2"
9869
9869
  } : void 0
9870
9870
  ]), 1040, ["id", "data-1p-ignore", "data-autofocus", "data-testid", "error", "error-message", "help", "model-value", "multiline", "placeholder"]),
9871
- e.inlineVaultPicker ? ge("", !0) : (k(), Z(Ve, { key: 0 }, [
9871
+ e.inlineVaultPicker ? ge("", !0) : (k(), Z(Be, { key: 0 }, [
9872
9872
  s(f) && g.value ? (k(), z(Nt(s(f)), {
9873
9873
  key: 0,
9874
9874
  schema: y.value,
@@ -9887,7 +9887,7 @@ const Ko = /* @__PURE__ */ Oe({
9887
9887
  ]);
9888
9888
  };
9889
9889
  }
9890
- }), Qe = /* @__PURE__ */ Be(Sx, [["__scopeId", "data-v-ab4f4a8a"]]), xx = ["innerHTML"], Ix = /* @__PURE__ */ Oe({
9890
+ }), tt = /* @__PURE__ */ Ve(Sx, [["__scopeId", "data-v-ab4f4a8a"]]), xx = ["innerHTML"], Ix = /* @__PURE__ */ Oe({
9891
9891
  inheritAttrs: !1,
9892
9892
  __name: "BooleanField",
9893
9893
  props: {
@@ -9930,7 +9930,7 @@ const Ko = /* @__PURE__ */ Oe({
9930
9930
  ]);
9931
9931
  };
9932
9932
  }
9933
- }), un = /* @__PURE__ */ Be(Ix, [["__scopeId", "data-v-a1c08c7f"]]), Ax = ["data-testid"], Tx = ["innerHTML"], $x = /* @__PURE__ */ Oe({
9933
+ }), un = /* @__PURE__ */ Ve(Ix, [["__scopeId", "data-v-a1c08c7f"]]), Ax = ["data-testid"], Tx = ["innerHTML"], $x = /* @__PURE__ */ Oe({
9934
9934
  inheritAttrs: !1,
9935
9935
  __name: "StringArrayField",
9936
9936
  props: {
@@ -9992,7 +9992,7 @@ const Ko = /* @__PURE__ */ Oe({
9992
9992
  ]);
9993
9993
  };
9994
9994
  }
9995
- }), Ma = /* @__PURE__ */ Be($x, [["__scopeId", "data-v-3aa09162"]]), Ox = ["data-appearance", "data-testid"], Px = ["data-testid"], Nx = ["innerHTML"], Rx = ["data-testid"], Mx = { class: "ff-array-field-item-content" }, Lx = ["data-index", "data-testid"], bs = 'input:not(:disabled), textarea:not(:disabled), select:not(:disabled), button:not(:disabled), [contenteditable="true"], [tabindex]:not([tabindex="-1"]):not(:disabled)', Fx = /* @__PURE__ */ Oe({
9995
+ }), Ma = /* @__PURE__ */ Ve($x, [["__scopeId", "data-v-3aa09162"]]), Ox = ["data-appearance", "data-testid"], Px = ["data-testid"], Nx = ["innerHTML"], Rx = ["data-testid"], Mx = { class: "ff-array-field-item-content" }, Lx = ["data-index", "data-testid"], bs = 'input:not(:disabled), textarea:not(:disabled), select:not(:disabled), button:not(:disabled), [contenteditable="true"], [tabindex]:not([tabindex="-1"]):not(:disabled)', Fx = /* @__PURE__ */ Oe({
9996
9996
  __name: "ArrayField",
9997
9997
  props: {
9998
9998
  name: {},
@@ -10109,12 +10109,12 @@ const Ko = /* @__PURE__ */ Oe({
10109
10109
  _: 1
10110
10110
  }, 8, ["aria-label", "data-testid"])) : ge("", !0)
10111
10111
  ], 8, Px)) : ge("", !0),
10112
- v.value !== "tabs" ? (k(), Z(Ve, { key: 1 }, [
10112
+ v.value !== "tabs" ? (k(), Z(Be, { key: 1 }, [
10113
10113
  j("div", {
10114
10114
  class: "ff-array-field-container",
10115
10115
  "data-testid": `ff-array-basic-container-${u.path.value}`
10116
10116
  }, [
10117
- (k(!0), Z(Ve, null, tt(g.value, (ne, B) => (k(), z(s(h), {
10117
+ (k(!0), Z(Be, null, et(g.value, (ne, B) => (k(), z(s(h), {
10118
10118
  key: s(y)(ne, B),
10119
10119
  class: mt(["ff-array-field-item", { "ff-array-field-item-card": v.value === "card" }]),
10120
10120
  "data-index": B,
@@ -10132,7 +10132,7 @@ const Ko = /* @__PURE__ */ Oe({
10132
10132
  autofocus: "",
10133
10133
  help: s(o)("plugins.free-form.tag_helper"),
10134
10134
  name: String(B)
10135
- }, null, 8, ["help", "name"])) : (k(), z(et, {
10135
+ }, null, 8, ["help", "name"])) : (k(), z(Qe, {
10136
10136
  key: 2,
10137
10137
  autofocus: "",
10138
10138
  name: String(B)
@@ -10187,7 +10187,7 @@ const Ko = /* @__PURE__ */ Oe({
10187
10187
  "data-testid": `ff-array-tabs-${u.path.value}`,
10188
10188
  tabs: E.value
10189
10189
  }, ft({ _: 2 }, [
10190
- tt(g.value, (ne, B) => ({
10190
+ et(g.value, (ne, B) => ({
10191
10191
  name: s(y)(ne, B),
10192
10192
  fn: I(() => [
10193
10193
  j("div", {
@@ -10200,7 +10200,7 @@ const Ko = /* @__PURE__ */ Oe({
10200
10200
  autofocus: !0,
10201
10201
  fieldName: String(B),
10202
10202
  index: B
10203
- }, void 0, !0) : (k(), z(et, {
10203
+ }, void 0, !0) : (k(), z(Qe, {
10204
10204
  key: 1,
10205
10205
  autofocus: "",
10206
10206
  name: String(B)
@@ -10208,7 +10208,7 @@ const Ko = /* @__PURE__ */ Oe({
10208
10208
  ], 8, Lx)
10209
10209
  ])
10210
10210
  })),
10211
- tt(g.value, (ne, B) => ({
10211
+ et(g.value, (ne, B) => ({
10212
10212
  name: `${s(y)(ne, B)}-anchor`,
10213
10213
  fn: I(() => [
10214
10214
  Te(W(b(ne, B)) + " ", 1),
@@ -10236,7 +10236,7 @@ const Ko = /* @__PURE__ */ Oe({
10236
10236
  ]);
10237
10237
  };
10238
10238
  }
10239
- }), vt = /* @__PURE__ */ Be(Fx, [["__scopeId", "data-v-e22e158e"]]), Kx = /* @__PURE__ */ Oe({
10239
+ }), vt = /* @__PURE__ */ Ve(Fx, [["__scopeId", "data-v-e22e158e"]]), Kx = /* @__PURE__ */ Oe({
10240
10240
  __name: "SlideTransition",
10241
10241
  setup(e) {
10242
10242
  const t = [
@@ -10308,7 +10308,7 @@ const Ko = /* @__PURE__ */ Oe({
10308
10308
  _: 3
10309
10309
  }));
10310
10310
  }
10311
- }), Hr = /* @__PURE__ */ Be(Kx, [["__scopeId", "data-v-4969409d"]]), Dx = { class: "ff-entity-checks-list" }, jx = /* @__PURE__ */ Oe({
10311
+ }), Hr = /* @__PURE__ */ Ve(Kx, [["__scopeId", "data-v-4969409d"]]), Dx = { class: "ff-entity-checks-list" }, jx = /* @__PURE__ */ Oe({
10312
10312
  __name: "EntityChecksAlert",
10313
10313
  props: {
10314
10314
  entityChecks: {},
@@ -10351,7 +10351,7 @@ const Ko = /* @__PURE__ */ Oe({
10351
10351
  }, {
10352
10352
  default: I(() => [
10353
10353
  j("ul", Dx, [
10354
- (k(!0), Z(Ve, null, tt(n.value, (c) => (k(), Z("li", {
10354
+ (k(!0), Z(Be, null, et(n.value, (c) => (k(), Z("li", {
10355
10355
  key: c,
10356
10356
  "data-testid": "ff-entity-check-item"
10357
10357
  }, W(c), 1))), 128))
@@ -10361,7 +10361,7 @@ const Ko = /* @__PURE__ */ Oe({
10361
10361
  })) : ge("", !0);
10362
10362
  };
10363
10363
  }
10364
- }), ad = /* @__PURE__ */ Be(jx, [["__scopeId", "data-v-374c59bc"]]), qx = ["data-testid"], Ux = ["data-testid"], Bx = ["data-testid"], Vx = { class: "ff-object-field-header-toggle" }, zx = ["aria-controls", "aria-expanded", "aria-label", "data-testid", "disabled"], Gx = ["innerHTML"], Hx = ["data-testid"], Wx = {
10364
+ }), ad = /* @__PURE__ */ Ve(jx, [["__scopeId", "data-v-374c59bc"]]), qx = ["data-testid"], Ux = ["data-testid"], Bx = ["data-testid"], Vx = { class: "ff-object-field-header-toggle" }, zx = ["aria-controls", "aria-expanded", "aria-label", "data-testid", "disabled"], Gx = ["innerHTML"], Hx = ["data-testid"], Wx = {
10365
10365
  key: 0,
10366
10366
  class: "indent-guide"
10367
10367
  }, Yx = /* @__PURE__ */ Oe({
@@ -10430,7 +10430,7 @@ const Ko = /* @__PURE__ */ Oe({
10430
10430
  d.value = C, (y.value.required || C) && (p.value = !0);
10431
10431
  }), (C, w) => {
10432
10432
  const M = ke("KAlert"), $ = ke("KInputSwitch");
10433
- return k(), Z(Ve, null, [
10433
+ return k(), Z(Be, null, [
10434
10434
  (k(), z(Nt(C.$slots[s(Lo)]))),
10435
10435
  a.error ? (k(), z(M, {
10436
10436
  key: 0,
@@ -10447,7 +10447,7 @@ const Ko = /* @__PURE__ */ Oe({
10447
10447
  "entity-checks": a.schema.value?.entity_checks,
10448
10448
  "visible-fields": E.value
10449
10449
  }, null, 8, ["entity-checks", "visible-fields"]),
10450
- (k(!0), Z(Ve, null, tt(b.value, (L) => (k(), z(et, {
10450
+ (k(!0), Z(Be, null, et(b.value, (L) => (k(), z(Qe, {
10451
10451
  key: Object.keys(L)[0],
10452
10452
  name: Object.keys(L)[0]
10453
10453
  }, null, 8, ["name"]))), 128))
@@ -10531,7 +10531,7 @@ const Ko = /* @__PURE__ */ Oe({
10531
10531
  "entity-checks": a.schema.value?.entity_checks,
10532
10532
  "visible-fields": E.value
10533
10533
  }, null, 8, ["entity-checks", "visible-fields"]),
10534
- (k(!0), Z(Ve, null, tt(b.value, (L) => (k(), z(et, {
10534
+ (k(!0), Z(Be, null, et(b.value, (L) => (k(), z(Qe, {
10535
10535
  key: Object.keys(L)[0],
10536
10536
  name: Object.keys(L)[0]
10537
10537
  }, null, 8, ["name"]))), 128))
@@ -10547,7 +10547,7 @@ const Ko = /* @__PURE__ */ Oe({
10547
10547
  ], 64);
10548
10548
  };
10549
10549
  }
10550
- }), Ft = /* @__PURE__ */ Be(Yx, [["__scopeId", "data-v-66b4c328"]]), Jx = {
10550
+ }), Ft = /* @__PURE__ */ Ve(Yx, [["__scopeId", "data-v-66b4c328"]]), Jx = {
10551
10551
  key: 1,
10552
10552
  class: "ff-number-field-wrapper"
10553
10553
  }, Xx = ["innerHTML"], Zx = /* @__PURE__ */ Oe({
@@ -10647,7 +10647,7 @@ const Ko = /* @__PURE__ */ Oe({
10647
10647
  ]);
10648
10648
  };
10649
10649
  }
10650
- }), Tt = /* @__PURE__ */ Be(Zx, [["__scopeId", "data-v-f303431f"]]), Qx = ["innerHTML"], eI = /* @__PURE__ */ Oe({
10650
+ }), Tt = /* @__PURE__ */ Ve(Zx, [["__scopeId", "data-v-f303431f"]]), Qx = ["innerHTML"], eI = /* @__PURE__ */ Oe({
10651
10651
  __name: "EnumField",
10652
10652
  props: /* @__PURE__ */ Qn({
10653
10653
  labelAttributes: {},
@@ -10748,7 +10748,7 @@ const Ko = /* @__PURE__ */ Oe({
10748
10748
  ]);
10749
10749
  };
10750
10750
  }
10751
- }), Ot = /* @__PURE__ */ Be(eI, [["__scopeId", "data-v-a8b95670"]]), tI = ["data-testid"], nI = ["innerHTML"], iI = /* @__PURE__ */ Oe({
10751
+ }), Ot = /* @__PURE__ */ Ve(eI, [["__scopeId", "data-v-a8b95670"]]), tI = ["data-testid"], nI = ["innerHTML"], iI = /* @__PURE__ */ Oe({
10752
10752
  inheritAttrs: !1,
10753
10753
  __name: "JsonField",
10754
10754
  props: {
@@ -10817,7 +10817,7 @@ const Ko = /* @__PURE__ */ Oe({
10817
10817
  ]);
10818
10818
  };
10819
10819
  }
10820
- }), oI = /* @__PURE__ */ Be(iI, [["__scopeId", "data-v-6f302da9"]]), aI = ["innerHTML"], rI = /* @__PURE__ */ Oe({
10820
+ }), oI = /* @__PURE__ */ Ve(iI, [["__scopeId", "data-v-6f302da9"]]), aI = ["innerHTML"], rI = /* @__PURE__ */ Oe({
10821
10821
  inheritAttrs: !1,
10822
10822
  __name: "ForeignField",
10823
10823
  props: {
@@ -10871,7 +10871,7 @@ const Ko = /* @__PURE__ */ Oe({
10871
10871
  [Yt, !s(l)]
10872
10872
  ]);
10873
10873
  }
10874
- }), sI = /* @__PURE__ */ Be(rI, [["__scopeId", "data-v-8c298e9f"]]), lI = ["data-testid"], cI = ["data-testid"], uI = ["innerHTML"], dI = { class: "ff-map-field-item-content" }, pI = { class: "ff-map-field-fields" }, fI = /* @__PURE__ */ Oe({
10874
+ }), sI = /* @__PURE__ */ Ve(rI, [["__scopeId", "data-v-8c298e9f"]]), lI = ["data-testid"], cI = ["data-testid"], uI = ["innerHTML"], dI = { class: "ff-map-field-item-content" }, pI = { class: "ff-map-field-fields" }, fI = /* @__PURE__ */ Oe({
10875
10875
  __name: "MapField",
10876
10876
  props: {
10877
10877
  keyPlaceholder: {},
@@ -10946,7 +10946,7 @@ const Ko = /* @__PURE__ */ Oe({
10946
10946
  } : void 0
10947
10947
  ]), 1040, ["data-testid", "required", "tooltip-attributes"])
10948
10948
  ], 8, cI)) : ge("", !0),
10949
- (k(!0), Z(Ve, null, tt(s(a), ([P, F], K) => (k(), z(Nt(h.value), {
10949
+ (k(!0), Z(Be, null, et(s(a), ([P, F], K) => (k(), z(Nt(h.value), {
10950
10950
  key: P,
10951
10951
  class: mt(["ff-map-field-item", {
10952
10952
  "ff-map-field-item-simple": g.value,
@@ -10967,13 +10967,13 @@ const Ko = /* @__PURE__ */ Oe({
10967
10967
  "onUpdate:modelValue": (Q) => s(r)(P, Q)
10968
10968
  }, null, 8, ["data-key-input", "data-testid", "model-value", "placeholder", "onKeydown", "onUpdate:modelValue"]),
10969
10969
  nt(w.$slots, "default", { keyId: P }, () => [
10970
- v.value ? (k(), z(Qe, {
10970
+ v.value ? (k(), z(tt, {
10971
10971
  key: 0,
10972
10972
  "inline-vault-picker": "",
10973
10973
  multiline: e.appearance?.string?.multiline,
10974
10974
  name: P,
10975
10975
  onKeydown: ai((Q) => E(Q, K), ["enter"])
10976
- }, null, 8, ["multiline", "name", "onKeydown"])) : (k(), z(et, {
10976
+ }, null, 8, ["multiline", "name", "onKeydown"])) : (k(), z(Qe, {
10977
10977
  key: 1,
10978
10978
  name: P
10979
10979
  }, null, 8, ["name"]))
@@ -11020,7 +11020,7 @@ const Ko = /* @__PURE__ */ Oe({
11020
11020
  ]);
11021
11021
  };
11022
11022
  }
11023
- }), In = /* @__PURE__ */ Be(fI, [["__scopeId", "data-v-1431df84"]]), et = /* @__PURE__ */ Oe({
11023
+ }), In = /* @__PURE__ */ Ve(fI, [["__scopeId", "data-v-1431df84"]]), Qe = /* @__PURE__ */ Oe({
11024
11024
  name: "AutoField",
11025
11025
  __name: "Field",
11026
11026
  props: {
@@ -11033,7 +11033,7 @@ const Ko = /* @__PURE__ */ Oe({
11033
11033
  const t = e, n = Ht(St(t, "name")), i = R(() => {
11034
11034
  switch (n.schema?.value?.type) {
11035
11035
  case "string":
11036
- return "one_of" in n.schema.value ? Ot : Qe;
11036
+ return "one_of" in n.schema.value ? Ot : tt;
11037
11037
  case "boolean":
11038
11038
  return "one_of" in n.schema.value ? Ot : un;
11039
11039
  case "number":
@@ -11057,7 +11057,7 @@ const Ko = /* @__PURE__ */ Oe({
11057
11057
  });
11058
11058
  return (o, a) => {
11059
11059
  const r = ke("KAlert");
11060
- return k(), Z(Ve, null, [
11060
+ return k(), Z(Be, null, [
11061
11061
  (k(), z(Nt(o.$slots[s(Lo)]))),
11062
11062
  s(n).error ? (k(), z(r, {
11063
11063
  key: 0,
@@ -11068,7 +11068,7 @@ const Ko = /* @__PURE__ */ Oe({
11068
11068
  autofocus: t.autofocus,
11069
11069
  name: Sl(s(n).path.value),
11070
11070
  onGlobalAction: a[0] || (a[0] = (l, c) => o.$emit("globalAction", l, c))
11071
- }, null, 40, ["autofocus", "name"])) : (k(), Z(Ve, { key: 2 }, [
11071
+ }, null, 40, ["autofocus", "name"])) : (k(), Z(Be, { key: 2 }, [
11072
11072
  i.value ? (k(), z(Nt(i.value), {
11073
11073
  key: 0,
11074
11074
  autofocus: t.autofocus,
@@ -11087,7 +11087,7 @@ const Ko = /* @__PURE__ */ Oe({
11087
11087
  function mI(e) {
11088
11088
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
11089
11089
  }
11090
- var on = {}, Wa = {}, yi = {}, rd;
11090
+ var nn = {}, Wa = {}, yi = {}, rd;
11091
11091
  function La() {
11092
11092
  if (rd) return yi;
11093
11093
  rd = 1;
@@ -12766,7 +12766,7 @@ function vI() {
12766
12766
  }
12767
12767
  var $d;
12768
12768
  function yI() {
12769
- if ($d) return on;
12769
+ if ($d) return nn;
12770
12770
  $d = 1;
12771
12771
  const e = hI(), t = vI();
12772
12772
  function n(i, o) {
@@ -12774,7 +12774,7 @@ function yI() {
12774
12774
  throw new Error("Function yaml." + i + " is removed in js-yaml 4. Use yaml." + o + " instead, which is now safe by default.");
12775
12775
  };
12776
12776
  }
12777
- return on.Type = pn(), on.Schema = cm(), on.FAILSAFE_SCHEMA = fm(), on.JSON_SCHEMA = ym(), on.CORE_SCHEMA = _m(), on.DEFAULT_SCHEMA = xc(), on.load = e.load, on.loadAll = e.loadAll, on.dump = t.dump, on.YAMLException = Fa(), on.types = {
12777
+ return nn.Type = pn(), nn.Schema = cm(), nn.FAILSAFE_SCHEMA = fm(), nn.JSON_SCHEMA = ym(), nn.CORE_SCHEMA = _m(), nn.DEFAULT_SCHEMA = xc(), nn.load = e.load, nn.loadAll = e.loadAll, nn.dump = t.dump, nn.YAMLException = Fa(), nn.types = {
12778
12778
  binary: wm(),
12779
12779
  float: vm(),
12780
12780
  map: pm(),
@@ -12788,7 +12788,7 @@ function yI() {
12788
12788
  omap: Cm(),
12789
12789
  seq: dm(),
12790
12790
  str: um()
12791
- }, on.safeLoad = n("safeLoad", "load"), on.safeLoadAll = n("safeLoadAll", "loadAll"), on.safeDump = n("safeDump", "dump"), on;
12791
+ }, nn.safeLoad = n("safeLoad", "load"), nn.safeLoadAll = n("safeLoadAll", "loadAll"), nn.safeDump = n("safeDump", "dump"), nn;
12792
12792
  }
12793
12793
  var _I = yI();
12794
12794
  const Sn = /* @__PURE__ */ mI(_I), {
@@ -17854,7 +17854,7 @@ const XA = {
17854
17854
  }, null, 8, ["modelValue", "theme"]))
17855
17855
  ]));
17856
17856
  }
17857
- }), eT = /* @__PURE__ */ Be(QA, [["__scopeId", "data-v-e410510b"]]), Ca = {
17857
+ }), eT = /* @__PURE__ */ Ve(QA, [["__scopeId", "data-v-e410510b"]]), Ca = {
17858
17858
  jqlang: "https://jqlang.org/manual/",
17859
17859
  condition: "https://developer.konghq.com/gateway/plugins/expressions/",
17860
17860
  customPluginSandboxing: "https://developer.konghq.com/gateway/sandboxing/",
@@ -17889,7 +17889,7 @@ const XA = {
17889
17889
  ]),
17890
17890
  _: 1
17891
17891
  }, 8, ["for", "label"]),
17892
- _(Qe, {
17892
+ _(tt, {
17893
17893
  "input-id": s(t),
17894
17894
  label: "",
17895
17895
  name: "condition",
@@ -17916,7 +17916,7 @@ const XA = {
17916
17916
  ]);
17917
17917
  };
17918
17918
  }
17919
- }), iT = /* @__PURE__ */ Be(nT, [["__scopeId", "data-v-22ab50f7"]]), nn = /* @__PURE__ */ Oe({
17919
+ }), iT = /* @__PURE__ */ Ve(nT, [["__scopeId", "data-v-22ab50f7"]]), tn = /* @__PURE__ */ Oe({
17920
17920
  name: "SchemaForm",
17921
17921
  __name: "Form",
17922
17922
  props: {
@@ -17948,7 +17948,7 @@ const XA = {
17948
17948
  default: I(() => [
17949
17949
  (k(), z(Nt(s(o)[s(Lo)]))),
17950
17950
  nt(p.$slots, "default", {}, () => [
17951
- (k(!0), Z(Ve, null, tt(d.value, (g) => (k(), z(et, {
17951
+ (k(!0), Z(Be, null, et(d.value, (g) => (k(), z(Qe, {
17952
17952
  key: Object.keys(g)[0],
17953
17953
  name: Object.keys(g)[0],
17954
17954
  onGlobalAction: f[0] || (f[0] = (y, v) => i("globalAction", y, v))
@@ -18017,7 +18017,7 @@ const XA = {
18017
18017
  return (p, f) => {
18018
18018
  const g = ke("KCopy");
18019
18019
  return k(), Z("div", aT, [
18020
- (k(!0), Z(Ve, null, tt(d.value, ({ key: y, label: v, value: h, type: b }) => (k(), Z("div", {
18020
+ (k(!0), Z(Be, null, et(d.value, ({ key: y, label: v, value: h, type: b }) => (k(), Z("div", {
18021
18021
  key: y,
18022
18022
  class: "partial-config-card-row"
18023
18023
  }, [
@@ -18050,7 +18050,7 @@ const XA = {
18050
18050
  ]);
18051
18051
  };
18052
18052
  }
18053
- }), mT = /* @__PURE__ */ Be(fT, [["__scopeId", "data-v-82dcdf99"]]), gT = {
18053
+ }), mT = /* @__PURE__ */ Ve(fT, [["__scopeId", "data-v-82dcdf99"]]), gT = {
18054
18054
  key: 0,
18055
18055
  class: "redis-config-card-title"
18056
18056
  }, hT = {
@@ -18249,7 +18249,7 @@ const XA = {
18249
18249
  ]);
18250
18250
  };
18251
18251
  }
18252
- }), as = /* @__PURE__ */ Be(kT, [["__scopeId", "data-v-4b7e35b7"]]), wT = /* @__PURE__ */ Oe({
18252
+ }), as = /* @__PURE__ */ Ve(kT, [["__scopeId", "data-v-4b7e35b7"]]), wT = /* @__PURE__ */ Oe({
18253
18253
  inheritAttrs: !1,
18254
18254
  __name: "PluginConfigurationForm",
18255
18255
  props: {
@@ -18286,7 +18286,7 @@ const XA = {
18286
18286
  return t({
18287
18287
  getValue: () => l.value?.getValue(),
18288
18288
  setValue: (v) => l.value?.setValue(v)
18289
- }), ux(() => i.schema, r), (v, h) => (k(), z(nn, Ye({ ref: "form" }, p.value, {
18289
+ }), ux(() => i.schema, r), (v, h) => (k(), z(tn, Ye({ ref: "form" }, p.value, {
18290
18290
  class: "ff-plugin-configuration-form",
18291
18291
  config: f.value,
18292
18292
  data: g.value,
@@ -18299,7 +18299,7 @@ const XA = {
18299
18299
  onChange: y
18300
18300
  }), ft({
18301
18301
  [s(Lo)]: I(() => [
18302
- (k(!0), Z(Ve, null, tt(u.value, (b, E) => (k(), z(kt, {
18302
+ (k(!0), Z(Be, null, et(u.value, (b, E) => (k(), z(kt, {
18303
18303
  key: `${e.pluginName}-${E}`,
18304
18304
  match: s(WS)(b.match)
18305
18305
  }, {
@@ -18531,7 +18531,7 @@ const XA = {
18531
18531
  }), H;
18532
18532
  }
18533
18533
  const ee = pe(!0);
18534
- return (H, te) => (k(), Z(Ve, null, [
18534
+ return (H, te) => (k(), Z(Be, null, [
18535
18535
  u.value ? (k(), z(Nr, {
18536
18536
  key: 0,
18537
18537
  to: "#plugin-form-page-actions"
@@ -18573,7 +18573,7 @@ const XA = {
18573
18573
  (k(), z(Nt(h.value?.disabled ? s(Bn) : "div"), yn(Nn(y.value)), {
18574
18574
  default: I(() => [
18575
18575
  j("div", CT, [
18576
- _(s(tn), Ye({
18576
+ _(s(an), Ye({
18577
18577
  modelValue: P.value,
18578
18578
  "onUpdate:modelValue": te[0] || (te[0] = (q) => P.value = q),
18579
18579
  card: "",
@@ -18583,7 +18583,7 @@ const XA = {
18583
18583
  "selected-value": !1,
18584
18584
  "onUpdate:modelValue": V
18585
18585
  }), null, 16, ["modelValue", "disabled"]),
18586
- b.value[1] ? (k(), z(s(tn), Ye({
18586
+ b.value[1] ? (k(), z(s(an), Ye({
18587
18587
  key: 0,
18588
18588
  modelValue: P.value,
18589
18589
  "onUpdate:modelValue": te[1] || (te[1] = (q) => P.value = q),
@@ -18599,7 +18599,7 @@ const XA = {
18599
18599
  _: 1
18600
18600
  }, 16)),
18601
18601
  E.value ? Wt((k(), Z("div", ET, [
18602
- (k(!0), Z(Ve, null, tt(S.value, (q) => (k(), z(bx, {
18602
+ (k(!0), Z(Be, null, et(S.value, (q) => (k(), z(bx, {
18603
18603
  key: q.name,
18604
18604
  developer: e.developer,
18605
18605
  disabled: q.disabled,
@@ -18640,7 +18640,7 @@ const XA = {
18640
18640
  key: "2"
18641
18641
  } : void 0
18642
18642
  ]), 1032, ["description", "title"])) : ge("", !0),
18643
- c.value === "form" && e.configSections?.length ? (k(!0), Z(Ve, { key: 1 }, tt(e.configSections, (q, O) => (k(), z(s(qn), {
18643
+ c.value === "form" && e.configSections?.length ? (k(!0), Z(Be, { key: 1 }, et(e.configSections, (q, O) => (k(), z(s(qn), {
18644
18644
  key: q.name,
18645
18645
  "data-testid": `form-section-${q.name}`,
18646
18646
  description: q.description,
@@ -18700,7 +18700,7 @@ const XA = {
18700
18700
  label: s(n)("plugins.form.fields.plugin_status.label"),
18701
18701
  name: "enabled"
18702
18702
  }, null, 8, ["disabled-text", "enabled-text", "label"])) : ge("", !0),
18703
- M.value.has("instance_name") ? (k(), z(Qe, {
18703
+ M.value.has("instance_name") ? (k(), z(tt, {
18704
18704
  key: 1,
18705
18705
  label: s(n)("plugins.form.fields.instance_name.label"),
18706
18706
  name: "instance_name",
@@ -18712,7 +18712,7 @@ const XA = {
18712
18712
  name: "tags",
18713
18713
  placeholder: s(n)("plugins.form.fields.tags.placeholder")
18714
18714
  }, null, 8, ["help", "placeholder"])) : ge("", !0),
18715
- M.value.has("protocols") ? (k(), z(et, {
18715
+ M.value.has("protocols") ? (k(), z(Qe, {
18716
18716
  key: 3,
18717
18717
  name: "protocols"
18718
18718
  })) : ge("", !0),
@@ -18748,7 +18748,7 @@ const XA = {
18748
18748
  }, 16, ["field-renderers", "form-config", "is-konnect-managed-redis-enabled", "model", "on-form-change", "plugin-name", "render-rules", "schema"])
18749
18749
  ], 64));
18750
18750
  }
18751
- }), xT = /* @__PURE__ */ Be(ST, [["__scopeId", "data-v-e2f4cda4"]]), fg = /* @__PURE__ */ Symbol.for("kong-ui-public.entities-plugins.free-form-plugin-layout");
18751
+ }), xT = /* @__PURE__ */ Ve(ST, [["__scopeId", "data-v-e2f4cda4"]]), fg = /* @__PURE__ */ Symbol.for("kong-ui-public.entities-plugins.free-form-plugin-layout");
18752
18752
  function s8(e) {
18753
18753
  Pt(fg, e);
18754
18754
  }
@@ -18783,7 +18783,7 @@ const Ln = /* @__PURE__ */ Oe({
18783
18783
  ...t
18784
18784
  }));
18785
18785
  return (r, l) => (k(), z(Nt(s(o)), yn(Nn(a.value)), ft({ _: 2 }, [
18786
- tt(s(i), (c, u) => ({
18786
+ et(s(i), (c, u) => ({
18787
18787
  name: u,
18788
18788
  fn: I((d) => [
18789
18789
  nt(r.$slots, u, yn(Nn(d ?? {})))
@@ -18794,51 +18794,54 @@ const Ln = /* @__PURE__ */ Oe({
18794
18794
  }), IT = { class: "ff-acl-mode" }, AT = /* @__PURE__ */ Oe({
18795
18795
  __name: "ACLModeCard",
18796
18796
  setup(e) {
18797
- const { formData: t } = dt(), { i18n: { t: n } } = ot(), i = pe("allow"), o = pe(!1), a = pe({});
18798
- Xe(() => t.config, (l) => {
18799
- if (o.value || !l) return;
18800
- const c = l.deny, u = l.allow;
18801
- Array.isArray(c) && c.length > 0 ? i.value = "deny" : Array.isArray(u) && u.length > 0 && (i.value = "allow");
18797
+ const t = ["allow", "deny", "allow_when", "deny_when"], { formData: n, getSchema: i } = dt(), { i18n: { t: o } } = ot(), a = R(() => t.filter((d) => !!i(`config.${d}`))), r = pe("allow"), l = pe(!1), c = pe({});
18798
+ Xe(() => n.config, (d) => {
18799
+ if (l.value || !d) return;
18800
+ const p = a.value.find((f) => Array.isArray(d[f]) && d[f].length > 0);
18801
+ p && (r.value = p);
18802
18802
  }, { deep: !0, immediate: !0 });
18803
- function r() {
18804
- o.value = !0, t.config && (i.value === "allow" ? (t.config.deny && (a.value.deny = [...t.config.deny]), t.config.deny = null, a.value.allow && (t.config.allow = [...a.value.allow])) : (t.config.allow && (a.value.allow = [...t.config.allow]), t.config.allow = null, a.value.deny && (t.config.deny = [...a.value.deny])));
18805
- }
18806
- return (l, c) => (k(), z(s(ua), { class: "ff-acl-mode-card" }, {
18803
+ function u() {
18804
+ l.value = !0;
18805
+ const d = n.config;
18806
+ if (!d) return;
18807
+ for (const f of a.value)
18808
+ f !== r.value && (d[f] && (c.value[f] = [...d[f]]), d[f] = null);
18809
+ const p = c.value[r.value];
18810
+ p && (d[r.value] = [...p]);
18811
+ }
18812
+ return (d, p) => (k(), z(s(ua), { class: "ff-acl-mode-card" }, {
18807
18813
  default: I(() => [
18808
18814
  j("div", IT, [
18809
- _(s(tn), {
18810
- modelValue: i.value,
18815
+ (k(!0), Z(Be, null, et(a.value, (f) => (k(), z(s(an), {
18816
+ key: f,
18817
+ modelValue: r.value,
18811
18818
  "onUpdate:modelValue": [
18812
- c[0] || (c[0] = (u) => i.value = u),
18813
- r
18819
+ p[0] || (p[0] = (g) => r.value = g),
18820
+ u
18814
18821
  ],
18815
- "data-testid": "ff-acl-mode-allow",
18816
- label: s(n)("plugins.free-form.acl.mode.allow"),
18817
- "selected-value": "allow"
18818
- }, null, 8, ["modelValue", "label"]),
18819
- _(s(tn), {
18820
- modelValue: i.value,
18821
- "onUpdate:modelValue": [
18822
- c[1] || (c[1] = (u) => i.value = u),
18823
- r
18824
- ],
18825
- "data-testid": "ff-acl-mode-deny",
18826
- label: s(n)("plugins.free-form.acl.mode.deny"),
18827
- "selected-value": "deny"
18828
- }, null, 8, ["modelValue", "label"])
18822
+ "data-testid": `ff-acl-mode-${f}`,
18823
+ label: s(o)(`plugins.free-form.acl.mode.${f}`),
18824
+ "selected-value": f
18825
+ }, null, 8, ["modelValue", "data-testid", "label", "selected-value"]))), 128))
18829
18826
  ]),
18830
- i.value === "allow" ? (k(), z(et, {
18827
+ r.value === "allow" ? (k(), z(Qe, {
18831
18828
  key: 0,
18832
18829
  name: "config.allow"
18833
- })) : (k(), z(et, {
18830
+ })) : r.value === "deny" ? (k(), z(Qe, {
18834
18831
  key: 1,
18835
18832
  name: "config.deny"
18833
+ })) : r.value === "allow_when" ? (k(), z(Qe, {
18834
+ key: 2,
18835
+ name: "config.allow_when"
18836
+ })) : (k(), z(Qe, {
18837
+ key: 3,
18838
+ name: "config.deny_when"
18836
18839
  }))
18837
18840
  ]),
18838
18841
  _: 1
18839
18842
  }));
18840
18843
  }
18841
- }), TT = /* @__PURE__ */ Be(AT, [["__scopeId", "data-v-fd5c7165"]]), $T = /* @__PURE__ */ Oe({
18844
+ }), TT = /* @__PURE__ */ Ve(AT, [["__scopeId", "data-v-7b5fdda8"]]), $T = /* @__PURE__ */ Oe({
18842
18845
  __name: "ACLForm",
18843
18846
  props: {
18844
18847
  schema: {},
@@ -18867,7 +18870,7 @@ const Ln = /* @__PURE__ */ Oe({
18867
18870
  _(Ft, {
18868
18871
  "as-child": "",
18869
18872
  name: "config",
18870
- omit: ["allow", "deny"],
18873
+ omit: ["allow", "deny", "allow_when", "deny_when"],
18871
18874
  "reset-label-path": "reset"
18872
18875
  })
18873
18876
  ]),
@@ -18910,7 +18913,7 @@ const Ln = /* @__PURE__ */ Oe({
18910
18913
  fieldRenderers: [
18911
18914
  {
18912
18915
  match: "config.gcp_service_account_json",
18913
- component: Qe,
18916
+ component: tt,
18914
18917
  propsOverrides: {
18915
18918
  multiline: !0,
18916
18919
  rows: 4
@@ -18924,7 +18927,7 @@ const Ln = /* @__PURE__ */ Oe({
18924
18927
  fieldRenderers: [
18925
18928
  {
18926
18929
  match: "config.prompt",
18927
- component: Qe,
18930
+ component: tt,
18928
18931
  propsOverrides: {
18929
18932
  multiline: !0,
18930
18933
  rows: 4
@@ -19042,7 +19045,7 @@ const Ln = /* @__PURE__ */ Oe({
19042
19045
  },
19043
19046
  {
19044
19047
  match: ({ genericPath: e }) => e === "config.templates.*.template",
19045
- component: Qe,
19048
+ component: tt,
19046
19049
  propsOverrides: {
19047
19050
  multiline: !0,
19048
19051
  rows: 4
@@ -19150,7 +19153,7 @@ const Ln = /* @__PURE__ */ Oe({
19150
19153
  fieldRenderers: [
19151
19154
  {
19152
19155
  match: "config.prompt",
19153
- component: Qe,
19156
+ component: tt,
19154
19157
  propsOverrides: {
19155
19158
  multiline: !0,
19156
19159
  rows: 4
@@ -19162,7 +19165,7 @@ const Ln = /* @__PURE__ */ Oe({
19162
19165
  fieldRenderers: [
19163
19166
  {
19164
19167
  match: "config.prompt",
19165
- component: Qe,
19168
+ component: tt,
19166
19169
  propsOverrides: {
19167
19170
  multiline: !0,
19168
19171
  rows: 4
@@ -19266,12 +19269,12 @@ const Ln = /* @__PURE__ */ Oe({
19266
19269
  }, {
19267
19270
  default: I(() => [
19268
19271
  j("div", l$, [
19269
- e.hideGeneralFields ? ge("", !0) : (k(), Z(Ve, { key: 0 }, [
19270
- s(n)("instance_name") ? (k(), z(et, {
19272
+ e.hideGeneralFields ? ge("", !0) : (k(), Z(Be, { key: 0 }, [
19273
+ s(n)("instance_name") ? (k(), z(Qe, {
19271
19274
  key: 0,
19272
19275
  name: "instance_name"
19273
19276
  })) : ge("", !0),
19274
- s(n)("protocols") ? (k(), z(et, {
19277
+ s(n)("protocols") ? (k(), z(Qe, {
19275
19278
  key: 1,
19276
19279
  name: "protocols"
19277
19280
  })) : ge("", !0),
@@ -19281,7 +19284,7 @@ const Ln = /* @__PURE__ */ Oe({
19281
19284
  name: "tags",
19282
19285
  placeholder: s(t)("plugins.form.fields.tags.placeholder")
19283
19286
  }, null, 8, ["placeholder"])) : ge("", !0),
19284
- s(n)("condition") ? (k(), z(Qe, {
19287
+ s(n)("condition") ? (k(), z(tt, {
19285
19288
  key: 3,
19286
19289
  name: "condition",
19287
19290
  placeholder: s(t)("plugins.form.fields.condition.placeholder")
@@ -19293,7 +19296,7 @@ const Ln = /* @__PURE__ */ Oe({
19293
19296
  _: 3
19294
19297
  }, 8, ["modelValue", "trigger-label"]));
19295
19298
  }
19296
- }), zi = /* @__PURE__ */ Be(c$, [["__scopeId", "data-v-baa317ec"]]), u$ = {
19299
+ }), zi = /* @__PURE__ */ Ve(c$, [["__scopeId", "data-v-baa317ec"]]), u$ = {
19297
19300
  class: "kong-identity-field",
19298
19301
  "data-testid": "ff-kong-identity-field"
19299
19302
  }, d$ = { class: "kong-identity-description" }, p$ = {
@@ -19348,8 +19351,8 @@ const Ln = /* @__PURE__ */ Oe({
19348
19351
  e.loadingRealms ? (k(), z(s(Bh), {
19349
19352
  key: 0,
19350
19353
  class: "kong-identity-options-skeleton"
19351
- })) : (k(), Z(Ve, { key: 1 }, [
19352
- _(s(tn), {
19354
+ })) : (k(), Z(Be, { key: 1 }, [
19355
+ _(s(an), {
19353
19356
  card: "",
19354
19357
  "card-orientation": "horizontal",
19355
19358
  "data-testid": "kong-identity-mode-consumers",
@@ -19366,7 +19369,7 @@ const Ln = /* @__PURE__ */ Oe({
19366
19369
  ]),
19367
19370
  _: 1
19368
19371
  }, 8, ["description", "label", "model-value"]),
19369
- c.value ? (k(), z(s(tn), {
19372
+ c.value ? (k(), z(s(an), {
19370
19373
  key: 0,
19371
19374
  card: "",
19372
19375
  "card-orientation": "horizontal",
@@ -19384,7 +19387,7 @@ const Ln = /* @__PURE__ */ Oe({
19384
19387
  ]),
19385
19388
  _: 1
19386
19389
  }, 8, ["description", "label", "model-value"])) : ge("", !0),
19387
- _(s(tn), {
19390
+ _(s(an), {
19388
19391
  card: "",
19389
19392
  "card-orientation": "horizontal",
19390
19393
  "data-testid": "kong-identity-mode-kong-identity",
@@ -19405,7 +19408,7 @@ const Ln = /* @__PURE__ */ Oe({
19405
19408
  ])
19406
19409
  ]));
19407
19410
  }
19408
- }), g$ = /* @__PURE__ */ Be(m$, [["__scopeId", "data-v-75509002"]]), h$ = /* @__PURE__ */ Oe({
19411
+ }), g$ = /* @__PURE__ */ Ve(m$, [["__scopeId", "data-v-75509002"]]), h$ = /* @__PURE__ */ Oe({
19409
19412
  name: "PrincipalsCreationGuide",
19410
19413
  __name: "PrincipalsCreationGuide",
19411
19414
  props: {
@@ -19420,7 +19423,7 @@ const Ln = /* @__PURE__ */ Oe({
19420
19423
  };
19421
19424
  return (l, c) => {
19422
19425
  const u = ke("KSkeleton");
19423
- return k(), Z(Ve, null, [
19426
+ return k(), Z(Be, null, [
19424
19427
  e.loading ? (k(), z(u, {
19425
19428
  key: 0,
19426
19429
  class: "kong-identity-principals-skeleton",
@@ -19479,7 +19482,7 @@ const Ln = /* @__PURE__ */ Oe({
19479
19482
  ], 64);
19480
19483
  };
19481
19484
  }
19482
- }), v$ = /* @__PURE__ */ Be(h$, [["__scopeId", "data-v-d86101ef"]]), Bc = /* @__PURE__ */ Symbol("before-save"), y$ = {
19485
+ }), v$ = /* @__PURE__ */ Ve(h$, [["__scopeId", "data-v-d86101ef"]]), Bc = /* @__PURE__ */ Symbol("before-save"), y$ = {
19483
19486
  key: 0,
19484
19487
  class: "identity-realms-error",
19485
19488
  "data-testid": "identity-realms-validation-error"
@@ -19572,7 +19575,7 @@ const Ln = /* @__PURE__ */ Oe({
19572
19575
  const q = f("$.config")?.fields?.map((G) => Object.keys(G)[0]) ?? [], O = /* @__PURE__ */ new Set(["anonymous"]);
19573
19576
  return !D.value && P.value !== "kong-identity" && O.add("realm"), u.value && w.value && !$.value && O.add("identity_realms"), q.filter((G) => !O.has(G));
19574
19577
  });
19575
- return (te, q) => (k(), Z(Ve, null, [
19578
+ return (te, q) => (k(), Z(Be, null, [
19576
19579
  _(Ft, {
19577
19580
  "as-child": "",
19578
19581
  class: "ff-default-visible-fields",
@@ -19622,7 +19625,7 @@ const Ln = /* @__PURE__ */ Oe({
19622
19625
  ]),
19623
19626
  _: 1
19624
19627
  }),
19625
- _(s(tn), {
19628
+ _(s(an), {
19626
19629
  "data-testid": "principals-error-on-miss-true",
19627
19630
  description: s(l).t("custom_field.kong_identity.error_on_miss_reject_description"),
19628
19631
  label: s(l).t("custom_field.kong_identity.error_on_miss_reject_label"),
@@ -19630,7 +19633,7 @@ const Ln = /* @__PURE__ */ Oe({
19630
19633
  "selected-value": !0,
19631
19634
  "onUpdate:modelValue": E
19632
19635
  }, null, 8, ["description", "label", "model-value"]),
19633
- _(s(tn), {
19636
+ _(s(an), {
19634
19637
  "data-testid": "principals-error-on-miss-false",
19635
19638
  description: s(l).t("custom_field.kong_identity.error_on_miss_continue_description"),
19636
19639
  label: s(l).t("custom_field.kong_identity.error_on_miss_continue_label"),
@@ -19650,7 +19653,7 @@ const Ln = /* @__PURE__ */ Oe({
19650
19653
  })
19651
19654
  ], 64));
19652
19655
  }
19653
- }), k$ = /* @__PURE__ */ Be(b$, [["__scopeId", "data-v-7dc8344d"]]), hg = /* @__PURE__ */ Oe({
19656
+ }), k$ = /* @__PURE__ */ Ve(b$, [["__scopeId", "data-v-7dc8344d"]]), hg = /* @__PURE__ */ Oe({
19654
19657
  __name: "ConfigFormWithIdentity",
19655
19658
  props: {
19656
19659
  schema: {},
@@ -19686,7 +19689,7 @@ const Ln = /* @__PURE__ */ Oe({
19686
19689
  },
19687
19690
  {
19688
19691
  match: "config.realm",
19689
- component: Qe,
19692
+ component: tt,
19690
19693
  propsOverrides: {
19691
19694
  placeholder: "e.g., my-api"
19692
19695
  }
@@ -19694,7 +19697,7 @@ const Ln = /* @__PURE__ */ Oe({
19694
19697
  // basic-auth + key-auth
19695
19698
  {
19696
19699
  match: "config.anonymous",
19697
- component: Qe,
19700
+ component: tt,
19698
19701
  propsOverrides: {
19699
19702
  placeholder: "e.g., 00000000-0000-0000-0000-000000000001"
19700
19703
  }
@@ -19725,7 +19728,7 @@ const Ln = /* @__PURE__ */ Oe({
19725
19728
  fieldRenderers: [
19726
19729
  {
19727
19730
  match: "config.message_by_lua_functions.*",
19728
- component: Qe,
19731
+ component: tt,
19729
19732
  propsOverrides: {
19730
19733
  multiline: !0,
19731
19734
  rows: 3
@@ -19754,7 +19757,7 @@ const Ln = /* @__PURE__ */ Oe({
19754
19757
  fieldRenderers: [
19755
19758
  {
19756
19759
  match: "config.message_by_lua_functions.*",
19757
- component: Qe,
19760
+ component: tt,
19758
19761
  propsOverrides: {
19759
19762
  multiline: !0,
19760
19763
  rows: 3
@@ -20233,7 +20236,7 @@ const q$ = {
20233
20236
  default: I(() => [
20234
20237
  j("div", G$, [
20235
20238
  Te(W(s(o)("plugins.free-form.datakit.description_example")) + " ", 1),
20236
- (k(!0), Z(Ve, null, tt(s(vg), (L) => (k(), z(s(en), {
20239
+ (k(!0), Z(Be, null, et(s(vg), (L) => (k(), z(s(en), {
20237
20240
  key: L.id,
20238
20241
  appearance: "secondary",
20239
20242
  size: "small",
@@ -20274,7 +20277,7 @@ const q$ = {
20274
20277
  }, 8, ["action-button-text", "title", "visible"])
20275
20278
  ]));
20276
20279
  }
20277
- }), W$ = /* @__PURE__ */ Be(H$, [["__scopeId", "data-v-8274ec05"]]), { t: Y$ } = Xt("en-us", Qt), ls = Qh(() => {
20280
+ }), W$ = /* @__PURE__ */ Ve(H$, [["__scopeId", "data-v-8274ec05"]]), { t: Y$ } = Xt("en-us", Qt), ls = Qh(() => {
20278
20281
  const e = ar("datakit-editor-mode", "flow"), t = ar(
20279
20282
  "datakit-editor-sidebar-expanded",
20280
20283
  !0
@@ -20388,9 +20391,9 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20388
20391
  j("div", X$, [
20389
20392
  Te(W(s(t)("plugins.free-form.datakit.flow_editor.canvas_panel.request")) + " ", 1),
20390
20393
  j("span", Z$, [
20391
- s(r).request === 1 ? (k(), Z(Ve, { key: 0 }, [
20394
+ s(r).request === 1 ? (k(), Z(Be, { key: 0 }, [
20392
20395
  Te(" (" + W(s(t)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_singular")) + ") ", 1)
20393
- ], 64)) : (k(), Z(Ve, { key: 1 }, [
20396
+ ], 64)) : (k(), Z(Be, { key: 1 }, [
20394
20397
  Te(" (" + W(s(t)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_plural", { count: s(r).request })) + ") ", 1)
20395
20398
  ], 64))
20396
20399
  ])
@@ -20430,9 +20433,9 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20430
20433
  j("div", Q$, [
20431
20434
  Te(W(s(t)("plugins.free-form.datakit.flow_editor.canvas_panel.response")) + " ", 1),
20432
20435
  j("span", eO, [
20433
- s(r).response === 1 ? (k(), Z(Ve, { key: 0 }, [
20436
+ s(r).response === 1 ? (k(), Z(Be, { key: 0 }, [
20434
20437
  Te(" (" + W(s(t)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_singular")) + ") ", 1)
20435
- ], 64)) : (k(), Z(Ve, { key: 1 }, [
20438
+ ], 64)) : (k(), Z(Be, { key: 1 }, [
20436
20439
  Te(" (" + W(s(t)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_plural", { count: s(r).response })) + ") ", 1)
20437
20440
  ], 64))
20438
20441
  ])
@@ -20456,7 +20459,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20456
20459
  ], 6)
20457
20460
  ], 512));
20458
20461
  }
20459
- }), Vc = /* @__PURE__ */ Be(nO, [["__scopeId", "data-v-5a4fec80"]]), iO = { class: "dk-confirm-modal-body" }, oO = { class: "connections" }, aO = /* @__PURE__ */ Oe({
20462
+ }), Vc = /* @__PURE__ */ Ve(nO, [["__scopeId", "data-v-5a4fec80"]]), iO = { class: "dk-confirm-modal-body" }, oO = { class: "connections" }, aO = /* @__PURE__ */ Oe({
20460
20463
  __name: "ConflictModal",
20461
20464
  props: {
20462
20465
  title: {},
@@ -20498,7 +20501,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20498
20501
  j("p", null, W(r.value), 1),
20499
20502
  j("p", null, W(s(i)("plugins.free-form.datakit.flow_editor.confirm.message.confirm")), 1),
20500
20503
  j("div", oO, [
20501
- (k(!0), Z(Ve, null, tt(l.value ?? [], ([h, b]) => (k(), Z("div", {
20504
+ (k(!0), Z(Be, null, et(l.value ?? [], ([h, b]) => (k(), Z("div", {
20502
20505
  key: `${h}-${b}`,
20503
20506
  class: "connection"
20504
20507
  }, [
@@ -20507,7 +20510,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20507
20510
  }, null, 8, ["color"]),
20508
20511
  Te(" " + W(h) + " → " + W(b), 1)
20509
20512
  ]))), 128)),
20510
- (k(!0), Z(Ve, null, tt(c.value ?? [], ([h, b]) => (k(), Z("div", {
20513
+ (k(!0), Z(Be, null, et(c.value ?? [], ([h, b]) => (k(), Z("div", {
20511
20514
  key: `${h}-${b}`,
20512
20515
  class: "connection"
20513
20516
  }, [
@@ -20523,7 +20526,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20523
20526
  }, 8, ["action-button-text", "title", "visible"]);
20524
20527
  };
20525
20528
  }
20526
- }), rO = /* @__PURE__ */ Be(aO, [["__scopeId", "data-v-e6df03c2"]]), sO = { class: "dk-editor-nav" }, lO = { class: "top" }, cO = { class: "bottom" }, uO = /* @__PURE__ */ Oe({
20529
+ }), rO = /* @__PURE__ */ Ve(aO, [["__scopeId", "data-v-e6df03c2"]]), sO = { class: "dk-editor-nav" }, lO = { class: "top" }, cO = { class: "bottom" }, uO = /* @__PURE__ */ Oe({
20527
20530
  __name: "EditorNav",
20528
20531
  emits: ["back"],
20529
20532
  setup(e, { emit: t }) {
@@ -20539,7 +20542,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20539
20542
  }
20540
20543
  return (u, d) => (k(), Z("nav", sO, [
20541
20544
  j("div", lO, [
20542
- (k(), Z(Ve, null, tt(o, ({ label: p, to: f, icon: g, onClick: y }) => _(s(Bn), {
20545
+ (k(), Z(Be, null, et(o, ({ label: p, to: f, icon: g, onClick: y }) => _(s(Bn), {
20543
20546
  key: p,
20544
20547
  "kpop-attributes": { offset: "10px" },
20545
20548
  label: p,
@@ -20604,7 +20607,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20604
20607
  ])
20605
20608
  ]));
20606
20609
  }
20607
- }), dO = /* @__PURE__ */ Be(uO, [["__scopeId", "data-v-07aa3288"]]), pO = { class: "dk-editor-main" }, fO = { class: "header" }, mO = { class: "actions" }, gO = { class: "settings" }, hO = {
20610
+ }), dO = /* @__PURE__ */ Ve(uO, [["__scopeId", "data-v-07aa3288"]]), pO = { class: "dk-editor-main" }, fO = { class: "header" }, mO = { class: "actions" }, gO = { class: "settings" }, hO = {
20608
20611
  ref: "canvasContainer",
20609
20612
  class: "body"
20610
20613
  }, vO = /* @__PURE__ */ Oe({
@@ -20714,7 +20717,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20714
20717
  width: 240
20715
20718
  }, {
20716
20719
  items: I(() => [
20717
- (k(!0), Z(Ve, null, tt(s(vg), (y) => (k(), z(s(or), {
20720
+ (k(!0), Z(Be, null, et(s(vg), (y) => (k(), z(s(or), {
20718
20721
  key: y.id,
20719
20722
  onClick: (v) => u(y)
20720
20723
  }, {
@@ -20753,7 +20756,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20753
20756
  ], 512)
20754
20757
  ]));
20755
20758
  }
20756
- }), yO = /* @__PURE__ */ Be(vO, [["__scopeId", "data-v-1cf532ff"]]), _O = ["draggable"], bO = { class: "icon" }, kO = { class: "content" }, wO = { class: "title" }, CO = { class: "description" }, EO = /* @__PURE__ */ Oe({
20759
+ }), yO = /* @__PURE__ */ Ve(vO, [["__scopeId", "data-v-1cf532ff"]]), _O = ["draggable"], bO = { class: "icon" }, kO = { class: "content" }, wO = { class: "title" }, CO = { class: "description" }, EO = /* @__PURE__ */ Oe({
20757
20760
  __name: "NodePanelItem",
20758
20761
  props: {
20759
20762
  type: {},
@@ -20791,7 +20794,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20791
20794
  ])
20792
20795
  ], 42, _O));
20793
20796
  }
20794
- }), SO = /* @__PURE__ */ Be(EO, [["__scopeId", "data-v-829422ff"]]), xO = { class: "dk-node-panel" }, IO = {
20797
+ }), SO = /* @__PURE__ */ Ve(EO, [["__scopeId", "data-v-829422ff"]]), xO = { class: "dk-node-panel" }, IO = {
20795
20798
  key: 0,
20796
20799
  class: "title"
20797
20800
  }, AO = { class: "node-list" }, TO = { class: "group-title" }, $O = { class: "group-items" }, OO = {
@@ -20854,13 +20857,13 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20854
20857
  }, 8, ["info"])
20855
20858
  ])),
20856
20859
  j("div", AO, [
20857
- (k(!0), Z(Ve, null, tt(o.value, (f) => (k(), Z("section", {
20860
+ (k(!0), Z(Be, null, et(o.value, (f) => (k(), Z("section", {
20858
20861
  key: f.id,
20859
20862
  class: "node-group"
20860
20863
  }, [
20861
20864
  j("h4", TO, W(f.title), 1),
20862
20865
  j("div", $O, [
20863
- (k(!0), Z(Ve, null, tt(f.nodes, (g) => (k(), z(SO, {
20866
+ (k(!0), Z(Be, null, et(f.nodes, (g) => (k(), z(SO, {
20864
20867
  key: g.type,
20865
20868
  type: g.type,
20866
20869
  onDragstart: c
@@ -20882,7 +20885,7 @@ const X$ = { class: "label-content" }, Z$ = { class: "count" }, Q$ = { class: "l
20882
20885
  ]);
20883
20886
  };
20884
20887
  }
20885
- }), NO = /* @__PURE__ */ Be(PO, [["__scopeId", "data-v-f2040974"]]);
20888
+ }), NO = /* @__PURE__ */ Ve(PO, [["__scopeId", "data-v-f2040974"]]);
20886
20889
  function RO() {
20887
20890
  const {
20888
20891
  addField: e,
@@ -21067,7 +21070,7 @@ const MO = /* @__PURE__ */ Oe({
21067
21070
  _: 1
21068
21071
  }),
21069
21072
  j("div", KO, [
21070
- (k(!0), Z(Ve, null, tt(s(o), ([A, T]) => (k(), Z(Ve, { key: A }, [
21073
+ (k(!0), Z(Be, null, et(s(o), ([A, T]) => (k(), Z(Be, { key: A }, [
21071
21074
  T ? (k(), Z("div", DO, [
21072
21075
  j("div", jO, [
21073
21076
  _(s(Rr), {
@@ -21125,7 +21128,7 @@ const MO = /* @__PURE__ */ Oe({
21125
21128
  ]);
21126
21129
  };
21127
21130
  }
21128
- }), BO = /* @__PURE__ */ Be(UO, [["__scopeId", "data-v-a7726f48"]]);
21131
+ }), BO = /* @__PURE__ */ Ve(UO, [["__scopeId", "data-v-a7726f48"]]);
21129
21132
  function VO() {
21130
21133
  const { getSchema: e } = dt();
21131
21134
  return R(() => {
@@ -21193,7 +21196,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21193
21196
  } : void 0
21194
21197
  ]), 1040),
21195
21198
  j("div", HO, [
21196
- (k(!0), Z(Ve, null, tt(l.value, (g) => (k(), z(s(tn), {
21199
+ (k(!0), Z(Be, null, et(l.value, (g) => (k(), z(s(an), {
21197
21200
  key: g.value,
21198
21201
  "model-value": s(a).value.value,
21199
21202
  "onUpdate:modelValue": [
@@ -21210,7 +21213,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21210
21213
  ]);
21211
21214
  };
21212
21215
  }
21213
- }), zc = /* @__PURE__ */ Be(WO, [["__scopeId", "data-v-7c0483f3"]]), YO = { class: "dk-cache-panel" }, JO = { class: "title" }, XO = {
21216
+ }), zc = /* @__PURE__ */ Ve(WO, [["__scopeId", "data-v-7c0483f3"]]), YO = { class: "dk-cache-panel" }, JO = { class: "title" }, XO = {
21214
21217
  key: 0,
21215
21218
  class: "cache-item"
21216
21219
  }, ZO = { class: "cache-item-key" }, QO = { class: "cache-item-key-text" }, eP = { class: "dk-resource-cache-form" }, tP = { key: 1 }, nP = {
@@ -21344,7 +21347,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21344
21347
  name: "strategy",
21345
21348
  "onUpdate:modelValue": w
21346
21349
  }, null, 8, ["items"]),
21347
- v.value === "memory" ? (k(), z(et, {
21350
+ v.value === "memory" ? (k(), z(Qe, {
21348
21351
  key: 0,
21349
21352
  name: "memory.dictionary_name"
21350
21353
  })) : ge("", !0),
@@ -21396,7 +21399,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21396
21399
  ]);
21397
21400
  };
21398
21401
  }
21399
- }), rP = /* @__PURE__ */ Be(aP, [["__scopeId", "data-v-a9ac92ba"]]), sP = { class: "dk-resources-panel" }, lP = /* @__PURE__ */ Oe({
21402
+ }), rP = /* @__PURE__ */ Ve(aP, [["__scopeId", "data-v-a9ac92ba"]]), sP = { class: "dk-resources-panel" }, lP = /* @__PURE__ */ Oe({
21400
21403
  __name: "ResourcesPanel",
21401
21404
  setup(e) {
21402
21405
  const t = VO(), n = pe(0), {
@@ -21420,7 +21423,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21420
21423
  n.value++;
21421
21424
  }
21422
21425
  return (v, h) => (k(), Z("div", sP, [
21423
- _(nn, {
21426
+ _(tn, {
21424
21427
  data: s(l),
21425
21428
  schema: s(t)
21426
21429
  }, {
@@ -21435,7 +21438,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21435
21438
  _: 1
21436
21439
  }, 8, ["data", "schema"]),
21437
21440
  h[0] || (h[0] = j("hr", { class: "dk-resources-divider" }, null, -1)),
21438
- (k(), z(nn, {
21441
+ (k(), z(tn, {
21439
21442
  key: `${n.value}`,
21440
21443
  data: p.value,
21441
21444
  schema: s(t)
@@ -21452,7 +21455,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21452
21455
  }, 8, ["data", "schema"]))
21453
21456
  ]));
21454
21457
  }
21455
- }), cP = /* @__PURE__ */ Be(lP, [["__scopeId", "data-v-9093c001"]]), uP = { class: "header" }, dP = { class: "title" }, pP = { class: "body" }, fP = { class: "panel" }, mP = /* @__PURE__ */ Oe({
21458
+ }), cP = /* @__PURE__ */ Ve(lP, [["__scopeId", "data-v-9093c001"]]), uP = { class: "header" }, dP = { class: "title" }, pP = { class: "body" }, fP = { class: "panel" }, mP = /* @__PURE__ */ Oe({
21456
21459
  __name: "SidePanel",
21457
21460
  setup(e) {
21458
21461
  const { t } = Xt("en-us", Qt), { sidePanelExpanded: n } = ls(), { propertiesPanelOpen: i, selectedNode: o } = Dt(), a = pe("nodes");
@@ -21497,7 +21500,7 @@ const zO = { key: 1 }, GO = ["innerHTML"], HO = { class: "horizontal-container"
21497
21500
  ], 2);
21498
21501
  };
21499
21502
  }
21500
- }), gP = /* @__PURE__ */ Be(mP, [["__scopeId", "data-v-9e854e60"]]), hP = /* @__PURE__ */ Oe({
21503
+ }), gP = /* @__PURE__ */ Ve(mP, [["__scopeId", "data-v-9e854e60"]]), hP = /* @__PURE__ */ Oe({
21501
21504
  __name: "HttpMethodField",
21502
21505
  props: {
21503
21506
  name: {}
@@ -22146,7 +22149,7 @@ const Kn = X.object({
22146
22149
  "reset-label-path": "isolate"
22147
22150
  }, {
22148
22151
  default: I(() => [
22149
- (k(!0), Z(Ve, null, tt(i.value, (r) => (k(), z(Ot, {
22152
+ (k(!0), Z(Be, null, et(i.value, (r) => (k(), z(Ot, {
22150
22153
  key: r,
22151
22154
  clearable: "",
22152
22155
  "enable-filtering": "",
@@ -22268,7 +22271,7 @@ const Kn = X.object({
22268
22271
  ref: f,
22269
22272
  class: "dk-inputs-map-field"
22270
22273
  }, [
22271
- (k(!0), Z(Ve, null, tt(b.value, ([B, Y], D) => (k(), Z("div", {
22274
+ (k(!0), Z(Be, null, et(b.value, ([B, Y], D) => (k(), Z("div", {
22272
22275
  key: B,
22273
22276
  class: "dk-inputs-map-field-entry",
22274
22277
  "data-testid": `ff-kv-container-${s(u).path.value}.${D}`
@@ -22346,7 +22349,7 @@ const Kn = X.object({
22346
22349
  ], 512));
22347
22350
  };
22348
22351
  }
22349
- }), wN = /* @__PURE__ */ Be(kN, [["__scopeId", "data-v-43dcb370"]]), CN = { class: "dk-source-item" }, EN = /* @__PURE__ */ Oe({
22352
+ }), wN = /* @__PURE__ */ Ve(kN, [["__scopeId", "data-v-43dcb370"]]), CN = { class: "dk-source-item" }, EN = /* @__PURE__ */ Oe({
22350
22353
  __name: "SourceItem",
22351
22354
  props: {
22352
22355
  item: {}
@@ -22360,7 +22363,7 @@ const Kn = X.object({
22360
22363
  Te(" " + W(e.item.label), 1)
22361
22364
  ]));
22362
22365
  }
22363
- }), $r = /* @__PURE__ */ Be(EN, [["__scopeId", "data-v-d9aa16eb"]]), SN = {
22366
+ }), $r = /* @__PURE__ */ Ve(EN, [["__scopeId", "data-v-d9aa16eb"]]), SN = {
22364
22367
  key: 1,
22365
22368
  class: "dk-inputs-field-or"
22366
22369
  }, xN = /* @__PURE__ */ Oe({
@@ -22389,7 +22392,7 @@ const Kn = X.object({
22389
22392
  function p(f, g) {
22390
22393
  n("rename:field", f, g);
22391
22394
  }
22392
- return (f, g) => (k(), Z(Ve, null, [
22395
+ return (f, g) => (k(), Z(Be, null, [
22393
22396
  _(s(Vt), {
22394
22397
  class: "dk-inputs-field-h1",
22395
22398
  info: s(o)("plugins.free-form.datakit.flow_editor.node_properties.input.tooltip")
@@ -22450,11 +22453,11 @@ const Kn = X.object({
22450
22453
  }, 16, ["items", "key-order"])) : ge("", !0)
22451
22454
  ], 64));
22452
22455
  }
22453
- }), An = /* @__PURE__ */ Be(xN, [["__scopeId", "data-v-4f1ce4e7"]]), IN = {}, AN = { class: "dk-node-form-divider" };
22456
+ }), An = /* @__PURE__ */ Ve(xN, [["__scopeId", "data-v-4f1ce4e7"]]), IN = {}, AN = { class: "dk-node-form-divider" };
22454
22457
  function TN(e, t) {
22455
22458
  return k(), Z("hr", AN);
22456
22459
  }
22457
- const Hn = /* @__PURE__ */ Be(IN, [["render", TN], ["__scopeId", "data-v-35ed58be"]]), $N = {
22460
+ const Hn = /* @__PURE__ */ Ve(IN, [["render", TN], ["__scopeId", "data-v-35ed58be"]]), $N = {
22458
22461
  fields: [
22459
22462
  {
22460
22463
  input: {
@@ -23086,7 +23089,7 @@ const Dn = /* @__PURE__ */ Oe({
23086
23089
  }), v = y("url", () => r("url")), h = y("timeout", () => r("timeout"));
23087
23090
  return (b, E) => {
23088
23091
  const S = ke("KLabel");
23089
- return k(), z(nn, {
23092
+ return k(), z(tn, {
23090
23093
  ref: "form",
23091
23094
  data: s(o),
23092
23095
  schema: s(i)
@@ -23103,7 +23106,7 @@ const Dn = /* @__PURE__ */ Oe({
23103
23106
  ]),
23104
23107
  _: 1
23105
23108
  }),
23106
- _(Qe, {
23109
+ _(tt, {
23107
23110
  error: s(v).error,
23108
23111
  "error-message": s(v).errorMessage,
23109
23112
  name: "url",
@@ -23121,7 +23124,7 @@ const Dn = /* @__PURE__ */ Oe({
23121
23124
  onBlur: s(h).validate,
23122
23125
  "onUpdate:modelValue": s(h).update
23123
23126
  }, null, 8, ["error", "error-message", "onBlur", "onUpdate:modelValue"]),
23124
- _(Qe, {
23127
+ _(tt, {
23125
23128
  name: "ssl_server_name",
23126
23129
  "onUpdate:modelValue": E[1] || (E[1] = (x) => s(r)("ssl_server_name"))
23127
23130
  }),
@@ -23157,7 +23160,7 @@ const Dn = /* @__PURE__ */ Oe({
23157
23160
  inputsFieldNames: l,
23158
23161
  fieldNameValidator: c
23159
23162
  } = wn(e.nodeId, () => t.value.getValue());
23160
- return (u, d) => (k(), z(nn, {
23163
+ return (u, d) => (k(), z(tn, {
23161
23164
  ref: "form",
23162
23165
  data: s(i),
23163
23166
  schema: s(n)
@@ -23189,7 +23192,7 @@ const Dn = /* @__PURE__ */ Oe({
23189
23192
  inputsFieldNames: l,
23190
23193
  fieldNameValidator: c
23191
23194
  } = wn(e.nodeId, () => t.value.getValue());
23192
- return (u, d) => (k(), z(nn, {
23195
+ return (u, d) => (k(), z(tn, {
23193
23196
  ref: "form",
23194
23197
  data: s(i),
23195
23198
  schema: s(n)
@@ -23253,7 +23256,7 @@ const Dn = /* @__PURE__ */ Oe({
23253
23256
  }), M = w("jq", () => l("jq"));
23254
23257
  return ($, L) => {
23255
23258
  const A = ke("KLabel"), T = ke("KExternalLink");
23256
- return k(), z(nn, {
23259
+ return k(), z(tn, {
23257
23260
  ref: "form",
23258
23261
  data: s(a),
23259
23262
  schema: s(o)
@@ -23270,7 +23273,7 @@ const Dn = /* @__PURE__ */ Oe({
23270
23273
  ]),
23271
23274
  _: 1
23272
23275
  }),
23273
- _(Qe, {
23276
+ _(tt, {
23274
23277
  autosize: "",
23275
23278
  error: s(M).error,
23276
23279
  "error-message": s(M).errorMessage,
@@ -23435,7 +23438,7 @@ const Dn = /* @__PURE__ */ Oe({
23435
23438
  ]),
23436
23439
  _: 1
23437
23440
  }),
23438
- (k(!0), Z(Ve, null, tt(u.value, (ne, B) => (k(), z(V, {
23441
+ (k(!0), Z(Be, null, et(u.value, (ne, B) => (k(), z(V, {
23439
23442
  key: ne.id,
23440
23443
  class: "dk-output-value-field-entry",
23441
23444
  "data-testid": `ff-kv-container-${r.path.value}.${B}`
@@ -23497,7 +23500,7 @@ const Dn = /* @__PURE__ */ Oe({
23497
23500
  ], 512));
23498
23501
  };
23499
23502
  }
23500
- }), BN = /* @__PURE__ */ Be(UN, [["__scopeId", "data-v-3970c2c0"]]);
23503
+ }), BN = /* @__PURE__ */ Ve(UN, [["__scopeId", "data-v-3970c2c0"]]);
23501
23504
  function VN(e) {
23502
23505
  const t = {};
23503
23506
  for (const [n, i] of Object.entries(e))
@@ -23598,7 +23601,7 @@ const GN = /* @__PURE__ */ Oe({
23598
23601
  };
23599
23602
  r(e.nodeId, w);
23600
23603
  }
23601
- return (S, x) => (k(), z(nn, {
23604
+ return (S, x) => (k(), z(tn, {
23602
23605
  ref: "form",
23603
23606
  data: y.value,
23604
23607
  schema: s(u)
@@ -23650,7 +23653,7 @@ const GN = /* @__PURE__ */ Oe({
23650
23653
  d.value = gl(v), c.value = Qo(v);
23651
23654
  }), (v, h) => {
23652
23655
  const b = ke("KBadge"), E = ke("KSelect"), S = ke("KInput");
23653
- return k(), Z(Ve, null, [
23656
+ return k(), Z(Be, null, [
23654
23657
  (k(), z(E, {
23655
23658
  key: p.value,
23656
23659
  "enable-filtering": "",
@@ -23713,7 +23716,7 @@ const GN = /* @__PURE__ */ Oe({
23713
23716
  ], 64);
23714
23717
  };
23715
23718
  }
23716
- }), XN = /* @__PURE__ */ Be(JN, [["__scopeId", "data-v-cc97d84c"]]), ZN = /* @__PURE__ */ Oe({
23719
+ }), XN = /* @__PURE__ */ Ve(JN, [["__scopeId", "data-v-cc97d84c"]]), ZN = /* @__PURE__ */ Oe({
23717
23720
  __name: "NodeFormProperty",
23718
23721
  props: {
23719
23722
  nodeId: {}
@@ -23754,7 +23757,7 @@ const GN = /* @__PURE__ */ Oe({
23754
23757
  }),
23755
23758
  toggleNodeValid: y
23756
23759
  });
23757
- return (S, x) => (k(), z(nn, {
23760
+ return (S, x) => (k(), z(tn, {
23758
23761
  ref: "form",
23759
23762
  data: s(r),
23760
23763
  schema: s(a)
@@ -23823,7 +23826,7 @@ const GN = /* @__PURE__ */ Oe({
23823
23826
  }),
23824
23827
  toggleNodeValid: p
23825
23828
  }), y = g("status", () => a("status"));
23826
- return (v, h) => (k(), z(nn, {
23829
+ return (v, h) => (k(), z(tn, {
23827
23830
  ref: "form",
23828
23831
  data: s(i),
23829
23832
  schema: s(n)
@@ -23958,7 +23961,7 @@ const t2 = /* @__PURE__ */ Oe({
23958
23961
  async function y(v, h) {
23959
23962
  await g(v, h) || (i.value += 1);
23960
23963
  }
23961
- return (v, h) => (k(), z(nn, {
23964
+ return (v, h) => (k(), z(tn, {
23962
23965
  key: i.value,
23963
23966
  data: s(o),
23964
23967
  schema: s(n)
@@ -24043,7 +24046,7 @@ const t2 = /* @__PURE__ */ Oe({
24043
24046
  }),
24044
24047
  toggleNodeValid: f
24045
24048
  }), v = y("ttl", () => r("ttl"));
24046
- return (h, b) => (k(), z(nn, {
24049
+ return (h, b) => (k(), z(tn, {
24047
24050
  ref: "form",
24048
24051
  data: s(o),
24049
24052
  schema: s(n)
@@ -24136,7 +24139,7 @@ const t2 = /* @__PURE__ */ Oe({
24136
24139
  }, M = () => {
24137
24140
  E.value.update(), b.value.validate();
24138
24141
  };
24139
- return ($, L) => (k(), z(nn, {
24142
+ return ($, L) => (k(), z(tn, {
24140
24143
  ref: "form",
24141
24144
  data: s(o),
24142
24145
  schema: s(n)
@@ -24157,21 +24160,21 @@ const t2 = /* @__PURE__ */ Oe({
24157
24160
  name: "recognize_type",
24158
24161
  "onUpdate:modelValue": L[0] || (L[0] = (A) => s(r)("recognize_type"))
24159
24162
  }),
24160
- _(Qe, {
24163
+ _(tt, {
24161
24164
  error: s(b).error,
24162
24165
  "error-message": s(b).errorMessage,
24163
24166
  name: "attributes_block_name",
24164
24167
  onBlur: C,
24165
24168
  "onUpdate:modelValue": w
24166
24169
  }, null, 8, ["error", "error-message"]),
24167
- _(Qe, {
24170
+ _(tt, {
24168
24171
  error: s(E).error,
24169
24172
  "error-message": s(E).errorMessage,
24170
24173
  name: "attributes_name_prefix",
24171
24174
  onBlur: C,
24172
24175
  "onUpdate:modelValue": M
24173
24176
  }, null, 8, ["error", "error-message"]),
24174
- _(Qe, {
24177
+ _(tt, {
24175
24178
  error: s(S).error,
24176
24179
  "error-message": s(S).errorMessage,
24177
24180
  name: "text_block_name",
@@ -24182,7 +24185,7 @@ const t2 = /* @__PURE__ */ Oe({
24182
24185
  name: "text_as_property",
24183
24186
  "onUpdate:modelValue": L[1] || (L[1] = (A) => s(r)("text_as_property"))
24184
24187
  }),
24185
- _(Qe, {
24188
+ _(tt, {
24186
24189
  error: s(x).error,
24187
24190
  "error-message": s(x).errorMessage,
24188
24191
  name: "xpath",
@@ -24263,7 +24266,7 @@ const t2 = /* @__PURE__ */ Oe({
24263
24266
  function F(K, Q) {
24264
24267
  f("input", K, Q);
24265
24268
  }
24266
- return (K, Q) => (k(), z(nn, {
24269
+ return (K, Q) => (k(), z(tn, {
24267
24270
  ref: "form",
24268
24271
  data: s(o),
24269
24272
  schema: s(n)
@@ -24280,28 +24283,28 @@ const t2 = /* @__PURE__ */ Oe({
24280
24283
  ]),
24281
24284
  _: 1
24282
24285
  }),
24283
- _(Qe, {
24286
+ _(tt, {
24284
24287
  error: s(x).error,
24285
24288
  "error-message": s(x).errorMessage,
24286
24289
  name: "attributes_block_name",
24287
24290
  onBlur: $,
24288
24291
  "onUpdate:modelValue": L
24289
24292
  }, null, 8, ["error", "error-message"]),
24290
- _(Qe, {
24293
+ _(tt, {
24291
24294
  error: s(C).error,
24292
24295
  "error-message": s(C).errorMessage,
24293
24296
  name: "attributes_name_prefix",
24294
24297
  onBlur: $,
24295
24298
  "onUpdate:modelValue": A
24296
24299
  }, null, 8, ["error", "error-message"]),
24297
- _(Qe, {
24300
+ _(tt, {
24298
24301
  error: s(w).error,
24299
24302
  "error-message": s(w).errorMessage,
24300
24303
  name: "root_element_name",
24301
24304
  onBlur: s(w).validate,
24302
24305
  "onUpdate:modelValue": s(w).update
24303
24306
  }, null, 8, ["error", "error-message", "onBlur", "onUpdate:modelValue"]),
24304
- _(Qe, {
24307
+ _(tt, {
24305
24308
  error: s(M).error,
24306
24309
  "error-message": s(M).errorMessage,
24307
24310
  name: "text_block_name",
@@ -24340,7 +24343,7 @@ const t2 = /* @__PURE__ */ Oe({
24340
24343
  nameValidator: u,
24341
24344
  fieldNameValidator: d
24342
24345
  } = wn(e.nodeId, () => t.value.getValue());
24343
- return (p, f) => (k(), z(nn, {
24346
+ return (p, f) => (k(), z(tn, {
24344
24347
  ref: "form",
24345
24348
  data: s(i),
24346
24349
  schema: s(n)
@@ -24405,7 +24408,7 @@ const t2 = /* @__PURE__ */ Oe({
24405
24408
  }),
24406
24409
  toggleNodeValid: f
24407
24410
  }), v = y("algorithm", () => r("algorithm")), h = y("expires_in", () => r("expires_in")), b = y("not_before", () => r("not_before"));
24408
- return (E, S) => (k(), z(nn, {
24411
+ return (E, S) => (k(), z(tn, {
24409
24412
  ref: "form",
24410
24413
  data: s(o),
24411
24414
  schema: s(n)
@@ -24441,11 +24444,11 @@ const t2 = /* @__PURE__ */ Oe({
24441
24444
  onBlur: s(b).validate,
24442
24445
  "onUpdate:modelValue": s(b).update
24443
24446
  }, null, 8, ["error", "error-message", "onBlur", "onUpdate:modelValue"]),
24444
- _(Qe, {
24447
+ _(tt, {
24445
24448
  name: "kid",
24446
24449
  "onUpdate:modelValue": S[0] || (S[0] = (x) => s(r)("kid"))
24447
24450
  }),
24448
- _(Qe, {
24451
+ _(tt, {
24449
24452
  name: "typ",
24450
24453
  "onUpdate:modelValue": S[1] || (S[1] = (x) => s(r)("typ"))
24451
24454
  }),
@@ -24498,7 +24501,7 @@ const t2 = /* @__PURE__ */ Oe({
24498
24501
  }),
24499
24502
  toggleNodeValid: f
24500
24503
  }), v = y("leeway", () => r("leeway"));
24501
- return (h, b) => (k(), z(nn, {
24504
+ return (h, b) => (k(), z(tn, {
24502
24505
  ref: "form",
24503
24506
  data: s(o),
24504
24507
  schema: s(n)
@@ -24527,7 +24530,7 @@ const t2 = /* @__PURE__ */ Oe({
24527
24530
  onRemove: b[3] || (b[3] = (E) => s(r)("issuers"))
24528
24531
  }, {
24529
24532
  item: I(({ fieldName: E, autofocus: S }) => [
24530
- _(Qe, {
24533
+ _(tt, {
24531
24534
  autofocus: S,
24532
24535
  name: E,
24533
24536
  "onUpdate:modelValue": b[1] || (b[1] = (x) => s(r)("issuers"))
@@ -24541,7 +24544,7 @@ const t2 = /* @__PURE__ */ Oe({
24541
24544
  onRemove: b[6] || (b[6] = (E) => s(r)("audiences"))
24542
24545
  }, {
24543
24546
  item: I(({ fieldName: E, autofocus: S }) => [
24544
- _(Qe, {
24547
+ _(tt, {
24545
24548
  autofocus: S,
24546
24549
  name: E,
24547
24550
  "onUpdate:modelValue": b[4] || (b[4] = (x) => s(r)("audiences"))
@@ -24555,7 +24558,7 @@ const t2 = /* @__PURE__ */ Oe({
24555
24558
  onRemove: b[9] || (b[9] = (E) => s(r)("required_claims"))
24556
24559
  }, {
24557
24560
  item: I(({ fieldName: E, autofocus: S }) => [
24558
- _(Qe, {
24561
+ _(tt, {
24559
24562
  autofocus: S,
24560
24563
  name: E,
24561
24564
  "onUpdate:modelValue": b[7] || (b[7] = (x) => s(r)("required_claims"))
@@ -24714,7 +24717,7 @@ const t2 = /* @__PURE__ */ Oe({
24714
24717
  } : void 0
24715
24718
  ]), 1032, ["max-width", "offset-top", "visible", "z-index"]));
24716
24719
  }
24717
- }), f2 = /* @__PURE__ */ Be(p2, [["__scopeId", "data-v-32602117"]]), m2 = { class: "dk-editor-content" }, g2 = { class: "main" }, h2 = /* @__PURE__ */ Oe({
24720
+ }), f2 = /* @__PURE__ */ Ve(p2, [["__scopeId", "data-v-32602117"]]), m2 = { class: "dk-editor-content" }, g2 = { class: "main" }, h2 = /* @__PURE__ */ Oe({
24718
24721
  __name: "EditorContent",
24719
24722
  setup(e) {
24720
24723
  const { propertiesPanelOpen: t, selectedNode: n } = Dt();
@@ -24739,7 +24742,7 @@ const t2 = /* @__PURE__ */ Oe({
24739
24742
  }, null, 8, ["node-id", "visible"])
24740
24743
  ]));
24741
24744
  }
24742
- }), v2 = /* @__PURE__ */ Be(h2, [["__scopeId", "data-v-66331c5c"]]), y2 = {
24745
+ }), v2 = /* @__PURE__ */ Ve(h2, [["__scopeId", "data-v-66331c5c"]]), y2 = {
24743
24746
  key: 0,
24744
24747
  class: "dk-editor-modal"
24745
24748
  }, _2 = /* @__PURE__ */ Oe({
@@ -24780,7 +24783,7 @@ const t2 = /* @__PURE__ */ Oe({
24780
24783
  _(rO, { ref: "confirm-modal" }, null, 512)
24781
24784
  ])) : ge("", !0);
24782
24785
  }
24783
- }), b2 = /* @__PURE__ */ Be(_2, [["__scopeId", "data-v-c3604472"]]), k2 = { class: "dk-flow-editor" }, w2 = { class: "flow-panels-container" }, C2 = { class: "overlay" }, E2 = /* @__PURE__ */ Oe({
24786
+ }), b2 = /* @__PURE__ */ Ve(_2, [["__scopeId", "data-v-c3604472"]]), k2 = { class: "dk-flow-editor" }, w2 = { class: "flow-panels-container" }, C2 = { class: "overlay" }, E2 = /* @__PURE__ */ Oe({
24784
24787
  __name: "FlowEditor",
24785
24788
  props: {
24786
24789
  isEditing: { type: Boolean }
@@ -24836,7 +24839,7 @@ const t2 = /* @__PURE__ */ Oe({
24836
24839
  ]);
24837
24840
  };
24838
24841
  }
24839
- }), S2 = /* @__PURE__ */ Be(E2, [["__scopeId", "data-v-575018ff"]]), x2 = ["innerHTML"], I2 = { class: "dk-option-label" }, A2 = ["innerHTML"], T2 = /* @__PURE__ */ Oe({
24842
+ }), S2 = /* @__PURE__ */ Ve(E2, [["__scopeId", "data-v-575018ff"]]), x2 = ["innerHTML"], I2 = { class: "dk-option-label" }, A2 = ["innerHTML"], T2 = /* @__PURE__ */ Oe({
24840
24843
  inheritAttrs: !1,
24841
24844
  __name: "DatakitForm",
24842
24845
  props: {
@@ -24930,7 +24933,7 @@ const t2 = /* @__PURE__ */ Oe({
24930
24933
  error: C
24931
24934
  });
24932
24935
  }
24933
- return (C, w) => (k(), Z(Ve, null, [
24936
+ return (C, w) => (k(), Z(Be, null, [
24934
24937
  s(o).app === "konnect" ? (k(), z(Nr, {
24935
24938
  key: 0,
24936
24939
  disabled: !a.value,
@@ -24991,7 +24994,7 @@ const t2 = /* @__PURE__ */ Oe({
24991
24994
  }, 16, ["editor-mode"])
24992
24995
  ], 64));
24993
24996
  }
24994
- }), $2 = /* @__PURE__ */ Be(T2, [["__scopeId", "data-v-99d4e7f0"]]), O2 = Le({
24997
+ }), $2 = /* @__PURE__ */ Ve(T2, [["__scopeId", "data-v-99d4e7f0"]]), O2 = Le({
24995
24998
  component: $2
24996
24999
  }), P2 = Le({
24997
25000
  experimental: !0
@@ -25000,7 +25003,7 @@ const t2 = /* @__PURE__ */ Oe({
25000
25003
  fieldRenderers: [
25001
25004
  {
25002
25005
  match: ({ genericPath: e }) => e === "config.functions.*",
25003
- component: Qe,
25006
+ component: tt,
25004
25007
  propsOverrides: (e) => ({
25005
25008
  ...e,
25006
25009
  multiline: !0,
@@ -25042,7 +25045,7 @@ const t2 = /* @__PURE__ */ Oe({
25042
25045
  j("span", D2, W(s(t)("plugins.free-form.governance.fields.response.columns.status")), 1),
25043
25046
  j("span", j2, W(s(t)("plugins.free-form.governance.fields.response.columns.message")), 1)
25044
25047
  ]),
25045
- (k(), Z(Ve, null, tt(n, (l) => j("div", {
25048
+ (k(), Z(Be, null, et(n, (l) => j("div", {
25046
25049
  key: l,
25047
25050
  class: "ff-response-mapping-row"
25048
25051
  }, [
@@ -25060,7 +25063,7 @@ const t2 = /* @__PURE__ */ Oe({
25060
25063
  }, null, 8, ["name"])
25061
25064
  ]),
25062
25065
  j("div", B2, [
25063
- _(Qe, {
25066
+ _(tt, {
25064
25067
  label: "",
25065
25068
  name: `config.response_codes.${l}.message`
25066
25069
  }, null, 8, ["name"])
@@ -25068,7 +25071,7 @@ const t2 = /* @__PURE__ */ Oe({
25068
25071
  ])), 64))
25069
25072
  ]));
25070
25073
  }
25071
- }), z2 = /* @__PURE__ */ Be(V2, [["__scopeId", "data-v-acec267f"]]), G2 = { class: "ff-card-radio-field" }, H2 = { class: "ff-card-radio-field-cards" }, W2 = /* @__PURE__ */ Oe({
25074
+ }), z2 = /* @__PURE__ */ Ve(V2, [["__scopeId", "data-v-acec267f"]]), G2 = { class: "ff-card-radio-field" }, H2 = { class: "ff-card-radio-field-cards" }, W2 = /* @__PURE__ */ Oe({
25072
25075
  __name: "CardRadioField",
25073
25076
  props: {
25074
25077
  name: {},
@@ -25094,7 +25097,7 @@ const t2 = /* @__PURE__ */ Oe({
25094
25097
  _: 1
25095
25098
  })) : ge("", !0),
25096
25099
  j("div", H2, [
25097
- (k(!0), Z(Ve, null, tt(e.options, (r) => (k(), z(s(tn), {
25100
+ (k(!0), Z(Be, null, et(e.options, (r) => (k(), z(s(an), {
25098
25101
  key: String(r.value),
25099
25102
  modelValue: i.value,
25100
25103
  "onUpdate:modelValue": a[0] || (a[0] = (l) => i.value = l),
@@ -25107,7 +25110,7 @@ const t2 = /* @__PURE__ */ Oe({
25107
25110
  ])
25108
25111
  ]));
25109
25112
  }
25110
- }), Zs = /* @__PURE__ */ Be(W2, [["__scopeId", "data-v-d0b5db76"]]), Y2 = { class: "ff-feature-option" }, J2 = { class: "ff-feature-option-key" }, X2 = {
25113
+ }), Zs = /* @__PURE__ */ Ve(W2, [["__scopeId", "data-v-d0b5db76"]]), Y2 = { class: "ff-feature-option" }, J2 = { class: "ff-feature-option-key" }, X2 = {
25111
25114
  key: 0,
25112
25115
  class: "ff-feature-option-name"
25113
25116
  }, Z2 = /* @__PURE__ */ Oe({
@@ -25137,7 +25140,7 @@ const t2 = /* @__PURE__ */ Oe({
25137
25140
  }
25138
25141
  return rn(y), (v, h) => {
25139
25142
  const b = ke("KAlert");
25140
- return k(), Z(Ve, null, [
25143
+ return k(), Z(Be, null, [
25141
25144
  l.value ? ge("", !0) : (k(), z(b, {
25142
25145
  key: 0,
25143
25146
  appearance: "warning",
@@ -25180,7 +25183,7 @@ const t2 = /* @__PURE__ */ Oe({
25180
25183
  ], 64);
25181
25184
  };
25182
25185
  }
25183
- }), Q2 = /* @__PURE__ */ Be(Z2, [["__scopeId", "data-v-31d5c1b3"]]), eR = { class: "ff-governance-subject" }, tR = { class: "ff-governance-connection-heading" }, nR = { class: "ff-governance-inline-row" }, iR = { class: "ff-governance-cache-sync-heading" }, oR = { class: "ff-governance-cache-sync" }, aR = { class: "ff-governance-response-mapping-heading" }, rR = { class: "ff-governance-deny-unknown-customers-heading" }, sR = /* @__PURE__ */ Oe({
25186
+ }), Q2 = /* @__PURE__ */ Ve(Z2, [["__scopeId", "data-v-31d5c1b3"]]), eR = { class: "ff-governance-subject" }, tR = { class: "ff-governance-connection-heading" }, nR = { class: "ff-governance-inline-row" }, iR = { class: "ff-governance-cache-sync-heading" }, oR = { class: "ff-governance-cache-sync" }, aR = { class: "ff-governance-response-mapping-heading" }, rR = { class: "ff-governance-deny-unknown-customers-heading" }, sR = /* @__PURE__ */ Oe({
25184
25187
  __name: "GovernanceForm",
25185
25188
  props: {
25186
25189
  schema: {},
@@ -25289,7 +25292,7 @@ const t2 = /* @__PURE__ */ Oe({
25289
25292
  match: ({ path: S }) => S === "config.customer.field"
25290
25293
  }, {
25291
25294
  default: I((S) => [
25292
- _(Qe, Ye(S, {
25295
+ _(tt, Ye(S, {
25293
25296
  help: s(a)("plugins.free-form.governance.fields.subject_field.help"),
25294
25297
  label: s(a)("plugins.free-form.governance.fields.subject_field.label"),
25295
25298
  placeholder: s(a)("plugins.free-form.governance.fields.subject_field.placeholder")
@@ -25346,15 +25349,15 @@ const t2 = /* @__PURE__ */ Oe({
25346
25349
  "onClick:createEntity": b[0] || (b[0] = (S) => i("click:create-entity", S))
25347
25350
  }),
25348
25351
  j("h3", tR, W(s(a)("plugins.free-form.governance.sections.connection.title")), 1),
25349
- _(Qe, {
25352
+ _(tt, {
25350
25353
  help: s(a)("plugins.free-form.governance.fields.governance_endpoint.help"),
25351
25354
  name: "config.governance_endpoint"
25352
25355
  }, null, 8, ["help"]),
25353
- _(et, { name: "config.api_token" }),
25354
- _(et, { name: "config.ssl_verify" }),
25356
+ _(Qe, { name: "config.api_token" }),
25357
+ _(Qe, { name: "config.ssl_verify" }),
25355
25358
  j("div", nR, [
25356
- _(et, { name: "config.timeout" }),
25357
- _(et, { name: "config.keepalive" })
25359
+ _(Qe, { name: "config.timeout" }),
25360
+ _(Qe, { name: "config.keepalive" })
25358
25361
  ]),
25359
25362
  _(as, {
25360
25363
  borderless: "",
@@ -25431,7 +25434,7 @@ const t2 = /* @__PURE__ */ Oe({
25431
25434
  }, 16));
25432
25435
  };
25433
25436
  }
25434
- }), lR = /* @__PURE__ */ Be(sR, [["__scopeId", "data-v-2090285a"]]), cR = Le({
25437
+ }), lR = /* @__PURE__ */ Ve(sR, [["__scopeId", "data-v-2090285a"]]), cR = Le({
25435
25438
  experimental: !0,
25436
25439
  component: lR
25437
25440
  }), uR = Le({
@@ -25459,7 +25462,7 @@ const t2 = /* @__PURE__ */ Oe({
25459
25462
  fieldRenderers: [
25460
25463
  {
25461
25464
  match: "config.proto",
25462
- component: Qe,
25465
+ component: tt,
25463
25466
  propsOverrides: {
25464
25467
  multiline: !0,
25465
25468
  rows: 4
@@ -25519,7 +25522,7 @@ const t2 = /* @__PURE__ */ Oe({
25519
25522
  fieldRenderers: [
25520
25523
  {
25521
25524
  match: ({ path: e }) => e === "config.request_jq_program" || e === "config.response_jq_program",
25522
- component: Qe,
25525
+ component: tt,
25523
25526
  propsOverrides: {
25524
25527
  multiline: !0,
25525
25528
  rows: 4
@@ -25567,7 +25570,7 @@ const t2 = /* @__PURE__ */ Oe({
25567
25570
  }
25568
25571
  return { defaultVisible: r, advanced: l };
25569
25572
  }), a = R(() => o.value.defaultVisible.length === 0);
25570
- return (r, l) => (k(), Z(Ve, null, [
25573
+ return (r, l) => (k(), Z(Be, null, [
25571
25574
  _(Ft, {
25572
25575
  "as-child": "",
25573
25576
  class: "ff-default-visible-fields",
@@ -25593,7 +25596,7 @@ const t2 = /* @__PURE__ */ Oe({
25593
25596
  }))
25594
25597
  ], 64));
25595
25598
  }
25596
- }), Pg = /* @__PURE__ */ Be(wR, [["__scopeId", "data-v-bc82c9e9"]]), Xd = /* @__PURE__ */ Oe({
25599
+ }), Pg = /* @__PURE__ */ Ve(wR, [["__scopeId", "data-v-bc82c9e9"]]), Xd = /* @__PURE__ */ Oe({
25597
25600
  inheritAttrs: !1,
25598
25601
  __name: "KeysetField",
25599
25602
  props: {
@@ -25629,7 +25632,7 @@ const t2 = /* @__PURE__ */ Oe({
25629
25632
  })
25630
25633
  };
25631
25634
  }), d = R(() => u.value.hasError), p = R(() => u.value.message);
25632
- return (f, g) => (k(), z(Qe, Ye(f.$attrs, {
25635
+ return (f, g) => (k(), z(tt, Ye(f.$attrs, {
25633
25636
  error: d.value,
25634
25637
  "error-message": p.value,
25635
25638
  name: e.name
@@ -25697,7 +25700,7 @@ const t2 = /* @__PURE__ */ Oe({
25697
25700
  fieldRenderers: [
25698
25701
  {
25699
25702
  match: "config.message_by_lua_functions.*",
25700
- component: Qe,
25703
+ component: tt,
25701
25704
  propsOverrides: {
25702
25705
  multiline: !0,
25703
25706
  rows: 3
@@ -25745,7 +25748,7 @@ const t2 = /* @__PURE__ */ Oe({
25745
25748
  fieldRenderers: [
25746
25749
  {
25747
25750
  match: "config.message_by_lua_functions.*",
25748
- component: Qe,
25751
+ component: tt,
25749
25752
  propsOverrides: {
25750
25753
  multiline: !0,
25751
25754
  rows: 3
@@ -25837,7 +25840,7 @@ const t2 = /* @__PURE__ */ Oe({
25837
25840
  t.value ? (k(), Z("div", KR)) : ge("", !0)
25838
25841
  ]));
25839
25842
  }
25840
- }), Qs = /* @__PURE__ */ Be(DR, [["__scopeId", "data-v-39f2a44b"]]), jR = { class: "ff-mb-subject" }, qR = { class: "ff-mb-attributes" }, UR = { class: "ff-metering-billing-inline-row" }, BR = { class: "ff-mb-queue" }, VR = /* @__PURE__ */ Oe({
25843
+ }), Qs = /* @__PURE__ */ Ve(DR, [["__scopeId", "data-v-39f2a44b"]]), jR = { class: "ff-mb-subject" }, qR = { class: "ff-mb-attributes" }, UR = { class: "ff-metering-billing-inline-row" }, BR = { class: "ff-mb-queue" }, VR = /* @__PURE__ */ Oe({
25841
25844
  __name: "MeteringAndBillingForm",
25842
25845
  props: {
25843
25846
  schema: {},
@@ -25922,7 +25925,7 @@ const t2 = /* @__PURE__ */ Oe({
25922
25925
  match: ({ path: f }) => f === "config.subject.field"
25923
25926
  }, {
25924
25927
  default: I((f) => [
25925
- _(Qe, Ye(f, {
25928
+ _(tt, Ye(f, {
25926
25929
  help: s(i)("plugins.free-form.metering-and-billing.fields.subject_field.help"),
25927
25930
  label: s(i)("plugins.free-form.metering-and-billing.fields.subject_field.label"),
25928
25931
  placeholder: s(i)("plugins.free-form.metering-and-billing.fields.subject_field.placeholder")
@@ -25994,7 +25997,7 @@ const t2 = /* @__PURE__ */ Oe({
25994
25997
  match: ({ path: f }) => f.startsWith("config.attributes.") && f.endsWith(".look_up_value_in")
25995
25998
  }, {
25996
25999
  default: I((f) => [
25997
- _(Qe, Ye(f, {
26000
+ _(tt, Ye(f, {
25998
26001
  placeholder: s(i)("plugins.free-form.metering-and-billing.fields.attributes.look_up_value_in.placeholder")
25999
26002
  }), null, 16, ["placeholder"])
26000
26003
  ]),
@@ -26004,7 +26007,7 @@ const t2 = /* @__PURE__ */ Oe({
26004
26007
  match: ({ path: f }) => f.startsWith("config.attributes.") && f.endsWith(".event_property_name")
26005
26008
  }, {
26006
26009
  default: I((f) => [
26007
- _(Qe, Ye(f, {
26010
+ _(tt, Ye(f, {
26008
26011
  placeholder: s(i)("plugins.free-form.metering-and-billing.fields.attributes.event_property_name.placeholder")
26009
26012
  }), null, 16, ["placeholder"])
26010
26013
  ]),
@@ -26018,8 +26021,8 @@ const t2 = /* @__PURE__ */ Oe({
26018
26021
  label: s(i)("plugins.free-form.metering-and-billing.sections.metering.title")
26019
26022
  }, {
26020
26023
  default: I(() => [
26021
- _(et, { name: "config.meter_api_requests" }),
26022
- _(et, { name: "config.meter_ai_token_usage" })
26024
+ _(Qe, { name: "config.meter_api_requests" }),
26025
+ _(Qe, { name: "config.meter_ai_token_usage" })
26023
26026
  ]),
26024
26027
  _: 1
26025
26028
  }, 8, ["expanded", "label"]),
@@ -26056,15 +26059,15 @@ const t2 = /* @__PURE__ */ Oe({
26056
26059
  label: s(i)("plugins.free-form.metering-and-billing.sections.ingestion.title")
26057
26060
  }, {
26058
26061
  default: I(() => [
26059
- _(Qe, {
26062
+ _(tt, {
26060
26063
  help: s(i)("plugins.free-form.metering-and-billing.fields.ingest_endpoint.help"),
26061
26064
  name: "config.ingest_endpoint"
26062
26065
  }, null, 8, ["help"]),
26063
- _(et, { name: "config.api_token" }),
26064
- _(et, { name: "config.ssl_verify" }),
26066
+ _(Qe, { name: "config.api_token" }),
26067
+ _(Qe, { name: "config.ssl_verify" }),
26065
26068
  j("div", UR, [
26066
- _(et, { name: "config.timeout" }),
26067
- _(et, { name: "config.keepalive" })
26069
+ _(Qe, { name: "config.timeout" }),
26070
+ _(Qe, { name: "config.keepalive" })
26068
26071
  ])
26069
26072
  ]),
26070
26073
  _: 1
@@ -26095,7 +26098,7 @@ const t2 = /* @__PURE__ */ Oe({
26095
26098
  _: 1
26096
26099
  }, 16, ["plugin-config-description"]));
26097
26100
  }
26098
- }), zR = /* @__PURE__ */ Be(VR, [["__scopeId", "data-v-78972733"]]), GR = Le({
26101
+ }), zR = /* @__PURE__ */ Ve(VR, [["__scopeId", "data-v-78972733"]]), GR = Le({
26099
26102
  experimental: !0,
26100
26103
  component: zR
26101
26104
  }), HR = Le({
@@ -26103,7 +26106,7 @@ const t2 = /* @__PURE__ */ Oe({
26103
26106
  fieldRenderers: [
26104
26107
  {
26105
26108
  match: "config.api_specification",
26106
- component: Qe,
26109
+ component: tt,
26107
26110
  propsOverrides: {
26108
26111
  multiline: !0,
26109
26112
  rows: 15
@@ -26124,7 +26127,7 @@ const t2 = /* @__PURE__ */ Oe({
26124
26127
  fieldRenderers: [
26125
26128
  {
26126
26129
  match: "config.api_spec",
26127
- component: Qe,
26130
+ component: tt,
26128
26131
  propsOverrides: {
26129
26132
  multiline: !0,
26130
26133
  rows: 15
@@ -26213,7 +26216,7 @@ const eM = {
26213
26216
  _: 1
26214
26217
  }),
26215
26218
  j("div", iM, [
26216
- _(s(tn), {
26219
+ _(s(an), {
26217
26220
  "data-testid": "session-radio-use",
26218
26221
  description: s(n)("plugins.free-form.openid-connect.auth_methods.session.use_description"),
26219
26222
  label: s(n)("plugins.free-form.openid-connect.auth_methods.session.use_label"),
@@ -26221,7 +26224,7 @@ const eM = {
26221
26224
  "selected-value": !0,
26222
26225
  onChange: b[0] || (b[0] = (E) => v(!0))
26223
26226
  }, null, 8, ["description", "label", "model-value"]),
26224
- _(s(tn), {
26227
+ _(s(an), {
26225
26228
  "data-testid": "session-radio-no-use",
26226
26229
  description: s(n)("plugins.free-form.openid-connect.auth_methods.session.no_use_description"),
26227
26230
  label: s(n)("plugins.free-form.openid-connect.auth_methods.session.no_use_label"),
@@ -26239,7 +26242,7 @@ const eM = {
26239
26242
  _: 1
26240
26243
  }),
26241
26244
  j("div", aM, [
26242
- (k(!0), Z(Ve, null, tt(u.value, (E) => (k(), Z("div", {
26245
+ (k(!0), Z(Be, null, et(u.value, (E) => (k(), Z("div", {
26243
26246
  key: E.value,
26244
26247
  class: "auth-method"
26245
26248
  }, [
@@ -26263,7 +26266,7 @@ const eM = {
26263
26266
  }, null, 8, ["label", "model-value"])
26264
26267
  ]));
26265
26268
  }
26266
- }), Zd = /* @__PURE__ */ Be(sM, [["__scopeId", "data-v-ec201579"]]), lM = { class: "oidc-client-jwk-field" }, cM = /* @__PURE__ */ Oe({
26269
+ }), Zd = /* @__PURE__ */ Ve(sM, [["__scopeId", "data-v-ec201579"]]), lM = { class: "oidc-client-jwk-field" }, cM = /* @__PURE__ */ Oe({
26267
26270
  __name: "ClientJwkField",
26268
26271
  props: {
26269
26272
  name: {}
@@ -26293,7 +26296,7 @@ const eM = {
26293
26296
  }, 8, ["item-label", "name"])
26294
26297
  ]));
26295
26298
  }
26296
- }), uM = /* @__PURE__ */ Be(cM, [["__scopeId", "data-v-60061242"]]), dM = { class: "principals-field-group" }, pM = { class: "principals-field-group" }, fM = { class: "lookup-method-item" }, mM = { class: "lookup-method-item-label" }, gM = { class: "lookup-method-item-description" }, hM = { class: "principals-field-group" }, vM = { class: "principals-field-group" }, yM = {
26299
+ }), uM = /* @__PURE__ */ Ve(cM, [["__scopeId", "data-v-60061242"]]), dM = { class: "principals-field-group" }, pM = { class: "principals-field-group" }, fM = { class: "lookup-method-item" }, mM = { class: "lookup-method-item-label" }, gM = { class: "lookup-method-item-description" }, hM = { class: "principals-field-group" }, vM = { class: "principals-field-group" }, yM = {
26297
26300
  class: "principals-learn-more-link",
26298
26301
  href: "https://developer.konghq.com/identity/principals/",
26299
26302
  rel: "noopener noreferrer",
@@ -26372,7 +26375,7 @@ const eM = {
26372
26375
  "trigger-label": s(n)("plugins.free-form.openid-connect.lookup.collapse_label")
26373
26376
  }, {
26374
26377
  default: I(() => [
26375
- e.showPrincipalsFields ? (k(), Z(Ve, { key: 0 }, [
26378
+ e.showPrincipalsFields ? (k(), Z(Be, { key: 0 }, [
26376
26379
  nt($.$slots, "banner", {}, void 0, !0),
26377
26380
  e.dataPlaneIncompatible ? (k(), z(s(Ul), {
26378
26381
  key: 0,
@@ -26452,7 +26455,7 @@ const eM = {
26452
26455
  ]),
26453
26456
  _: 1
26454
26457
  }),
26455
- _(s(tn), {
26458
+ _(s(an), {
26456
26459
  "data-testid": "principals-error-on-miss-true",
26457
26460
  description: s(n)("plugins.free-form.openid-connect.lookup.error_on_miss.reject_description"),
26458
26461
  disabled: v.value,
@@ -26461,7 +26464,7 @@ const eM = {
26461
26464
  "selected-value": !0,
26462
26465
  onChange: L[1] || (L[1] = (A) => c.value = !0)
26463
26466
  }, null, 8, ["description", "disabled", "label", "model-value"]),
26464
- _(s(tn), {
26467
+ _(s(an), {
26465
26468
  "data-testid": "principals-error-on-miss-false",
26466
26469
  description: s(n)("plugins.free-form.openid-connect.lookup.error_on_miss.continue_description"),
26467
26470
  disabled: v.value,
@@ -26511,7 +26514,7 @@ const eM = {
26511
26514
  _: 3
26512
26515
  }, 8, ["trigger-label"]));
26513
26516
  }
26514
- }), Qd = /* @__PURE__ */ Be(kM, [["__scopeId", "data-v-8cfd1dc3"]]), wM = {
26517
+ }), Qd = /* @__PURE__ */ Ve(kM, [["__scopeId", "data-v-8cfd1dc3"]]), wM = {
26515
26518
  class: "oidc-principals-section",
26516
26519
  "data-testid": "oidc-principals-section"
26517
26520
  }, CM = { class: "principals-header" }, EM = { class: "principals-description" }, SM = {
@@ -26675,7 +26678,7 @@ const eM = {
26675
26678
  })
26676
26679
  ]),
26677
26680
  j("div", SM, [
26678
- _(s(tn), {
26681
+ _(s(an), {
26679
26682
  modelValue: h.value,
26680
26683
  "onUpdate:modelValue": ze[0] || (ze[0] = (We) => h.value = We),
26681
26684
  card: "",
@@ -26695,7 +26698,7 @@ const eM = {
26695
26698
  ]),
26696
26699
  _: 1
26697
26700
  }, 8, ["modelValue"]),
26698
- _(s(tn), {
26701
+ _(s(an), {
26699
26702
  modelValue: h.value,
26700
26703
  "onUpdate:modelValue": ze[1] || (ze[1] = (We) => h.value = We),
26701
26704
  card: "",
@@ -26748,7 +26751,7 @@ const eM = {
26748
26751
  })
26749
26752
  ])
26750
26753
  ])) : ge("", !0),
26751
- h.value === oi ? (k(), Z(Ve, { key: 2 }, [
26754
+ h.value === oi ? (k(), Z(Be, { key: 2 }, [
26752
26755
  Q.value ? (k(), z(s(fr), {
26753
26756
  key: 0,
26754
26757
  class: "principals-directory-select",
@@ -26800,7 +26803,7 @@ const eM = {
26800
26803
  required: "",
26801
26804
  "onUpdate:modelValue": ze[5] || (ze[5] = (We) => g.value = We)
26802
26805
  }, null, 8, ["help", "label", "label-attributes", "model-value", "placeholder"])),
26803
- (k(!0), Z(Ve, null, tt(P.value, (We, we) => (k(), Z("div", {
26806
+ (k(!0), Z(Be, null, et(P.value, (We, we) => (k(), Z("div", {
26804
26807
  key: we,
26805
26808
  class: mt(["client-row", { "client-row-with-label": we === 0 }])
26806
26809
  }, [
@@ -26902,8 +26905,8 @@ const eM = {
26902
26905
  ]),
26903
26906
  _: 3
26904
26907
  }, 8, ["data-plane-incompatible"])
26905
- ], 64)) : (k(), Z(Ve, { key: 3 }, [
26906
- (k(!0), Z(Ve, null, tt(P.value, (We, we) => (k(), Z("div", {
26908
+ ], 64)) : (k(), Z(Be, { key: 3 }, [
26909
+ (k(!0), Z(Be, null, et(P.value, (We, we) => (k(), Z("div", {
26907
26910
  key: we,
26908
26911
  class: mt(["client-row", { "client-row-with-label": we === 0 }])
26909
26912
  }, [
@@ -26984,7 +26987,7 @@ const eM = {
26984
26987
  ]),
26985
26988
  _: 1
26986
26989
  }),
26987
- _(et, { name: "config.issuer" }),
26990
+ _(Qe, { name: "config.issuer" }),
26988
26991
  _(Qd, {
26989
26992
  "data-plane-incompatible": B.value,
26990
26993
  "on-enabled-change": Ee
@@ -27039,7 +27042,7 @@ const eM = {
27039
27042
  }, null, 8, ["action-button-text", "message", "title", "visible"])
27040
27043
  ]));
27041
27044
  }
27042
- }), QM = /* @__PURE__ */ Be(ZM, [["__scopeId", "data-v-2810ba1c"]]), eL = /* @__PURE__ */ Oe({
27045
+ }), QM = /* @__PURE__ */ Ve(ZM, [["__scopeId", "data-v-2810ba1c"]]), eL = /* @__PURE__ */ Oe({
27043
27046
  __name: "VerifySignatureField",
27044
27047
  props: {
27045
27048
  name: {}
@@ -27208,7 +27211,7 @@ const eM = {
27208
27211
  match: ({ genericPath: w }) => s(S).has(w)
27209
27212
  }, {
27210
27213
  default: I((w) => [
27211
- _(Qe, Ye(w, { multiline: "" }), null, 16)
27214
+ _(tt, Ye(w, { multiline: "" }), null, 16)
27212
27215
  ]),
27213
27216
  _: 1
27214
27217
  }, 8, ["match"]),
@@ -27256,10 +27259,10 @@ const eM = {
27256
27259
  _(Zd, { "principals-mode": y.value }, null, 8, ["principals-mode"])
27257
27260
  ]),
27258
27261
  _: 1
27259
- })) : (k(), Z(Ve, { key: 1 }, [
27260
- _(et, { name: "config.client_id" }),
27261
- _(et, { name: "config.client_secret" }),
27262
- _(et, { name: "config.issuer" }),
27262
+ })) : (k(), Z(Be, { key: 1 }, [
27263
+ _(Qe, { name: "config.client_id" }),
27264
+ _(Qe, { name: "config.client_secret" }),
27265
+ _(Qe, { name: "config.issuer" }),
27263
27266
  _(Zd, { "principals-mode": y.value }, null, 8, ["principals-mode"])
27264
27267
  ], 64))
27265
27268
  ])
@@ -27275,15 +27278,15 @@ const eM = {
27275
27278
  }),
27276
27279
  j("p", lL, W(s(a)("plugins.free-form.openid-connect.tabs.authorization.description")), 1)
27277
27280
  ]),
27278
- _(et, { name: "config.scopes_claim" }),
27279
- _(et, { name: "config.scopes_required" }),
27280
- _(et, { name: "config.audience_claim" }),
27281
- _(et, { name: "config.audience_required" }),
27282
- _(et, { name: "config.roles_claim" }),
27283
- _(et, { name: "config.roles_required" }),
27284
- _(et, { name: "config.groups_claim" }),
27285
- _(et, { name: "config.groups_required" }),
27286
- _(et, { name: "config.authenticated_groups_claim" })
27281
+ _(Qe, { name: "config.scopes_claim" }),
27282
+ _(Qe, { name: "config.scopes_required" }),
27283
+ _(Qe, { name: "config.audience_claim" }),
27284
+ _(Qe, { name: "config.audience_required" }),
27285
+ _(Qe, { name: "config.roles_claim" }),
27286
+ _(Qe, { name: "config.roles_required" }),
27287
+ _(Qe, { name: "config.groups_claim" }),
27288
+ _(Qe, { name: "config.groups_required" }),
27289
+ _(Qe, { name: "config.authenticated_groups_claim" })
27287
27290
  ])
27288
27291
  ]),
27289
27292
  advanced: I(() => [
@@ -27310,7 +27313,7 @@ const eM = {
27310
27313
  _: 1
27311
27314
  }, 16));
27312
27315
  }
27313
- }), mL = /* @__PURE__ */ Be(fL, [["__scopeId", "data-v-af2137d0"]]), gL = Le({
27316
+ }), mL = /* @__PURE__ */ Ve(fL, [["__scopeId", "data-v-af2137d0"]]), gL = Le({
27314
27317
  experimental: !0,
27315
27318
  component: mL
27316
27319
  }), hL = Le({
@@ -27341,7 +27344,7 @@ const eM = {
27341
27344
  "config.ws_upstream_frame.*",
27342
27345
  "config.ws_close.*"
27343
27346
  ].includes(e),
27344
- component: Qe,
27347
+ component: tt,
27345
27348
  propsOverrides: {
27346
27349
  multiline: !0,
27347
27350
  rows: 3
@@ -27365,7 +27368,7 @@ const eM = {
27365
27368
  "config.ws_upstream_frame.*",
27366
27369
  "config.ws_close.*"
27367
27370
  ].includes(e),
27368
- component: Qe,
27371
+ component: tt,
27369
27372
  propsOverrides: {
27370
27373
  multiline: !0,
27371
27374
  rows: 3
@@ -27507,7 +27510,7 @@ const eM = {
27507
27510
  }, null, 8, ["items", "label"])
27508
27511
  ]),
27509
27512
  j("div", SL, [
27510
- (k(!0), Z(Ve, null, tt(a.value, (M, $) => (k(), Z("div", {
27513
+ (k(!0), Z(Be, null, et(a.value, (M, $) => (k(), Z("div", {
27511
27514
  key: s(r)(M, $)
27512
27515
  }, [
27513
27516
  _(E, {
@@ -27561,7 +27564,7 @@ const eM = {
27561
27564
  y.value.length > 0 ? (k(), Z("div", TL, [
27562
27565
  j("div", null, W(s(t)("sp.start_with_a_use_case")), 1),
27563
27566
  j("div", $L, [
27564
- (k(!0), Z(Ve, null, tt(y.value, (M, $) => (k(), z(C, {
27567
+ (k(!0), Z(Be, null, et(y.value, (M, $) => (k(), z(C, {
27565
27568
  key: `use-case-${$}`,
27566
27569
  "max-width": "300"
27567
27570
  }, {
@@ -27593,7 +27596,7 @@ const eM = {
27593
27596
  });
27594
27597
  };
27595
27598
  }
27596
- }), PL = /* @__PURE__ */ Be(OL, [["__scopeId", "data-v-1fac872b"]]), NL = {
27599
+ }), PL = /* @__PURE__ */ Ve(OL, [["__scopeId", "data-v-1fac872b"]]), NL = {
27597
27600
  id: "rla-form-error-legend",
27598
27601
  class: "rla-form-error-inputs"
27599
27602
  }, RL = /* @__PURE__ */ Oe({
@@ -27625,7 +27628,7 @@ const eM = {
27625
27628
  placeholder: s(t)("sp.error_message.code_placeholder")
27626
27629
  }, null, 8, ["placeholder"]),
27627
27630
  i[0] || (i[0] = j("div", null, ":", -1)),
27628
- _(Qe, {
27631
+ _(tt, {
27629
27632
  class: "input-error-message",
27630
27633
  label: "",
27631
27634
  name: "error_message",
@@ -27635,7 +27638,7 @@ const eM = {
27635
27638
  ]);
27636
27639
  };
27637
27640
  }
27638
- }), ML = /* @__PURE__ */ Be(RL, [["__scopeId", "data-v-7b36f1f7"]]), LL = /* @__PURE__ */ Oe({
27641
+ }), ML = /* @__PURE__ */ Ve(RL, [["__scopeId", "data-v-7b36f1f7"]]), LL = /* @__PURE__ */ Oe({
27639
27642
  __name: "RedisField",
27640
27643
  setup(e) {
27641
27644
  const { formData: t } = dt(), n = rt(ln), o = rt(Go)?.isEditing || !1, a = R(() => {
@@ -27659,14 +27662,14 @@ const eM = {
27659
27662
  __name: "ConfigForm",
27660
27663
  setup(e) {
27661
27664
  const { getSchema: t } = dt();
27662
- return (n, i) => (k(), Z(Ve, null, [
27665
+ return (n, i) => (k(), Z(Be, null, [
27663
27666
  _(Ft, {
27664
27667
  "as-child": "",
27665
27668
  name: "config",
27666
27669
  "reset-label-path": "reset"
27667
27670
  }, {
27668
27671
  default: I(() => [
27669
- _(et, { name: "identifier" }),
27672
+ _(Qe, { name: "identifier" }),
27670
27673
  _(PL),
27671
27674
  _(ML)
27672
27675
  ]),
@@ -27678,24 +27681,24 @@ const eM = {
27678
27681
  multiple: !0,
27679
27682
  name: "config.compound_identifier"
27680
27683
  }),
27681
- s(t)("config.counter_key") ? (k(), z(et, {
27684
+ s(t)("config.counter_key") ? (k(), z(Qe, {
27682
27685
  key: 0,
27683
27686
  name: "config.counter_key"
27684
27687
  })) : ge("", !0),
27685
- _(et, { name: "config.sync_rate" }),
27686
- _(et, { name: "config.namespace" }),
27687
- _(et, { name: "config.strategy" }),
27688
+ _(Qe, { name: "config.sync_rate" }),
27689
+ _(Qe, { name: "config.namespace" }),
27690
+ _(Qe, { name: "config.strategy" }),
27688
27691
  _(LL),
27689
- _(et, { name: "config.dictionary_name" }),
27690
- _(et, { name: "config.lock_dictionary_name" }),
27691
- _(et, { name: "config.hide_client_headers" }),
27692
- _(et, { name: "config.retry_after_jitter_max" }),
27693
- _(et, { name: "config.header_name" }),
27694
- _(et, { name: "config.path" }),
27695
- _(et, { name: "config.throttling" }),
27696
- _(et, { name: "config.enforce_consumer_groups" }),
27697
- _(et, { name: "config.consumer_groups" }),
27698
- _(et, { name: "config.disable_penalty" })
27692
+ _(Qe, { name: "config.dictionary_name" }),
27693
+ _(Qe, { name: "config.lock_dictionary_name" }),
27694
+ _(Qe, { name: "config.hide_client_headers" }),
27695
+ _(Qe, { name: "config.retry_after_jitter_max" }),
27696
+ _(Qe, { name: "config.header_name" }),
27697
+ _(Qe, { name: "config.path" }),
27698
+ _(Qe, { name: "config.throttling" }),
27699
+ _(Qe, { name: "config.enforce_consumer_groups" }),
27700
+ _(Qe, { name: "config.consumer_groups" }),
27701
+ _(Qe, { name: "config.disable_penalty" })
27699
27702
  ]),
27700
27703
  _: 1
27701
27704
  })
@@ -27946,7 +27949,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
27946
27949
  match: ({ path: d }) => d.endsWith("by_lua")
27947
27950
  }, {
27948
27951
  default: I((d) => [
27949
- _(Qe, Ye(d, {
27952
+ _(tt, Ye(d, {
27950
27953
  autosize: "",
27951
27954
  class: "rc-code",
27952
27955
  multiline: "",
@@ -27970,7 +27973,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
27970
27973
  _: 1
27971
27974
  }, 16));
27972
27975
  }
27973
- }), HL = /* @__PURE__ */ Be(GL, [["__scopeId", "data-v-dc955662"]]), WL = Le({
27976
+ }), HL = /* @__PURE__ */ Ve(GL, [["__scopeId", "data-v-dc955662"]]), WL = Le({
27974
27977
  component: HL
27975
27978
  }), YL = Le({
27976
27979
  experimental: !0
@@ -27993,7 +27996,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
27993
27996
  },
27994
27997
  {
27995
27998
  match: "config.body_schema",
27996
- component: Qe,
27999
+ component: tt,
27997
28000
  propsOverrides: {
27998
28001
  multiline: !0,
27999
28002
  rows: 4
@@ -28001,7 +28004,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28001
28004
  },
28002
28005
  {
28003
28006
  match: "config.parameter_schema.*.schema",
28004
- component: Qe,
28007
+ component: tt,
28005
28008
  propsOverrides: {
28006
28009
  multiline: !0,
28007
28010
  rows: 4
@@ -28023,7 +28026,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28023
28026
  fieldRenderers: [
28024
28027
  {
28025
28028
  match: ({ path: e, genericPath: t }) => e === "config.replace.body" || t === "config.transform.functions.*" || t.endsWith(".json.*"),
28026
- component: Qe,
28029
+ component: tt,
28027
28030
  propsOverrides: {
28028
28031
  multiline: !0,
28029
28032
  rows: 3
@@ -28035,7 +28038,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28035
28038
  fieldRenderers: [
28036
28039
  {
28037
28040
  match: ({ genericPath: e }) => e.endsWith(".json.*"),
28038
- component: Qe,
28041
+ component: tt,
28039
28042
  propsOverrides: {
28040
28043
  multiline: !0,
28041
28044
  rows: 3
@@ -28166,7 +28169,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28166
28169
  }, null, 8, ["items", "label"])
28167
28170
  ]),
28168
28171
  j("div", cF, [
28169
- (k(!0), Z(Ve, null, tt(a.value, (M, $) => (k(), Z("div", {
28172
+ (k(!0), Z(Be, null, et(a.value, (M, $) => (k(), Z("div", {
28170
28173
  key: s(r)(M, $)
28171
28174
  }, [
28172
28175
  _(E, {
@@ -28220,7 +28223,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28220
28223
  y.value.length > 0 ? (k(), Z("div", fF, [
28221
28224
  j("div", null, W(s(t)("sp.start_with_a_use_case")), 1),
28222
28225
  j("div", mF, [
28223
- (k(!0), Z(Ve, null, tt(y.value, (M, $) => (k(), z(C, {
28226
+ (k(!0), Z(Be, null, et(y.value, (M, $) => (k(), z(C, {
28224
28227
  key: `use-case-${$}`,
28225
28228
  "max-width": "300"
28226
28229
  }, {
@@ -28252,7 +28255,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28252
28255
  });
28253
28256
  };
28254
28257
  }
28255
- }), hF = /* @__PURE__ */ Be(gF, [["__scopeId", "data-v-e12d9c9f"]]), vF = {
28258
+ }), hF = /* @__PURE__ */ Ve(gF, [["__scopeId", "data-v-e12d9c9f"]]), vF = {
28256
28259
  id: "sp-form-error-legend",
28257
28260
  class: "sp-form-error-inputs"
28258
28261
  }, yF = /* @__PURE__ */ Oe({
@@ -28284,7 +28287,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28284
28287
  placeholder: s(t)("sp.error_message.code_placeholder")
28285
28288
  }, null, 8, ["placeholder"]),
28286
28289
  i[0] || (i[0] = j("div", null, ":", -1)),
28287
- _(Qe, {
28290
+ _(tt, {
28288
28291
  class: "input-error-message",
28289
28292
  label: "",
28290
28293
  name: "error_message",
@@ -28294,7 +28297,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28294
28297
  ]);
28295
28298
  };
28296
28299
  }
28297
- }), _F = /* @__PURE__ */ Be(yF, [["__scopeId", "data-v-0796e152"]]), bF = /* @__PURE__ */ Oe({
28300
+ }), _F = /* @__PURE__ */ Ve(yF, [["__scopeId", "data-v-0796e152"]]), bF = /* @__PURE__ */ Oe({
28298
28301
  __name: "RedisField",
28299
28302
  setup(e) {
28300
28303
  const { formData: t } = dt(), n = rt(ln), o = rt(Go)?.isEditing || !1, a = R(() => {
@@ -28317,7 +28320,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28317
28320
  }), kF = /* @__PURE__ */ Oe({
28318
28321
  __name: "ConfigForm",
28319
28322
  setup(e) {
28320
- return (t, n) => (k(), Z(Ve, null, [
28323
+ return (t, n) => (k(), Z(Be, null, [
28321
28324
  _(Ft, {
28322
28325
  "as-child": "",
28323
28326
  name: "config",
@@ -28331,15 +28334,15 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28331
28334
  }),
28332
28335
  _(zi, { "hide-general-fields": "" }, {
28333
28336
  default: I(() => [
28334
- _(et, { name: "config.dictionary_name" }),
28335
- _(et, { name: "config.lock_dictionary_name" }),
28336
- _(et, { name: "config.strategy" }),
28337
+ _(Qe, { name: "config.dictionary_name" }),
28338
+ _(Qe, { name: "config.lock_dictionary_name" }),
28339
+ _(Qe, { name: "config.strategy" }),
28337
28340
  _(bF),
28338
- _(et, { name: "config.namespace" }),
28339
- _(et, { name: "config.hide_client_headers" }),
28340
- _(et, { name: "config.disable_penalty" }),
28341
- _(et, { name: "config.retry_after_jitter_max" }),
28342
- _(et, { name: "config.sync_rate" })
28341
+ _(Qe, { name: "config.namespace" }),
28342
+ _(Qe, { name: "config.hide_client_headers" }),
28343
+ _(Qe, { name: "config.disable_penalty" }),
28344
+ _(Qe, { name: "config.retry_after_jitter_max" }),
28345
+ _(Qe, { name: "config.sync_rate" })
28343
28346
  ]),
28344
28347
  _: 1
28345
28348
  })
@@ -28389,7 +28392,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28389
28392
  fieldRenderers: [
28390
28393
  {
28391
28394
  match: ({ genericPath: e }) => e === "config.flow.functions.*",
28392
- component: Qe,
28395
+ component: tt,
28393
28396
  propsOverrides: {
28394
28397
  multiline: !0,
28395
28398
  rows: 3
@@ -28412,7 +28415,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28412
28415
  fieldRenderers: [
28413
28416
  {
28414
28417
  match: "config.message.functions.*",
28415
- component: Qe,
28418
+ component: tt,
28416
28419
  propsOverrides: {
28417
28420
  multiline: !0,
28418
28421
  rows: 3
@@ -28495,7 +28498,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28495
28498
  fieldRenderers: [
28496
28499
  {
28497
28500
  match: "config.behavior.idp_error_response_body_template",
28498
- component: Qe,
28501
+ component: tt,
28499
28502
  propsOverrides: {
28500
28503
  multiline: !0,
28501
28504
  rows: 4
@@ -28513,7 +28516,7 @@ const la = "_callout_id", BL = /* @__PURE__ */ Oe({
28513
28516
  fieldRenderers: [
28514
28517
  {
28515
28518
  match: ({ path: e }) => /^config\.(client|upstream)\.(text|binary)\.schema$/.test(e),
28516
- component: Qe,
28519
+ component: tt,
28517
28520
  propsOverrides: {
28518
28521
  multiline: !0,
28519
28522
  rows: 4
@@ -29595,7 +29598,7 @@ const ut = {
29595
29598
  onSubmit: ye
29596
29599
  }, {
29597
29600
  "form-actions": I(() => [
29598
- A.value || T.value || K.value ? (k(), Z("span", FK)) : (k(), Z(Ve, { key: 0 }, [
29601
+ A.value || T.value || K.value ? (k(), Z("span", FK)) : (k(), Z(Be, { key: 0 }, [
29599
29602
  _(Pe, {
29600
29603
  appearance: "primary",
29601
29604
  "data-testid": "custom-plugin-form-submit",
@@ -29654,7 +29657,7 @@ const ut = {
29654
29657
  j("h3", null, W(s(r)("custom_plugin_form.errors.no_supported_types")), 1)
29655
29658
  ]),
29656
29659
  _: 1
29657
- })) : (k(), Z(Ve, { key: 3 }, [
29660
+ })) : (k(), Z(Be, { key: 3 }, [
29658
29661
  Q.value ? (k(), z(s(qn), {
29659
29662
  key: 0,
29660
29663
  class: "custom-plugin-form-steps",
@@ -29995,7 +29998,7 @@ const ut = {
29995
29998
  ]);
29996
29999
  };
29997
30000
  }
29998
- }), l8 = /* @__PURE__ */ Be(DK, [["__scopeId", "data-v-0c1e017a"]]), jK = (e, t) => ({
30001
+ }), l8 = /* @__PURE__ */ Ve(DK, [["__scopeId", "data-v-0c1e017a"]]), jK = (e, t) => ({
29999
30002
  type: "array",
30000
30003
  valueType: "string",
30001
30004
  valueArrayType: "array",
@@ -30043,12 +30046,12 @@ const ut = {
30043
30046
  tabindex: "0",
30044
30047
  onClick: a
30045
30048
  }, W(o.value), 1),
30046
- e.isLast ? ge("", !0) : (k(), Z(Ve, { key: 0 }, [
30049
+ e.isLast ? ge("", !0) : (k(), Z(Be, { key: 0 }, [
30047
30050
  Te(", ")
30048
30051
  ], 64))
30049
30052
  ]));
30050
30053
  }
30051
- }), ip = /* @__PURE__ */ Be(BK, [["__scopeId", "data-v-949a9ea1"]]), VK = { key: 0 }, zK = /* @__PURE__ */ Oe({
30054
+ }), ip = /* @__PURE__ */ Ve(BK, [["__scopeId", "data-v-949a9ea1"]]), VK = { key: 0 }, zK = /* @__PURE__ */ Oe({
30052
30055
  __name: "PluginFieldRuleAlerts",
30053
30056
  props: {
30054
30057
  rules: {}
@@ -30072,12 +30075,12 @@ const ut = {
30072
30075
  return k(), z(l, { class: "plugin-field-rule-alerts" }, {
30073
30076
  default: I(() => [
30074
30077
  j("ul", null, [
30075
- (k(!0), Z(Ve, null, tt(o.value, ({ key: c, fields: u }, d) => (k(), Z("li", {
30078
+ (k(!0), Z(Be, null, et(o.value, ({ key: c, fields: u }, d) => (k(), Z("li", {
30076
30079
  key: `simple-alert-${d}`
30077
30080
  }, [
30078
30081
  _(s(i), { keypath: c }, {
30079
30082
  parameters: I(() => [
30080
- (k(!0), Z(Ve, null, tt(u, (p, f) => (k(), z(ip, {
30083
+ (k(!0), Z(Be, null, et(u, (p, f) => (k(), z(ip, {
30081
30084
  key: `alert-field-${p}`,
30082
30085
  field: p,
30083
30086
  "is-last": f === u.length - 1
@@ -30087,15 +30090,15 @@ const ut = {
30087
30090
  }, 1032, ["keypath"])
30088
30091
  ]))), 128)),
30089
30092
  t.rules.onlyOneOfMutuallyRequired && t.rules.onlyOneOfMutuallyRequired.length > 0 ? (k(), Z("li", VK, [
30090
- (k(!0), Z(Ve, null, tt(t.rules.onlyOneOfMutuallyRequired, (c, u) => (k(), Z("div", {
30093
+ (k(!0), Z(Be, null, et(t.rules.onlyOneOfMutuallyRequired, (c, u) => (k(), Z("div", {
30091
30094
  key: `only-one-mutually-alert-${u}`
30092
30095
  }, [
30093
30096
  j("div", null, W(s(n)("plugins.form.field_rules.only_one_of_mutually_required")), 1),
30094
30097
  j("ul", null, [
30095
- (k(!0), Z(Ve, null, tt(c, (d, p) => (k(), Z("li", {
30098
+ (k(!0), Z(Be, null, et(c, (d, p) => (k(), Z("li", {
30096
30099
  key: `only-one-mutually-alert-${u}-combination-${p}`
30097
30100
  }, [
30098
- (k(!0), Z(Ve, null, tt(d, (f, g) => (k(), z(ip, {
30101
+ (k(!0), Z(Be, null, et(d, (f, g) => (k(), z(ip, {
30099
30102
  key: `only-one-mutually-field-${f}`,
30100
30103
  field: f,
30101
30104
  "is-last": g === d.length - 1
@@ -30110,7 +30113,7 @@ const ut = {
30110
30113
  });
30111
30114
  };
30112
30115
  }
30113
- }), GK = /* @__PURE__ */ Be(zK, [["__scopeId", "data-v-5f9ff453"]]);
30116
+ }), GK = /* @__PURE__ */ Ve(zK, [["__scopeId", "data-v-5f9ff453"]]);
30114
30117
  function HK(e) {
30115
30118
  if (e.length === 0) return "";
30116
30119
  if (e.length === 1) {
@@ -30651,7 +30654,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
30651
30654
  b(!1);
30652
30655
  }), (we, Ie) => {
30653
30656
  const Pe = ke("KSkeleton");
30654
- return k(), Z(Ve, null, [
30657
+ return k(), Z(Be, null, [
30655
30658
  j("div", tD, [
30656
30659
  ze.value ? (k(), z(Pe, {
30657
30660
  key: 0,
@@ -30750,7 +30753,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
30750
30753
  ], 64);
30751
30754
  };
30752
30755
  }
30753
- }), aD = /* @__PURE__ */ Be(oD, [["__scopeId", "data-v-7f30f062"]]), rD = { key: 1 }, sD = /* @__PURE__ */ Oe({
30756
+ }), aD = /* @__PURE__ */ Ve(oD, [["__scopeId", "data-v-7f30f062"]]), rD = { key: 1 }, sD = /* @__PURE__ */ Oe({
30754
30757
  __name: "PluginFormActionsWrapper",
30755
30758
  props: {
30756
30759
  teleportTarget: {
@@ -31633,7 +31636,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
31633
31636
  ], 2);
31634
31637
  };
31635
31638
  }
31636
- }), c8 = /* @__PURE__ */ Be(dD, [["__scopeId", "data-v-c298ae19"]]), pD = { class: "plugin-filter" }, fD = { class: "plugin-tags-filter" }, mD = { class: "plugin-tags-filter-badges" }, gD = { class: "plugin-status-filter" }, hD = /* @__PURE__ */ Oe({
31639
+ }), c8 = /* @__PURE__ */ Ve(dD, [["__scopeId", "data-v-c298ae19"]]), pD = { class: "plugin-filter" }, fD = { class: "plugin-tags-filter" }, mD = { class: "plugin-tags-filter-badges" }, gD = { class: "plugin-status-filter" }, hD = /* @__PURE__ */ Oe({
31637
31640
  __name: "PluginFilter",
31638
31641
  props: /* @__PURE__ */ Qn({
31639
31642
  entityType: {},
@@ -31783,7 +31786,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
31783
31786
  _: 2
31784
31787
  }, 1032, ["modelValue", "error", "error-message", "placeholder", "onKeydown"]),
31785
31788
  j("div", mD, [
31786
- (k(!0), Z(Ve, null, tt(P, (K) => (k(), z($, {
31789
+ (k(!0), Z(Be, null, et(P, (K) => (k(), z($, {
31787
31790
  key: K,
31788
31791
  "icon-before": !1
31789
31792
  }, {
@@ -31818,7 +31821,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
31818
31821
  ]),
31819
31822
  "filter-status": I(({ value: P, setValue: F, options: K }) => [
31820
31823
  j("div", gD, [
31821
- (k(!0), Z(Ve, null, tt(K, (Q) => (k(), z(A, {
31824
+ (k(!0), Z(Be, null, et(K, (Q) => (k(), z(A, {
31822
31825
  key: Q.value,
31823
31826
  "data-testid": "status-filter-radio",
31824
31827
  label: Q.label,
@@ -31833,7 +31836,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
31833
31836
  ]);
31834
31837
  };
31835
31838
  }
31836
- }), vD = /* @__PURE__ */ Be(hD, [["__scopeId", "data-v-c4f55d0a"]]), yD = { class: "kong-ui-entities-plugins-list" }, _D = { class: "button-row" }, bD = { class: "name-cell-wrapper" }, kD = {
31839
+ }), vD = /* @__PURE__ */ Ve(hD, [["__scopeId", "data-v-c4f55d0a"]]), yD = { class: "kong-ui-entities-plugins-list" }, _D = { class: "button-row" }, bD = { class: "name-cell-wrapper" }, kD = {
31837
31840
  key: 0,
31838
31841
  class: "info-wrapper"
31839
31842
  }, wD = { class: "info-name" }, CD = {
@@ -32182,7 +32185,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32182
32185
  appliedTo: I(({ row: N }) => [
32183
32186
  V(N).length > 0 ? (k(), z(he, { key: 0 }, {
32184
32187
  default: I(() => [
32185
- (k(!0), Z(Ve, null, tt(V(N), (oe, Ae) => (k(), z(s(vi), {
32188
+ (k(!0), Z(Be, null, et(V(N), (oe, Ae) => (k(), z(s(vi), {
32186
32189
  key: oe.badgeText,
32187
32190
  "auth-function": () => ne(oe.type, N),
32188
32191
  "force-show": ""
@@ -32443,7 +32446,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32443
32446
  ]);
32444
32447
  };
32445
32448
  }
32446
- }), u8 = /* @__PURE__ */ Be(PD, [["__scopeId", "data-v-668423ed"]]), ND = { class: "plugin-select-card-wrapper" }, RD = ["data-testid"], MD = { class: "plugin-card-header" }, LD = { class: "plugin-card-title" }, FD = {
32449
+ }), u8 = /* @__PURE__ */ Ve(PD, [["__scopeId", "data-v-668423ed"]]), ND = { class: "plugin-select-card-wrapper" }, RD = ["data-testid"], MD = { class: "plugin-card-header" }, LD = { class: "plugin-card-title" }, FD = {
32447
32450
  key: 0,
32448
32451
  class: "plugin-card-actions"
32449
32452
  }, KD = ["data-testid", "title"], DD = {
@@ -32600,7 +32603,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32600
32603
  }, null, 8, ["alt", "name"]),
32601
32604
  e.plugin.description || l.value.length ? (k(), Z("div", DD, [
32602
32605
  l.value.length ? (k(), Z("div", jD, [
32603
- (k(!0), Z(Ve, null, tt(l.value, (V) => (k(), z(K, {
32606
+ (k(!0), Z(Be, null, et(l.value, (V) => (k(), z(K, {
32604
32607
  key: V,
32605
32608
  appearance: "info"
32606
32609
  }, {
@@ -32628,7 +32631,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32628
32631
  ]);
32629
32632
  };
32630
32633
  }
32631
- }), Hg = /* @__PURE__ */ Be(UD, [["__scopeId", "data-v-eb0977c9"]]), BD = /* @__PURE__ */ Oe({
32634
+ }), Hg = /* @__PURE__ */ Ve(UD, [["__scopeId", "data-v-eb0977c9"]]), BD = /* @__PURE__ */ Oe({
32632
32635
  __name: "DeleteCustomPluginSchemaModal",
32633
32636
  props: {
32634
32637
  /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
@@ -32718,7 +32721,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32718
32721
  }, 8, ["action-button-disabled", "title"])) : ge("", !0);
32719
32722
  };
32720
32723
  }
32721
- }), cs = /* @__PURE__ */ Be(BD, [["__scopeId", "data-v-9514182c"]]), VD = { class: "custom-plugins-grid" }, zD = { class: "empty-state-title" }, GD = { class: "empty-state-description" }, nl = 310, HD = /* @__PURE__ */ Oe({
32724
+ }), cs = /* @__PURE__ */ Ve(BD, [["__scopeId", "data-v-9514182c"]]), VD = { class: "custom-plugins-grid" }, zD = { class: "empty-state-title" }, GD = { class: "empty-state-description" }, nl = 310, HD = /* @__PURE__ */ Oe({
32722
32725
  __name: "PluginCustomGrid",
32723
32726
  props: {
32724
32727
  /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
@@ -32830,7 +32833,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32830
32833
  class: "plugin-card-container",
32831
32834
  style: Di(b.value)
32832
32835
  }, [
32833
- (k(!0), Z(Ve, null, tt(u.value, (L, A) => (k(), z(Hg, {
32836
+ (k(!0), Z(Be, null, et(u.value, (L, A) => (k(), z(Hg, {
32834
32837
  key: `plugin-card-${A}`,
32835
32838
  ref_for: !0,
32836
32839
  ref_key: "pluginCardRef",
@@ -32880,7 +32883,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32880
32883
  ]);
32881
32884
  };
32882
32885
  }
32883
- }), WD = /* @__PURE__ */ Be(HD, [["__scopeId", "data-v-909f4d5f"]]), il = 310, YD = /* @__PURE__ */ Oe({
32886
+ }), WD = /* @__PURE__ */ Ve(HD, [["__scopeId", "data-v-909f4d5f"]]), il = 310, YD = /* @__PURE__ */ Oe({
32884
32887
  __name: "PluginSelectGroup",
32885
32888
  props: /* @__PURE__ */ Qn({
32886
32889
  /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
@@ -32955,7 +32958,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32955
32958
  window?.removeEventListener("resize", b);
32956
32959
  }), (S, x) => {
32957
32960
  const C = ke("KCollapse");
32958
- return k(), Z(Ve, null, [
32961
+ return k(), Z(Be, null, [
32959
32962
  _(C, {
32960
32963
  modelValue: n.value,
32961
32964
  "onUpdate:modelValue": x[0] || (x[0] = (w) => n.value = w),
@@ -32971,7 +32974,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
32971
32974
  class: "plugin-card-container",
32972
32975
  style: Di(p.value)
32973
32976
  }, [
32974
- (k(!0), Z(Ve, null, tt(i.plugins, (w) => (k(), z(Hg, {
32977
+ (k(!0), Z(Be, null, et(i.plugins, (w) => (k(), z(Hg, {
32975
32978
  key: `plugin-card-${w.id}`,
32976
32979
  ref_for: !0,
32977
32980
  ref_key: "pluginCardRef",
@@ -33008,7 +33011,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33008
33011
  ], 64);
33009
33012
  };
33010
33013
  }
33011
- }), op = /* @__PURE__ */ Be(YD, [["__scopeId", "data-v-7f683497"]]), JD = { class: "plugin-select-grid" }, XD = { class: "empty-state-title" }, ZD = { class: "empty-state-description" }, ap = /* @__PURE__ */ Oe({
33014
+ }), op = /* @__PURE__ */ Ve(YD, [["__scopeId", "data-v-7f683497"]]), JD = { class: "plugin-select-grid" }, XD = { class: "empty-state-title" }, ZD = { class: "empty-state-description" }, ap = /* @__PURE__ */ Oe({
33012
33015
  __name: "PluginSelectGrid",
33013
33016
  props: {
33014
33017
  /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
@@ -33111,7 +33114,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33111
33114
  "onDelete:success": d[1] || (d[1] = (f) => i("delete:success", f)),
33112
33115
  onPluginClicked: d[2] || (d[2] = (f) => l(f))
33113
33116
  }, null, 8, ["modelValue", "can-delete-cloned-plugin", "can-delete-custom-plugin", "can-edit-cloned-plugin", "can-edit-custom-plugin", "config", "name", "navigate-on-click", "plugins"])) : ge("", !0),
33114
- (k(!0), Z(Ve, null, tt(s(zu), (f) => (k(), Z(Ve, null, [
33117
+ (k(!0), Z(Be, null, et(s(zu), (f) => (k(), Z(Be, null, [
33115
33118
  c.value[f] ? (k(), Z("div", { key: f }, [
33116
33119
  _(op, {
33117
33120
  modelValue: r.value[f],
@@ -33562,7 +33565,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33562
33565
  ]);
33563
33566
  };
33564
33567
  }
33565
- }), d8 = /* @__PURE__ */ Be(lj, [["__scopeId", "data-v-40b228cd"]]), cj = {
33568
+ }), d8 = /* @__PURE__ */ Ve(lj, [["__scopeId", "data-v-40b228cd"]]), cj = {
33566
33569
  key: 0,
33567
33570
  class: "highlighted-match"
33568
33571
  }, uj = /* @__PURE__ */ Oe({
@@ -33574,14 +33577,14 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33574
33577
  setup(e) {
33575
33578
  const t = e, n = R(() => FS(t.text, t.indices));
33576
33579
  return (i, o) => (k(), Z("span", null, [
33577
- (k(!0), Z(Ve, null, tt(n.value, (a, r) => (k(), Z(Ve, { key: r }, [
33578
- a.highlighted ? (k(), Z("span", cj, W(a.text), 1)) : (k(), Z(Ve, { key: 1 }, [
33580
+ (k(!0), Z(Be, null, et(n.value, (a, r) => (k(), Z(Be, { key: r }, [
33581
+ a.highlighted ? (k(), Z("span", cj, W(a.text), 1)) : (k(), Z(Be, { key: 1 }, [
33579
33582
  Te(W(a.text), 1)
33580
33583
  ], 64))
33581
33584
  ], 64))), 128))
33582
33585
  ]));
33583
33586
  }
33584
- }), Wg = /* @__PURE__ */ Be(uj, [["__scopeId", "data-v-91ae2f75"]]), dj = {
33587
+ }), Wg = /* @__PURE__ */ Ve(uj, [["__scopeId", "data-v-91ae2f75"]]), dj = {
33585
33588
  class: "plugin-select-card-wrapper",
33586
33589
  "data-testid": "plugin-catalog-card-wrapper"
33587
33590
  }, pj = { class: "plugin-card-header" }, fj = { class: "plugin-card-title" }, mj = {
@@ -33704,7 +33707,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33704
33707
  j("div", null, W(E.value ? s(a)("actions.create_custom") : s(a)("actions.configure")), 1),
33705
33708
  j("div", _j, [
33706
33709
  l.value.length ? (k(), Z("div", bj, [
33707
- (k(!0), Z(Ve, null, tt(l.value, (K) => (k(), z(T, {
33710
+ (k(!0), Z(Be, null, et(l.value, (K) => (k(), z(T, {
33708
33711
  key: K,
33709
33712
  appearance: "info"
33710
33713
  }, {
@@ -33726,7 +33729,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33726
33729
  ]);
33727
33730
  };
33728
33731
  }
33729
- }), wj = /* @__PURE__ */ Be(kj, [["__scopeId", "data-v-9025e247"]]), Cj = ["data-testid"], Ej = { class: "group-icon-wrapper" }, Sj = { class: "group-title-text" }, xj = ["data-testid"], Ij = ["data-testid"], Aj = /* @__PURE__ */ Oe({
33732
+ }), wj = /* @__PURE__ */ Ve(kj, [["__scopeId", "data-v-9025e247"]]), Cj = ["data-testid"], Ej = { class: "group-icon-wrapper" }, Sj = { class: "group-title-text" }, xj = ["data-testid"], Ij = ["data-testid"], Aj = /* @__PURE__ */ Oe({
33730
33733
  __name: "PluginCatalogGroup",
33731
33734
  props: {
33732
33735
  config: {},
@@ -33787,7 +33790,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33787
33790
  customPluginType: p.value?.customPluginType
33788
33791
  })), d.value = !1, p.value = null;
33789
33792
  };
33790
- return (y, v) => (k(), Z(Ve, null, [
33793
+ return (y, v) => (k(), Z(Be, null, [
33791
33794
  e.name ? (k(), Z("div", {
33792
33795
  key: 0,
33793
33796
  class: "group-title",
@@ -33804,7 +33807,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33804
33807
  class: "plugin-card-container",
33805
33808
  "data-testid": `plugin-group-${e.name}`
33806
33809
  }, [
33807
- (k(!0), Z(Ve, null, tt(l.value, (h) => (k(), z(wj, {
33810
+ (k(!0), Z(Be, null, et(l.value, (h) => (k(), z(wj, {
33808
33811
  key: `plugin-card-${h.id}`,
33809
33812
  "can-delete-cloned-plugin": e.canDeleteClonedPlugin,
33810
33813
  "can-delete-custom-plugin": e.canDeleteCustomPlugin,
@@ -33841,7 +33844,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33841
33844
  }, null, 8, ["config", "plugin"])) : ge("", !0)
33842
33845
  ], 64));
33843
33846
  }
33844
- }), rp = /* @__PURE__ */ Be(Aj, [["__scopeId", "data-v-f9a9a47c"]]), Tj = { class: "plugin-select-grid" }, $j = { class: "empty-state-title" }, Oj = { class: "empty-state-description" }, Pj = { key: 1 }, Nj = /* @__PURE__ */ Oe({
33847
+ }), rp = /* @__PURE__ */ Ve(Aj, [["__scopeId", "data-v-f9a9a47c"]]), Tj = { class: "plugin-select-grid" }, $j = { class: "empty-state-title" }, Oj = { class: "empty-state-description" }, Pj = { key: 1 }, Nj = /* @__PURE__ */ Oe({
33845
33848
  __name: "PluginCatalogGrid",
33846
33849
  props: {
33847
33850
  config: {},
@@ -33874,7 +33877,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33874
33877
  ]),
33875
33878
  _: 1
33876
33879
  })),
33877
- (k(!0), Z(Ve, null, tt(s(n), (u) => (k(), Z(Ve, null, [
33880
+ (k(!0), Z(Be, null, et(s(n), (u) => (k(), Z(Be, null, [
33878
33881
  e.pluginList?.[u] ? (k(), Z("div", { key: u }, [
33879
33882
  _(rp, {
33880
33883
  "can-delete-cloned-plugin": e.canDeleteClonedPlugin,
@@ -33905,7 +33908,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33905
33908
  ]);
33906
33909
  };
33907
33910
  }
33908
- }), Rj = /* @__PURE__ */ Be(Nj, [["__scopeId", "data-v-e3bf3819"]]), Mj = {
33911
+ }), Rj = /* @__PURE__ */ Ve(Nj, [["__scopeId", "data-v-e3bf3819"]]), Mj = {
33909
33912
  class: "plugin-name-cell",
33910
33913
  "data-testid": "plugin-catalog-list-view-name"
33911
33914
  }, Lj = ["title"], Fj = ["title"], Kj = {
@@ -33979,7 +33982,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
33979
33982
  };
33980
33983
  return (A, T) => {
33981
33984
  const P = ke("KBadge"), F = ke("KButton"), K = ke("KDropdownItem"), Q = ke("KDropdown"), V = ke("KTableView"), ne = ke("KCard");
33982
- return k(), Z(Ve, null, [
33985
+ return k(), Z(Be, null, [
33983
33986
  _(ne, { "data-testid": "plugin-catalog-list-view-card" }, {
33984
33987
  default: I(() => [
33985
33988
  (k(), z(V, {
@@ -34111,7 +34114,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34111
34114
  ], 64);
34112
34115
  };
34113
34116
  }
34114
- }), qj = /* @__PURE__ */ Be(jj, [["__scopeId", "data-v-49cad2d2"]]), Uj = {
34117
+ }), qj = /* @__PURE__ */ Ve(jj, [["__scopeId", "data-v-49cad2d2"]]), Uj = {
34115
34118
  class: "plugin-catalog",
34116
34119
  "data-testid": "plugin-catalog"
34117
34120
  }, Bj = {
@@ -34358,7 +34361,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34358
34361
  ]),
34359
34362
  default: I(() => [
34360
34363
  j("div", Gj, [
34361
- (k(!0), Z(Ve, null, tt(s(Cl), (me) => (k(), Z("div", {
34364
+ (k(!0), Z(Be, null, et(s(Cl), (me) => (k(), Z("div", {
34362
34365
  key: me,
34363
34366
  class: "plugin-filter-item",
34364
34367
  "data-testid": `plugin-filter-item-${me}`
@@ -34388,7 +34391,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34388
34391
  ]),
34389
34392
  default: I(() => [
34390
34393
  j("div", Yj, [
34391
- (k(!0), Z(Ve, null, tt(s(El), (me) => (k(), Z("div", {
34394
+ (k(!0), Z(Be, null, et(s(El), (me) => (k(), Z("div", {
34392
34395
  key: me,
34393
34396
  class: "plugin-filter-item",
34394
34397
  "data-testid": `plugin-filter-item-${me}`
@@ -34496,7 +34499,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34496
34499
  ]);
34497
34500
  };
34498
34501
  }
34499
- }), p8 = /* @__PURE__ */ Be(nq, [["__scopeId", "data-v-6a96c788"]]), iq = {
34502
+ }), p8 = /* @__PURE__ */ Ve(nq, [["__scopeId", "data-v-6a96c788"]]), iq = {
34500
34503
  key: 1,
34501
34504
  class: "datakit-config-card-canvas"
34502
34505
  }, oq = {
@@ -34539,7 +34542,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34539
34542
  }, null, 8, ["item"]));
34540
34543
  };
34541
34544
  }
34542
- }), lq = /* @__PURE__ */ Be(sq, [["__scopeId", "data-v-9a3ef1ac"]]), cq = { class: "kong-ui-entity-plugin-config-card" }, uq = { class: "name-cell-wrapper" }, dq = { class: "info-name" }, pq = { key: 0 }, fq = { key: 0 }, mq = { key: 0 }, gq = { key: 0 }, hq = { key: 0 }, ol = "config", vq = /* @__PURE__ */ Oe({
34545
+ }), lq = /* @__PURE__ */ Ve(sq, [["__scopeId", "data-v-9a3ef1ac"]]), cq = { class: "kong-ui-entity-plugin-config-card" }, uq = { class: "name-cell-wrapper" }, dq = { class: "info-name" }, pq = { key: 0 }, fq = { key: 0 }, mq = { key: 0 }, gq = { key: 0 }, hq = { key: 0 }, ol = "config", vq = /* @__PURE__ */ Oe({
34543
34546
  __name: "PluginConfigCard",
34544
34547
  props: {
34545
34548
  /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
@@ -34627,7 +34630,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34627
34630
  order: 6
34628
34631
  },
34629
34632
  protocols: {
34630
- type: an.BadgeTag,
34633
+ type: on.BadgeTag,
34631
34634
  section: io.Basic,
34632
34635
  order: 7
34633
34636
  }
@@ -34711,7 +34714,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34711
34714
  item: {
34712
34715
  key: s(l)("rowValue", L).id,
34713
34716
  value: s(l)("rowValue", L).id,
34714
- type: s(an).LinkInternal
34717
+ type: s(on).LinkInternal
34715
34718
  },
34716
34719
  onNavigationClick: () => x.$emit("navigation-click", s(l)("rowValue", L).id, "consumer")
34717
34720
  }, null, 8, ["item", "onNavigationClick"])) : (k(), z($, {
@@ -34727,7 +34730,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34727
34730
  item: {
34728
34731
  key: s(l)("rowValue", L).id,
34729
34732
  value: s(l)("rowValue", L).id,
34730
- type: s(an).LinkInternal
34733
+ type: s(on).LinkInternal
34731
34734
  },
34732
34735
  onNavigationClick: () => x.$emit("navigation-click", s(l)("rowValue", L).id, "route")
34733
34736
  }, null, 8, ["item", "onNavigationClick"])) : (k(), z($, {
@@ -34743,7 +34746,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34743
34746
  item: {
34744
34747
  key: s(l)("rowValue", L).id,
34745
34748
  value: s(l)("rowValue", L).id,
34746
- type: s(an).LinkInternal
34749
+ type: s(on).LinkInternal
34747
34750
  },
34748
34751
  onNavigationClick: () => x.$emit("navigation-click", s(l)("rowValue", L).id, "service")
34749
34752
  }, null, 8, ["item", "onNavigationClick"])) : (k(), z($, {
@@ -34759,7 +34762,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34759
34762
  item: {
34760
34763
  key: s(l)("rowValue", L).id,
34761
34764
  value: s(l)("rowValue", L).id,
34762
- type: s(an).LinkInternal
34765
+ type: s(on).LinkInternal
34763
34766
  },
34764
34767
  onNavigationClick: () => x.$emit("navigation-click", s(l)("rowValue", L).id, "consumer_group")
34765
34768
  }, null, 8, ["item", "onNavigationClick"])) : (k(), z($, {
@@ -34775,7 +34778,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34775
34778
  item: {
34776
34779
  key: s(l)("rowValue", L)?.[0]?.id,
34777
34780
  value: s(l)("rowValue", L)?.[0]?.id + (s(l)("rowValue", L)?.[0]?.name ? "/" + s(l)("rowValue", L)?.[0]?.name : ""),
34778
- type: s(an).LinkInternal
34781
+ type: s(on).LinkInternal
34779
34782
  },
34780
34783
  onNavigationClick: () => x.$emit("navigation-click", s(l)("rowValue", L)?.[0]?.id, "partial")
34781
34784
  }, null, 8, ["item", "onNavigationClick"])) : (k(), z($, {
@@ -34801,7 +34804,7 @@ const tD = { class: "kong-ui-entities-plugin-form" }, nD = {
34801
34804
  ]);
34802
34805
  };
34803
34806
  }
34804
- }), f8 = /* @__PURE__ */ Be(vq, [["__scopeId", "data-v-03dcf2b4"]]), { usePluginMetaData: m8, useProvideExperimentalFreeForms: g8 } = ut;
34807
+ }), f8 = /* @__PURE__ */ Ve(vq, [["__scopeId", "data-v-03dcf2b4"]]), { usePluginMetaData: m8, useProvideExperimentalFreeForms: g8 } = ut;
34805
34808
  export {
34806
34809
  vt as ArrayField,
34807
34810
  un as BooleanField,
@@ -34817,11 +34820,11 @@ export {
34817
34820
  xl as FIELD_RENDERER_SLOTS,
34818
34821
  od as FIELD_RESET_LABEL_PATH_SETTING,
34819
34822
  Yo as FREE_FORM_SCHEMA_MAP_KEY,
34820
- et as Field,
34823
+ Qe as Field,
34821
34824
  kt as FieldRenderer,
34822
34825
  Vu as FlowCanvas,
34823
34826
  sI as ForeignField,
34824
- nn as Form,
34827
+ tn as Form,
34825
34828
  oI as JsonField,
34826
34829
  In as MapField,
34827
34830
  Jf as NodeBadge,
@@ -34843,7 +34846,7 @@ export {
34843
34846
  Hg as PluginSelectCard,
34844
34847
  ap as PluginSelectGrid,
34845
34848
  Ma as StringArrayField,
34846
- Qe as StringField,
34849
+ tt as StringField,
34847
34850
  hx as SwitchField,
34848
34851
  j1 as TOASTER_PROVIDER,
34849
34852
  YS as buildAncestor,