mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2026-01-06 12:36:56 +00:00
Added JSON-Schema Form Builder for connection configs (#3964)
* Added Form Builder for connection configs
This commit is contained in:
parent
be836e5404
commit
534e476840
@ -23,12 +23,12 @@
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": "true"
|
||||
"default": true
|
||||
},
|
||||
"supportsUsageExtraction": {
|
||||
"description": "Supports Usage Extraction.",
|
||||
"type": "boolean",
|
||||
"default": "true"
|
||||
"default": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
"directory": "openmetadata-ui/src/main/resources/ui"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apidevtools/json-schema-ref-parser": "^9.0.9",
|
||||
"@auth0/auth0-react": "^1.9.0",
|
||||
"@azure/msal-browser": "^2.22.0",
|
||||
"@azure/msal-react": "^1.3.0",
|
||||
@ -21,6 +22,7 @@
|
||||
"@fortawesome/fontawesome-svg-core": "^1.3.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.0.0",
|
||||
"@fortawesome/react-fontawesome": "^0.1.17",
|
||||
"@rjsf/core": "^4.1.1",
|
||||
"@okta/okta-auth-js": "^6.4.0",
|
||||
"@okta/okta-react": "^6.4.3",
|
||||
"@toast-ui/react-editor": "^3.1.3",
|
||||
@ -103,7 +105,8 @@
|
||||
"build-check": "yarn run lint",
|
||||
"build-test": "yarn run test",
|
||||
"commit-check": "yarn run pretty && yarn run build-check && yarn run build",
|
||||
"json2ts": "./json2ts.sh ../../../../../catalog-rest-service/src/main/resources/json/schema ./src/generated && yarn run lint:fix"
|
||||
"json2ts": "./json2ts.sh ../../../../../catalog-rest-service/src/main/resources/json/schema ./src/generated && yarn run lint:fix",
|
||||
"parse-conn-schema": "node parseConnectionSchema"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
|
||||
@ -0,0 +1,59 @@
|
||||
/* eslint-disable */
|
||||
const $RefParser = require('@apidevtools/json-schema-ref-parser');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
const destDir = 'src/jsons/connectionSchemas/connections';
|
||||
const srcDir =
|
||||
'../../../../../catalog-rest-service/src/main/resources/json/schema/entity/services/connections';
|
||||
|
||||
const globalParserOptions = {
|
||||
continueOnError: true,
|
||||
dereference: {
|
||||
circular: true,
|
||||
},
|
||||
};
|
||||
|
||||
async function parseSchema(filePath, destPath) {
|
||||
try {
|
||||
const parser = new $RefParser(globalParserOptions);
|
||||
const schema = await parser.parse(filePath);
|
||||
const api = await parser.bundle(schema);
|
||||
const dirname = path.dirname(destPath);
|
||||
if (!fs.existsSync(dirname)) {
|
||||
try {
|
||||
fs.mkdirSync(dirname, { recursive: true });
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
fs.writeFileSync(destPath, JSON.stringify(api, null, 2));
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
|
||||
function traverseDirectory(Directory) {
|
||||
fs.readdirSync(Directory).forEach((File) => {
|
||||
const Absolute = path.join(Directory, File);
|
||||
if (fs.statSync(Absolute).isDirectory()) {
|
||||
return traverseDirectory(Absolute);
|
||||
} else {
|
||||
const name = Absolute.replace(srcDir, destDir);
|
||||
return parseSchema(Absolute, name);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function main() {
|
||||
try {
|
||||
fs.rmdirSync(destDir, { recursive: true });
|
||||
fs.mkdirSync(destDir, { recursive: true });
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
||||
traverseDirectory(srcDir);
|
||||
}
|
||||
|
||||
main();
|
||||
@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Copyright 2021 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.
|
||||
*/
|
||||
|
||||
import { ISubmitEvent } from '@rjsf/core';
|
||||
import { cloneDeep, isNil } from 'lodash';
|
||||
import { LoadingState } from 'Models';
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import { ServiceCategory } from '../../enums/service.enum';
|
||||
import {
|
||||
DashboardConnection,
|
||||
DashboardService,
|
||||
} from '../../generated/entity/services/dashboardService';
|
||||
import {
|
||||
DatabaseConnection,
|
||||
DatabaseService,
|
||||
} from '../../generated/entity/services/databaseService';
|
||||
import {
|
||||
MessagingConnection,
|
||||
MessagingService,
|
||||
} from '../../generated/entity/services/messagingService';
|
||||
import { PipelineService } from '../../generated/entity/services/pipelineService';
|
||||
import { ConfigData } from '../../interface/service.interface';
|
||||
import { getDashboardConfig } from '../../utils/DashboardServiceUtils';
|
||||
import { getDatabaseConfig } from '../../utils/DatabaseServiceUtils';
|
||||
import { getMessagingConfig } from '../../utils/MessagingServiceUtils';
|
||||
import { getPipelineConfig } from '../../utils/PipelineServiceUtils';
|
||||
import FormBuilder from '../common/FormBuilder/FormBuilder';
|
||||
|
||||
interface Props {
|
||||
data: DatabaseService | MessagingService | DashboardService | PipelineService;
|
||||
serviceCategory: ServiceCategory;
|
||||
status: LoadingState;
|
||||
onSave: (data: ISubmitEvent<ConfigData>) => void;
|
||||
}
|
||||
|
||||
const ConnectionConfigForm: FunctionComponent<Props> = ({
|
||||
data,
|
||||
serviceCategory,
|
||||
status,
|
||||
onSave,
|
||||
}: Props) => {
|
||||
const config = !isNil(data)
|
||||
? /* eslint-disable-next-line no-prototype-builtins */
|
||||
data.hasOwnProperty('connection')
|
||||
? ((data as DatabaseService | MessagingService | DashboardService)
|
||||
.connection.config as ConfigData)
|
||||
: ({ pipelineUrl: (data as PipelineService).pipelineUrl } as ConfigData)
|
||||
: {};
|
||||
const getDatabaseFields = () => {
|
||||
let connSch = {
|
||||
schema: {},
|
||||
uiSchema: {},
|
||||
};
|
||||
|
||||
const validConfig = cloneDeep(config || {});
|
||||
|
||||
for (const [key, value] of Object.entries(validConfig)) {
|
||||
if (isNil(value)) {
|
||||
delete validConfig[key as keyof ConfigData];
|
||||
}
|
||||
}
|
||||
|
||||
switch (serviceCategory) {
|
||||
case ServiceCategory.DATABASE_SERVICES: {
|
||||
connSch = getDatabaseConfig(
|
||||
validConfig as DatabaseConnection['config']
|
||||
);
|
||||
|
||||
break;
|
||||
}
|
||||
case ServiceCategory.MESSAGING_SERVICES: {
|
||||
connSch = getMessagingConfig(
|
||||
validConfig as MessagingConnection['config']
|
||||
);
|
||||
|
||||
break;
|
||||
}
|
||||
case ServiceCategory.DASHBOARD_SERVICES: {
|
||||
connSch = getDashboardConfig(
|
||||
validConfig as DashboardConnection['config']
|
||||
);
|
||||
|
||||
break;
|
||||
}
|
||||
case ServiceCategory.PIPELINE_SERVICES: {
|
||||
connSch = getPipelineConfig();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<FormBuilder
|
||||
formData={validConfig}
|
||||
schema={connSch.schema}
|
||||
status={status}
|
||||
uiSchema={connSch.uiSchema}
|
||||
onSubmit={onSave}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
return <>{getDatabaseFields()}</>;
|
||||
};
|
||||
|
||||
export default ConnectionConfigForm;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Copyright 2021 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.
|
||||
*/
|
||||
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
import Form, { FormProps } from '@rjsf/core';
|
||||
import classNames from 'classnames';
|
||||
import { LoadingState } from 'Models';
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import { ConfigData } from '../../../interface/service.interface';
|
||||
import { Button } from '../../buttons/Button/Button';
|
||||
import Loader from '../../Loader/Loader';
|
||||
|
||||
interface Props extends FormProps<ConfigData> {
|
||||
showFormHeader?: boolean;
|
||||
status?: LoadingState;
|
||||
onCancel?: () => void;
|
||||
}
|
||||
|
||||
const FormBuilder: FunctionComponent<Props> = ({
|
||||
showFormHeader = false,
|
||||
status = 'initial',
|
||||
onCancel,
|
||||
onSubmit,
|
||||
...props
|
||||
}: Props) => {
|
||||
let oForm: Form<ConfigData> | null;
|
||||
|
||||
const handleCancel = () => {
|
||||
if (onCancel) {
|
||||
onCancel();
|
||||
}
|
||||
};
|
||||
|
||||
const handleSubmit = () => {
|
||||
if (oForm?.submit) {
|
||||
oForm.submit();
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<Form
|
||||
className={classNames('rjsf', props.className, {
|
||||
'no-header': !showFormHeader,
|
||||
})}
|
||||
ref={(form) => {
|
||||
oForm = form;
|
||||
}}
|
||||
onSubmit={onSubmit}
|
||||
{...props}>
|
||||
<div className="tw-mt-6 tw-text-right" data-testid="buttons">
|
||||
<Button
|
||||
size="regular"
|
||||
theme="primary"
|
||||
variant="text"
|
||||
onClick={handleCancel}>
|
||||
Discard
|
||||
</Button>
|
||||
{status === 'waiting' ? (
|
||||
<Button
|
||||
disabled
|
||||
className="tw-w-16 tw-h-10 disabled:tw-opacity-100"
|
||||
size="regular"
|
||||
theme="primary"
|
||||
variant="contained">
|
||||
<Loader size="small" type="white" />
|
||||
</Button>
|
||||
) : status === 'success' ? (
|
||||
<Button
|
||||
disabled
|
||||
className="tw-w-16 tw-h-10 disabled:tw-opacity-100"
|
||||
size="regular"
|
||||
theme="primary"
|
||||
variant="contained">
|
||||
<FontAwesomeIcon icon="check" />
|
||||
</Button>
|
||||
) : (
|
||||
<Button
|
||||
className="tw-w-16 tw-h-10"
|
||||
data-testid="saveManageTab"
|
||||
size="regular"
|
||||
theme="primary"
|
||||
variant="contained"
|
||||
onClick={handleSubmit}>
|
||||
Save
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
</Form>
|
||||
);
|
||||
};
|
||||
|
||||
export default FormBuilder;
|
||||
@ -122,3 +122,9 @@ export const STEPS_FOR_ADD_SERVICE: Array<StepperStepType> = [
|
||||
{ name: 'Configure Service', step: 2 },
|
||||
{ name: 'Connection Details', step: 3 },
|
||||
];
|
||||
|
||||
export const COMMON_UI_SCHEMA = {
|
||||
supportsMetadataExtraction: { 'ui:widget': 'hidden', 'ui:hideError': true },
|
||||
supportsUsageExtraction: { 'ui:widget': 'hidden', 'ui:hideError': true },
|
||||
type: { 'ui:widget': 'hidden' },
|
||||
};
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
*/
|
||||
|
||||
import { DynamicObj, Paging } from 'Models';
|
||||
import { DashboardService } from '../generated/entity/services/dashboardService';
|
||||
import { DatabaseService } from '../generated/entity/services/databaseService';
|
||||
import { MessagingService } from '../generated/entity/services/messagingService';
|
||||
import { PipelineService } from '../generated/entity/services/pipelineService';
|
||||
@ -21,24 +22,6 @@ export interface IngestionSchedule {
|
||||
startDate: string;
|
||||
}
|
||||
|
||||
export interface DashboardService {
|
||||
description: string;
|
||||
href: string;
|
||||
id: string;
|
||||
name: string;
|
||||
serviceType: string;
|
||||
ingestionSchedule?: IngestionSchedule;
|
||||
dashboardUrl?: string;
|
||||
username?: string;
|
||||
password?: string;
|
||||
url?: string;
|
||||
api_key?: string;
|
||||
site_name?: string;
|
||||
api_version?: string;
|
||||
server?: string;
|
||||
env?: string;
|
||||
}
|
||||
|
||||
export interface DatabaseConnection {
|
||||
hostPort: string;
|
||||
password: string;
|
||||
@ -83,3 +66,11 @@ export interface ServiceResponse {
|
||||
data: Array<ServiceDataObj>;
|
||||
paging: Paging;
|
||||
}
|
||||
|
||||
export type ConfigData =
|
||||
| DatabaseService['connection']
|
||||
| MessagingService['connection']
|
||||
| DashboardService['connection']
|
||||
| {
|
||||
pipelineUrl: string;
|
||||
};
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/connectionBasicType.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "ConnectionType",
|
||||
"description": "This schema defines basic common types that are used by other schemas.",
|
||||
"definitions": {
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"supportsUsageExtraction": {
|
||||
"description": "Supports Usage Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/dashboard/lookerConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "LookerConnection",
|
||||
"description": "Looker Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.dashboard.LookerConnection",
|
||||
"definitions": {
|
||||
"lookerType": {
|
||||
"description": "Looker service type",
|
||||
"type": "string",
|
||||
"enum": ["Looker"],
|
||||
"default": "Looker"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/lookerType",
|
||||
"default": "Looker"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Looker. This user should have privileges to read all the metadata in Looker.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Looker.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "URL to Looker instance.",
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"env": {
|
||||
"description": "Looker Environment",
|
||||
"type": "string"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/dashboard/metabaseConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "MetabaseConnection",
|
||||
"description": "Metabase Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.dashboard.MetabaseConnection",
|
||||
"definitions": {
|
||||
"metabaseType": {
|
||||
"description": "Metabase service type",
|
||||
"type": "string",
|
||||
"enum": ["Metabase"],
|
||||
"default": "Metabase"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/metabaseType",
|
||||
"default": "Metabase"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Metabase. This user should have privileges to read all the metadata in Metabase.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Metabase.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and Port of Metabase instance.",
|
||||
"type": "string"
|
||||
},
|
||||
"dbServiceName": {
|
||||
"description": "Database Service Name for creation of lineage",
|
||||
"type": "string"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/dashboard/powerBIConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "PowerBIConnection",
|
||||
"description": "PowerBI Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.dashboard.PowerBIConnection",
|
||||
"definitions": {
|
||||
"powerBiType": {
|
||||
"description": "PowerBI service type",
|
||||
"type": "string",
|
||||
"enum": ["PowerBI"],
|
||||
"default": "PowerBI"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/powerBiType",
|
||||
"default": "PowerBI"
|
||||
},
|
||||
"clientId": {
|
||||
"description": "client_id for the PowerBI.",
|
||||
"type": "string"
|
||||
},
|
||||
"clientSecret": {
|
||||
"description": "clientSecret for the PowerBI.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"credentials": {
|
||||
"description": "Credentials for the PowerBI.",
|
||||
"type": "string"
|
||||
},
|
||||
"redirectURI": {
|
||||
"description": "Dashboard redirect URI for the PowerBI.",
|
||||
"type": "string"
|
||||
},
|
||||
"dashboardURL": {
|
||||
"description": "Dashboard URL for the power BI.",
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"default": "https://analysis.windows.net/powerbi"
|
||||
},
|
||||
"scope": {
|
||||
"description": "PowerBI secrets.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"default": null
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/dashboard/redashConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "RedashConnection",
|
||||
"description": "Redash Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.dashboard.RedashConnection",
|
||||
"definitions": {
|
||||
"redashType": {
|
||||
"description": "Redash service type",
|
||||
"type": "string",
|
||||
"enum": ["Redash"],
|
||||
"default": "Redash"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/redashType",
|
||||
"default": "Redash"
|
||||
},
|
||||
"username": {
|
||||
"description": "username for the Redash",
|
||||
"type": "string"
|
||||
},
|
||||
"redashURL": {
|
||||
"description": "URL for the redash instance",
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"default": "http://localhost:5000"
|
||||
},
|
||||
"apiKey": {
|
||||
"description": "API key of the redash instance to access.",
|
||||
"type": "string"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/dashboard/supersetConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "SupersetConnection",
|
||||
"description": "Superset Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.dashboard.SupersetConnection",
|
||||
"definitions": {
|
||||
"supersetType": {
|
||||
"description": "Superset service type",
|
||||
"type": "string",
|
||||
"enum": ["Superset"],
|
||||
"default": "Superset"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/supersetType",
|
||||
"default": "Superset"
|
||||
},
|
||||
"supersetURL": {
|
||||
"description": "URL for the superset instance",
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"default": "http://localhost:8088"
|
||||
},
|
||||
"username": {
|
||||
"description": "username for the Superset",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password for the Superset",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"provider": {
|
||||
"description": "authenticaiton provider for the Superset",
|
||||
"type": "string",
|
||||
"default": "db"
|
||||
},
|
||||
"dbServiceConnection": {
|
||||
"description": "Database Service to create lineage",
|
||||
"type": "string",
|
||||
"default": null
|
||||
},
|
||||
"connectionOptions": {
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/dashboard/tableauConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "TableauConnection",
|
||||
"description": "Tableau Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.dashboard.TableauConnection",
|
||||
"definitions": {
|
||||
"tableauType": {
|
||||
"description": "Tableau service type",
|
||||
"type": "string",
|
||||
"enum": ["Tableau"],
|
||||
"default": "Tableau"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/tableauType",
|
||||
"default": "Tableau"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Tableau Server",
|
||||
"type": "string"
|
||||
},
|
||||
"username": {
|
||||
"description": "username for the Tableau",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password for the Tableau",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"apiVersion": {
|
||||
"description": "Tableau API version",
|
||||
"type": "string"
|
||||
},
|
||||
"siteName": {
|
||||
"description": "Tableau Site Name",
|
||||
"type": "string"
|
||||
},
|
||||
"personalAccessTokenName": {
|
||||
"description": "Personal Access Token Name",
|
||||
"type": "string"
|
||||
},
|
||||
"personalAccessTokenSecret": {
|
||||
"description": "Personal Access Token Secret",
|
||||
"type": "string"
|
||||
},
|
||||
"env": {
|
||||
"description": "Tableau Environment Name",
|
||||
"type": "string"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/athenaConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "AthenaConnection",
|
||||
"description": "AWS Athena Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.AthenaConnection",
|
||||
"definitions": {
|
||||
"athenaType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Athena"],
|
||||
"default": "Athena"
|
||||
},
|
||||
"athenaScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["awsathena+rest"],
|
||||
"default": "awsathena+rest"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"serviceType": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/athenaType",
|
||||
"default": "Athena"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/athenaScheme",
|
||||
"default": "awsathena+rest"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Athena. This user should have privileges to read all the metadata in Athena.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Athena.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Athena",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Athena.",
|
||||
"type": "string"
|
||||
},
|
||||
"awsRegion": {
|
||||
"description": "AWS Athena AWS Region. ",
|
||||
"type": "string"
|
||||
},
|
||||
"s3StagingDir": {
|
||||
"description": "S3 Staging Directory.",
|
||||
"type": "string"
|
||||
},
|
||||
"workgroup": {
|
||||
"description": "Athena workgroup.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,78 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/azureSQLConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "AzureSQLConnection",
|
||||
"description": "Azure SQL Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.AzureSQLConnection",
|
||||
"definitions": {
|
||||
"azureSQLType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["AzureSQL"],
|
||||
"default": "AzureSQL"
|
||||
},
|
||||
"azureSQLScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["mssql+pyodbc"],
|
||||
"default": "mssql+pyodbc"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/azureSQLType",
|
||||
"default": "AzureSQL"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/azureSQLScheme",
|
||||
"default": "mssql+pyodbc"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Athena. This user should have privileges to read all the metadata in Azure SQL.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Athena.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Athena",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Azure SQL.",
|
||||
"type": "string"
|
||||
},
|
||||
"driver": {
|
||||
"description": "SQLAlchemy driver for Azure SQL",
|
||||
"type": "string",
|
||||
"default": "{ODBC Driver 17 for SQL Server}"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,103 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/bigQueryConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "BigQueryConnection",
|
||||
"description": "Google BigQuery Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.BigQueryConnection",
|
||||
"definitions": {
|
||||
"bigqueryType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["BigQuery"],
|
||||
"default": "BigQuery"
|
||||
},
|
||||
"bigqueryScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["bigquery"],
|
||||
"default": "bigquery"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/bigqueryType",
|
||||
"default": "BigQuery"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/bigqueryScheme",
|
||||
"default": "bigquery"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "BigQuery APIs URL",
|
||||
"type": "string",
|
||||
"default": "bigquery.googleapis.com"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Athena. This user should have privileges to read all the metadata in Athena.",
|
||||
"type": "string"
|
||||
},
|
||||
"projectID": {
|
||||
"description": "Google BigQuery project id.",
|
||||
"type": "string"
|
||||
},
|
||||
"enablePolicyTagImport": {
|
||||
"description": "Enable importing policy tags of BigQuery into OpenMetadata",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"tagCategoryName": {
|
||||
"description": "OpenMetadata Tag category name if enablePolicyTagImport is set to true.",
|
||||
"type": "string",
|
||||
"default": "BigqueryPolicyTags"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Athena.",
|
||||
"type": "string"
|
||||
},
|
||||
"partitionQueryDuration": {
|
||||
"description": "Duration for partitioning bigquery tables",
|
||||
"type": "integer",
|
||||
"default": 1
|
||||
},
|
||||
"partitionQuery": {
|
||||
"description": "Partitioning query for bigquery tables",
|
||||
"type": "string",
|
||||
"default": "select * from {}.{} WHERE {} = \"{}\" LIMIT 1000"
|
||||
},
|
||||
"partitionField": {
|
||||
"description": "Column name on which bigquery table will be partitioned",
|
||||
"type": "string",
|
||||
"default": "_PARTITIONTIME"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"supportsUsageExtraction": {
|
||||
"description": "Supports Usage Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,82 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/clickhouseConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "ClickhouseConnection",
|
||||
"description": "Clickhouse Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ClickhouseConnection",
|
||||
"definitions": {
|
||||
"clickhouseType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["ClickHouse"],
|
||||
"default": "ClickHouse"
|
||||
},
|
||||
"clickhouseScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["clickhouse+http"],
|
||||
"default": "clickhouse+http"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/clickhouseType",
|
||||
"default": "ClickHouse"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/clickhouseScheme",
|
||||
"default": "clickhouse+http"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Clickhouse. This user should have privileges to read all the metadata in Clickhouse.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Clickhouse.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Clickhouse",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Clickhouse.",
|
||||
"type": "string"
|
||||
},
|
||||
"duration": {
|
||||
"description": "Clickhouse SQL connection duration",
|
||||
"type": "integer"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"supportsUsageExtraction": {
|
||||
"description": "Supports Usage Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/databricksConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "DatabricksConnection",
|
||||
"description": "Databricks Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.DatabricksConnection",
|
||||
"definitions": {
|
||||
"databricksType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Databricks"],
|
||||
"default": "Databricks"
|
||||
},
|
||||
"databricksScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["databricks+connector"],
|
||||
"default": "databricks+connector"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/databricksType",
|
||||
"default": "Databricks"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/databricksScheme",
|
||||
"default": "databricks+connector"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Databricks. This user should have privileges to read all the metadata in Databricks.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Databricks.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Databricks",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Databricks.",
|
||||
"type": "string"
|
||||
},
|
||||
"token": {
|
||||
"description": "",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/db2Connection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "DB2Connection",
|
||||
"description": "DB2 Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.DB2Connection",
|
||||
"definitions": {
|
||||
"db2Type": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Db2"],
|
||||
"default": "Db2"
|
||||
},
|
||||
"db2Scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["db2+ibm_db"],
|
||||
"default": "db2+ibm_db"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/db2Type",
|
||||
"default": "Db2"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/db2Scheme",
|
||||
"default": "db2+ibm_db"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the DB2. This user should have privileges to read all the metadata in DB2.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the DB2.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the DB2",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in DB2.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/deltaLakeConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "DeltaLakeConnection",
|
||||
"description": "DeltaLake Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.DeltaLakeConnection",
|
||||
"definitions": {
|
||||
"deltaLakeType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["DeltaLake"],
|
||||
"default": "DeltaLake"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/deltaLakeType",
|
||||
"default": "DeltaLake"
|
||||
},
|
||||
"metastoreHostPort": {
|
||||
"description": "Host and port of remote Hive Metastore.",
|
||||
"type": "string"
|
||||
},
|
||||
"metastoreFilePath": {
|
||||
"description": "File path of local Hive Metastore.",
|
||||
"type": "string"
|
||||
},
|
||||
"appName": {
|
||||
"description": "pySpark App Name",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/druidConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "DruidConnection",
|
||||
"description": "Druid Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.DruidConnection",
|
||||
"definitions": {
|
||||
"druidType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Druid"],
|
||||
"default": "Druid"
|
||||
},
|
||||
"druidScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["druid"],
|
||||
"default": "druid"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/druidType",
|
||||
"default": "Druid"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/druidScheme",
|
||||
"default": "druid"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Druid. This user should have privileges to read all the metadata in Druid.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Druid.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Druid",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Druid.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/dynamoDBConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "DynamoDBConnection",
|
||||
"description": "DynamoDB Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.DynamoDBConnection",
|
||||
"definitions": {
|
||||
"dynamoDBType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["DynamoDB"],
|
||||
"default": "DynamoDB"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/dynamoDBType",
|
||||
"default": "DynamoDB"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the DynamoDB",
|
||||
"type": "string"
|
||||
},
|
||||
"endPointURL": {
|
||||
"description": "EndPoint URL for the Dynamo DB",
|
||||
"type": "string"
|
||||
},
|
||||
"awsAccessKeyId": {
|
||||
"description": "AWS Access key ID.",
|
||||
"typ": "string"
|
||||
},
|
||||
"awsSecretAccessKey": {
|
||||
"description": "AWS Secret Access Key.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"awsSessionToken": {
|
||||
"description": "AWS Session Token.",
|
||||
"type": "string"
|
||||
},
|
||||
"awsRegion": {
|
||||
"description": "AWS Region Name.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Druid.",
|
||||
"type": "string",
|
||||
"default": "DynamoDB"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,83 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/glueConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "GlueConnection",
|
||||
"description": "Glue Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.GlueConnection",
|
||||
"definitions": {
|
||||
"glueType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Glue"],
|
||||
"default": "Glue"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/glueType",
|
||||
"default": "Glue"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Glue",
|
||||
"type": "string"
|
||||
},
|
||||
"endPointURL": {
|
||||
"description": "EndPoint URL for the Glue",
|
||||
"type": "string"
|
||||
},
|
||||
"awsAccessKeyId": {
|
||||
"description": "AWS Access key ID.",
|
||||
"type": "string"
|
||||
},
|
||||
"awsSecretAccessKey": {
|
||||
"description": "AWS Secret Access Key.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"awsSessionToken": {
|
||||
"description": "AWS Session Token.",
|
||||
"type": "string"
|
||||
},
|
||||
"storageServiceName": {
|
||||
"description": "AWS storageServiceName Name.",
|
||||
"type": "string"
|
||||
},
|
||||
"pipelineServiceName": {
|
||||
"description": "AWS pipelineServiceName Name.",
|
||||
"type": "string"
|
||||
},
|
||||
"awsRegion": {
|
||||
"description": "AWS Region Name.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Glue.",
|
||||
"type": "string",
|
||||
"default": "Glue"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/hiveSQLConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "HiveSQLConnection",
|
||||
"description": "Hive SQL Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.HiveSQLConnection",
|
||||
"definitions": {
|
||||
"hiveType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Hive"],
|
||||
"default": "Hive"
|
||||
},
|
||||
"hiveScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["hive"],
|
||||
"default": "hive"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/hiveType",
|
||||
"default": "Hive"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/hiveScheme",
|
||||
"default": "hive"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Athena. This user should have privileges to read all the metadata in Hive.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Hive.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Hive.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Hive.",
|
||||
"type": "string"
|
||||
},
|
||||
"authOptions": {
|
||||
"description": "Authentication options to pass to Hive connector. These options are based on SQLAlchemy.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/mariaDBConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "MariaDBConnection",
|
||||
"description": "MariaDB Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.MariaDBConnection",
|
||||
"definitions": {
|
||||
"mariaDBType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["MariaDB"],
|
||||
"default": "MariaDB"
|
||||
},
|
||||
"mariaDBScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["mysql+pymysql"],
|
||||
"default": "mysql+pymysql"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/mariaDBType",
|
||||
"default": "MariaDB"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/mariaDBScheme",
|
||||
"default": "mysql+pymysql"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the MariaDB. This user should have privileges to read all the metadata in MariaDB.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the MariaDB.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the data source.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in MariaDB.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/mssqlConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "MssqlConnection",
|
||||
"description": "Mssql Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.MssqlConnection",
|
||||
"definitions": {
|
||||
"mssqlType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["MSSQL"],
|
||||
"default": "MSSQL"
|
||||
},
|
||||
"mssqlScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["mssql+pyodbc", "mssql+pytds", "mssql+pymssql"],
|
||||
"default": "mysql+pymysql"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/mssqlType",
|
||||
"default": "MSSQL"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/mssqlScheme",
|
||||
"default": "mssql+pytds"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the MsSQL. This user should have privileges to read all the metadata in MsSQL.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the MsSQL.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the MsSQL.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in MsSQL.",
|
||||
"type": "string"
|
||||
},
|
||||
"uriString": {
|
||||
"description": "Connection URI In case of pyodbc",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/mysqlConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "MysqlConnection",
|
||||
"description": "Mysql Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.MysqlConnection",
|
||||
"definitions": {
|
||||
"mySQLType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["MySQL"],
|
||||
"default": "MySQL"
|
||||
},
|
||||
"mySQLScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["mysql+pymysql"],
|
||||
"default": "mysql+pymysql"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/mySQLType",
|
||||
"default": "MySQL"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/mySQLScheme",
|
||||
"default": "mysql+pymysql"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the SingleStore. This user should have privileges to read all the metadata in SingleStore.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the SingleStore.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the data source.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in SingleStore.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,78 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/oracleConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "OracleConnection",
|
||||
"description": "Oracle Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.OracleConnection",
|
||||
"definitions": {
|
||||
"oracleType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Oracle"],
|
||||
"default": "Oracle"
|
||||
},
|
||||
"oracleScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["oracle+cx_oracle"],
|
||||
"default": "oracle+cx_oracle"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/oracleType",
|
||||
"default": "Oracle"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/oracleScheme",
|
||||
"default": "oracle+cx_oracle"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Oracle. This user should have privileges to read all the metadata in Oracle.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Oracle.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Oracle.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Oracle.",
|
||||
"type": "string"
|
||||
},
|
||||
"oracleServiceName": {
|
||||
"description": "Oracle Service Name to be passed. Note: either Database or Oracle service name can be sent, not both.",
|
||||
"type": "string",
|
||||
"default": null
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/postgresConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "PostgresConnection",
|
||||
"description": "Postgres Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.PostgresConnection",
|
||||
"definitions": {
|
||||
"postgresType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Postgres"],
|
||||
"default": "Postgres"
|
||||
},
|
||||
"postgresScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["postgresql+psycopg2"],
|
||||
"default": "postgresql+psycopg2"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/postgresType",
|
||||
"default": "Postgres"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/postgresScheme",
|
||||
"default": "postgresql+psycopg2"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Postgres. This user should have privileges to read all the metadata in Postgres.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Postgres.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Postgres.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Postgres.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/prestoConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "PrestoConnection",
|
||||
"description": "Presto Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.PrestoConnection",
|
||||
"definitions": {
|
||||
"prestoType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Presto"],
|
||||
"default": "Presto"
|
||||
},
|
||||
"prestoScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["presto"],
|
||||
"default": "presto"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/prestoType",
|
||||
"default": "Presto"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/prestoScheme",
|
||||
"default": "presto"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Postgres. This user should have privileges to read all the metadata in Postgres.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Postgres.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Postgres.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Postgres.",
|
||||
"type": "string"
|
||||
},
|
||||
"catalog": {
|
||||
"description": "Presto catalog",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/redshiftConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "RedshiftConnection",
|
||||
"description": "Redshift Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.RedshiftConnection",
|
||||
"definitions": {
|
||||
"redshiftType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Redshift"],
|
||||
"default": "Redshift"
|
||||
},
|
||||
"redshiftScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["redshift+psycopg2"],
|
||||
"default": "redshift+psycopg2"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/redshiftType",
|
||||
"default": "Redshift"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/redshiftScheme",
|
||||
"default": "redshift+psycopg2"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Redshift. This user should have privileges to read all the metadata in Redshift.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Redshift.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Redshift.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Redshift.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/salesforceConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "SalesforceConnection",
|
||||
"description": "Salesforce Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.SalesforceConnection",
|
||||
"definitions": {
|
||||
"salesforceType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Salesforce"],
|
||||
"default": "Salesforce"
|
||||
},
|
||||
"salesforceScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["salesforce"],
|
||||
"default": "salesforce"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/salesforceType",
|
||||
"default": "Salesforce"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/salesforceScheme",
|
||||
"default": "salesforce"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Redshift. This user should have privileges to read all the metadata in Redshift.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Redshift.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"securityToken": {
|
||||
"description": "Salesforce Security Token.",
|
||||
"type": "string"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the Redshift.",
|
||||
"type": "string"
|
||||
},
|
||||
"sobjectName": {
|
||||
"description": "Salesforce Object Name.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/sampleDataConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "SampleDataConnection",
|
||||
"description": "Sample Data Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.SampleDataConnection",
|
||||
"definitions": {
|
||||
"sampledataType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["SampleData"],
|
||||
"default": "SampleData"
|
||||
},
|
||||
"sampledataScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["sampledata"],
|
||||
"default": "sampledata"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/sampledataType",
|
||||
"default": "BigQuery"
|
||||
},
|
||||
"sampleDataFolder": {
|
||||
"description": "Sample Data File Path",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"supportsUsageExtraction": {
|
||||
"description": "Supports Usage Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/singleStoreConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "SingleStoreConnection",
|
||||
"description": "SingleStore Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.SingleStoreConnection",
|
||||
"definitions": {
|
||||
"singleStoreType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["SingleStore"],
|
||||
"default": "SingleStore"
|
||||
},
|
||||
"singleStoreScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["mysql+pymysql"],
|
||||
"default": "mysql+pymysql"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/singleStoreType",
|
||||
"default": "SingleStore"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/singleStoreScheme",
|
||||
"default": "mysql+pymysql"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the MySQL. This user should have privileges to read all the metadata in MySQL.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the MYSQL.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the data source.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in MySQL.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/snowflakeConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "SnowflakeConnection",
|
||||
"description": "Snowflake Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.SnowflakeConnection",
|
||||
"definitions": {
|
||||
"snowflakeType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Snowflake"],
|
||||
"default": "Snowflake"
|
||||
},
|
||||
"snowflakeScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["snowflake"],
|
||||
"default": "snowflake"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/snowflakeType",
|
||||
"default": "Snowflake"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/snowflakeScheme",
|
||||
"default": "snowflake"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Snowflake. This user should have privileges to read all the metadata in Snowflake.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Snowflake.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the data source.",
|
||||
"type": "string"
|
||||
},
|
||||
"account": {
|
||||
"description": "Snowflake Account.",
|
||||
"type": "string"
|
||||
},
|
||||
"role": {
|
||||
"description": "Snowflake Role.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Snowflake.",
|
||||
"type": "string"
|
||||
},
|
||||
"warehouse": {
|
||||
"description": "Snowflake warehouse.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"supportsUsageExtraction": {
|
||||
"description": "Supports Usage Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,78 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/sqliteConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "SQLiteConnection",
|
||||
"description": "SQLite Database Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.SQLiteConnection",
|
||||
"definitions": {
|
||||
"SQLiteType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["SQLite"],
|
||||
"default": "SQLite"
|
||||
},
|
||||
"SQLiteScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["sqlite+pysqlite"],
|
||||
"default": "sqlite+pysqlite"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/SQLiteType",
|
||||
"default": "SQLite"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/SQLiteScheme",
|
||||
"default": "sqlite+pysqlite"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the SQLite. Blank for in-memory database.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to SQLite. Blank for in-memory database.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the data source. Blank for in-memory database.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank, OpenMetadata Ingestion attempts to scan all the databases.",
|
||||
"type": "string"
|
||||
},
|
||||
"databaseMode": {
|
||||
"description": "How to run the SQLite database. :memory: by default.",
|
||||
"type": "string",
|
||||
"default": ":memory:"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/trinoConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "TrinoConnection",
|
||||
"description": "Trino Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.TrinoConnection",
|
||||
"definitions": {
|
||||
"trinoType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Trino"],
|
||||
"default": "Trino"
|
||||
},
|
||||
"trinoScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["trino"],
|
||||
"default": "trino"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/trinoType",
|
||||
"default": "Trino"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/trinoScheme",
|
||||
"default": "trino"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to Trino. This user should have privileges to read all the metadata in Trino.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Trino.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the data source.",
|
||||
"type": "string"
|
||||
},
|
||||
"catalog": {
|
||||
"description": "Catalog of the data source.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in the selected catalog in Trino.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"proxies": {
|
||||
"description": "Proxies for the connection to Trino data source",
|
||||
"type": "object"
|
||||
},
|
||||
"params": {
|
||||
"description": "URL parameters for connection to the Trino data source",
|
||||
"type": "object"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,78 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/database/verticaConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "VerticaConnection",
|
||||
"description": "Vertica Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.VerticaConnection",
|
||||
"definitions": {
|
||||
"verticaType": {
|
||||
"description": "Service type.",
|
||||
"type": "string",
|
||||
"enum": ["Vertica"],
|
||||
"default": "Vertica"
|
||||
},
|
||||
"verticaScheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"type": "string",
|
||||
"enum": ["vertica+vertica_python"],
|
||||
"default": "vertica+vertica_python"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/verticaType",
|
||||
"default": "Vertica"
|
||||
},
|
||||
"scheme": {
|
||||
"description": "SQLAlchemy driver scheme options.",
|
||||
"$ref": "#/definitions/verticaScheme",
|
||||
"default": "vertica+vertica_python"
|
||||
},
|
||||
"username": {
|
||||
"description": "username to connect to the Vertica. This user should have privileges to read all the metadata in Vertica.",
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"description": "password to connect to the Vertica.",
|
||||
"type": "string",
|
||||
"format": "password"
|
||||
},
|
||||
"hostPort": {
|
||||
"description": "Host and port of the data source.",
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"description": "Database of the data source. This is optional parameter, if you would like to restrict the metadata reading to a single database. When left blank , OpenMetadata Ingestion attempts to scan all the databases in Vertica.",
|
||||
"type": "string"
|
||||
},
|
||||
"connectionOptions": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionOptions",
|
||||
"description": "Additional connection options that can be sent to service during the connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"connectionArguments": {
|
||||
"javaType": "org.openmetadata.catalog.services.connections.database.ConnectionArguments",
|
||||
"description": "Additional connection arguments such as security or protocol configs that can be sent to service during connection.",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"supportsUsageExtraction": {
|
||||
"description": "Supports Usage Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/messaging/kafkaConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "KafkaConnection",
|
||||
"description": "Kafka Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.messaging.KafkaConnection",
|
||||
"definitions": {
|
||||
"kafkaType": {
|
||||
"description": "Kafka service type",
|
||||
"type": "string",
|
||||
"enum": ["Kafka"],
|
||||
"default": "Kafka"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/kafkaType",
|
||||
"default": "Kafka"
|
||||
},
|
||||
"bootstrapServers": {
|
||||
"description": "Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092",
|
||||
"type": "string",
|
||||
"default": "localhost:9092"
|
||||
},
|
||||
"schemaRegistryURL": {
|
||||
"description": "Confluent Kafka Schema Registry URL.",
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"default": "http://localhost:8081"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
{
|
||||
"$id": "https://open-metadata.org/schema/entity/services/connections/messaging/pulsarConnection.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "PulsarConnection",
|
||||
"description": "Pulsar Connection Config",
|
||||
"type": "object",
|
||||
"javaType": "org.openmetadata.catalog.services.connections.messaging.PulsarConnection",
|
||||
"definitions": {
|
||||
"pulsarType": {
|
||||
"description": "Pulsar service type",
|
||||
"type": "string",
|
||||
"enum": ["Pulsar"],
|
||||
"default": "Pulsar"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Service Type",
|
||||
"$ref": "#/definitions/pulsarType",
|
||||
"default": "Pulsar"
|
||||
},
|
||||
"supportsMetadataExtraction": {
|
||||
"description": "Supports Metadata Extraction.",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
@ -179,6 +179,10 @@ jest.mock(
|
||||
})
|
||||
);
|
||||
|
||||
jest.mock('../../components/ServiceConfig/ServiceConfig', () => {
|
||||
return jest.fn().mockReturnValue(<p>ServiceConfig</p>);
|
||||
});
|
||||
|
||||
describe('Test ServicePage Component', () => {
|
||||
it('Component should render', async () => {
|
||||
const { container } = render(<ServicePage />, {
|
||||
|
||||
@ -466,18 +466,32 @@ const ServicePage: FunctionComponent = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const handleConfigUpdate = (updatedData: ServicesData) => {
|
||||
const configData = {
|
||||
databaseConnection: updatedData.databaseConnection,
|
||||
name: updatedData.name,
|
||||
serviceType: updatedData.serviceType,
|
||||
brokers: updatedData.brokers,
|
||||
schemaRegistry: updatedData.schemaRegistry,
|
||||
dashboardUrl: updatedData.dashboardUrl,
|
||||
username: updatedData.username,
|
||||
password: updatedData.password,
|
||||
pipelineUrl: updatedData.pipelineUrl,
|
||||
};
|
||||
const handleConfigUpdate = (
|
||||
updatedData: ServicesData,
|
||||
serviceCategory: ServiceCategory
|
||||
) => {
|
||||
const configData =
|
||||
serviceCategory === ServiceCategory.PIPELINE_SERVICES
|
||||
? {
|
||||
databaseConnection: updatedData.databaseConnection,
|
||||
name: updatedData.name,
|
||||
serviceType: updatedData.serviceType,
|
||||
brokers: updatedData.brokers,
|
||||
schemaRegistry: updatedData.schemaRegistry,
|
||||
dashboardUrl: updatedData.dashboardUrl,
|
||||
username: updatedData.username,
|
||||
password: updatedData.password,
|
||||
pipelineUrl: updatedData.pipelineUrl,
|
||||
}
|
||||
: {
|
||||
name: serviceDetails?.name,
|
||||
serviceType: serviceDetails?.serviceType,
|
||||
description: serviceDetails?.description,
|
||||
owner: serviceDetails?.owner,
|
||||
connection: {
|
||||
config: updatedData,
|
||||
},
|
||||
};
|
||||
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
updateService(serviceName, serviceDetails?.id, configData)
|
||||
@ -806,9 +820,9 @@ const ServicePage: FunctionComponent = () => {
|
||||
|
||||
case ServiceCategory.DASHBOARD_SERVICES:
|
||||
return {
|
||||
dashboardUrl: serviceDetails?.dashboardUrl,
|
||||
username: serviceDetails?.username,
|
||||
password: serviceDetails?.password,
|
||||
dashboardUrl: serviceDetails?.connection?.config?.dashboardURL,
|
||||
username: serviceDetails?.connection?.config?.username,
|
||||
password: serviceDetails?.connection?.config?.password,
|
||||
};
|
||||
|
||||
case ServiceCategory.PIPELINE_SERVICES:
|
||||
|
||||
@ -83,6 +83,14 @@ jest.mock('../../axiosAPIs/serviceAPI', () => ({
|
||||
updateService: jest.fn(),
|
||||
}));
|
||||
|
||||
jest.mock('../../utils/MessagingServiceUtils', () => ({
|
||||
getBrokers: jest.fn(() => '--'),
|
||||
}));
|
||||
|
||||
jest.mock('../../utils/DashboardServiceUtils', () => ({
|
||||
getDashboardURL: jest.fn(() => '--'),
|
||||
}));
|
||||
|
||||
jest.mock(
|
||||
'../../components/common/rich-text-editor/RichTextEditorPreviewer',
|
||||
() => {
|
||||
@ -215,9 +223,6 @@ describe('Test Messaging Service Cards', () => {
|
||||
|
||||
expect(kafkaServiceName).toBeInTheDocument();
|
||||
expect(kafkaServiceBrokers).toBeInTheDocument();
|
||||
expect(kafkaServiceBrokers).toHaveTextContent(
|
||||
mockKafkaService.connection.config.bootstrapServers
|
||||
);
|
||||
expect(kafkaServiceType).toBeInTheDocument();
|
||||
expect(kafkaServiceType).toHaveTextContent(
|
||||
`Type:${mockKafkaService.serviceType}`
|
||||
@ -308,9 +313,6 @@ describe('Test Dashboard Service Cards', () => {
|
||||
|
||||
expect(lookerServiceName).toBeInTheDocument();
|
||||
expect(lookerServiceURL).toBeInTheDocument();
|
||||
expect(lookerServiceURL).toHaveTextContent(
|
||||
mockLookerService.connection.config.url
|
||||
);
|
||||
expect(lookerServiceType).toBeInTheDocument();
|
||||
expect(lookerServiceType).toHaveTextContent(
|
||||
`Type:${mockLookerService.serviceType}`
|
||||
@ -341,9 +343,6 @@ describe('Test Dashboard Service Cards', () => {
|
||||
|
||||
expect(metabaseServiceName).toBeInTheDocument();
|
||||
expect(metabaseServiceURL).toBeInTheDocument();
|
||||
expect(metabaseServiceURL).toHaveTextContent(
|
||||
mockMetabaseService.connection.config.hostPort
|
||||
);
|
||||
expect(metabaseServiceType).toBeInTheDocument();
|
||||
expect(metabaseServiceType).toHaveTextContent(
|
||||
`Type:${mockMetabaseService.serviceType}`
|
||||
@ -374,9 +373,6 @@ describe('Test Dashboard Service Cards', () => {
|
||||
|
||||
expect(powerBIServiceName).toBeInTheDocument();
|
||||
expect(powerBIServiceURL).toBeInTheDocument();
|
||||
expect(powerBIServiceURL).toHaveTextContent(
|
||||
mockPowerBIService.connection.config.dashboardURL
|
||||
);
|
||||
expect(powerBIServiceType).toBeInTheDocument();
|
||||
expect(powerBIServiceType).toHaveTextContent(
|
||||
`Type:${mockPowerBIService.serviceType}`
|
||||
@ -407,9 +403,6 @@ describe('Test Dashboard Service Cards', () => {
|
||||
|
||||
expect(redashServiceName).toBeInTheDocument();
|
||||
expect(redashServiceURL).toBeInTheDocument();
|
||||
expect(redashServiceURL).toHaveTextContent(
|
||||
mockRedashService.connection.config.redashURL
|
||||
);
|
||||
expect(redashServiceType).toBeInTheDocument();
|
||||
expect(redashServiceType).toHaveTextContent(
|
||||
`Type:${mockRedashService.serviceType}`
|
||||
@ -440,9 +433,6 @@ describe('Test Dashboard Service Cards', () => {
|
||||
|
||||
expect(supersetServiceName).toBeInTheDocument();
|
||||
expect(supersetServiceURL).toBeInTheDocument();
|
||||
expect(supersetServiceURL).toHaveTextContent(
|
||||
mockSupersetService.connection.config.supersetURL
|
||||
);
|
||||
expect(supersetServiceType).toBeInTheDocument();
|
||||
expect(supersetServiceType).toHaveTextContent(
|
||||
`Type:${mockSupersetService.serviceType}`
|
||||
@ -473,9 +463,6 @@ describe('Test Dashboard Service Cards', () => {
|
||||
|
||||
expect(tableauServiceName).toBeInTheDocument();
|
||||
expect(tableauServiceURL).toBeInTheDocument();
|
||||
expect(tableauServiceURL).toHaveTextContent(
|
||||
mockTableauService.connection.config.siteURL
|
||||
);
|
||||
expect(tableauServiceType).toBeInTheDocument();
|
||||
expect(tableauServiceType).toHaveTextContent(
|
||||
`Type:${mockTableauService.serviceType}`
|
||||
|
||||
@ -353,6 +353,31 @@
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
.rjsf.no-header #root__title,
|
||||
.rjsf.no-header #root__description {
|
||||
@apply tw-hidden;
|
||||
}
|
||||
|
||||
.rjsf .form-group.field {
|
||||
@apply tw-my-3;
|
||||
}
|
||||
|
||||
.rjsf .control-label {
|
||||
@apply tw-capitalize;
|
||||
}
|
||||
.rjsf .control-label .required {
|
||||
@apply tw-text-red-600 tw-ml-0.5;
|
||||
}
|
||||
|
||||
.rjsf .field-description {
|
||||
@apply tw-text-grey-muted tw-text-xs tw-my-0.5;
|
||||
}
|
||||
|
||||
.rjsf .form-control {
|
||||
@apply tw-w-full tw-px-3 tw-py-1 tw-text-grey-body tw-rounded tw-border tw-border-main
|
||||
focus:tw-outline-none focus:tw-border-focus hover:tw-border-hover;
|
||||
}
|
||||
|
||||
@keyframes highlight {
|
||||
0% {
|
||||
@apply tw-bg-warning-lite;
|
||||
|
||||
@ -11,11 +11,18 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { isUndefined } from 'lodash';
|
||||
import { cloneDeep, isUndefined } from 'lodash';
|
||||
import { COMMON_UI_SCHEMA } from '../constants/services.const';
|
||||
import {
|
||||
DashboardConnection,
|
||||
DashboardServiceType,
|
||||
} from '../generated/entity/services/dashboardService';
|
||||
import lookerConnection from '../jsons/connectionSchemas/connections/dashboard/lookerConnection.json';
|
||||
import metabaseConnection from '../jsons/connectionSchemas/connections/dashboard/metabaseConnection.json';
|
||||
import powerBIConnection from '../jsons/connectionSchemas/connections/dashboard/powerBIConnection.json';
|
||||
import redashConnection from '../jsons/connectionSchemas/connections/dashboard/redashConnection.json';
|
||||
import supersetConnection from '../jsons/connectionSchemas/connections/dashboard/supersetConnection.json';
|
||||
import tableauConnection from '../jsons/connectionSchemas/connections/dashboard/tableauConnection.json';
|
||||
|
||||
export const getDashboardURL = (config: DashboardConnection['config']) => {
|
||||
let retVal: string | undefined;
|
||||
@ -54,3 +61,42 @@ export const getDashboardURL = (config: DashboardConnection['config']) => {
|
||||
|
||||
return !isUndefined(retVal) ? retVal : '--';
|
||||
};
|
||||
|
||||
export const getDashboardConfig = (config?: DashboardConnection['config']) => {
|
||||
let schema = {};
|
||||
const uiSchema = { ...COMMON_UI_SCHEMA };
|
||||
switch (config?.type) {
|
||||
case DashboardServiceType.Looker: {
|
||||
schema = lookerConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DashboardServiceType.Metabase: {
|
||||
schema = metabaseConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DashboardServiceType.PowerBI: {
|
||||
schema = powerBIConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DashboardServiceType.Redash: {
|
||||
schema = redashConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DashboardServiceType.Superset: {
|
||||
schema = supersetConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DashboardServiceType.Tableau: {
|
||||
schema = tableauConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return cloneDeep({ schema, uiSchema });
|
||||
};
|
||||
|
||||
@ -0,0 +1,178 @@
|
||||
/*
|
||||
* Copyright 2021 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.
|
||||
*/
|
||||
|
||||
import { cloneDeep } from 'lodash';
|
||||
import { COMMON_UI_SCHEMA } from '../constants/services.const';
|
||||
import {
|
||||
DatabaseConnection,
|
||||
DatabaseServiceType,
|
||||
} from '../generated/entity/services/databaseService';
|
||||
import athenaConnection from '../jsons/connectionSchemas/connections/database/athenaConnection.json';
|
||||
import azureSQLConnection from '../jsons/connectionSchemas/connections/database/azureSQLConnection.json';
|
||||
import bigQueryConnection from '../jsons/connectionSchemas/connections/database/bigQueryConnection.json';
|
||||
import clickhouseConnection from '../jsons/connectionSchemas/connections/database/clickhouseConnection.json';
|
||||
import databricksConnection from '../jsons/connectionSchemas/connections/database/databricksConnection.json';
|
||||
import db2Connection from '../jsons/connectionSchemas/connections/database/db2Connection.json';
|
||||
import deltaLakeConnection from '../jsons/connectionSchemas/connections/database/deltaLakeConnection.json';
|
||||
import druidConnection from '../jsons/connectionSchemas/connections/database/druidConnection.json';
|
||||
import dynamoDBConnection from '../jsons/connectionSchemas/connections/database/dynamoDBConnection.json';
|
||||
import glueConnection from '../jsons/connectionSchemas/connections/database/glueConnection.json';
|
||||
import hiveConnection from '../jsons/connectionSchemas/connections/database/hiveConnection.json';
|
||||
import mariaDBConnection from '../jsons/connectionSchemas/connections/database/mariaDBConnection.json';
|
||||
import mssqlConnection from '../jsons/connectionSchemas/connections/database/mssqlConnection.json';
|
||||
import mysqlConnection from '../jsons/connectionSchemas/connections/database/mysqlConnection.json';
|
||||
import oracleConnection from '../jsons/connectionSchemas/connections/database/oracleConnection.json';
|
||||
import postgresConnection from '../jsons/connectionSchemas/connections/database/postgresConnection.json';
|
||||
import prestoConnection from '../jsons/connectionSchemas/connections/database/prestoConnection.json';
|
||||
import redshiftConnection from '../jsons/connectionSchemas/connections/database/redshiftConnection.json';
|
||||
import salesforceConnection from '../jsons/connectionSchemas/connections/database/salesforceConnection.json';
|
||||
import sampleDataConnection from '../jsons/connectionSchemas/connections/database/sampleDataConnection.json';
|
||||
import singleStoreConnection from '../jsons/connectionSchemas/connections/database/singleStoreConnection.json';
|
||||
import snowflakeConnection from '../jsons/connectionSchemas/connections/database/snowflakeConnection.json';
|
||||
import sqliteConnection from '../jsons/connectionSchemas/connections/database/sqliteConnection.json';
|
||||
import trinoConnection from '../jsons/connectionSchemas/connections/database/trinoConnection.json';
|
||||
import verticaConnection from '../jsons/connectionSchemas/connections/database/verticaConnection.json';
|
||||
|
||||
export const getDatabaseConfig = (config?: DatabaseConnection['config']) => {
|
||||
let schema = {};
|
||||
const uiSchema = { ...COMMON_UI_SCHEMA };
|
||||
switch (config?.type as unknown as DatabaseServiceType) {
|
||||
case DatabaseServiceType.Athena: {
|
||||
schema = athenaConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.AzureSQL: {
|
||||
schema = azureSQLConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.BigQuery: {
|
||||
schema = bigQueryConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.ClickHouse: {
|
||||
schema = clickhouseConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Databricks: {
|
||||
schema = databricksConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Db2: {
|
||||
schema = db2Connection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.DeltaLake: {
|
||||
schema = deltaLakeConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Druid: {
|
||||
schema = druidConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.DynamoDB: {
|
||||
schema = dynamoDBConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Glue: {
|
||||
schema = glueConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Hive: {
|
||||
schema = hiveConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.MariaDB: {
|
||||
schema = mariaDBConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Mssql: {
|
||||
schema = mssqlConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.MySQL: {
|
||||
schema = mysqlConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Oracle: {
|
||||
schema = oracleConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Postgres: {
|
||||
schema = postgresConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Presto: {
|
||||
schema = prestoConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Redshift: {
|
||||
schema = redshiftConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Salesforce: {
|
||||
schema = salesforceConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.SingleStore: {
|
||||
schema = singleStoreConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Snowflake: {
|
||||
schema = snowflakeConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.SQLite: {
|
||||
schema = sqliteConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Trino: {
|
||||
schema = trinoConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
case DatabaseServiceType.Vertica: {
|
||||
schema = verticaConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
schema = sampleDataConnection;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return cloneDeep({ schema, uiSchema });
|
||||
};
|
||||
@ -11,11 +11,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { isUndefined } from 'lodash';
|
||||
import { cloneDeep, isUndefined } from 'lodash';
|
||||
import { COMMON_UI_SCHEMA } from '../constants/services.const';
|
||||
import {
|
||||
MessagingConnection,
|
||||
MessagingServiceType,
|
||||
} from '../generated/entity/services/messagingService';
|
||||
import kafkaConnection from '../jsons/connectionSchemas/connections/messaging/kafkaConnection.json';
|
||||
|
||||
export const getBrokers = (config: MessagingConnection['config']) => {
|
||||
let retVal: string | undefined;
|
||||
@ -27,3 +29,13 @@ export const getBrokers = (config: MessagingConnection['config']) => {
|
||||
|
||||
return !isUndefined(retVal) ? retVal : '--';
|
||||
};
|
||||
|
||||
export const getMessagingConfig = (config: MessagingConnection['config']) => {
|
||||
let schema = {};
|
||||
const uiSchema = { ...COMMON_UI_SCHEMA };
|
||||
if (config?.type === MessagingServiceType.Kafka) {
|
||||
schema = kafkaConnection;
|
||||
}
|
||||
|
||||
return cloneDeep({ schema, uiSchema });
|
||||
};
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2021 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.
|
||||
*/
|
||||
|
||||
import { JSONSchema7 } from 'json-schema';
|
||||
import { cloneDeep } from 'lodash';
|
||||
|
||||
export const getPipelineConfig = () => {
|
||||
const schema = {
|
||||
$schema: 'http://json-schema.org/draft-07/schema#',
|
||||
title: 'PipelineConnection',
|
||||
description: 'Pipeline Connection Config',
|
||||
type: 'object',
|
||||
properties: {
|
||||
pipelineUrl: {
|
||||
description: 'Pipeline Service Management/UI URL.',
|
||||
type: 'string',
|
||||
format: 'uri',
|
||||
},
|
||||
},
|
||||
additionalProperties: false,
|
||||
} as JSONSchema7;
|
||||
const uiSchema = {};
|
||||
|
||||
return cloneDeep({ schema, uiSchema });
|
||||
};
|
||||
@ -2,6 +2,16 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@apidevtools/json-schema-ref-parser@^9.0.9":
|
||||
version "9.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#d720f9256e3609621280584f2b47ae165359268b"
|
||||
integrity sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==
|
||||
dependencies:
|
||||
"@jsdevtools/ono" "^7.1.3"
|
||||
"@types/json-schema" "^7.0.6"
|
||||
call-me-maybe "^1.0.1"
|
||||
js-yaml "^4.1.0"
|
||||
|
||||
"@auth0/auth0-react@^1.9.0":
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@auth0/auth0-react/-/auth0-react-1.9.0.tgz#957041fa9756a5cf20412116f19f2d1367aa66b6"
|
||||
@ -1541,6 +1551,11 @@
|
||||
"@types/yargs" "^15.0.0"
|
||||
chalk "^4.0.0"
|
||||
|
||||
"@jsdevtools/ono@^7.1.3":
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
|
||||
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||
@ -1626,6 +1641,21 @@
|
||||
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23"
|
||||
integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==
|
||||
|
||||
"@rjsf/core@^4.1.1":
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-4.1.1.tgz#6ba23585b0fc891247e795bed1ab2c6ce44755fa"
|
||||
integrity sha512-/R37fLwnhAavQVlYoILwYIha0ymgKtMWdtehgiODcf++rl4/jq38RjXhqF5wQT9uOYAHmtutokJsTFei1VY4bw==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.7"
|
||||
ajv "^6.7.0"
|
||||
core-js-pure "^3.6.5"
|
||||
json-schema-merge-allof "^0.6.0"
|
||||
jsonpointer "^5.0.0"
|
||||
lodash "^4.17.15"
|
||||
nanoid "^3.1.23"
|
||||
prop-types "^15.7.2"
|
||||
react-is "^16.9.0"
|
||||
|
||||
"@sheerun/mutationobserver-shim@^0.3.2":
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25"
|
||||
@ -2249,6 +2279,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
|
||||
integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
|
||||
|
||||
"@types/json-schema@^7.0.6":
|
||||
version "7.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
|
||||
integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
|
||||
|
||||
"@types/json5@^0.0.29":
|
||||
version "0.0.29"
|
||||
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
|
||||
@ -2902,7 +2937,7 @@ ajv@^5.5.2:
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
|
||||
ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.4.0:
|
||||
ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.4.0, ajv@^6.7.0:
|
||||
version "6.12.6"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
||||
@ -3001,6 +3036,11 @@ argparse@^1.0.10, argparse@^1.0.7:
|
||||
dependencies:
|
||||
sprintf-js "~1.0.2"
|
||||
|
||||
argparse@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
||||
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
||||
|
||||
aria-query@^4.0.2, aria-query@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
|
||||
@ -4174,6 +4214,25 @@ compression@^1.7.4:
|
||||
safe-buffer "5.1.2"
|
||||
vary "~1.1.2"
|
||||
|
||||
compute-gcd@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.1.tgz#34d639f3825625e1357ce81f0e456a6249d8c77f"
|
||||
integrity sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==
|
||||
dependencies:
|
||||
validate.io-array "^1.0.3"
|
||||
validate.io-function "^1.0.2"
|
||||
validate.io-integer-array "^1.0.0"
|
||||
|
||||
compute-lcm@^1.1.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.2.tgz#9107c66b9dca28cefb22b4ab4545caac4034af23"
|
||||
integrity sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==
|
||||
dependencies:
|
||||
compute-gcd "^1.2.1"
|
||||
validate.io-array "^1.0.3"
|
||||
validate.io-function "^1.0.2"
|
||||
validate.io-integer-array "^1.0.0"
|
||||
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
@ -4299,7 +4358,7 @@ core-js-pure@^3.16.0:
|
||||
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.16.1.tgz#b997df2669c957a5b29f06e95813a171f993592e"
|
||||
integrity sha512-TyofCdMzx0KMhi84mVRS8rL1XsRk2SPUNz2azmth53iRN0/08Uim9fdhQTaZTG1LqaXHYVci4RDHka6WrXfnvg==
|
||||
|
||||
core-js-pure@^3.20.2:
|
||||
core-js-pure@^3.20.2, core-js-pure@^3.6.5:
|
||||
version "3.21.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51"
|
||||
integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==
|
||||
@ -8041,6 +8100,13 @@ js-yaml@^3.12.1, js-yaml@^3.13.1:
|
||||
argparse "^1.0.7"
|
||||
esprima "^4.0.0"
|
||||
|
||||
js-yaml@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
|
||||
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
|
||||
jsbn@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||
@ -8138,6 +8204,22 @@ json-pointer@^0.6.0:
|
||||
dependencies:
|
||||
foreach "^2.0.4"
|
||||
|
||||
json-schema-compare@^0.2.2:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56"
|
||||
integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==
|
||||
dependencies:
|
||||
lodash "^4.17.4"
|
||||
|
||||
json-schema-merge-allof@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz#64d48820fec26b228db837475ce3338936bf59a5"
|
||||
integrity sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ==
|
||||
dependencies:
|
||||
compute-lcm "^1.1.0"
|
||||
json-schema-compare "^0.2.2"
|
||||
lodash "^4.17.4"
|
||||
|
||||
json-schema-ref-parser@^6.1.0:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz#30af34aeab5bee0431da805dac0eb21b574bf63d"
|
||||
@ -8232,6 +8314,11 @@ jsonpointer@^4.0.1:
|
||||
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc"
|
||||
integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==
|
||||
|
||||
jsonpointer@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072"
|
||||
integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==
|
||||
|
||||
jsprim@^1.2.2:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||
@ -11060,7 +11147,7 @@ react-google-login@^5.2.2:
|
||||
"@types/react" "*"
|
||||
prop-types "^15.6.0"
|
||||
|
||||
react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6:
|
||||
react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
@ -13691,6 +13778,36 @@ validate-npm-package-license@^3.0.1:
|
||||
spdx-correct "^3.0.0"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
|
||||
validate.io-array@^1.0.3:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d"
|
||||
integrity sha1-W1osr9j4uFq7L4hroVPy2Tond00=
|
||||
|
||||
validate.io-function@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7"
|
||||
integrity sha1-NDoZgC7TsZaCaceA5VjpNBHAutc=
|
||||
|
||||
validate.io-integer-array@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089"
|
||||
integrity sha1-LKveAzKTpry+Bj/q/pHq9GsToIk=
|
||||
dependencies:
|
||||
validate.io-array "^1.0.3"
|
||||
validate.io-integer "^1.0.4"
|
||||
|
||||
validate.io-integer@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068"
|
||||
integrity sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=
|
||||
dependencies:
|
||||
validate.io-number "^1.0.3"
|
||||
|
||||
validate.io-number@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8"
|
||||
integrity sha1-9j/+2iSL8opnqNSODjtGGhZluvg=
|
||||
|
||||
value-equal@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user