From 9303602dfca6349a2155aae7273bd12a15c09fe8 Mon Sep 17 00:00:00 2001 From: Akash Verma <138790903+akashverma0786@users.noreply.github.com> Date: Tue, 2 Sep 2025 11:00:23 +0530 Subject: [PATCH] Feature: ServiceNow Connector (#23093) * service now connector files * updated schema and ui file --------- Co-authored-by: Akash Verma (cherry picked from commit a41d0404c4cba560dd7bca4e75a4507499777fad) --- .../testConnections/database/servicenow.json | 26 +++++++ .../database/serviceNowConnection.json | 76 ++++++++++++++++++ .../entity/services/databaseService.json | 9 ++- .../locales/en-US/Database/ServiceNow.md | 71 +++++++++++++++++ .../ui/src/constants/Services.constant.ts | 1 + .../api/automations/createWorkflow.ts | 20 +++++ .../api/services/createDatabaseService.ts | 21 +++++ .../createIngestionPipeline.ts | 20 +++++ .../automations/testServiceConnection.ts | 20 +++++ .../generated/entity/automations/workflow.ts | 20 +++++ .../ui/src/generated/entity/data/database.ts | 1 + .../generated/entity/data/databaseSchema.ts | 1 + .../generated/entity/data/storedProcedure.ts | 1 + .../ui/src/generated/entity/data/table.ts | 1 + .../database/serviceNowConnection.ts | 77 +++++++++++++++++++ .../services/connections/serviceConnection.ts | 20 +++++ .../entity/services/databaseService.ts | 21 +++++ .../ingestionPipelines/ingestionPipeline.ts | 20 +++++ .../metadataIngestion/testSuitePipeline.ts | 20 +++++ .../generated/metadataIngestion/workflow.ts | 20 +++++ 20 files changed, 465 insertions(+), 1 deletion(-) create mode 100644 openmetadata-service/src/main/resources/json/data/testConnections/database/servicenow.json create mode 100644 openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/serviceNowConnection.json create mode 100644 openmetadata-ui/src/main/resources/ui/public/locales/en-US/Database/ServiceNow.md create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/serviceNowConnection.ts diff --git a/openmetadata-service/src/main/resources/json/data/testConnections/database/servicenow.json b/openmetadata-service/src/main/resources/json/data/testConnections/database/servicenow.json new file mode 100644 index 00000000000..3949b71305b --- /dev/null +++ b/openmetadata-service/src/main/resources/json/data/testConnections/database/servicenow.json @@ -0,0 +1,26 @@ +{ + "name": "ServiceNow", + "displayName": "ServiceNow Test Connection", + "description": "This Test Connection validates the access against the ServiceNow and basic metadata extraction of tables.", + "steps": [ + { + "name": "CheckAccess", + "description": "Validate that we can properly reach the database and authenticate with the given credentials.", + "errorMessage": "Failed to connect to mysql, please validate the credentials", + "shortCircuit": true, + "mandatory": true + }, + { + "name": "GetTables", + "description": "List all the schemas available to the user.", + "errorMessage": "Failed to fetch schemas, please validate if the user has enough privilege to fetch schemas.", + "mandatory": true + }, + { + "name": "GetColumns", + "description": "From a given schema, list the tables belonging to that schema. If no schema is specified, we'll list the tables of a random schema.", + "errorMessage": "Failed to fetch tables, please validate if the user has enough privilege to fetch tables.", + "mandatory": true + } + ] + } \ No newline at end of file diff --git a/openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/serviceNowConnection.json b/openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/serviceNowConnection.json new file mode 100644 index 00000000000..0a50dd9b2cd --- /dev/null +++ b/openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/serviceNowConnection.json @@ -0,0 +1,76 @@ +{ + "$id": "https://open-metadata.org/schema/entity/services/connections/database/serviceNowConnection.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ServiceNowConnection", + "description": "ServiceNow Connection Config", + "type": "object", + "javaType": "org.openmetadata.schema.services.connections.database.ServiceNowConnection", + "definitions": { + "serviceNowType": { + "description": "Service type.", + "type": "string", + "enum": ["ServiceNow"], + "default": "ServiceNow" + } + }, + "properties": { + "type": { + "title": "Service Type", + "description": "Service Type", + "$ref": "#/definitions/serviceNowType", + "default": "ServiceNow" + }, + "hostPort": { + "title": "ServiceNow Instance URL", + "description": "ServiceNow instance URL (e.g., https://your-instance.service-now.com)", + "type": "string", + "format": "uri" + }, + "username": { + "title": "Username", + "description": "Username to connect to ServiceNow. This user should have read access to sys_db_object and sys_dictionary tables.", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Password to connect to ServiceNow.", + "type": "string", + "format": "password" + }, + "includeScopes": { + "title": "Include Scopes as Schemas", + "description": "If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a single default schema will be used.", + "type": "boolean", + "default": false + }, + "includeSystemTables": { + "title": "Include System Tables", + "description": "If true, both admin and system tables (sys_* tables) will be fetched. If false, only admin tables will be fetched.", + "type": "boolean", + "default": false + }, + "connectionOptions": { + "title": "Connection Options", + "$ref": "../connectionBasicType.json#/definitions/connectionOptions" + }, + "connectionArguments": { + "title": "Connection Arguments", + "$ref": "../connectionBasicType.json#/definitions/connectionArguments" + }, + "tableFilterPattern": { + "title": "Default Table Filter Pattern", + "description": "Regex to only include/exclude tables that matches the pattern.", + "$ref": "../../../../type/filterPattern.json#/definitions/filterPattern" + }, + "supportsMetadataExtraction": { + "title": "Supports Metadata Extraction", + "$ref": "../connectionBasicType.json#/definitions/supportsMetadataExtraction" + }, + "supportsLineageExtraction": { + "title": "Supports Lineage Extraction", + "$ref": "../connectionBasicType.json#/definitions/supportsLineageExtraction" + } + }, + "additionalProperties": false, + "required": ["hostPort", "username", "password"] + } \ No newline at end of file diff --git a/openmetadata-spec/src/main/resources/json/schema/entity/services/databaseService.json b/openmetadata-spec/src/main/resources/json/schema/entity/services/databaseService.json index 2ceb294a6a8..28c292beb80 100644 --- a/openmetadata-spec/src/main/resources/json/schema/entity/services/databaseService.json +++ b/openmetadata-spec/src/main/resources/json/schema/entity/services/databaseService.json @@ -62,7 +62,8 @@ "Exasol", "Cockroach", "SSAS", - "Epic" + "Epic", + "ServiceNow" ], "javaEnums": [ { @@ -208,6 +209,9 @@ }, { "name": "Epic" + }, + { + "name": "ServiceNow" } ] }, @@ -358,6 +362,9 @@ }, { "$ref": "./connections/database/epicConnection.json" + }, + { + "$ref": "./connections/database/serviceNowConnection.json" } ] } diff --git a/openmetadata-ui/src/main/resources/ui/public/locales/en-US/Database/ServiceNow.md b/openmetadata-ui/src/main/resources/ui/public/locales/en-US/Database/ServiceNow.md new file mode 100644 index 00000000000..a020d3dcbdb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/public/locales/en-US/Database/ServiceNow.md @@ -0,0 +1,71 @@ +# ServiceNow + +In this section, we provide guides and references to use the ServiceNow connector. + +## Requirements + +To extract metadata from ServiceNow, you will need: + +- **API Access**: Your ServiceNow instance must have REST API access enabled. +- **User Permissions**: The user account provided must have read access to the following ServiceNow tables: + - `sys_db_object` - To read table metadata + - `sys_dictionary` - To read column/field metadata +- **Instance Accessibility**: The ServiceNow instance URL must be reachable from the OpenMetadata server. + +$$note +Ensure that your user account has sufficient privileges to query metadata tables. If you are unsure about your permissions, contact your ServiceNow administrator to confirm that your account can access the `sys_db_object` and `sys_dictionary` tables via REST API. +$$ + +## Connection Details + +$$section +### ServiceNow Instance URL $(id="hostPort") + +ServiceNow instance URL (e.g., `https://your-instance.service-now.com`). + +This should be the full URL to your ServiceNow instance. OpenMetadata will connect to this instance to extract metadata from your ServiceNow tables and schemas. +$$ + +$$section +### Username $(id="username") + +Username to connect to ServiceNow. This user should have read access to `sys_db_object` and `sys_dictionary` tables to extract metadata successfully. +$$ + +$$section +### Password $(id="password") + +Password to connect to ServiceNow. +$$ + +$$section +### Include Scopes as Schemas $(id="includeScopes") + +If enabled, ServiceNow application scopes will be imported as database schemas. This allows you to organize your tables by their application scope. + +When disabled, all tables will be imported under a single default schema. + +Default: `false` +$$ + +$$section +### Include System Tables $(id="includeSystemTables") + +If enabled, both admin and system tables (tables starting with `sys_*`) will be fetched during metadata extraction. + +When disabled, only admin tables will be fetched, excluding system tables. + +Default: `false` +$$ + +$$section +### Connection Options $(id="connectionOptions") + +Additional connection options to build the URL that can be sent to service during the connection. +$$ + +$$section +### Connection Arguments $(id="connectionArguments") + +Additional connection arguments such as security or protocol configs that can be sent to service during connection. +$$ \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/constants/Services.constant.ts b/openmetadata-ui/src/main/resources/ui/src/constants/Services.constant.ts index eb98ef0aa39..a3f880c6402 100644 --- a/openmetadata-ui/src/main/resources/ui/src/constants/Services.constant.ts +++ b/openmetadata-ui/src/main/resources/ui/src/constants/Services.constant.ts @@ -449,6 +449,7 @@ export const BETA_SERVICES = [ SecurityServiceType.Ranger, DatabaseServiceType.Epic, DashboardServiceType.Grafana, + DatabaseServiceType.ServiceNow, ]; export const TEST_CONNECTION_INITIAL_MESSAGE = i18n.t( diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts index 7ac2e69f7c1..2116edb269f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts @@ -279,6 +279,8 @@ export interface RequestConnection { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Looker Connection Config * * Metabase Connection Config @@ -540,6 +542,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * URL to the Looker instance. * * Host and Port of the Metabase instance. @@ -769,6 +773,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * Password to connect to Metabase. * * Password to connect to PowerBI report server. @@ -872,6 +878,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * Username to connect to Metabase. This user should have privileges to read all the * metadata in Metabase. * @@ -1298,6 +1307,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * Regex exclude or include charts that matches the pattern. */ @@ -4066,6 +4085,7 @@ export enum ConfigType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", Sigma = "Sigma", SingleStore = "SingleStore", Sklearn = "Sklearn", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts index 47435ab233e..083498b2ee0 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts @@ -151,6 +151,8 @@ export interface DatabaseConnection { * SSAS Metadata Database Connection Config * * Epic FHIR Connection Config + * + * ServiceNow Connection Config */ export interface ConfigObject { /** @@ -230,6 +232,8 @@ export interface ConfigObject { * Host and port of the Azure Synapse service. * * Host and port of the Cockrooach service. + * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) */ hostPort?: string; sampleDataStorageConfig?: SampleDataStorageConfig; @@ -411,6 +415,8 @@ export interface ConfigObject { * Password to connect to Exasol. * * Password + * + * Password to connect to ServiceNow. */ password?: string; /** @@ -502,6 +508,9 @@ export interface ConfigObject { * metadata in Cockroach. * * Username + * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. */ username?: string; /** @@ -853,6 +862,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; [property: string]: any; } @@ -1997,6 +2016,7 @@ export enum ConfigType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", @@ -2119,6 +2139,7 @@ export enum DatabaseServiceType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts index e35f78d4e90..7e07bae07c9 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts @@ -2376,6 +2376,8 @@ export interface ServiceConnection { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Kafka Connection Config * * Redpanda Connection Config @@ -2656,6 +2658,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: * bolt://localhost:7687. * @@ -2743,6 +2747,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * password to connect to the Amundsen Neo4j Connection. * * password to connect to the Atlas. @@ -2850,6 +2856,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * username to connect to the Amundsen Neo4j Connection. * * username to connect to the Atlas. This user should have privileges to read all the @@ -3532,6 +3541,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * basic.auth.user.info schema registry config property, Client HTTP credentials in the form * of username:password. @@ -5926,6 +5945,7 @@ export enum PurpleType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SharePoint = "SharePoint", Sigma = "Sigma", SingleStore = "SingleStore", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts index d74b7f96cf0..58bfa1d770e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts @@ -161,6 +161,8 @@ export interface TestServiceConnectionConnection { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Looker Connection Config * * Metabase Connection Config @@ -422,6 +424,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * URL to the Looker instance. * * Host and Port of the Metabase instance. @@ -651,6 +655,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * Password to connect to Metabase. * * Password to connect to PowerBI report server. @@ -754,6 +760,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * Username to connect to Metabase. This user should have privileges to read all the * metadata in Metabase. * @@ -1180,6 +1189,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * Regex exclude or include charts that matches the pattern. */ @@ -3948,6 +3967,7 @@ export enum ConfigType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", Sigma = "Sigma", SingleStore = "SingleStore", Sklearn = "Sklearn", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts index 8d7b504ab9b..50e1e6cbdfb 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts @@ -697,6 +697,8 @@ export interface RequestConnection { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Looker Connection Config * * Metabase Connection Config @@ -958,6 +960,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * URL to the Looker instance. * * Host and Port of the Metabase instance. @@ -1187,6 +1191,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * Password to connect to Metabase. * * Password to connect to PowerBI report server. @@ -1290,6 +1296,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * Username to connect to Metabase. This user should have privileges to read all the * metadata in Metabase. * @@ -1716,6 +1725,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * Regex exclude or include charts that matches the pattern. */ @@ -4335,6 +4354,7 @@ export enum ConfigType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", Sigma = "Sigma", SingleStore = "SingleStore", Sklearn = "Sklearn", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts index 7ad1688d93c..6c4a83e6887 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts @@ -579,6 +579,7 @@ export enum DatabaseServiceType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts index 1a84af5b30f..0186911b4f1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts @@ -575,6 +575,7 @@ export enum DatabaseServiceType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts index 6781624df6e..659a9810ca9 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts @@ -462,6 +462,7 @@ export enum DatabaseServiceType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts index 70b4f5c5e7e..f5813896c42 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts @@ -1081,6 +1081,7 @@ export enum DatabaseServiceType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/serviceNowConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/serviceNowConnection.ts new file mode 100644 index 00000000000..0c0575524ef --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/serviceNowConnection.ts @@ -0,0 +1,77 @@ +/* + * Copyright 2025 Collate. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * ServiceNow Connection Config + */ +export interface ServiceNowConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + */ + hostPort: string; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; + /** + * Password to connect to ServiceNow. + */ + password: string; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + /** + * Regex to only include/exclude tables that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Service Type + */ + type?: ServiceNowType; + /** + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + */ + username: string; +} + +/** + * Regex to only include/exclude tables that matches the pattern. + * + * Regex to only fetch entities that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Service Type + * + * Service type. + */ +export enum ServiceNowType { + ServiceNow = "ServiceNow", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts index aa7335255c9..ed3e7c63d3e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts @@ -183,6 +183,8 @@ export interface ServiceConnectionClass { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Kafka Connection Config * * Redpanda Connection Config @@ -463,6 +465,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: * bolt://localhost:7687. * @@ -550,6 +554,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * password to connect to the Amundsen Neo4j Connection. * * password to connect to the Atlas. @@ -657,6 +663,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * username to connect to the Amundsen Neo4j Connection. * * username to connect to the Atlas. This user should have privileges to read all the @@ -1339,6 +1348,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * basic.auth.user.info schema registry config property, Client HTTP credentials in the form * of username:password. @@ -3981,6 +4000,7 @@ export enum ConfigType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SharePoint = "SharePoint", Sigma = "Sigma", SingleStore = "SingleStore", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts index 163dcd79426..a1ddefbf641 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts @@ -270,6 +270,8 @@ export interface DatabaseConnection { * SSAS Metadata Database Connection Config * * Epic FHIR Connection Config + * + * ServiceNow Connection Config */ export interface ConfigObject { /** @@ -349,6 +351,8 @@ export interface ConfigObject { * Host and port of the Azure Synapse service. * * Host and port of the Cockrooach service. + * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) */ hostPort?: string; sampleDataStorageConfig?: SampleDataStorageConfig; @@ -530,6 +534,8 @@ export interface ConfigObject { * Password to connect to Exasol. * * Password + * + * Password to connect to ServiceNow. */ password?: string; /** @@ -621,6 +627,9 @@ export interface ConfigObject { * metadata in Cockroach. * * Username + * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. */ username?: string; /** @@ -972,6 +981,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; [property: string]: any; } @@ -2116,6 +2135,7 @@ export enum ConfigType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", @@ -2237,6 +2257,7 @@ export enum DatabaseServiceType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SingleStore = "SingleStore", Snowflake = "Snowflake", Ssas = "SSAS", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts index 8692f001ddb..59089675d9c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts @@ -2887,6 +2887,8 @@ export interface ServiceConnection { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Kafka Connection Config * * Redpanda Connection Config @@ -3167,6 +3169,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: * bolt://localhost:7687. * @@ -3254,6 +3258,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * password to connect to the Amundsen Neo4j Connection. * * password to connect to the Atlas. @@ -3361,6 +3367,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * username to connect to the Amundsen Neo4j Connection. * * username to connect to the Atlas. This user should have privileges to read all the @@ -4043,6 +4052,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * basic.auth.user.info schema registry config property, Client HTTP credentials in the form * of username:password. @@ -6334,6 +6353,7 @@ export enum PurpleType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SharePoint = "SharePoint", Sigma = "Sigma", SingleStore = "SingleStore", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts index c32740a6a70..ec4f55fb0e6 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts @@ -227,6 +227,8 @@ export interface ServiceConnection { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Kafka Connection Config * * Redpanda Connection Config @@ -507,6 +509,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: * bolt://localhost:7687. * @@ -594,6 +598,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * password to connect to the Amundsen Neo4j Connection. * * password to connect to the Atlas. @@ -701,6 +707,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * username to connect to the Amundsen Neo4j Connection. * * username to connect to the Atlas. This user should have privileges to read all the @@ -1383,6 +1392,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * basic.auth.user.info schema registry config property, Client HTTP credentials in the form * of username:password. @@ -4025,6 +4044,7 @@ export enum ConfigType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SharePoint = "SharePoint", Sigma = "Sigma", SingleStore = "SingleStore", diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts index a50098ba62b..200fd2c7258 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts @@ -263,6 +263,8 @@ export interface ServiceConnection { * * Epic FHIR Connection Config * + * ServiceNow Connection Config + * * Kafka Connection Config * * Redpanda Connection Config @@ -543,6 +545,8 @@ export interface ConfigObject { * * Host and port of the Cockrooach service. * + * ServiceNow instance URL (e.g., https://your-instance.service-now.com) + * * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: * bolt://localhost:7687. * @@ -630,6 +634,8 @@ export interface ConfigObject { * * Password * + * Password to connect to ServiceNow. + * * password to connect to the Amundsen Neo4j Connection. * * password to connect to the Atlas. @@ -737,6 +743,9 @@ export interface ConfigObject { * * Username * + * Username to connect to ServiceNow. This user should have read access to sys_db_object and + * sys_dictionary tables. + * * username to connect to the Amundsen Neo4j Connection. * * username to connect to the Atlas. This user should have privileges to read all the @@ -1419,6 +1428,16 @@ export interface ConfigObject { * FHIR specification version (R4, STU3, DSTU2) */ fhirVersion?: FHIRVersion; + /** + * If true, ServiceNow application scopes will be imported as database schemas. Otherwise, a + * single default schema will be used. + */ + includeScopes?: boolean; + /** + * If true, both admin and system tables (sys_* tables) will be fetched. If false, only + * admin tables will be fetched. + */ + includeSystemTables?: boolean; /** * basic.auth.user.info schema registry config property, Client HTTP credentials in the form * of username:password. @@ -4082,6 +4101,7 @@ export enum PurpleType { Salesforce = "Salesforce", SapERP = "SapErp", SapHana = "SapHana", + ServiceNow = "ServiceNow", SharePoint = "SharePoint", Sigma = "Sigma", SingleStore = "SingleStore",