Open-source toolkit for building and testing RESO-compliant OData servers. Includes a reference server, desktop client, web UI, certification test runner, MCP server for AI agents and shared libraries for OData parsing, validation and data generation.
| Package | Description | Tests |
|---|---|---|
reso-client/ |
OData 4.01 client SDK -- URI builder, CRUD helpers, CSDL metadata parsing, OAuth2 Client Credentials | 118 |
odata-expression-parser/ |
Zero-dependency $filter and $expand expression parser |
180 |
reso-validation/ |
Isomorphic field and business-rule validation for RESO Data Dictionary records | 98 |
reso-data-generator/ |
Realistic test data generator with geo-consistent addresses, relational integrity and field-aware bounds | 116 |
reso-reference-server/ |
Metadata-driven OData reference server (PostgreSQL, MongoDB, SQLite) | 254 |
reso-web-client/ |
React + Vite browser UI with cert analytics, server explorer and performance reports | 138 |
reso-web-api-proxy/ |
Lightweight CORS proxy and static file server for web client deployments | -- |
reso-desktop-client/ |
Electron desktop shell with end-to-end certification testing (DD, Core, Add/Edit, EntityEvent), secure storage and bundled reference server | -- |
reso-certification/ |
RESO certification CLI + SDK – Add/Edit, EntityEvent, Web API Core, DD (docs) | 272 |
reso-mcp-server/ |
MCP server – exposes OData query, write, validation, certification tools for AI agents (guide) | 21 |
cd reso-reference-server
docker compose up -d
docker compose --profile seed up seed
# Server: http://localhost:8080 UI: http://localhost:5173cd reso-reference-server && npm install && npm run build
cd ../reso-web-client && npm install && npm run build
cd ../reso-desktop-client && npm install && npm run devThe desktop client connects to external OData servers out of the box. The reference server starts in the background for local test data.
cd reso-web-api-proxy && npm install && npm run build
npm start -- --port 8888 --ui ../reso-web-client/distOr with Docker:
cd reso-web-client
docker compose --profile proxy up -d
# UI + Proxy: http://localhost:8888# Lint (Biome)
npm run lint
# Run all tests
npm test
# Run tests for a single package
npm run test:server
npm run test:client
npm run test:validation
npm run test:filter-parser
npm run test:data-generator
npm run test:certification
npm run test:mcpThe root package.json provides convenience scripts for linting and testing. Each package manages its own dependencies and build.
Lefthook runs Biome lint, type checking and tests on every commit.
npm install # installs Biome + Lefthook
npx lefthook install # activates git hooksTest any RESO OData server from the command line:
# Add/Edit
reso-cert add-edit --url http://localhost:8080 --auth-token TOKEN
# EntityEvent
reso-cert entity-event --url http://localhost:8080 --auth-token TOKEN
# Web API Core
reso-cert core --url http://localhost:8080 --auth-token TOKEN
# Data Dictionary
reso-cert dd --url http://localhost:8080 --auth-token TOKENOr run compliance suites against the reference server via Docker:
cd reso-reference-server
docker compose up -d --build --wait db server
# Data Dictionary 2.0
docker compose --profile compliance-dd up --build --exit-code-from compliance-dd
# Web API Core 2.0.0
docker compose --profile compliance-core up --build --exit-code-from compliance-core
# Add/Edit RCP-010
docker compose --profile compliance-addedit up --build --exit-code-from compliance-addedit
# EntityEvent RCP-027
docker compose --profile compliance-entity-event up --build --exit-code-from compliance-entity-event
# MCP server smoke test
docker compose --profile compliance-mcp up --build --exit-code-from compliance-mcpSee reso-certification/ for full documentation.
See LICENSE.