Skip to content

Develop VoidQL

gaiacasalinuovo-hub edited this page Aug 20, 2026 · 1 revision

Repository structure

src/
  index.ts      compile flow and orchestration
  rbac.ts       policy, field, and contextual-value resolution
  drizzle.ts    conditions, joins, CRUD, and triggers
  types.ts      exported types and presets
examples/
  queries.md    request examples
  structure.md  policy structure examples
tests/
  auto_tests/   operation and condition cases
  runner/       interactive database test runner

Local setup

The repository declares Node/TypeScript development dependencies and a test runner, but does not define an engines requirement or a stable installation guide.

npm install
npm test

The test runner requests or reads database configuration including DB_HOST, DB_USER, DB_PWD, DB_NAME, DB_FAMILY, USER_OBJ, USER_ROLE, and RUN_MODE. Use a disposable development database and inspect tests/runner before providing credentials.

Contribution workflow

  1. Create a focused issue describing the policy or query behavior.
  2. Add both allowed and denied regression cases.
  3. Update exported types and runtime handling together.
  4. Update examples and the relevant Wiki reference.
  5. Keep error behavior backward-compatible or document the break.
  6. Submit a small pull request with a security impact note.

Adding an operator

Update the type-level operator list, runtime condition builder, database-specific behavior where relevant, and tests. The current mismatch around BETWEEN/EXISTS shows why type and runtime changes must land together.

Adding a query operation

Update EndpointType, StructuredQuery, orchestration in index.ts, the Drizzle implementation, permissions validation, result behavior, and tests.

Coding priorities before stable release

  • Reduce any in policy and trigger types.
  • Define a typed error taxonomy.
  • Align package/repository naming with VoidQL.
  • Publish supported Node, TypeScript, Drizzle, and database versions.
  • Add CI across supported drivers.
  • Add security reporting and a threat model.

← Troubleshooting · Roadmap →

Clone this wiki locally