mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-16 10:08:08 +00:00
Minor: Fix ingestion pipeline name search not working for observability alert (#15057)
* add ingestion pipeline search index in UI * Add Ingestion Pipeline index * Update date in case of running * Use timestamp * add cypress test case for ingestion pipeline trigger --------- Co-authored-by: mohitdeuex <mohit.y@deuexsolutions.com>
This commit is contained in:
parent
1da66e79ea
commit
b8713690f0
@ -57,6 +57,7 @@ public class SearchIndexApp extends AbstractNativeApplication {
|
|||||||
"dashboard",
|
"dashboard",
|
||||||
"topic",
|
"topic",
|
||||||
"pipeline",
|
"pipeline",
|
||||||
|
"ingestionPipeline",
|
||||||
"searchIndex",
|
"searchIndex",
|
||||||
"user",
|
"user",
|
||||||
"team",
|
"team",
|
||||||
|
|||||||
@ -350,7 +350,7 @@ public class AlertsRuleEvaluator {
|
|||||||
for (FieldChange fieldChange : changeEvent.getChangeDescription().getFieldsUpdated()) {
|
for (FieldChange fieldChange : changeEvent.getChangeDescription().getFieldsUpdated()) {
|
||||||
if (fieldChange.getName().equals("pipelineStatus") && fieldChange.getNewValue() != null) {
|
if (fieldChange.getName().equals("pipelineStatus") && fieldChange.getNewValue() != null) {
|
||||||
PipelineStatus pipelineStatus =
|
PipelineStatus pipelineStatus =
|
||||||
JsonUtils.convertValue(fieldChange.getNewValue(), PipelineStatus.class);
|
JsonUtils.readOrConvertValue(fieldChange.getNewValue(), PipelineStatus.class);
|
||||||
PipelineStatusType status = pipelineStatus.getPipelineState();
|
PipelineStatusType status = pipelineStatus.getPipelineState();
|
||||||
for (String givenStatus : pipelineState) {
|
for (String givenStatus : pipelineState) {
|
||||||
if (givenStatus.equalsIgnoreCase(status.value())) {
|
if (givenStatus.equalsIgnoreCase(status.value())) {
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import org.openmetadata.schema.entity.services.ingestionPipelines.PipelineStatus
|
|||||||
import org.openmetadata.schema.type.FieldChange;
|
import org.openmetadata.schema.type.FieldChange;
|
||||||
import org.openmetadata.service.formatter.decorators.MessageDecorator;
|
import org.openmetadata.service.formatter.decorators.MessageDecorator;
|
||||||
import org.openmetadata.service.formatter.util.FormatterUtil;
|
import org.openmetadata.service.formatter.util.FormatterUtil;
|
||||||
|
import org.openmetadata.service.util.JsonUtils;
|
||||||
|
|
||||||
public class IngestionPipelineFormatter implements EntityFormatter {
|
public class IngestionPipelineFormatter implements EntityFormatter {
|
||||||
private static final String PIPELINE_STATUS_FIELD = "pipelineStatus";
|
private static final String PIPELINE_STATUS_FIELD = "pipelineStatus";
|
||||||
@ -41,10 +42,12 @@ public class IngestionPipelineFormatter implements EntityFormatter {
|
|||||||
private String transformIngestionPipelineStatus(
|
private String transformIngestionPipelineStatus(
|
||||||
MessageDecorator<?> messageFormatter, FieldChange fieldChange, EntityInterface entity) {
|
MessageDecorator<?> messageFormatter, FieldChange fieldChange, EntityInterface entity) {
|
||||||
String ingestionPipelineName = entity.getName();
|
String ingestionPipelineName = entity.getName();
|
||||||
PipelineStatus status = (PipelineStatus) fieldChange.getNewValue();
|
PipelineStatus status =
|
||||||
|
JsonUtils.readOrConvertValue(fieldChange.getNewValue(), PipelineStatus.class);
|
||||||
if (status != null) {
|
if (status != null) {
|
||||||
|
// In case of running
|
||||||
String date =
|
String date =
|
||||||
new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date(status.getEndDate()));
|
new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date(status.getTimestamp()));
|
||||||
String format =
|
String format =
|
||||||
String.format(
|
String.format(
|
||||||
"Ingestion Pipeline %s %s at %s",
|
"Ingestion Pipeline %s %s at %s",
|
||||||
|
|||||||
@ -614,7 +614,7 @@ public class EventSubscriptionResource
|
|||||||
List<SubscriptionDestination> result = new ArrayList<>();
|
List<SubscriptionDestination> result = new ArrayList<>();
|
||||||
subscriptions.forEach(
|
subscriptions.forEach(
|
||||||
subscription -> {
|
subscription -> {
|
||||||
if (subscription.getId() == null) {
|
if (nullOrEmpty(subscription.getId())) {
|
||||||
subscription.withId(UUID.randomUUID());
|
subscription.withId(UUID.randomUUID());
|
||||||
}
|
}
|
||||||
result.add(subscription);
|
result.add(subscription);
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.openmetadata.schema.entity.services.MlModelService;
|
|||||||
import org.openmetadata.schema.entity.services.PipelineService;
|
import org.openmetadata.schema.entity.services.PipelineService;
|
||||||
import org.openmetadata.schema.entity.services.SearchService;
|
import org.openmetadata.schema.entity.services.SearchService;
|
||||||
import org.openmetadata.schema.entity.services.StorageService;
|
import org.openmetadata.schema.entity.services.StorageService;
|
||||||
|
import org.openmetadata.schema.entity.services.ingestionPipelines.IngestionPipeline;
|
||||||
import org.openmetadata.schema.entity.teams.Team;
|
import org.openmetadata.schema.entity.teams.Team;
|
||||||
import org.openmetadata.schema.entity.teams.User;
|
import org.openmetadata.schema.entity.teams.User;
|
||||||
import org.openmetadata.schema.tests.TestCase;
|
import org.openmetadata.schema.tests.TestCase;
|
||||||
@ -49,6 +50,7 @@ import org.openmetadata.service.search.indexes.DomainIndex;
|
|||||||
import org.openmetadata.service.search.indexes.EntityReportDataIndex;
|
import org.openmetadata.service.search.indexes.EntityReportDataIndex;
|
||||||
import org.openmetadata.service.search.indexes.GlossaryIndex;
|
import org.openmetadata.service.search.indexes.GlossaryIndex;
|
||||||
import org.openmetadata.service.search.indexes.GlossaryTermIndex;
|
import org.openmetadata.service.search.indexes.GlossaryTermIndex;
|
||||||
|
import org.openmetadata.service.search.indexes.IngestionPipelineIndex;
|
||||||
import org.openmetadata.service.search.indexes.MessagingServiceIndex;
|
import org.openmetadata.service.search.indexes.MessagingServiceIndex;
|
||||||
import org.openmetadata.service.search.indexes.MetadataServiceIndex;
|
import org.openmetadata.service.search.indexes.MetadataServiceIndex;
|
||||||
import org.openmetadata.service.search.indexes.MlModelIndex;
|
import org.openmetadata.service.search.indexes.MlModelIndex;
|
||||||
@ -82,6 +84,7 @@ public class SearchIndexFactory {
|
|||||||
case Entity.DASHBOARD -> new DashboardIndex((Dashboard) entity);
|
case Entity.DASHBOARD -> new DashboardIndex((Dashboard) entity);
|
||||||
case Entity.TOPIC -> new TopicIndex((Topic) entity);
|
case Entity.TOPIC -> new TopicIndex((Topic) entity);
|
||||||
case Entity.PIPELINE -> new PipelineIndex((Pipeline) entity);
|
case Entity.PIPELINE -> new PipelineIndex((Pipeline) entity);
|
||||||
|
case Entity.INGESTION_PIPELINE -> new IngestionPipelineIndex((IngestionPipeline) entity);
|
||||||
case Entity.USER -> new UserIndex((User) entity);
|
case Entity.USER -> new UserIndex((User) entity);
|
||||||
case Entity.TEAM -> new TeamIndex((Team) entity);
|
case Entity.TEAM -> new TeamIndex((Team) entity);
|
||||||
case Entity.GLOSSARY -> new GlossaryIndex((Glossary) entity);
|
case Entity.GLOSSARY -> new GlossaryIndex((Glossary) entity);
|
||||||
|
|||||||
@ -0,0 +1,72 @@
|
|||||||
|
package org.openmetadata.service.search.indexes;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.openmetadata.common.utils.CommonUtil;
|
||||||
|
import org.openmetadata.schema.entity.services.ingestionPipelines.IngestionPipeline;
|
||||||
|
import org.openmetadata.service.Entity;
|
||||||
|
import org.openmetadata.service.search.ParseTags;
|
||||||
|
import org.openmetadata.service.search.SearchIndexUtils;
|
||||||
|
import org.openmetadata.service.search.models.SearchSuggest;
|
||||||
|
import org.openmetadata.service.util.JsonUtils;
|
||||||
|
|
||||||
|
public class IngestionPipelineIndex implements SearchIndex {
|
||||||
|
final IngestionPipeline ingestionPipeline;
|
||||||
|
final List<String> excludeFields =
|
||||||
|
List.of("changeDescription", "sourceConfig", "openMetadataServerConnection", "airflowConfig");
|
||||||
|
|
||||||
|
public IngestionPipelineIndex(IngestionPipeline ingestionPipeline) {
|
||||||
|
this.ingestionPipeline = ingestionPipeline;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> buildESDoc() {
|
||||||
|
Map<String, Object> doc = JsonUtils.getMap(ingestionPipeline);
|
||||||
|
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
|
||||||
|
List<SearchSuggest> suggest = new ArrayList<>();
|
||||||
|
List<SearchSuggest> serviceSuggest = new ArrayList<>();
|
||||||
|
suggest.add(
|
||||||
|
SearchSuggest.builder().input(ingestionPipeline.getFullyQualifiedName()).weight(5).build());
|
||||||
|
suggest.add(
|
||||||
|
SearchSuggest.builder().input(ingestionPipeline.getDisplayName()).weight(10).build());
|
||||||
|
serviceSuggest.add(
|
||||||
|
SearchSuggest.builder().input(ingestionPipeline.getService().getName()).weight(5).build());
|
||||||
|
ParseTags parseTags =
|
||||||
|
new ParseTags(Entity.getEntityTags(Entity.INGESTION_PIPELINE, ingestionPipeline));
|
||||||
|
doc.put(
|
||||||
|
"name",
|
||||||
|
ingestionPipeline.getName() != null
|
||||||
|
? ingestionPipeline.getName()
|
||||||
|
: ingestionPipeline.getDisplayName());
|
||||||
|
doc.put(
|
||||||
|
"displayName",
|
||||||
|
ingestionPipeline.getDisplayName() != null
|
||||||
|
? ingestionPipeline.getDisplayName()
|
||||||
|
: ingestionPipeline.getName());
|
||||||
|
doc.put("followers", SearchIndexUtils.parseFollowers(ingestionPipeline.getFollowers()));
|
||||||
|
doc.put("tags", parseTags.getTags());
|
||||||
|
doc.put("tier", parseTags.getTierTag());
|
||||||
|
doc.put("suggest", suggest);
|
||||||
|
doc.put("service_suggest", serviceSuggest);
|
||||||
|
doc.put("entityType", Entity.INGESTION_PIPELINE);
|
||||||
|
doc.put(
|
||||||
|
"totalVotes",
|
||||||
|
CommonUtil.nullOrEmpty(ingestionPipeline.getVotes())
|
||||||
|
? 0
|
||||||
|
: ingestionPipeline.getVotes().getUpVotes()
|
||||||
|
- ingestionPipeline.getVotes().getDownVotes());
|
||||||
|
doc.put(
|
||||||
|
"fqnParts",
|
||||||
|
getFQNParts(
|
||||||
|
ingestionPipeline.getFullyQualifiedName(),
|
||||||
|
suggest.stream().map(SearchSuggest::getInput).toList()));
|
||||||
|
doc.put("owner", getEntityWithDisplayName(ingestionPipeline.getOwner()));
|
||||||
|
doc.put("service", getEntityWithDisplayName(ingestionPipeline.getService()));
|
||||||
|
doc.put("domain", getEntityWithDisplayName(ingestionPipeline.getDomain()));
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String, Float> getFields() {
|
||||||
|
return SearchIndex.getDefaultFields();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,313 @@
|
|||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"analysis": {
|
||||||
|
"normalizer": {
|
||||||
|
"lowercase_normalizer": {
|
||||||
|
"type": "custom",
|
||||||
|
"char_filter": [],
|
||||||
|
"filter": [
|
||||||
|
"lowercase"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"analyzer": {
|
||||||
|
"om_analyzer": {
|
||||||
|
"tokenizer": "letter",
|
||||||
|
"filter": [
|
||||||
|
"lowercase",
|
||||||
|
"om_stemmer"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"om_ngram": {
|
||||||
|
"tokenizer": "ngram",
|
||||||
|
"min_gram": 3,
|
||||||
|
"max_gram": 10,
|
||||||
|
"filter": [
|
||||||
|
"lowercase"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"filter": {
|
||||||
|
"om_stemmer": {
|
||||||
|
"type": "stemmer",
|
||||||
|
"name": "english"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "text",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256,
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
},
|
||||||
|
"ngram": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "om_ngram"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
},
|
||||||
|
"fqnParts": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "om_analyzer",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
},
|
||||||
|
"ngram": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "om_ngram"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "om_analyzer",
|
||||||
|
"index_options": "docs"
|
||||||
|
},
|
||||||
|
"version": {
|
||||||
|
"type": "float"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"type": "date",
|
||||||
|
"format": "epoch_second"
|
||||||
|
},
|
||||||
|
"updatedBy": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"domain" : {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"owner": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"service": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"followers": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deployed": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"tier": {
|
||||||
|
"properties": {
|
||||||
|
"tagFQN": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"labelType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"type": "keyword"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"properties": {
|
||||||
|
"tagFQN": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
},
|
||||||
|
"labelType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"type": "keyword"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pipelineType": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
},
|
||||||
|
"entityType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"type": "completion",
|
||||||
|
"contexts": [
|
||||||
|
{
|
||||||
|
"name": "deleted",
|
||||||
|
"type": "category",
|
||||||
|
"path": "deleted"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"service_suggest": {
|
||||||
|
"type": "completion"
|
||||||
|
},
|
||||||
|
"totalVotes": {
|
||||||
|
"type": "long"
|
||||||
|
},
|
||||||
|
"votes" : {
|
||||||
|
"type": "object"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -220,5 +220,11 @@
|
|||||||
"indexMappingFile": "/elasticsearch/%s/test_case_resolution_status_index_mapping.json",
|
"indexMappingFile": "/elasticsearch/%s/test_case_resolution_status_index_mapping.json",
|
||||||
"alias": "testCaseResolutionStatus",
|
"alias": "testCaseResolutionStatus",
|
||||||
"parentAliases": []
|
"parentAliases": []
|
||||||
|
},
|
||||||
|
"ingestionPipeline": {
|
||||||
|
"indexName": "ingestion_pipeline_search_index",
|
||||||
|
"indexMappingFile": "/elasticsearch/%s/ingestion_pipeline_index_mapping.json",
|
||||||
|
"alias": "ingestionPipeline",
|
||||||
|
"parentAliases": ["all", "dataAsset"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,288 @@
|
|||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"analysis": {
|
||||||
|
"normalizer": {
|
||||||
|
"lowercase_normalizer": {
|
||||||
|
"type": "custom",
|
||||||
|
"char_filter": [],
|
||||||
|
"filter": [
|
||||||
|
"lowercase"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"analyzer": {
|
||||||
|
"om_analyzer_jp" : {
|
||||||
|
"tokenizer" : "kuromoji_tokenizer",
|
||||||
|
"type" : "custom",
|
||||||
|
"filter" : [
|
||||||
|
"kuromoji_baseform",
|
||||||
|
"kuromoji_part_of_speech",
|
||||||
|
"kuromoji_number",
|
||||||
|
"kuromoji_stemmer"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"om_ngram": {
|
||||||
|
"tokenizer": "ngram",
|
||||||
|
"min_gram": 1,
|
||||||
|
"max_gram": 2,
|
||||||
|
"filter": [
|
||||||
|
"lowercase"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"filter": {
|
||||||
|
"om_stemmer": {
|
||||||
|
"type": "stemmer",
|
||||||
|
"name": "english"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "text",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256,
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
},
|
||||||
|
"fqnParts": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "om_analyzer_jp",
|
||||||
|
"fields": {
|
||||||
|
"ngram": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "om_ngram"
|
||||||
|
},
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "om_analyzer_jp"
|
||||||
|
},
|
||||||
|
"version": {
|
||||||
|
"type": "float"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"type": "date",
|
||||||
|
"format": "epoch_second"
|
||||||
|
},
|
||||||
|
"updatedBy": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"domain" : {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"owner": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"service": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"followers": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deployed": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"tier": {
|
||||||
|
"properties": {
|
||||||
|
"tagFQN": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"labelType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"type": "keyword"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"properties": {
|
||||||
|
"tagFQN": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"labelType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"type": "keyword"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pipelineType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"entityType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"type": "completion",
|
||||||
|
"contexts": [
|
||||||
|
{
|
||||||
|
"name": "deleted",
|
||||||
|
"type": "category",
|
||||||
|
"path": "deleted"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"service_suggest": {
|
||||||
|
"type": "completion"
|
||||||
|
},
|
||||||
|
"totalVotes": {
|
||||||
|
"type": "long"
|
||||||
|
},
|
||||||
|
"votes" : {
|
||||||
|
"type": "object"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,271 @@
|
|||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"analysis": {
|
||||||
|
"normalizer": {
|
||||||
|
"lowercase_normalizer": {
|
||||||
|
"type": "custom",
|
||||||
|
"char_filter": [],
|
||||||
|
"filter": [
|
||||||
|
"lowercase"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"analyzer": {
|
||||||
|
},
|
||||||
|
"filter": {
|
||||||
|
"om_stemmer": {
|
||||||
|
"type": "stemmer",
|
||||||
|
"name": "english"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "ik_max_word",
|
||||||
|
"search_analyzer": "ik_smart",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256,
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"normalizer": "lowercase_normalizer"
|
||||||
|
},
|
||||||
|
"fqnParts": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "ik_max_word",
|
||||||
|
"search_analyzer": "ik_smart"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "ik_max_word",
|
||||||
|
"search_analyzer": "ik_smart"
|
||||||
|
},
|
||||||
|
"version": {
|
||||||
|
"type": "float"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"type": "date",
|
||||||
|
"format": "epoch_second"
|
||||||
|
},
|
||||||
|
"updatedBy": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"domain" : {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"owner": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "ik_max_word",
|
||||||
|
"search_analyzer": "ik_smart"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"service": {
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "keyword",
|
||||||
|
"fields": {
|
||||||
|
"keyword": {
|
||||||
|
"type": "keyword",
|
||||||
|
"ignore_above": 256
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fullyQualifiedName": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "ik_max_word",
|
||||||
|
"search_analyzer": "ik_smart"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"href": {
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"followers": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"deleted": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"deployed": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"tier": {
|
||||||
|
"properties": {
|
||||||
|
"tagFQN": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"labelType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"type": "keyword"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"properties": {
|
||||||
|
"tagFQN": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"labelType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text",
|
||||||
|
"analyzer": "ik_max_word",
|
||||||
|
"search_analyzer": "ik_smart"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"type": "keyword"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pipelineType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"entityType": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"type": "completion",
|
||||||
|
"contexts": [
|
||||||
|
{
|
||||||
|
"name": "deleted",
|
||||||
|
"type": "category",
|
||||||
|
"path": "deleted"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"service_suggest": {
|
||||||
|
"type": "completion"
|
||||||
|
},
|
||||||
|
"totalVotes": {
|
||||||
|
"type": "long"
|
||||||
|
},
|
||||||
|
"votes" : {
|
||||||
|
"type": "object"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -7,6 +7,7 @@
|
|||||||
"dashboard",
|
"dashboard",
|
||||||
"topic",
|
"topic",
|
||||||
"pipeline",
|
"pipeline",
|
||||||
|
"ingestionPipeline",
|
||||||
"searchIndex",
|
"searchIndex",
|
||||||
"user",
|
"user",
|
||||||
"team",
|
"team",
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
"dashboard",
|
"dashboard",
|
||||||
"topic",
|
"topic",
|
||||||
"pipeline",
|
"pipeline",
|
||||||
|
"ingestionPipeline",
|
||||||
"searchIndex",
|
"searchIndex",
|
||||||
"user",
|
"user",
|
||||||
"team",
|
"team",
|
||||||
|
|||||||
@ -28,6 +28,8 @@ export const TEST_CASE_NAME = `0%test-case-${uuid()}`;
|
|||||||
export const TABLE_FQN = `${DATABASE_SERVICE.entity.databaseSchema}.${DATABASE_SERVICE.entity.name}`;
|
export const TABLE_FQN = `${DATABASE_SERVICE.entity.databaseSchema}.${DATABASE_SERVICE.entity.name}`;
|
||||||
export const TEST_SUITE_FQN = `${TABLE_FQN}.testSuite`;
|
export const TEST_SUITE_FQN = `${TABLE_FQN}.testSuite`;
|
||||||
|
|
||||||
|
export const INGESTION_PIPELINE_NAME = `0-cy-ingestion-pipeline-${uuid()}`;
|
||||||
|
|
||||||
export const OBSERVABILITY_CREATION_DETAILS = {
|
export const OBSERVABILITY_CREATION_DETAILS = {
|
||||||
table: {
|
table: {
|
||||||
triggerDisplayName: 'Table',
|
triggerDisplayName: 'Table',
|
||||||
@ -74,6 +76,53 @@ export const OBSERVABILITY_CREATION_DETAILS = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
ingestionPipeline: {
|
||||||
|
triggerDisplayName: 'Ingestion Pipeline',
|
||||||
|
filters: [
|
||||||
|
{
|
||||||
|
name: 'Ingestion Pipeline Name',
|
||||||
|
inputSelector: 'fqn-list-select',
|
||||||
|
inputValue: INGESTION_PIPELINE_NAME,
|
||||||
|
exclude: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Domain',
|
||||||
|
inputSelector: 'domain-select',
|
||||||
|
inputValue: DOMAIN_CREATION_DETAILS.name,
|
||||||
|
exclude: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Owner Name',
|
||||||
|
inputSelector: 'owner-name-select',
|
||||||
|
inputValue: `${USER_DETAILS.firstName}${USER_DETAILS.lastName}`,
|
||||||
|
exclude: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
actions: [
|
||||||
|
{
|
||||||
|
name: 'Get Ingestion Pipeline Status Updates',
|
||||||
|
inputs: [
|
||||||
|
{
|
||||||
|
inputSelector: 'pipeline-status-select',
|
||||||
|
inputValue: 'Queued',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
exclude: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
destinations: [
|
||||||
|
{
|
||||||
|
mode: 'internal',
|
||||||
|
category: 'Owners',
|
||||||
|
type: 'Email',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mode: 'external',
|
||||||
|
category: 'Email',
|
||||||
|
inputValue: 'test@example.com',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
testCase: {
|
testCase: {
|
||||||
triggerDisplayName: 'Test Case',
|
triggerDisplayName: 'Test Case',
|
||||||
filters: [
|
filters: [
|
||||||
|
|||||||
@ -31,15 +31,12 @@ import {
|
|||||||
toastNotification,
|
toastNotification,
|
||||||
verifyResponseStatusCode,
|
verifyResponseStatusCode,
|
||||||
} from '../../common/common';
|
} from '../../common/common';
|
||||||
import {
|
import { createEntityTable, hardDeleteService } from '../../common/EntityUtils';
|
||||||
createEntityTable,
|
|
||||||
createSingleLevelEntity,
|
|
||||||
hardDeleteService,
|
|
||||||
} from '../../common/EntityUtils';
|
|
||||||
import {
|
import {
|
||||||
ALERT_DESCRIPTION,
|
ALERT_DESCRIPTION,
|
||||||
ALERT_NAME,
|
ALERT_NAME,
|
||||||
ALERT_UPDATED_DESCRIPTION,
|
ALERT_UPDATED_DESCRIPTION,
|
||||||
|
INGESTION_PIPELINE_NAME,
|
||||||
OBSERVABILITY_CREATION_DETAILS,
|
OBSERVABILITY_CREATION_DETAILS,
|
||||||
TABLE_FQN,
|
TABLE_FQN,
|
||||||
TEST_CASE_NAME,
|
TEST_CASE_NAME,
|
||||||
@ -108,9 +105,42 @@ describe('Observability Alert Flow', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Create a pipeline
|
// Create a pipeline
|
||||||
createSingleLevelEntity({
|
cy.request({
|
||||||
token,
|
method: 'POST',
|
||||||
...PIPELINE_SERVICE,
|
url: `/api/v1/services/${PIPELINE_SERVICE.serviceType}`,
|
||||||
|
headers: { Authorization: `Bearer ${token}` },
|
||||||
|
body: PIPELINE_SERVICE.service,
|
||||||
|
}).then((pipelineServiceResponse) => {
|
||||||
|
data.pipelineService = pipelineServiceResponse.body;
|
||||||
|
|
||||||
|
cy.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: `/api/v1/${PIPELINE_SERVICE.entityType}`,
|
||||||
|
headers: { Authorization: `Bearer ${token}` },
|
||||||
|
body: PIPELINE_SERVICE.entity,
|
||||||
|
});
|
||||||
|
|
||||||
|
// Create a ingestion pipeline
|
||||||
|
cy.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: `/api/v1/services/ingestionPipelines`,
|
||||||
|
headers: { Authorization: `Bearer ${token}` },
|
||||||
|
body: {
|
||||||
|
airflowConfig: {},
|
||||||
|
loggerLevel: 'INFO',
|
||||||
|
name: INGESTION_PIPELINE_NAME,
|
||||||
|
pipelineType: 'metadata',
|
||||||
|
service: {
|
||||||
|
id: data.pipelineService.id,
|
||||||
|
type: 'pipelineService',
|
||||||
|
},
|
||||||
|
sourceConfig: {
|
||||||
|
config: {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}).then((ingestionPipelineResponse) => {
|
||||||
|
data.ingestionPipeline = ingestionPipelineResponse.body;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Create a new user
|
// Create a new user
|
||||||
@ -154,6 +184,13 @@ describe('Observability Alert Flow', () => {
|
|||||||
headers: { Authorization: `Bearer ${token}` },
|
headers: { Authorization: `Bearer ${token}` },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Delete ingestion pipeline
|
||||||
|
cy.request({
|
||||||
|
method: 'DELETE',
|
||||||
|
url: `/api/v1/services/ingestionPipelines/${data.ingestionPipeline.id}?hardDelete=true`,
|
||||||
|
headers: { Authorization: `Bearer ${token}` },
|
||||||
|
});
|
||||||
|
|
||||||
// Delete created services
|
// Delete created services
|
||||||
hardDeleteService({
|
hardDeleteService({
|
||||||
token,
|
token,
|
||||||
|
|||||||
@ -61,6 +61,7 @@ export enum EntityType {
|
|||||||
GOVERN = 'govern',
|
GOVERN = 'govern',
|
||||||
ALL = 'all',
|
ALL = 'all',
|
||||||
CUSTOM_METRIC = 'customMetric',
|
CUSTOM_METRIC = 'customMetric',
|
||||||
|
INGESTION_PIPELINE = 'ingestionPipeline',
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum AssetsType {
|
export enum AssetsType {
|
||||||
|
|||||||
@ -41,4 +41,5 @@ export enum SearchIndex {
|
|||||||
STORED_PROCEDURE = 'stored_procedure_search_index',
|
STORED_PROCEDURE = 'stored_procedure_search_index',
|
||||||
DASHBOARD_DATA_MODEL = 'dashboard_data_model_search_index',
|
DASHBOARD_DATA_MODEL = 'dashboard_data_model_search_index',
|
||||||
DATA_PRODUCT = 'data_product_search_index',
|
DATA_PRODUCT = 'data_product_search_index',
|
||||||
|
INGESTION_PIPELINE = 'ingestion_pipeline_search_index',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,6 +32,7 @@ import { DataProduct } from '../generated/entity/domains/dataProduct';
|
|||||||
import { Domain } from '../generated/entity/domains/domain';
|
import { Domain } from '../generated/entity/domains/domain';
|
||||||
import { DashboardService } from '../generated/entity/services/dashboardService';
|
import { DashboardService } from '../generated/entity/services/dashboardService';
|
||||||
import { DatabaseService } from '../generated/entity/services/databaseService';
|
import { DatabaseService } from '../generated/entity/services/databaseService';
|
||||||
|
import { IngestionPipeline } from '../generated/entity/services/ingestionPipelines/ingestionPipeline';
|
||||||
import { MessagingService } from '../generated/entity/services/messagingService';
|
import { MessagingService } from '../generated/entity/services/messagingService';
|
||||||
import { MlmodelService } from '../generated/entity/services/mlmodelService';
|
import { MlmodelService } from '../generated/entity/services/mlmodelService';
|
||||||
import { PipelineService } from '../generated/entity/services/pipelineService';
|
import { PipelineService } from '../generated/entity/services/pipelineService';
|
||||||
@ -122,6 +123,10 @@ export interface TestCaseSearchSource
|
|||||||
} // extends EntityInterface
|
} // extends EntityInterface
|
||||||
export interface TestSuiteSearchSource extends SearchSourceBase, TestSuite {}
|
export interface TestSuiteSearchSource extends SearchSourceBase, TestSuite {}
|
||||||
|
|
||||||
|
export interface IngestionPipelineSearchSource
|
||||||
|
extends SearchSourceBase,
|
||||||
|
IngestionPipeline {}
|
||||||
|
|
||||||
export interface DatabaseServiceSearchSource
|
export interface DatabaseServiceSearchSource
|
||||||
extends SearchSourceBase,
|
extends SearchSourceBase,
|
||||||
DatabaseService {}
|
DatabaseService {}
|
||||||
@ -203,6 +208,7 @@ export type SearchIndexSearchSourceMapping = {
|
|||||||
[SearchIndex.DASHBOARD_DATA_MODEL]: DashboardDataModelSearchSource;
|
[SearchIndex.DASHBOARD_DATA_MODEL]: DashboardDataModelSearchSource;
|
||||||
[SearchIndex.DATA_PRODUCT]: DataProductSearchSource;
|
[SearchIndex.DATA_PRODUCT]: DataProductSearchSource;
|
||||||
[SearchIndex.TEST_SUITE]: TestSuiteSearchSource;
|
[SearchIndex.TEST_SUITE]: TestSuiteSearchSource;
|
||||||
|
[SearchIndex.INGESTION_PIPELINE]: IngestionPipelineSearchSource;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type SearchRequest<
|
export type SearchRequest<
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
"dashboard",
|
"dashboard",
|
||||||
"topic",
|
"topic",
|
||||||
"pipeline",
|
"pipeline",
|
||||||
|
"ingestionPipeline",
|
||||||
"searchIndex",
|
"searchIndex",
|
||||||
"user",
|
"user",
|
||||||
"team",
|
"team",
|
||||||
|
|||||||
@ -96,6 +96,7 @@ class SearchClassBase {
|
|||||||
[EntityType.TEST_CASE]: SearchIndex.TEST_CASE,
|
[EntityType.TEST_CASE]: SearchIndex.TEST_CASE,
|
||||||
[EntityType.TEST_SUITE]: SearchIndex.TEST_SUITE,
|
[EntityType.TEST_SUITE]: SearchIndex.TEST_SUITE,
|
||||||
[EntityType.GLOSSARY]: SearchIndex.GLOSSARY,
|
[EntityType.GLOSSARY]: SearchIndex.GLOSSARY,
|
||||||
|
[EntityType.INGESTION_PIPELINE]: SearchIndex.INGESTION_PIPELINE,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user