diff --git a/src/assets/img/snowflake.png b/src/assets/img/snowflake.png new file mode 100644 index 000000000..643f1e295 Binary files /dev/null and b/src/assets/img/snowflake.png differ diff --git a/src/hooks/Rule/bridge/useBridgeTypeValue.ts b/src/hooks/Rule/bridge/useBridgeTypeValue.ts index d45f0495c..e03cc97db 100644 --- a/src/hooks/Rule/bridge/useBridgeTypeValue.ts +++ b/src/hooks/Rule/bridge/useBridgeTypeValue.ts @@ -99,6 +99,7 @@ export const useBridgeTypeValue = (): { { value: BridgeType.AzureBlobStorage, label: 'Azure Blob Storage' }, { value: BridgeType.Couchbase, label: 'Couchbase' }, { value: BridgeType.Datalayers, label: 'Datalayers' }, + { value: BridgeType.Snowflake, label: 'Snowflake' }, ].sort((a, b) => (bridgeOrderIndex[a.value] ?? 99) - (bridgeOrderIndex[b.value] ?? 99)) /** @@ -329,6 +330,7 @@ export const useConnectorSchema = (): { [BridgeType.Pulsar, getRef(BridgeType.Pulsar, '', 'post')], [BridgeType.AzureBlobStorage, getRef(BridgeType.AzureBlobStorage, 'connector_')], [BridgeType.Couchbase, getRef(BridgeType.Couchbase, 'connector_')], + [BridgeType.Snowflake, getRef(BridgeType.Snowflake, 'connector_')], ]) const typeWithMultipleRefKeyMap: Map> = new Map([ @@ -386,6 +388,7 @@ export const useActionSchema = (): { [BridgeType.Pulsar, getRef(BridgeType.Pulsar, '')], [BridgeType.AzureBlobStorage, getRef(BridgeType.AzureBlobStorage, 'action_')], [BridgeType.Couchbase, getRef(BridgeType.Couchbase, 'action_')], + [BridgeType.Snowflake, getRef(BridgeType.Snowflake, 'action_')], ]) const getSchemaRefByType = (type: string) => { const ref = specialActionTypeRefKeyMap.get(type) diff --git a/src/hooks/Rule/bridge/useSchemaBridgePropsLayout.ts b/src/hooks/Rule/bridge/useSchemaBridgePropsLayout.ts index 606848c1b..a1b2444c7 100644 --- a/src/hooks/Rule/bridge/useSchemaBridgePropsLayout.ts +++ b/src/hooks/Rule/bridge/useSchemaBridgePropsLayout.ts @@ -111,6 +111,13 @@ export default ( 'buffer.memory_overload_protection', ]) + const snowflakeAdvancedProps = getPathArrInParameters([ + 'pool_size', + 'connect_timeout', + 'pipelining', + 'max_retries', + ]) + const kafkaProducerPropsOrderMap = { ...createOrderObj( getPathArrInParameters([ @@ -290,6 +297,25 @@ export default ( ], fieldStartIndex, ), + [BridgeType.Snowflake]: createOrderObj( + [ + ...getPathArrInParameters([ + 'database', + 'schema', + 'stage', + 'pipe', + 'pipe_user', + 'private_key', + ]), + 'container', + 'type', + 'column_order', + 'max_records', + 'time_interval', + ...pulsarAdvancedProps, + ], + fieldStartIndex, + ), } const propsOrderMap = computed(() => { @@ -339,6 +365,7 @@ export default ( [BridgeType.HStream]: HStreamAdvancedProps, [BridgeType.Pulsar]: pulsarAdvancedProps, [BridgeType.S3]: getPathArrInParameters(['headers', 'min_part_size', 'max_part_size']), + [BridgeType.Snowflake]: snowflakeAdvancedProps, } const advancedFields = computed(() => { diff --git a/src/types/enum.ts b/src/types/enum.ts index d4dd098c7..e3090f498 100644 --- a/src/types/enum.ts +++ b/src/types/enum.ts @@ -143,6 +143,7 @@ export enum BridgeType { AzureBlobStorage = 'azure_blob_storage', Couchbase = 'couchbase', Datalayers = 'datalayers', + Snowflake = 'snowflake' } export enum PulsarType {