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-firstA 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-javajOOQ 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 databaseGenerated 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 |
|---|---|
Prerequisites, jOOQ generation, GraphQL schema with directives, build wiring. Start here if you want to use Graphitron in a project. |
|
Tutorial, how-to recipes, directive reference, and explanation of the design. Diataxis-shaped; pick the quadrant that matches what you are trying to do. |
|
Purpose, how it works, licensing, production use, and where to ask for help. |
|
What problem Graphitron solves and how it approaches the solution. |
|
The design philosophy behind Graphitron, the long-term thinking behind the architectural decisions. |
|
Why jOOQ and GraphQL-Java are foundational, and what that means for you. |
|
Why we enforce security at the database layer. |
|
Rewrite-internal documentation: code generation triggers, sealed model hierarchy, runtime extension points, design principles, contributor workflow. |
|
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.