Skip to content

shibukazu/open-ve

Repository files navigation

Open-VE: Centralized and Consistent Data Validation Engine

GitHub Release GitHub License GitHub go.mod Go version GitHub Repo stars

A powerful solution that simplifies the management of validation rules, ensuring consistent validation across all layers, including frontend, BFF, and microservices, through a single, simple API.

Open-VE offers an HTTP API and a gRPC API. We will provide a client SDK in the future.

Features

📕 Centralized Validation Logic Management

Manage validation rules in one place using Common Expression Language (CEL), ensuring language-agnostic consistency of validation across your system.

🔌 API-Based Validation Management and Query

Register, update, retrieve, and query validation rules through a simple and consistent API, enabling seamless validation checks and eliminating the need for custom logic at various application layers.

🏭 Schema Auto Generation

Generate Open-VE Schame from OpenAPI and Protobuf definitions for ease of integration.

🧪 Schema Unit Testing

Validate Open-VE schema correctness with built-in unit testing capabilities.

🌐 Distributed Validation Logic Management for Microservices

Supports master-slave architecture for distributed validation management. Improve scalability and compatibility with microservice environments.

Getting Started

brew

brew install shibukazu/tap/open-ve
open-ve run

Build From Source

go build -o open-ve go/cmd/open-ve/main.go
./open-ve run

Docker Compose

docker-compose up

Reference

Example

Documents

Limitation

CEL

We only support the basic types of CEL currently.

Type Support Future Support
int
uint
double
bool
string
bytes
list
map
null_type
message names
type