Skip to content

Development

GuardSQL should stay small and dependency-light.

Repository Layout

.
├── ast.go
├── lexer.go
├── parser.go
├── schema.go
├── validate.go
├── policy.go
├── lint.go
├── eval.go
├── authz/
└── authzsystemforge/

Module Boundaries

  • Root module: github.com/grokify/guardsql
  • Optional SystemForge module: github.com/grokify/guardsql/authzsystemforge

Do not add SystemForge, SpiceDB, Cedar, Rego, SQL drivers, Ent, or storage dependencies to the root module.

Testing

Run root tests:

go test ./...
go vet ./...

Run browser package tests:

cd ts
npm test

Run optional SystemForge adapter tests separately:

cd authzsystemforge
go test ./...
go vet ./...

Documentation

Build the docs locally:

mkdocs build --strict

The generated site/ directory should not be committed.