Kong · Schema
PartialVectordb
API GatewayAI GatewayAI ConnectivityAgent GatewayEvent GatewayMCP RegistryService MeshLLMKafkaKonnectOpen Source
Properties
| Name | Type | Description |
|---|---|---|
| config | object | |
| created_at | integer | Unix epoch when the resource was created. |
| id | string | A string representing a UUID (universally unique identifier). |
| name | string | A unique string representing a UTF-8 encoded name. |
| tags | array | A set of strings representing tags. |
| type | string | |
| updated_at | integer | Unix epoch when the resource was last updated. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/PartialVectordb",
"title": "PartialVectordb",
"type": "object",
"properties": {
"config": {
"type": "object",
"properties": {
"dimensions": {
"description": "the desired dimensionality for the vectors",
"type": "integer"
},
"distance_metric": {
"description": "the distance metric to use for vector searches",
"type": "string",
"enum": [
"cosine",
"euclidean"
]
},
"pgvector": {
"type": "object",
"properties": {
"database": {
"description": "the database of the pgvector database",
"type": "string",
"default": "kong-pgvector"
},
"host": {
"description": "the host of the pgvector database",
"type": "string",
"default": "127.0.0.1"
},
"password": {
"description": "the password of the pgvector database",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"port": {
"description": "the port of the pgvector database",
"type": "integer",
"default": 5432
},
"ssl": {
"description": "whether to use ssl for the pgvector database",
"type": "boolean",
"default": false
},
"ssl_cert": {
"description": "the path of ssl cert to use for the pgvector database",
"type": "string"
},
"ssl_cert_key": {
"description": "the path of ssl cert key to use for the pgvector database",
"type": "string"
},
"ssl_required": {
"description": "whether ssl is required for the pgvector database",
"type": "boolean",
"default": false
},
"ssl_verify": {
"description": "whether to verify ssl for the pgvector database",
"type": "boolean",
"default": true
},
"ssl_version": {
"description": "the ssl version to use for the pgvector database",
"type": "string",
"default": "tlsv1_2",
"enum": [
"any",
"tlsv1_2",
"tlsv1_3"
]
},
"timeout": {
"description": "the timeout of the pgvector database",
"type": "number",
"default": 5000
},
"user": {
"description": "the user of the pgvector database",
"type": "string",
"default": "postgres",
"x-referenceable": true
}
}
},
"redis": {
"type": "object",
"properties": {
"cloud_authentication": {
"description": "Cloud auth related configs for connecting to a Cloud Provider's Redis instance.",
"type": "object",
"properties": {
"auth_provider": {
"description": "Auth providers to be used to authenticate to a Cloud Provider's Redis instance.",
"type": "string",
"enum": [
"aws",
"azure",
"gcp"
],
"x-referenceable": true
},
"aws_access_key_id": {
"description": "AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"aws_assume_role_arn": {
"description": "The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"aws_cache_name": {
"description": "The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`.",
"type": "string",
"x-referenceable": true
},
"aws_is_serverless": {
"description": "This flag specifies whether the cluster is serverless when auth_provider is set to `aws`.",
"type": "boolean",
"default": true
},
"aws_region": {
"description": "The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`.",
"type": "string",
"x-referenceable": true
},
"aws_role_session_name": {
"description": "The session name for the temporary credentials when assuming the IAM role.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"aws_secret_access_key": {
"description": "AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"azure_client_id": {
"description": "Azure Client ID to be used for authentication when `auth_provider` is set to `azure`.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"azure_client_secret": {
"description": "Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"azure_tenant_id": {
"description": "Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"gcp_service_account_json": {
"description": "GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
}
}
},
"cluster_max_redirections": {
"description": "Maximum retry attempts for redirection.",
"type": "integer",
"default": 5
},
"cluster_nodes": {
"description": "Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.",
"type": "array",
"items": {
"properties": {
"ip": {
"description": "A string representing a host name, such as example.com.",
"type": "string",
"default": "127.0.0.1"
},
"port": {
"description": "An integer representing a port number between 0 and 65535, inclusive.",
"type": "integer",
"default": 6379,
"maximum": 65535,
"minimum": 0
}
},
"type": "object"
},
"minLength": 1
},
"connect_timeout": {
"description": "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.",
"type": "integer",
"default": 2000,
"maximum": 2147483646,
"minimum": 0
},
"connection_is_proxied": {
"description": "If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.",
"type": "boolean",
"default": false
},
"database": {
"description": "Database to use for the Redis connection when using the `redis` strategy",
"type": "integer",
"default": 0
},
"host": {
"description": "A string representing a host name, such as example.com.",
"type": "string",
"default": "127.0.0.1",
"x-referenceable": true
},
"keepalive_backlog": {
"description": "Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.",
"type": "integer",
"maximum": 2147483646,
"minimum": 0
},
"keepalive_pool_size": {
"description": "The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.",
"type": "integer",
"default": 256,
"maximum": 2147483646,
"minimum": 1
},
"password": {
"description": "Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"port": {
"description": "An integer representing a port number between 0 and 65535, inclusive.",
"type": "integer",
"default": 6379,
"maximum": 65535,
"minimum": 0,
"x-referenceable": true
},
"read_timeout": {
"description": "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.",
"type": "integer",
"default": 2000,
"maximum": 2147483646,
"minimum": 0
},
"send_timeout": {
"description": "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.",
"type": "integer",
"default": 2000,
"maximum": 2147483646,
"minimum": 0
},
"sentinel_master": {
"description": "Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.",
"type": "string"
},
"sentinel_nodes": {
"description": "Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.",
"type": "array",
"items": {
"properties": {
"host": {
"description": "A string representing a host name, such as example.com.",
"type": "string",
"default": "127.0.0.1"
},
"port": {
"description": "An integer representing a port number between 0 and 65535, inclusive.",
"type": "integer",
"default": 6379,
"maximum": 65535,
"minimum": 0
}
},
"type": "object"
},
"minLength": 1
},
"sentinel_password": {
"description": "Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.",
"type": "string",
"x-encrypted": true,
"x-referenceable": true
},
"sentinel_role": {
"description": "Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.",
"type": "string",
"enum": [
"any",
"master",
"slave"
]
},
"sentinel_username": {
"description": "Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+.",
"type": "string",
"x-referenceable": true
},
"server_name": {
"description": "A string representing an SNI (server name indication) value for TLS.",
"type": "string",
"x-referenceable": true
},
"ssl": {
"description": "If set to true, uses SSL to connect to Redis.",
"type": "boolean",
"default": false
},
"ssl_verify": {
"description": "If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.",
"type": "boolean",
"default": true
},
"username": {
"description": "Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.",
"type": "string",
"x-referenceable": true
}
}
},
"strategy": {
"description": "which vector database driver to use",
"type": "string",
"enum": [
"pgvector",
"redis"
]
},
"threshold": {
"description": "the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar.",
"type": "number"
}
},
"required": [
"dimensions",
"distance_metric",
"strategy"
]
},
"created_at": {
"description": "Unix epoch when the resource was created.",
"type": "integer",
"nullable": true
},
"id": {
"description": "A string representing a UUID (universally unique identifier).",
"type": "string",
"nullable": true
},
"name": {
"description": "A unique string representing a UTF-8 encoded name.",
"type": "string",
"nullable": true
},
"tags": {
"description": "A set of strings representing tags.",
"type": "array",
"items": {
"description": "A string representing a tag.",
"type": "string"
},
"nullable": true
},
"type": {
"type": "string",
"const": "vectordb",
"x-terraform-transform-const": true
},
"updated_at": {
"description": "Unix epoch when the resource was last updated.",
"type": "integer",
"nullable": true
}
},
"example": {
"config": {
"dimensions": 1536,
"distance_metric": "cosine",
"pgvector": {
"database": "kong-pgvector",
"host": "127.0.0.1",
"password": "password",
"port": 5432,
"user": "postgres"
},
"strategy": "pgvector"
},
"type": "vectordb"
},
"additionalProperties": false,
"required": [
"type",
"config"
]
}