Install
Works with Drupal: ^10.3 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
Release notes
This is the first beta release of the 2.x series.
The focus of this release is not feature completeness, but architecture stability, correctness, and test coverage. The module suite has gone through multiple audit/fix cycles and now provides a solid, extensible foundation for integrating Blizzard’s World of Warcraft APIs into Drupal.
What this beta is
- A modular framework for consuming WoW APIs (game data and profile data)
- A tested and hardened architecture for syncing, storing, and refreshing API data
- A plugin-based system for extending character and guild data via submodules
- A documented and consistent data model, including lifecycle and TTL handling
If you are:
- a developer looking to build on top of WoW APIs in Drupal
- a site builder experimenting with WoW data integrations
this release is ready to use and extend.
What’s included
Core capabilities
- Character and guild profile syncing
- Game data support for achievements, mounts, pets, titles, and more
- TTL-based data lifecycle handling for stale data cleanup
- Rate-limited API client with locking and safety guarantees
- Optional, loosely-coupled submodules for specific API domains
Architecture highlights
- Clear separation between API layer, sync layer, storage, and UI/dashboard concerns
- Plugin-based extension points such as
CharacterDataProviderandGuildDataProvider - Strict handling of partial or missing API data
- Safe failure isolation so one failing provider does not break the whole pipeline
Testing and quality
- 680+ tests and 6,500+ assertions
- Strong coverage of lifecycle events, sync orchestration, and edge cases
- Local test runs significantly improved through parallel execution
Documentation
- Restructured documentation for site admins, developers, and contributors
- API coverage matrix
- Architecture and lifecycle documentation
- Examples that reflect shipped behavior rather than speculative features
What is not included yet
This beta intentionally does not ship a full UI layer.
Missing pieces include:
- Default Views for browsing imported data such as achievements and mounts
- Public listing and search UIs
- Character and guild lookup forms
- Rich guild features such as roster, shared achievements, and activity
Guild support specifically
- Implemented: guild profile and crest
- Not built in: roster, achievements, and activity — these require custom
GuildDataProviderimplementations
UI philosophy
The suite provides clean entities, structured data, and extension points, but leaves listings, filters, and presentation to Drupal Views or custom implementations.
Stability
- The architecture and data model are considered stable
- Cross-module contracts for lifecycle, projection, and sync are well-tested
- Backwards compatibility within the 2.x series will be taken seriously
However:
- APIs and extension points may still evolve
- UI patterns and defaults are not finalized
Known limitations
- Profile API usage in this suite primarily relies on application tokens; user OAuth is currently only required for account-level endpoints
- Some Blizzard API surfaces are only partially implemented
- No built-in bulk sync/refresh commands; custom wrappers are recommended where needed
- Discovery and listing UX is not standardized yet
Next steps
The next phase will focus on feature completeness for existing modules, not breadth.
- Default Views per submodule (admin and optional public)
- Consistent routing and URL structure
- Character and guild lookup UX (block and page)
- Canonical and embedded display templates
- Expansion of existing API domains before adding new ones
Contributing
Contributions are welcome, especially in:
- UI work (Views, templates, UX patterns)
- Additional data providers
- Documentation improvements
- Testing edge cases
Please read the contributing and development documentation before opening merge requests.
Final note
This release aims to be honest and predictable rather than feature-rich.
If you were waiting for something stable enough to build on
, this is that point.