Entity Builder for Drupal 11#
Visual entity architecture management for Drupal 11. Define bundles, fields, displays, and field groups using a spreadsheet-like UI or flat YAML format with automatic dependency resolution and smart sync.
Why Entity Builder?#
-
Visual UI
Spreadsheet-like grid interface with AG Grid - no YAML required
-
Spreadsheet-Friendly
Flat format exports/imports easily to Google Sheets or Excel
-
Automatic Dependencies
No manual operation ordering required (Kahn's topological sort)
-
Smart Sync
Create new, update changed, skip unchanged - automatically
-
Definition-Centric
Import once, apply multiple times, track with rollbacks
-
Production Ready
Two-stage validation, rollback support, and comprehensive error handling
-
Extensible
Plugin system for adding custom integrations
Features Overview#
| Category | Features |
|---|---|
| UI | Visual spreadsheet-like grid interface with tabs for bundles, fields, groups |
| Format | Flat YAML, spreadsheet-compatible, one row per item |
| Workflow | Definition-centric (create > review > apply), reusable definitions |
| Operations | 14 operation types: bundles, fields, displays, roles, menus |
| Sync Modes | sync (default), create_only, update_only, replace |
| Validation | Two-stage: operation-specific + cross-cutting validator plugins |
| Rollback | Full undo support using ContentEntity storage |
| Audit Logging | Two-tier logging: session tracking + operation details |
| Discovery | Runtime detection of field types, widgets, formatters |
| CLI | Complete Drush integration for automation and CI/CD |
Quick Start#
-
Install Entity Builder and dependencies:
-
Install AG-Grid library (requires Asset Packagist - see Installation Guide):
-
Enable all modules:
Recommended: AG-Grid Interface
The
eb_aggridmodule provides a powerful spreadsheet-like AG-Grid interface for managing definitions. Strongly recommended for the best visual editing experience. Requires the AG-Grid library via Asset Packagist. -
Navigate to Configuration > Development > Entity Builder
-
Create a definition - Click "Add definition" and enter a label (e.g., "Job Board Platform")
-
Add bundles - Use the Bundles tab to add content types and vocabularies:
Entity Type Bundle ID Label Description taxonomy_term job_categories Job Categories Main job classification taxonomy_term job_types Job Types Full-time, part-time, etc. node job_listing Job Listing Job postings with details node company_profile Company Profile Employer profiles -
Add fields - Use the Fields tab to add fields to bundles:
Entity Type Bundle Field Name Field Type Label Widget node job_listing field_job_summary text_with_summary Job Summary text_textarea_with_summary node job_listing field_job_category entity_reference Category options_select node job_listing field_salary_min integer Min Salary number node job_listing field_company entity_reference Company entity_reference_autocomplete -
Add field groups (optional) - Use the Field Groups tab to organize forms:
Bundle Group Name Label Format Parent job_listing group_job_tabs Job Info tabs - job_listing group_job_basic Basic Info tab group_job_tabs job_listing group_job_compensation Compensation tab group_job_tabs -
Preview and Apply - Click Preview to see operations, then Apply to execute
-
Install Entity Builder and dependencies:
-
Install AG-Grid library (requires Asset Packagist - see Installation Guide):
-
Enable all modules:
Recommended: AG-Grid Interface
The
eb_aggridmodule provides a powerful spreadsheet-like AG-Grid interface for managing definitions. Strongly recommended for the best visual editing experience. Requires the AG-Grid library via Asset Packagist. -
Import the included job board example:
-
Review and Apply - Either review in the UI at
/admin/config/development/eband click Apply, or apply via Drush:
See the YAML Format Reference for creating your own definitions.
Real-World Example#
Entity Builder includes a complete Job Board Platform example with:
| Component | Count | Details |
|---|---|---|
| Taxonomies | 7 | Categories, Types, Levels, Industries, Skills, Locations, Statuses |
| Content Types | 4 | Job Listing, Company Profile, Job Application, Company Review |
| Fields | 60+ | Text, entity references, images, files, lists, dates, booleans |
| Field Groups | 40+ | Tabbed layouts for organized forms and displays |
| Display Modes | Multiple | Default, teaser views with custom formatters |
| Extensions | All | Pathauto patterns, auto entity labels |
See tests/fixtures/examples/job_board_platform.yml for the complete definition.
Architecture Diagram#
flowchart TB
subgraph Phase1["Phase 1: Data Entry"]
UI[Entity Builder UI]
YAML[YAML Import]
UI --> DEF
YAML --> DEF
DEF[(EbDefinition<br/>Config Entity)]
end
subgraph Phase2["Phase 2: Apply Workflow"]
ODB[OperationDataBuilder]
DR[DependencyResolver]
CD[ChangeDetector]
VM[ValidationManager]
OP[OperationProcessor]
RM[RollbackManager]
DEF --> ODB
ODB --> DR
DR --> CD
CD --> VM
VM --> OP
OP --> RM
end
subgraph Result["Result"]
Drupal[Drupal Entities]
Log[(EbLog)]
Rollback[(EbRollback)]
OP --> Drupal
OP --> Log
OP --> Rollback
end
Available Extensions#
| Extension | Requires | Adds |
|---|---|---|
| eb_ui | - | Interactive YAML editor UI for managing definitions |
| eb_aggrid | npm-asset/ag-grid-community:33.0.0 via Asset Packagist |
AG-Grid spreadsheet interface (strongly recommended) |
| eb_field_group | drupal/field_group |
field_group_definitions array, group column |
| eb_pathauto | drupal/pathauto |
pathauto_pattern column on bundles |
| eb_auto_entitylabel | drupal/auto_entitylabel |
auto_entitylabel_* columns on bundles |
Getting Started#
Ready to get started? See the Quick Start Guide for installation and your first definition.
Contributing#
Entity Builder is open source. See the Contributing Guide to get involved.