From 562c3e044c8a0d2cfc4e9029d37b9b73a0d4cc92 Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Mon, 23 Oct 2023 17:13:19 -0700 Subject: [PATCH] Fix integration labeling to identify S3 integrations (#1157) * Switch from toast to callout for set up failures Signed-off-by: Simeon Widdis * Fix label selection for truncated labels Signed-off-by: Simeon Widdis * Fix button color Signed-off-by: Simeon Widdis * Fix tests Signed-off-by: Simeon Widdis * Remove loading progress bar Signed-off-by: Simeon Widdis * Remove unused imports Signed-off-by: Simeon Widdis * Refactor labels to make distinctions more semantically useful Signed-off-by: Simeon Widdis --------- Signed-off-by: Simeon Widdis --- .../available_integration_overview_page.tsx | 20 +++++-------------- .../repository/apache/apache-1.0.0.json | 2 +- .../aws_cloudfront/aws_cloudfront-1.0.0.json | 2 +- .../aws_cloudtrail/aws_cloudtrail-1.0.0.json | 2 +- .../repository/aws_elb/aws_elb-1.0.0.json | 2 +- .../repository/aws_rds/aws_rds-1.0.0.json | 2 +- .../repository/aws_s3/aws_s3-1.0.0.json | 2 +- .../aws_vpc_flow/aws_vpc_flow-1.0.0.json | 2 +- .../repository/aws_waf/aws_waf-1.0.0.json | 2 +- .../__data__/repository/k8s/k8s-1.0.0.json | 2 +- .../repository/nginx/nginx-1.0.0.json | 2 +- server/adaptors/integrations/validators.ts | 1 + 12 files changed, 16 insertions(+), 25 deletions(-) diff --git a/public/components/integrations/components/available_integration_overview_page.tsx b/public/components/integrations/components/available_integration_overview_page.tsx index cd9a8300b5..9fc1ec9ea6 100644 --- a/public/components/integrations/components/available_integration_overview_page.tsx +++ b/public/components/integrations/components/available_integration_overview_page.tsx @@ -117,7 +117,9 @@ export function AvailableIntegrationOverviewPage(props: AvailableIntegrationOver http.get(`${INTEGRATIONS_BASE}/repository`).then((exists) => { setData(exists.data); - let newItems = exists.data.hits.flatMap((hit: { labels?: string[] }) => hit.labels ?? []); + let newItems = exists.data.hits.flatMap( + (hit: { labels?: string[] }) => hit.labels?.sort() ?? [] + ); newItems = [...new Set(newItems)].sort().map((newItem) => { return { name: newItem, @@ -182,13 +184,7 @@ export function AvailableIntegrationOverviewPage(props: AvailableIntegrationOver {isCardView ? AvailableIntegrationsCardView({ data: { - hits: data.hits.filter((hit) => - helper.every((compon) => - hit.components - .map((x) => x.name.split('_').findLast(() => true)) - .includes(compon) - ) - ), + hits: data.hits.filter((hit) => helper.every((tag) => hit.labels?.includes(tag))), }, isCardView, setCardView, @@ -200,13 +196,7 @@ export function AvailableIntegrationOverviewPage(props: AvailableIntegrationOver : AvailableIntegrationsTable({ loading: false, data: { - hits: data.hits.filter((hit) => - helper.every((compon) => - hit.components - .map((x) => x.name.split('_').findLast(() => true)) - .includes(compon) - ) - ), + hits: data.hits.filter((hit) => helper.every((tag) => hit.labels?.includes(tag))), }, isCardView, setCardView, diff --git a/server/adaptors/integrations/__data__/repository/apache/apache-1.0.0.json b/server/adaptors/integrations/__data__/repository/apache/apache-1.0.0.json index 80cbfc9061..99fb24a16d 100644 --- a/server/adaptors/integrations/__data__/repository/apache/apache-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/apache/apache-1.0.0.json @@ -5,7 +5,7 @@ "description": "Apache web logs collector", "license": "Apache-2.0", "type": "logs_apache", - "labels": ["log", "communication", "http"], + "labels": ["Observability", "Logs"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/apache/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/aws_cloudfront/aws_cloudfront-1.0.0.json b/server/adaptors/integrations/__data__/repository/aws_cloudfront/aws_cloudfront-1.0.0.json index 5a1c526e55..2f4d806b2a 100644 --- a/server/adaptors/integrations/__data__/repository/aws_cloudfront/aws_cloudfront-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/aws_cloudfront/aws_cloudfront-1.0.0.json @@ -5,7 +5,7 @@ "description": "AWS cloudfront Object Store", "license": "Apache-2.0", "type": "logs-aws_cloudfront", - "labels": ["log", "aws", "s3", "cloud", "cloudfront"], + "labels": ["Observability", "Logs", "AWS", "Cloud"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/aws_cloudfront/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/aws_cloudtrail/aws_cloudtrail-1.0.0.json b/server/adaptors/integrations/__data__/repository/aws_cloudtrail/aws_cloudtrail-1.0.0.json index 3964ae11c9..818b6e8a94 100644 --- a/server/adaptors/integrations/__data__/repository/aws_cloudtrail/aws_cloudtrail-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/aws_cloudtrail/aws_cloudtrail-1.0.0.json @@ -5,7 +5,7 @@ "description": "AWS CloudTrail log collector", "license": "Apache-2.0", "type": "logs-aws_cloudtrail", - "labels": ["log", "aws", "s3", "cloud", "cloudtrail"], + "labels": ["Observability", "Logs", "AWS", "Flint S3", "Cloud"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/aws_cloudtrail/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/aws_elb/aws_elb-1.0.0.json b/server/adaptors/integrations/__data__/repository/aws_elb/aws_elb-1.0.0.json index 3a8a58d291..a91ee5bc9b 100644 --- a/server/adaptors/integrations/__data__/repository/aws_elb/aws_elb-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/aws_elb/aws_elb-1.0.0.json @@ -5,7 +5,7 @@ "description": "AWS Elastic Load Balancer collector", "license": "Apache-2.0", "type": "logs_elb", - "labels": ["log", "aws", "communication", "http", "cloud", "elb", "url"], + "labels": ["Observability", "Logs", "AWS", "Flint S3", "Cloud"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/aws_elb/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/aws_rds/aws_rds-1.0.0.json b/server/adaptors/integrations/__data__/repository/aws_rds/aws_rds-1.0.0.json index c34f2697ba..ca46d616ca 100644 --- a/server/adaptors/integrations/__data__/repository/aws_rds/aws_rds-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/aws_rds/aws_rds-1.0.0.json @@ -5,7 +5,7 @@ "description": "AWS RDS", "license": "Apache-2.0", "type": "logs_rds", - "labels": ["log", "aws", "s3", "cloud", "rds"], + "labels": ["Observability", "Logs", "AWS", "Cloud"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/aws_rds/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/aws_s3/aws_s3-1.0.0.json b/server/adaptors/integrations/__data__/repository/aws_s3/aws_s3-1.0.0.json index 60a1b011d6..c519e57b76 100644 --- a/server/adaptors/integrations/__data__/repository/aws_s3/aws_s3-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/aws_s3/aws_s3-1.0.0.json @@ -5,7 +5,7 @@ "description": "AWS S3 Object Store", "license": "Apache-2.0", "type": "logs_s3", - "labels": ["log", "aws", "s3", "cloud"], + "labels": ["Observability", "Logs", "AWS", "Cloud"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/aws_s3/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/aws_vpc_flow/aws_vpc_flow-1.0.0.json b/server/adaptors/integrations/__data__/repository/aws_vpc_flow/aws_vpc_flow-1.0.0.json index deee7d3626..24110600ae 100644 --- a/server/adaptors/integrations/__data__/repository/aws_vpc_flow/aws_vpc_flow-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/aws_vpc_flow/aws_vpc_flow-1.0.0.json @@ -5,7 +5,7 @@ "description": "AWS VPC Flow log collector", "license": "Apache-2.0", "type": "logs_vpc", - "labels": ["log", "aws", "s3", "cloud", "communication", "vpc"], + "labels": ["Observability", "Logs", "AWS", "Flint S3", "Cloud"], "author": "Haidong Wang", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/aws_vpc_flow/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/aws_waf/aws_waf-1.0.0.json b/server/adaptors/integrations/__data__/repository/aws_waf/aws_waf-1.0.0.json index 1b1171eb9e..2075aecf66 100644 --- a/server/adaptors/integrations/__data__/repository/aws_waf/aws_waf-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/aws_waf/aws_waf-1.0.0.json @@ -5,7 +5,7 @@ "description": "AWS waf log collector", "license": "Apache-2.0", "type": "logs_waf", - "labels": ["log", "aws", "s3", "cloud", "waf"], + "labels": ["Observability", "Logs", "AWS", "Cloud"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/aws_waf/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/k8s/k8s-1.0.0.json b/server/adaptors/integrations/__data__/repository/k8s/k8s-1.0.0.json index 7454b25a9a..d359ffe8ee 100644 --- a/server/adaptors/integrations/__data__/repository/k8s/k8s-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/k8s/k8s-1.0.0.json @@ -5,7 +5,7 @@ "description": "Kubernetes web logs collector", "license": "Apache-2.0", "type": "logs-k8s", - "labels": ["log", "k8s", "cloud", "container"], + "labels": ["Observability", "Logs", "Cloud"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/k8s/info", "statics": { diff --git a/server/adaptors/integrations/__data__/repository/nginx/nginx-1.0.0.json b/server/adaptors/integrations/__data__/repository/nginx/nginx-1.0.0.json index daca06aa87..1b87c497a5 100644 --- a/server/adaptors/integrations/__data__/repository/nginx/nginx-1.0.0.json +++ b/server/adaptors/integrations/__data__/repository/nginx/nginx-1.0.0.json @@ -5,7 +5,7 @@ "description": "Nginx HTTP server collector", "license": "Apache-2.0", "type": "logs", - "labels": ["log", "http", "communication"], + "labels": ["Observability", "Logs", "Flint S3"], "author": "OpenSearch", "sourceUrl": "https://github.com/opensearch-project/dashboards-observability/tree/main/server/adaptors/integrations/__data__/repository/nginx/info", "statics": { diff --git a/server/adaptors/integrations/validators.ts b/server/adaptors/integrations/validators.ts index 2a4a717a90..5aa65cf815 100644 --- a/server/adaptors/integrations/validators.ts +++ b/server/adaptors/integrations/validators.ts @@ -26,6 +26,7 @@ const templateSchema: JSONSchemaType = { license: { type: 'string' }, type: { type: 'string' }, labels: { type: 'array', items: { type: 'string' }, nullable: true }, + tags: { type: 'array', items: { type: 'string' }, nullable: true }, author: { type: 'string', nullable: true }, description: { type: 'string', nullable: true }, sourceUrl: { type: 'string', nullable: true },