From 3a72d96bd4a85cb82a0e09f6a05337bc3065ab22 Mon Sep 17 00:00:00 2001
From: Bharat Pasupula <123897612+bhapas@users.noreply.github.com>
Date: Thu, 19 Dec 2024 23:22:20 +0100
Subject: [PATCH] [Automatic Import] Fix UI validation for Integration and
Datastream name (#204943)
## Release Note
Fixes Integration and Datastream name validation
## Summary
https://github.com/elastic/kibana/pull/204409 implemented backend
validation for integration and datastream names and this PR fixes
allowing numbers on backend
Closes https://github.com/elastic/kibana/issues/204935
### Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
(cherry picked from commit b746c39ca04446301747c17cd845b1582db05396)
---
.../server/integration_builder/build_integration.test.ts | 6 ------
.../server/integration_builder/build_integration.ts | 6 +++---
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.test.ts b/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.test.ts
index 67cc73e4e2507..ead354ab8e288 100644
--- a/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.test.ts
+++ b/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.test.ts
@@ -292,12 +292,6 @@ describe('isValidName', () => {
expect(isValidName('anotherValidName')).toBe(true);
});
- it('should return false for names with numbers', () => {
- expect(isValidName('invalid123')).toBe(false);
- expect(isValidName('123invalid')).toBe(false);
- expect(isValidName('invalid_123')).toBe(false);
- });
-
it('should return false for empty string', () => {
expect(isValidName('')).toBe(false);
});
diff --git a/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.ts b/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.ts
index 423268f3b5b90..f98020a4699ae 100644
--- a/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.ts
+++ b/x-pack/platform/plugins/shared/integration_assistant/server/integration_builder/build_integration.ts
@@ -36,7 +36,7 @@ export async function buildPackage(integration: Integration): Promise {
if (!isValidName(integration.name)) {
throw new Error(
- `Invalid integration name: ${integration.name}, Should only contain letters and underscores`
+ `Invalid integration name: ${integration.name}, Should only contain letters, numbers and underscores`
);
}
@@ -49,7 +49,7 @@ export async function buildPackage(integration: Integration): Promise {
const dataStreamName = dataStream.name;
if (!isValidName(dataStreamName)) {
throw new Error(
- `Invalid datastream name: ${dataStreamName}, Should only contain letters and underscores`
+ `Invalid datastream name: ${dataStreamName}, Should only contain letters, numbers and underscores`
);
}
const specificDataStreamDir = joinPath(dataStreamsDir, dataStreamName);
@@ -77,7 +77,7 @@ export async function buildPackage(integration: Integration): Promise {
return zipBuffer;
}
export function isValidName(input: string): boolean {
- const regex = /^[a-zA-Z_]+$/;
+ const regex = /^[a-zA-Z0-9_]+$/;
return input.length > 0 && regex.test(input);
}
function createDirectories(