Skip to content

Shah91n/WeaviateDB-Cluster-WebApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

114 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weaviate Cluster Operations

Weaviate GitHub Repo stars Streamlit App Python

A lightweight Streamlit web app built for developers who need a quick, visual way to manage and understand their Weaviate cluster. It's designed for development, staging, and testing environments — not for production-scale use.

Use it to look up data, browse collections, diagnose schema health, inspect cluster state, and understand how your Weaviate instance is configured. It covers the basics well: general data lookup, collection analysis, replication and compression checks, RBAC inspection, and multi-tenancy browsing — all without writing a single query.

Visit Weaviate Cluster WebApp (It's recommended to run it locally, do not use it on Streamlit cloud) image

Features

Connection

Connect via three modes — all with optional vectorizer API key injection:

  • Local — Weaviate running on localhost (configurable HTTP/gRPC ports)
  • Custom — Any reachable Weaviate host with full HTTP/gRPC control
  • Cloud — Weaviate Cloud cluster via URL + API key
  • Auto-Connect via URL params?endpoint=<URL>&api_key=<KEY>

Vectorizer integrations: OpenAI, Cohere, HuggingFace (keys injected as request headers at connect time).

Cluster Management

  • Nodes & Shards — View node details, shard info, set read-only shards to READY (⚠️ requires admin key)
  • Aggregate Collections & Tenants — Object counts, empty collection/tenant detection
  • Collection Properties — Schema and property details per collection
  • Collections Configuration — Full collection config (vectorizer, index, module, replication)
  • Raft Statistics — RAFT consensus state, peer network, synchronization status
  • Metadata — Server version, enabled modules
  • Diagnose — Schema health checks (compression, replication factor, deletion strategy, shard consistency)

RBAC

  • Users, roles, permissions — individual and combined report views

Multi-Tenancy

  • Filter MT-only collections, view config, list tenants with activity states

Object Operations

  • Create — Create collections (5 vectorizers + BYOV), batch upload from CSV/JSON (⚠️ admin key required)
  • Read — Paginated object browser up to 1 000 objects, supports tenants, includes vectors
  • Search — Hybrid (BM25 + vector), keyword (BM25), and near-vector search with named-vector support, alpha tuning, and performance metrics
  • Update — Edit collection config (inverted index, replication, HNSW, PQ) and patch individual objects with type-aware field editors (⚠️ admin key required)
  • Delete — Delete one or more collections or tenants (⚠️ admin key required)

Agent

Natural language Q&A over collections via the Weaviate Agents API. Requires weaviate-client[agents] (included in requirements.txt).

Backup

List the 10 most recent backups stored in the cluster's cloud storage backend (S3, GCS, or Azure Blob Storage). The storage backend is auto-detected from the connected endpoint URL (aws → S3, gcp → GCS, azure → Azure). Displays: Backup ID, Status, Started At, Completed At, Size (GB), Collections included.


Architecture

streamlit_app.py               Entrypoint — connection UI + cluster dashboard
core/                          Business logic (no Streamlit imports)
  connection/                  Singleton client manager + init helpers
  cluster/                     Nodes/shards, RAFT statistics, metadata, diagnostics (SDK only)
  collection/                  Collection listing, schema, config fetch/processing, create, delete, update
  object/                      Read and update individual objects
  search/                      Hybrid, keyword, vector search
  multitenancy/                Tenant listing and state aggregation
  rbac/                        Users, roles, permissions
  agents/                      QueryAgent wrapper
  backup/                      Backup listing with auto-detected storage backend
pages/                         Streamlit UI (one file per feature)
  cluster/                     Cluster dashboard action handlers
  utils/                       Navigation, page config, session helpers
assets/                        Static files (logo)

Core layer (core/) contains only pure business logic — no st.* calls ever.
Pages layer (pages/) contains only UI — no direct Weaviate SDK calls.
The singleton in core/connection/weaviate_connection_manager.py maintains one long-lived client per session.


Setup

Prerequisites

  • Python 3.10+
  • A running Weaviate instance (local, custom, or cloud)

Install & Run

git clone https://github.com/Shah91n/WeaviateDB-Cluster-WebApp.git
cd WeaviateDB-Cluster-WebApp
pip install -r requirements.txt
streamlit run streamlit_app.py

Docker

docker build -t weaviateclusterapp:latest .
docker run -p 8501:8501 --add-host=localhost:host-gateway weaviateclusterapp

Access the app at http://localhost:8501.

Local Weaviate (for testing)

docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:latest

Notes

  • This is a community project, not an official Weaviate product.
  • Read page caps at 1 000 objects via the iterator API.
  • All cluster operations use the Weaviate Python client.
  • USE AT YOUR OWN RISK — always use an admin key only in trusted environments.

Contributing

Pull requests and suggestions are welcome!

About

A lightweight Streamlit web app built for developers who need a quick, visual way to manage and understand their Weaviate cluster. It's designed for development, staging, and testing environments (not for production-scale use).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages