Weaviate SchemaCreate

Weaviate SchemaCreate

Certified

Create a Weaviate collection

Creates a collection (class) with the given properties and vectorizer. Fails if the collection already exists, unless skipIfExists is true.

yaml
type: io.kestra.plugin.weaviate.SchemaCreate

Create a collection for objects with precomputed vectors.

yaml
id: create_weaviate_schema
namespace: company.team

tasks:
  - id: schema
    type: io.kestra.plugin.weaviate.SchemaCreate
    url: https://demo-cluster-id.weaviate.cloud
    apiKey: "{{ secret('WEAVIATE_API_KEY') }}"
    className: Movies
    fields:
      name: text
      description: text
      year: int
      genres: text[]

Create a collection vectorized by Weaviate Embeddings, if it does not exist yet.

yaml
id: create_weaviate_collection_vectorizer
namespace: company.team

tasks:
  - id: schema
    type: io.kestra.plugin.weaviate.SchemaCreate
    url: https://demo-cluster-id.weaviate.cloud
    apiKey: "{{ secret('WEAVIATE_API_KEY') }}"
    className: Question
    vectorizer: TEXT2VEC_WEAVIATE
    skipIfExists: true
    fields:
      question: text
      answer: text
      category: text
Installation

Our standard Docker images already include this plugin. If you use a -slim image or another setup, install it with the following command:

kestractl plugins get io.kestra.plugin:plugin-weaviate --compatible-for $KESTRA_VERSION

For kestractl, use your Kestra version with --compatible-for, or specify an exact plugin version.

For Kestra CLI, replace LATEST with a specific version or version range to pin the plugin version.

Properties

Collection (class) name

Min length1

Configure Weaviate endpoint URL

HTTP(S) URL of the Weaviate server, including the port when it is not the scheme default. Without a scheme, https is assumed. Example: http://localhost: 8080 or https://cluster-id.weaviate.cloud. Weaviate Cloud URLs (*.weaviate.cloud, *.weaviate.network) are detected automatically. Requires Weaviate 1.32 or later.

Provide managed cluster API key

Optional API key; required for Weaviate Cloud. If omitted, requests use anonymous access.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Properties to add to the collection

Map of property name to a Weaviate data type: text, int, number, boolean, date, uuid (each also as an array, e.g. text[]), blob, geoCoordinates or phoneNumber. A single-element list is also accepted; the legacy string type maps to text.

Override gRPC host

Host of the Weaviate gRPC endpoint, used for queries and batch inserts. Defaults to the host of url, or to the grpc- prefixed host on Weaviate Cloud.

Override gRPC port

Port of the Weaviate gRPC endpoint, between 1 and 65535. Defaults to 50051, or 443 on Weaviate Cloud. gRPC uses TLS when url is https.

Set custom request headers

Key/value headers sent with every REST and gRPC call, e.g. vectorizer API keys such as X-OpenAI-Api-Key. Values that are credentials should come from {{ secret('...') }}. The plugin also sends an X-Weaviate-Client-Integration header identifying itself; setting that key here overrides it.

Set request timeout

Timeout applied to connection, query and insert requests. Defaults to the Weaviate client defaults (30s connect, 60s query, 120s insert).

Defaultfalse

Succeed without changes if the collection exists

Vector name

Creates a named vector instead of the default one.

DefaultNONE
Possible Values
NONETEXT2VEC_MODEL2VECTEXT2VEC_TRANSFORMERSTEXT2VEC_OPENAITEXT2VEC_WEAVIATE

Vectorizer

NONE (default) means vectors are provided on insert, e.g. with BatchCreate.vectorKey. Other values vectorize text properties server-side; the module must be enabled on the server. Unlike plugin versions built on the v5 client, the server's DEFAULT_VECTORIZER_MODULE is not used, so set this explicitly.

Vectorizer model

Model name for TEXT2VEC_OPENAI and TEXT2VEC_WEAVIATE. Defaults to the module default.

Whether the collection was created

False when it already existed and skipIfExists is true.

Whether the task succeeded