Strata
What does it do?
Strata is a Drupal module that bridges Strata (a SaaS content architecture planning tool) and your Drupal site. It imports Strata manifests to scaffold your entire content model (content types, fields, displays, taxonomies, media types, views, roles, menus, and more) using Drupal's Entity API. It also exports your site's plugin registry and content architecture back to Strata.
Instead of manually building content types one by one in the Drupal admin UI, you plan your architecture collaboratively in Strata, export a validated JSON manifest, and run one command:
drush strata:import manifest.jsonContent types, fields, form displays, view displays, permissions, vocabularies, media types, and more. Created in seconds, exactly as planned.
Who is it for?
- Drupal agencies building content models for client sites. Plan the architecture before writing code, then import it into a fresh Drupal install
- Site builders who want a visual, collaborative way to design content architecture without the back-and-forth of spreadsheets
- Migration teams planning a move to Drupal. Design the target architecture in Strata, export content worksheets for field mapping, then scaffold the Drupal site from the manifest
- DevOps teams who want repeatable, version-controlled content model deployments. Commit the manifest to git, validate in CI, import in production
What gets imported?
The importer processes manifest sections in order. Each section has a dedicated handler:
Section Creates Content types Node type + fields + form/view displays + permissions Taxonomy vocabularies Vocabulary + fields + permissions Media types Media type + fields + form/view displays + permissions Block types Block content type + fields Views Views + displays User roles User roles Menus Menus Text formats Filter formats Date formats Date format patterns Image styles Image style presets TipFields with the same machine name across content types (e.g. field_body on both Article and Page) automatically share field storage, just like Drupal's "Re-use an existing field" feature. The importer verifies that the field type and cardinality match before creating field instances.
Drush commands
The module provides five Drush commands:
Import a manifest
# Full import drush strata:import manifest.json # Preview without making changes drush strata:import manifest.json --dry-run # Force overwrite existing entries drush strata:import manifest.json --force # Allow hard deletes for differential manifests drush strata:import manifest.json --hard-delete
Validate a manifest (CI-friendly)
drush strata:validate manifest.jsonValidates against the JSON Schema, checks the manifest version, and reports missing Drupal modules. Returns exit code 0 on success, 1 on failure. Designed for CI pipelines.
Export the plugin registry
drush strata:export-registry --output=registry.jsonIntrospects entity types, field types, widgets, formatters, and contributed module plugins at runtime. Upload the output to your project's registry in Strata (Project → Settings → Registry) so your planning environment matches exactly what's installed on the site.
Export the site manifest
drush strata:export-manifest --output=manifest.json --prettyExports your existing Drupal site's content types, fields, displays, taxonomies, views, roles, menus, and more as a Strata manifest. Import the output into a Strata project to bring an existing site into the planning tool.
Export a content worksheet
# All bundles drush strata:export-content-worksheet --output=worksheet.xlsx # Specific bundles only drush strata:export-content-worksheet --output=worksheet.xlsx --bundles=article,page # Resolve entity reference labels drush strata:export-content-worksheet --output=worksheet.xlsx --include-references
Generates an XLSX workbook with field mapping sheets and content data sheets for each fieldable bundle, populated with real content from the site. Useful for migration planning and content audits.
Admin UI
The module adds a tabbed admin page at Configuration → Development → Strata with four tabs:
- Import manifest: upload and import a Strata manifest JSON file through the browser, with dry-run preview
- Export manifest: export the site's content architecture as a manifest JSON file
- Export registry: export the site's plugin registry as JSON for uploading to Strata
- Content worksheet: export an XLSX content worksheet with field mappings and content data
The admin UI mirrors the Drush commands. Use Drush for scripted/CI workflows and the admin UI for one-off operations.
Differential imports
Strata supports differential exports: manifests that contain only what changed since a reference point. Each entry carries a change_type:
- created: new entry. Created on import (skipped if it already exists, unless
--forceis used) - updated: modified entry. The existing Drupal configuration is updated in place
- deleted: removed entry. Skipped by default; use
--hard-deleteto actually remove the configuration
Differential imports are safe by default. Deletions are skipped unless you explicitly opt in with --hard-delete, and existing entries are not overwritten unless you pass --force. Always run --dry-run first.
The Strata workflow
Strata is designed for a plan-first, build-second workflow:
- Plan your content architecture in Strata: content types, fields, displays, vocabularies, roles, and more. Strata knows Drupal's entity system and validates against the real registry of field types, widgets, and formatters for your Drupal version.
- Collaborate with your team. Track changes with git-style diffs, commit messages, and an approval workflow. Invite project stakeholders as guests with read and comment access.
- Export a validated JSON manifest from Strata.
- Import into Drupal with
drush strata:import. Content types, fields, displays, permissions, all created through the Entity API. - Iterate: make changes in Strata, export a differential manifest, and re-import. Only what changed is updated.
To bring an existing Drupal site into Strata, run drush strata:export-manifest and drush strata:export-registry, then import both into a Strata project.
Requirements
- Drupal 10.3+ or 11.x
- Drush 12 or 13
- PHP 8.1+
Installation
composer require drupal/strata drush en strata
The module has no Drupal module dependencies beyond field (core). Composer pulls in justinrainbow/json-schema for manifest validation and phpoffice/phpspreadsheet for XLSX export.
After installing, run drush strata:export-registry --output=registry.json and upload the result to your Strata project's registry. This ensures the field types, widgets, and formatters in your planning environment match exactly what's available on your Drupal site, including contributed modules.
Depends on
Dependencies of the latest stable release
- field Drupal core
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 1.0.0 | Stable | 10–11 | Sep 30, 2026 |