Prismatic is a GraphQL-native Elixir SDK platform built for thin,
configuration-driven provider libraries.
It takes the same broad philosophy as pristine, but shifts the center of
gravity from REST request specs to GraphQL documents, operations, connections,
and schema-derived artifacts.
The shared GraphQL runtime now rides the same final-form HTTP lane as the REST
family: prismatic keeps GraphQL semantics, while lower unary HTTP execution
flows through the pristine family kit and its Execution Plane-backed
transport substrate.
The repo is a non-umbrella monorepo with three packages:
prismatic: shared runtime for GraphQL-over-HTTP executionprismatic_codegen: shared compiler, Provider IR, and rendering helpersprismatic_provider_testkit: shared verification helpers for provider repos
The root workspace exists to coordinate those packages with blitz.
GraphQL provider SDKs tend to accumulate the same infrastructure:
- HTTP execution and auth handling
- generic OAuth2 and token-source support
- interactive OAuth browser and loopback callback support
- response and error normalization
- pagination and connection traversal
- schema-driven code generation
- artifact freshness checks
- docs and verification workflows
Prismatic pulls that reusable behavior into one place so provider repos can
stay focused on provider configuration, generated artifacts, and a narrow layer
of handwritten convenience helpers.
The runtime now has an explicit governed authority mode for GraphQL provider
integrations. Standalone clients can still use direct endpoints, env-backed
provider config, bearer tokens, custom auth headers, OAuth helpers, and saved
token files. Governed clients pass Prismatic.GovernedAuthority and reject
unmanaged endpoint, auth, token-source, and request override inputs.
- Workspace Overview: repo layout and package responsibilities
- Getting Started: local setup and workspace commands
- Runtime and Execution: the runtime contract and request flow
- Codegen and Provider IR: compiler boundaries and artifact strategy
- Provider Testkit: freshness and conformance checks
- Maintaining the Monorepo: release and workspace operations
The workspace is intended to stay clean at all times:
- tests must pass
- compile must be warning-free
credomust stay cleandialyzermust stay clean- docs must build from committed guides and package metadata
mix deps.get
mix ci
mix monorepo.test
mix monorepo.credo --strict
mix monorepo.dialyzer
mix monorepo.docs- apps/prismatic_runtime/README.md
- apps/prismatic_codegen/README.md
- apps/prismatic_provider_testkit/README.md
This project is licensed under the MIT License. See LICENSE for details.