Graphitron

A code generator for GraphQL APIs backed by jOOQ.

Graphitron generates the wiring between a GraphQL schema and a jOOQ-modelled database, so resolvers, fetchers, and SQL come out of the schema rather than being maintained by hand.

Database-first

A well-designed database outlives every application built on top of it. Graphitron consumes jOOQ-generated types and treats the database schema as the source of truth, rather than abstracting it away.

Built on jOOQ and graphql-java

jOOQ provides the typed table classes that Graphitron uses to build SQL the compiler can check. graphql-java provides the schema-execution layer the generated resolvers plug into. Both are foundational, not incidental.

Authorization stays in the database

Generated resolvers contain no authorization logic. PostgreSQL row-level security and per-request session variables enforce access rules where the rules already live, and where every other application that touches the data sees them too.

Documentation

Section Contents

Quick Start

Prerequisites, jOOQ generation, GraphQL schema with directives, build wiring. Start here if you want to use Graphitron in a project.

User Manual

Tutorial, how-to recipes, directive reference, and explanation of the design. Diataxis-shaped; pick the quadrant that matches what you are trying to do.

FAQ

Purpose, how it works, licensing, production use, and where to ask for help.

Vision and Goal

What problem Graphitron solves and how it approaches the solution.

Graphitron Principles

The design philosophy behind Graphitron, the long-term thinking behind the architectural decisions.

Dependencies

Why jOOQ and GraphQL-Java are foundational, and what that means for you.

Security

Why we enforce security at the database layer.

Architecture

Rewrite-internal documentation: code generation triggers, sealed model hierarchy, runtime extension points, design principles, contributor workflow.

Roadmap

Active and Backlog work, plus a by-theme view and the changelog. Plans are authored as markdown next to the code; the rendered view here updates on every push.

The current build is 10-SNAPSHOT.