absinthe-graphql/absinthe_phoenix
49.5
Weak · 18 September 2026
960
lines of production code
Elixir
primary language
1
measurement over time
What this system is
This system is a library that integrates the Absinthe GraphQL engine with the Phoenix web framework. It provides mechanisms to execute GraphQL queries and mutations directly within Phoenix controller actions and enables real-time GraphQL subscriptions via Phoenix Channels. The package also includes utilities for testing these integrations and managing configuration for modern Elixir and Phoenix versions.
Features
Initial release of Absinthe.Phoenix 2.0.5 with comprehensive documentation and tooling setup
This entry marks the initial public release of the Absinthe.Phoenix package (version 2.0.5), providing the core library for integrating Absinthe GraphQL subscriptions with Phoenix via websockets. The release includes a complete project structure with a detailed README covering installation for Phoenix 1.5+, usage guides for GraphiQL, and configuration options for the subscription server. It also introduces standard repository governance files, including an MIT License, Code of Conduct, and Contributing guidelines, alongside development tooling such as \.formatter.exs\ for code formatting and \.tool-versions\ specifying Elixir 1.18.4 and Erlang 26.2.5. The changelog documents prior fixes for Elixir 1.19/OTP 28 compatibility and Decimal 3.0 support, as well as memory management improvements via periodic garbage collection.
(repo-wide) · high confidence
Introduce Absinthe Phoenix Controller integration
Adds new modules in lib/absinthe/phoenix/controller (Action, Blueprint, Result) that enable executing GraphQL queries directly from Phoenix controller actions. The Action module acts as a Plug, extracting the schema and document, parsing variables from request parameters, and running the Absinthe pipeline. The Result module formats the GraphQL execution output into a standard JSON-like structure (data/errors) suitable for HTTP responses, including support for the @put directive and proper error formatting.
lib/absinthe/phoenix/controller · high confidence
New Phoenix integration for GraphQL subscriptions and controller execution
This change introduces the \Absinthe.Phoenix\ module suite, enabling GraphQL capabilities directly within Phoenix applications. It adds \Absinthe.Phoenix.Socket\ and \Absinthe.Phoenix.Channel\ to handle real-time GraphQL subscriptions via Phoenix Channels, including support for periodic garbage collection of channel processes and proper unsubscription handling. Additionally, it provides \Absinthe.Phoenix.Controller\ to allow GraphQL documents to be executed directly inside Phoenix controller actions using the \@graphql\ module attribute, with automatic parameter coercion and result injection into action assigns. The suite also includes \Absinthe.Phoenix.Endpoint\ for PubSub integration, \Absinthe.Phoenix.Types\ for custom directives, and \Absinthe.Phoenix.SubscriptionTest\ for testing subscriptions.
lib/absinthe/phoenix · high confidence
Removals
Removal of Absinthe.Phoenix module
The \Absinthe.Phoenix\ module has been removed from the library. This change eliminates the module entirely, which may affect users relying on this specific component for Phoenix integration.
lib · high confidence
Behavioural changes
Migrate configuration syntax and update Phoenix logger level
The application configuration files have been updated to use the modern \import Config\ syntax instead of the deprecated \Mix.Config\, ensuring compatibility with current Elixir standards. Additionally, the default logger level in the test environment has been changed from \:warn\ to \:warning\ to align with updated Phoenix conventions, and the \Absinthe.Phoenix.TestEndpoint\ configuration now explicitly specifies the \pubsub\_server\.
config · high confidence
Test coverage
Added integration tests for Absinthe Phoenix channel subscriptions; Added test support infrastructure and updated test endpoint configuration; Added tests for Absinthe.Phoenix controller integration; Removed obsolete Absinthe.Phoenix integration test.
Dependencies
Major dependency upgrades and modernization
This release updates the project to require Elixir 1.15+ and upgrades core dependencies to support modern versions of the ecosystem. Key changes include upgrading Absinthe to the 1.5+ series (with a new dependency on absinthe\_plug), Phoenix to 1.5+, and Phoenix Pubsub to 2.0. The library now supports Phoenix.HTML versions 2.13, 3.0, and 4.0, as well as Decimal versions 1.0, 2.0, and 3.0. Additionally, Poison has been replaced by Jason for JSON handling in development and testing, and the package metadata has been expanded to include documentation and license information.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 49.
Lenses
- Code Health 99
- Architecture 69
- Maturity 37
- Readiness 49
- Security 67
Changes since last survey
- 186 commits — 163 feature/other, 23 fixes
By area
- (root) — 86 commits
- (repo) — 47 commits
- lib/absinthe — 44 commits
- lib/absinthe_phoenix.ex — 3 commits
- config/config.exs — 2 commits
- test/support — 2 commits
- .github/workflows — 1 commit
- test/absinthe — 1 commit
Notable commits
- fix: Fix Absinthe.Phoenix.Controller documentation.
- fix: Fix all compilation warnings
- fix: Fix compilation issue
- fix: Fix default value for variables in push_doc
- fix: Fix override of custom pubsub set in socket context
- fix: Merge pull request #100 from VictorGaiva/fix/channel-process-gc
- fix: Merge pull request #55 from hippware/fix-test-helper
- fix: Merge pull request #60 from jamesotron/fix-phoenix-controller-documentation
- fix: absinthe version fix
- fix: bug fix
- fix: bug fix
- fix: bug fixes
- fix: doc fix
- fix: fix config
- fix: fix import_config
- fix: fix: Add GC to transport process
- fix: fix: Adds the option to periodically garbage collect the channel process
- fix: fix: Fix assign key
- fix: fix: support elixir 1.19 and otp 28
- fix: fixes for config
- …and 166 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
absinthe-graphql/absinthe_phoenix was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 95e6b974ac55eea2faf321446f5c91f6162066d5 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.