New to Kestra?
Use blueprints to kickstart your first workflows.
Extract JSON from a REST API, batch ingest it into a Weaviate vector database, and run GraphQL queries with Kestra orchestration.
Build a fully orchestrated ingestion and retrieval pipeline for the Weaviate vector database. This blueprint downloads a JSON dataset from a public HTTP endpoint, converts it to Kestra's internal Ion format, batch loads it into a Weaviate class, and then runs GraphQL queries against the cluster, including an optional generative search step powered by OpenAI. It solves the common gap between data sources and vector stores: most teams need a reliable way to ingest documents into Weaviate on a schedule or in response to upstream events, without writing custom Python glue.
io.kestra.plugin.core.http.Download (json) pulls a sample Jeopardy dataset from a public GitHub raw URL.io.kestra.plugin.serdes.json.JsonToIon (json_to_ion) converts the JSON payload into Kestra's Ion format so it can be streamed efficiently to downstream tasks.io.kestra.plugin.weaviate.BatchCreate (batch_load) ingests the Ion file into the Questions class on Weaviate, using an internal storage URI.io.kestra.plugin.weaviate.BatchCreate (batch_load_map) shows the inline key-value pattern by loading a small Users collection from literal YAML maps.io.kestra.plugin.weaviate.Query (query_users) runs a GraphQL Get query that returns the first ten Questions with answer, category, and question fields.io.kestra.plugin.weaviate.Query (generative_search) demonstrates nearText semantic search wired to OpenAI through the X-OpenAI-Api-Key header.objects from a storage URI) and inline (objects as a list of maps).nearText and external model providers.Weaviate itself has no native scheduler, no retry semantics, and no built-in way to coordinate ingestion with upstream extraction. Kestra adds event triggers (S3, GCS, Kafka, webhooks), automatic retries with backoff, full execution lineage, and declarative YAML that you can version in Git. You get observability into every batch load, the ability to fan out across many classes in parallel, and a single control plane that ties Weaviate to the rest of your data stack.
WEAVIATE_API_KEY: API key for your Weaviate cluster.OPENAI_API_KEY: only required if you enable the generative_search task.WEAVIATE_API_KEY secret in Kestra.url in every Weaviate task with your own cluster endpoint.query_users output for the returned Questions.OPENAI_API_KEY, remove disabled: true on generative_search, and rerun for semantic search.Download task with an extractor from your real source: Postgres, Snowflake, S3, Kafka, or a SaaS API.batch_load runs.ForEach over a list of source files.Schedule or event trigger (for example io.kestra.plugin.aws.s3.Trigger) to refresh the vector index whenever new documents land.