{
    "name": "Snowflake JWT Connector",
    "connector_type": "snowflake_jwt",
    "base_url": "https://{{account_name}}.snowflakecomputing.com",
    "auth_type": "26",
    "throttle_max_requests": 10,
    "throttle_per_seconds": 10,
    "media_type": "14",
    "grant_type": "1",
    "application": "25",
    "config": {
        "client_id": "",
        "username": "",
        "client_secret": "",
        "redirect_url": "",
        "scope": "",
        "token_secret": "",
        "send_credentials_via": "5",
        "send_token_via": "8",
        "auth_endpoint": "",
        "access_token_url": "",
        "revoke_token_url": "",
        "resource_url": "",
        "valid_domains": "",
        "headers": [
            {
                "key": "X-Snowflake-Authorization-Token-Type",
                "value": "KEYPAIR_JWT"
            },
            {
                "key": "User-Agent",
                "value": "SuiteX-Connector/1.0"
            }
        ],
        "requestBody": [
            {
                "key": "grant_type",
                "value": "client_credentials"
            }
        ],
        "consumer_key": "",
        "consumer_secret": "",
        "access_token": "",
        "signature_method": "",
        "realm": "",
        "include_body_hash": "",
        "add_empty_params": "",
        "encode_params": ""
    },
    "pagination_options": {
        "enabled": true,
        "modes": [
            {
                "type": "snowflake_partition",
                "name": "Partition-Based (Recommended)",
                "description": "Uses Snowflake's native partitionInfo for efficient pagination via Statements API",
                "fields": [
                    {
                        "key": "partitionInfoPath",
                        "label": "Partition Info Path",
                        "type": "text",
                        "default": "resultSetMetaData.partitionInfo",
                        "required": false,
                        "description": "Path to partitionInfo in response (default: resultSetMetaData.partitionInfo)"
                    },
                    {
                        "key": "statementHandlePath",
                        "label": "Statement Handle Path",
                        "type": "text",
                        "default": "statementHandle",
                        "required": false,
                        "description": "Path to statement handle in response (default: statementHandle)"
                    },
                    {
                        "key": "dataPath",
                        "label": "Data Path",
                        "type": "text",
                        "default": "data",
                        "required": false,
                        "description": "Path to data array in response (default: data)"
                    }
                ]
            },
            {
                "type": "keyset_pagination",
                "name": "Keyset + Limit",
                "description": "Deterministic pagination using key fields with WHERE clauses. Ideal for ordered, incremental loads",
                "fields": [
                    {
                        "key": "keyFields",
                        "label": "Key Field(s)",
                        "type": "text",
                        "placeholder": "CHECK_NO (or CHECK_NO,CREATED_AT for composite)",
                        "required": true,
                        "description": "Comma-separated list of field names to use for keyset pagination"
                    },
                    {
                        "key": "direction",
                        "label": "Sort Direction",
                        "type": "select",
                        "options": ["ASC", "DESC"],
                        "default": "ASC",
                        "required": true,
                        "description": "Sort direction for key fields"
                    },
                    {
                        "key": "limit",
                        "label": "Limit per Page",
                        "type": "number",
                        "default": 100,
                        "required": true,
                        "description": "Number of rows to fetch per page"
                    },
                    {
                        "key": "dataPath",
                        "label": "Data Path",
                        "type": "text",
                        "default": "data",
                        "required": false,
                        "description": "Path to data array in response"
                    }
                ]
            },
            {
                "type": "generic",
                "name": "Offset + Limit (Simple)",
                "description": "Standard SQL offset pagination. Simple but can be inefficient for large offsets",
                "fields": [
                    {
                        "key": "limitParam",
                        "label": "Limit Parameter Name",
                        "type": "text",
                        "default": "limit",
                        "required": true,
                        "description": "Name of the limit parameter in the query"
                    },
                    {
                        "key": "offsetParam",
                        "label": "Offset Parameter Name",
                        "type": "text",
                        "default": "offset",
                        "required": false,
                        "description": "Name of the offset parameter in the query"
                    },
                    {
                        "key": "countField",
                        "label": "Count Field Path",
                        "type": "text",
                        "placeholder": "data.count",
                        "required": false,
                        "description": "Path to current page count in response"
                    },
                    {
                        "key": "offsetField",
                        "label": "Offset Field Path",
                        "type": "text",
                        "placeholder": "data.offset",
                        "required": false,
                        "description": "Path to current offset in response"
                    },
                    {
                        "key": "totalField",
                        "label": "Total Field Path",
                        "type": "text",
                        "placeholder": "data.total",
                        "required": false,
                        "description": "Path to total count in response (optional)"
                    }
                ]
            }
        ]
    }
}
