Conversation
…EADME for plugin registration
There was a problem hiding this comment.
Pull request overview
This PR introduces a new per-plugin “free-form plugin config” system that replaces the previous hardcoded free-form mapping + metadata-based render rules, allowing plugins to declare their free-form component, render rules, and field renderer overrides via auto-discovered config modules.
Changes:
- Added a plugin config registry (
free-form/shared/plugin-registry) that eagerly auto-discoversfree-form/plugins/*.tsandfree-form/plugins/*/index.ts. - Migrated free-form selection/render rules/field renderer overrides from
src/utils/free-form.tsandPLUGIN_METADATA.*.freeformRenderRulesinto per-plugin config modules. - Expanded/rewired free-form plugin implementations (notably Datakit) and adjusted shared layout to consume config-driven field renderers; added Vitest setup polyfill.
Reviewed changes
Copilot reviewed 138 out of 194 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/entities/entities-plugins/vite.config.ts | Adds Vitest setupFiles for JSDOM/polyfills. |
| packages/entities/entities-plugins/test/setup.ts | Adds Monaco/JSDOM polyfill for document.queryCommandSupported. |
| packages/entities/entities-plugins/src/utils/free-form.ts | Removes legacy free-form mapping/selection utilities (replaced by registry). |
| packages/entities/entities-plugins/src/types/plugin.ts | Removes freeformRenderRules from plugin metadata type. |
| packages/entities/entities-plugins/src/definitions/metadata.ts | Removes per-plugin free-form render rules from PLUGIN_METADATA. |
| packages/entities/entities-plugins/src/composables/useSchemas.ts | Switches free-form detection to registry-based shouldUseFreeForm. |
| packages/entities/entities-plugins/src/composables/useExperimentalFreeForms.ts | Updates experimental allowlist handling and resolver to use registry APIs. |
| packages/entities/entities-plugins/src/components/PluginEntityForm.vue | Resolves free-form component + render rules + field renderers via registry config. |
| packages/entities/entities-plugins/src/components/PluginConfigCard.vue | Updates Datakit config card canvas import path after Datakit refactor. |
| packages/entities/entities-plugins/src/components/free-form/UpstreamOauth/UpstreamOauthForm.vue | Removes legacy upstream-oauth free-form component (now config-driven). |
| packages/entities/entities-plugins/src/components/free-form/UpstreamOauth/index.ts | Removes legacy barrel export for upstream-oauth component. |
| packages/entities/entities-plugins/src/components/free-form/SolaceConsume/SolaceConsumeForm.vue | Removes legacy solace-consume free-form component (now config-driven). |
| packages/entities/entities-plugins/src/components/free-form/SolaceConsume/index.ts | Removes legacy barrel export for solace-consume component. |
| packages/entities/entities-plugins/src/components/free-form/shared/utils.ts | Adds normalizeMatch helper for string vs predicate renderer matching. |
| packages/entities/entities-plugins/src/components/free-form/shared/utils.spec.ts | Adds unit tests for normalizeMatch. |
| packages/entities/entities-plugins/src/components/free-form/shared/types.ts | Adds genericPath to match input; introduces FieldRenderer + PluginFormConfig types. |
| packages/entities/entities-plugins/src/components/free-form/shared/SwitchField.vue | Refactors i18n usage to import useI18n directly. |
| packages/entities/entities-plugins/src/components/free-form/shared/ScopeEntityField.vue | Refactors i18n usage to import useI18n directly. |
| packages/entities/entities-plugins/src/components/free-form/shared/RedisConfigCard.vue | Updates request-callout types import path after plugin relocation. |
| packages/entities/entities-plugins/src/components/free-form/shared/plugin-registry.ts | New: auto-discovered per-plugin registry + selection helpers. |
| packages/entities/entities-plugins/src/components/free-form/shared/plugin-registry.spec.ts | New: unit tests for name derivation and duplicate registry entries. |
| packages/entities/entities-plugins/src/components/free-form/shared/layout/StandardLayout.vue | Adds support for config-driven fieldRenderers and normalizes match. |
| packages/entities/entities-plugins/src/components/free-form/shared/EntityChecksAlert.vue | Refactors i18n usage to import useI18n directly. |
| packages/entities/entities-plugins/src/components/free-form/shared/define-plugin-config.ts | New: definePluginConfig helper defaulting to CommonForm. |
| packages/entities/entities-plugins/src/components/free-form/shared/composables/field-path.ts | Extends matcher inputs to include genericPath. |
| packages/entities/entities-plugins/src/components/free-form/ServiceProtection/index.ts | Removes legacy barrel export for service-protection component. |
| packages/entities/entities-plugins/src/components/free-form/ResponseTransformer/ResponseTransformerForm.vue | Removes legacy response-transformer component (now config-driven). |
| packages/entities/entities-plugins/src/components/free-form/ResponseTransformer/ResponseTransformerForm.cy.ts | Removes legacy Cypress test for response-transformer component. |
| packages/entities/entities-plugins/src/components/free-form/ResponseTransformer/index.ts | Removes legacy barrel export for response-transformer component. |
| packages/entities/entities-plugins/src/components/free-form/RequestCallout/index.ts | Removes legacy barrel export for request-callout component. |
| packages/entities/entities-plugins/src/components/free-form/README.md | Updates documentation to describe new plugin config registry approach. |
| packages/entities/entities-plugins/src/components/free-form/plugins/upstream-oauth.ts | New: upstream-oauth plugin config (render rules + field renderer overrides). |
| packages/entities/entities-plugins/src/components/free-form/plugins/solace-consume.ts | New: solace-consume plugin config (field renderer overrides). |
| packages/entities/entities-plugins/src/components/free-form/plugins/service-protection/ServiceProtectionForm.vue | Updates imports for relocated service-protection plugin implementation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/service-protection/RequestLimitsForm.vue | Updates imports/locale paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/service-protection/RedisField.vue | Updates imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/service-protection/index.ts | New: service-protection plugin config entrypoint. |
| packages/entities/entities-plugins/src/components/free-form/plugins/service-protection/ErrorMessageForm.vue | Updates imports/locale paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/service-protection/ConfigForm.vue | Updates imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/route-transformer-advanced.ts | New: route-transformer-advanced plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/response-transformer.ts | New: response-transformer plugin config (multiline overrides). |
| packages/entities/entities-plugins/src/components/free-form/plugins/response-transformer-advanced.ts | New: response-transformer-advanced plugin config (multiline overrides). |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-transformer.ts | New: request-transformer plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-transformer-advanced.ts | New: request-transformer-advanced plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-callout/utils.ts | New: request-callout helper for stable IDs. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-callout/types.ts | Updates types import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-callout/RequestCalloutForm.vue | Updates imports after relocation into plugins/. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-callout/index.ts | New: request-callout plugin config entrypoint. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-callout/ConfigForm.vue | Updates imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-callout/CalloutsForm.vue | Updates imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/request-callout/CalloutForm.vue | Updates imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/README.md | New: documentation for adding plugin configs under plugins/. |
| packages/entities/entities-plugins/src/components/free-form/plugins/rate-limiting.ts | New: rate-limiting plugin config with render rules. |
| packages/entities/entities-plugins/src/components/free-form/plugins/proxy-cache.ts | New: proxy-cache plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/proxy-cache-advanced.ts | New: proxy-cache-advanced plugin config with render rules. |
| packages/entities/entities-plugins/src/components/free-form/plugins/prometheus.ts | New: prometheus plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/opentelemetry.ts | New: opentelemetry plugin config (KeyValueField override). |
| packages/entities/entities-plugins/src/components/free-form/plugins/key-auth/KeyAuthForm.vue | Updates imports after relocation into plugins/. |
| packages/entities/entities-plugins/src/components/free-form/plugins/key-auth/index.ts | New: key-auth plugin config entrypoint. |
| packages/entities/entities-plugins/src/components/free-form/plugins/jwt.ts | New: jwt plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/jwt-signer.ts | New: jwt-signer plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/http-log.ts | New: http-log plugin config (KeyValueField override). |
| packages/entities/entities-plugins/src/components/free-form/plugins/file-log.ts | New: file-log plugin config (KeyValueField override). |
| packages/entities/entities-plugins/src/components/free-form/plugins/exit-transformer.ts | New: exit-transformer plugin config (multiline per-item override). |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/types.ts | Updates types import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/schema/shared.ts | New: shared schema/validation helpers for Datakit config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/schema/compat.ts | New: loose compatibility schema for Datakit imports/validation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/index.ts | New: datakit plugin config entrypoint. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/VaultSecretPicker.vue | Updates composables import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/utils.ts | New: platform detection + hotkey label formatting helpers. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/store/validation.ts | New: reactive graph/edge validation for Datakit flow editor. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/store/history.ts | New: tagged undo/redo wrapper around VueUse history. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/store/helpers.ts | New: editor store helpers (IDs, parsing, meta lookups, etc.). |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/store/graph.ts | New: adjacency + cycle detection helpers. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/store/flow.ts | Updates composables import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/side-panel/VaultField.vue | Updates shared/composables import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/side-panel/SidePanel.vue | Updates locale import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/side-panel/ResourcesPanel.vue | Updates shared Form import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/side-panel/NodePanel.vue | Updates locale/constants import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/side-panel/index.ts | New: side-panel default export wrapper. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/side-panel/CacheField.vue | Updates shared/composables import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/vault.ts | New: vault-node config conversion helpers. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/static.ts | New: static node JSON conversion helpers. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/schemas.ts | Updates form-schema import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/property.ts | New: supported property catalog + key parsing helpers. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/NodePropertiesPanel.vue | Updates locale import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/NodePortal.vue | New: UI for portal edges/targets selection. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/NodePanelItem.vue | New: draggable node palette item. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/NodeBadge.vue | New: node type badge with optional custom colors/icons. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/node.ts | Updates locale import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/node-visual.ts | New: node icons/colors catalog. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/icons/JwtVerifyIcon.vue | New: JWT verify icon. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/icons/JwtDecodeIcon.vue | New: JWT decode icon. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/HandleTwig.vue | New: handle decoration component. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/GroupNode.vue | New: group node shell for branch groups. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node/FlowNode.vue | Updates locale import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/SourceItem.vue | New: render source option items with node visuals. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/PropertiesField.vue | Updates import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/OutputValueField.vue | Updates import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormXmlToJson.vue | Updates shared/i18n imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormStatic.vue | Updates shared Form import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormServiceRequest.vue | Updates shared Form import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormResponse.vue | Updates shared Form import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormProperty.vue | Updates shared imports; integrates new validation composable. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormJwtVerify.vue | Updates shared/i18n imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormJwtSign.vue | Updates shared/i18n imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormJwtDecode.vue | Updates shared Form import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormJsonToXml.vue | Updates shared/i18n imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormJq.vue | Updates shared/i18n/externalLinks imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormExit.vue | Updates shared field imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormDivider.vue | New: small divider component for node forms. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormCall.vue | Updates shared field imports after relocation; adds validation hooks. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormCache.vue | Updates shared field imports after relocation; adds validation hooks. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NodeFormBranch.vue | Updates shared field imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/NameField.vue | Updates i18n import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/InputsRecordField.vue | Updates shared/i18n imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/InputsMapField.vue | Updates shared/i18n imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/InputsField.vue | Updates shared/i18n imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/node-forms/HttpMethodField.vue | Updates shared imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/modal/EditorNav.vue | Updates locale import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/modal/EditorModal.vue | New: modal wrapper for Datakit editor (scroll lock + navigation). |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/modal/EditorMain.vue | Updates locale/shared-field import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/modal/EditorContent.vue | New: main editor composition (side panel + canvas + properties panel). |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/modal/ConflictModal.vue | Updates i18n import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/HotkeyLabel.vue | New: UI component for hotkey display. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/FlowPanels.vue | Updates locale import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/FlowEditor.vue | Updates locale/shared import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/FlowCanvas.vue | Updates i18n import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/constants.ts | New: Datakit flow-editor constants and hotkey specs. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/validation/useFormValidation.ts | New: consolidated field validation composable for node forms. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/validation/manager.ts | New: validation manager for multiple fields. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/validation/index.ts | New: validation barrel exports. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/validation/business.ts | Updates i18n import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/validation/basic.ts | Updates i18n import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useVaultForm.ts | New: composable to manage vault resources node form. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useResourcesSchema.ts | Updates shared/form-schema import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useNodePortals.ts | New: composable for portal selection + delete behavior. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useNodeForm.ts | Updates shared/i18n/form-schema imports after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useHotkeys.ts | New: shared hotkey bus for editor actions. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useConflictConfirm.ts | New: provide/inject helper for conflict confirmation modal. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useBranchNodeForm.ts | Updates i18n/toaster import paths after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/useBranchDrop.ts | New: branch group drag/drop detection. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/flow-editor/composables/helpers.ts | New: connection formatting + bounding-rect helper. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/manipulate-request-headers.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/index.ts | New: example loader via import.meta.glob. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/convert-xml-into-json.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/convert-json-to-xml-and-back.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/convert-json-into-xml.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/conditionally-store-cached-items.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/combine-two-apis-into-one-response.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/clear-headers.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/authenticate-with-vault-secret.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/authenticate-third-party.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/examples/authenticate-third-party-with-dynamic-url.yaml | New: Datakit example YAML. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/DatakitForm.vue | Updates imports and paths for relocated Datakit form. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/DatakitConfigCardCanvas.vue | New: config card canvas view for Datakit plugin. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/constants.ts | New: Datakit node types/constants. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/config-extractors.ts | New: import/extract Datakit config from decK/KIC/cURL snippets. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/composables.ts | Updates locale import path; exports editor store helpers. |
| packages/entities/entities-plugins/src/components/free-form/plugins/datakit/CodeEditor.vue | Updates imports after relocation; integrates examples + extractors. |
| packages/entities/entities-plugins/src/components/free-form/plugins/cors.ts | New: cors plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/correlation-id.ts | New: correlation-id plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/basic-auth.ts | New: basic-auth plugin config with render rules. |
| packages/entities/entities-plugins/src/components/free-form/plugins/aws-lambda.ts | New: aws-lambda plugin config. |
| packages/entities/entities-plugins/src/components/free-form/plugins/ai-mcp-proxy/utils.ts | New: helper utils for AI MCP proxy form transformations. |
| packages/entities/entities-plugins/src/components/free-form/plugins/ai-mcp-proxy/types.ts | Updates types import path after relocation. |
| packages/entities/entities-plugins/src/components/free-form/plugins/ai-mcp-proxy/index.ts | New: ai-mcp-proxy plugin config entrypoint. |
| packages/entities/entities-plugins/src/components/free-form/plugins/ai-mcp-proxy/AIMcpProxyForm.vue | Updates imports after relocation into plugins/. |
| packages/entities/entities-plugins/src/components/free-form/plugins/ai-custom-guardrail.ts | New: ai-custom-guardrail plugin config (KeyValueField override). |
| packages/entities/entities-plugins/src/components/free-form/plugins/acl/index.ts | New: acl plugin config entrypoint. |
| packages/entities/entities-plugins/src/components/free-form/plugins/acl/ACLModeCard.vue | Updates imports after relocation into plugins/. |
| packages/entities/entities-plugins/src/components/free-form/plugins/acl/ACLForm.vue | Updates imports after relocation into plugins/. |
| packages/entities/entities-plugins/src/components/free-form/Opentelemetry/OpentelemetryForm.vue | Removes legacy opentelemetry free-form component (now config-driven). |
| packages/entities/entities-plugins/src/components/free-form/Opentelemetry/index.ts | Removes legacy barrel export for opentelemetry component. |
| packages/entities/entities-plugins/src/components/free-form/KeyAuth/index.ts | Removes legacy barrel export for key-auth component. |
| packages/entities/entities-plugins/src/components/free-form/index.ts | Removes legacy barrel export of free-form components (registry replaces it). |
| packages/entities/entities-plugins/src/components/free-form/ExitTransformer/index.ts | Removes legacy barrel export for exit-transformer component. |
| packages/entities/entities-plugins/src/components/free-form/ExitTransformer/ExitTransformerForm.vue | Removes legacy exit-transformer free-form component (now config-driven). |
| packages/entities/entities-plugins/src/components/free-form/Datakit/index.ts | Removes legacy barrel export for datakit component. |
| packages/entities/entities-plugins/src/components/free-form/Common/LogForm.vue | Removes legacy log form component (now config-driven overrides). |
| packages/entities/entities-plugins/src/components/free-form/Common/LogForm.cy.ts | Removes legacy Cypress test for LogForm. |
| packages/entities/entities-plugins/src/components/free-form/Common/CommonForm.vue | Refactors to use useI18n directly; supports config-driven field renderers. |
| packages/entities/entities-plugins/src/components/free-form/Common/CommonForm.cy.ts | Adds Cypress tests for config-driven field renderers. |
| packages/entities/entities-plugins/src/components/free-form/AIMcpProxy/index.ts | Removes legacy barrel export for AIMcpProxy component. |
| packages/entities/entities-plugins/src/components/free-form/AICustomGuardrail/index.ts | Removes legacy barrel export for AICustomGuardrail component. |
| packages/entities/entities-plugins/src/components/free-form/AICustomGuardrail/AICustomGuardrailForm.vue | Removes legacy AICustomGuardrail component (now config-driven overrides). |
| packages/entities/entities-plugins/src/components/free-form/ACL/index.ts | Removes legacy barrel export for ACL component. |
| packages/entities/entities-plugins/sandbox/pages/PluginFormPage.vue | Adds request-transformer to the sandbox experimental free-form allowlist. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/entities/entities-plugins/src/components/free-form/plugins/solace-consume.ts
Show resolved
Hide resolved
packages/entities/entities-plugins/src/components/free-form/plugins/upstream-oauth.ts
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 139 out of 195 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/entities/entities-plugins/src/components/free-form/shared/composables/field-path.ts
Outdated
Show resolved
Hide resolved
Preview components from this PR in consuming applicationIn consuming application project install preview versions of shared packages generated by this PR: |
| match: ({ path, genericPath }) => ( | ||
| path === 'config.replace.body' || | ||
| genericPath === 'config.transform.functions.*' || | ||
| /\.json\.\d+$/.test(path) |
There was a problem hiding this comment.
non-blocking nit:
| /\.json\.\d+$/.test(path) | |
| genericPath.endsWith('.json.*') |
I can include this update in the next plugin migration PR
| path === 'config.replace.body' || | ||
| genericPath === 'config.transform.functions.*' || | ||
| /\.json\.\d+$/.test(path) |
There was a problem hiding this comment.
nit: The first two rules only applied for response-transformer-advanced
| path === 'config.replace.body' || | |
| genericPath === 'config.transform.functions.*' || | |
| /\.json\.\d+$/.test(path) | |
| genericPath.endsWith('.json.*') |
I can include this update in the next plugin migration PR
|
|
||
| export function normalizeMatch(match: FieldRenderer['match']): Match { | ||
| return typeof match === 'string' | ||
| ? ({ path }) => path === match |
There was a problem hiding this comment.
would it be better to support genericPath instead?
| * Form-level custom component. | ||
| * @default CommonForm | ||
| */ | ||
| component?: Component |
There was a problem hiding this comment.
nit: It seems that component won't be undefined in the returned config:
export function definePluginConfig(config: Partial<PluginFormConfig> = {}): PluginFormConfig {
return {
...config,
component: config.component ?? CommonForm, // always have a fallback
}
}
Summary
KM-2475
https://konghq.atlassian.net/wiki/spaces/TKM/pages/5410226215/Freeform+Plugin+Per-Plugin+Config
GM: https://github.com/kong-konnect/konnect-ui-apps/pull/10875
KM: https://github.com/Kong/kong-admin/pull/4318