Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Block Class 3.1.0 — Minor update available for module block_class (3.1.0). Release: Video Embed Field 3.1.1 — Minor update available for module video_embed_field (3.1.1). Release: CKEditor 5 Premium Features 1.8.5 — Minor update available for module ckeditor5_premium_features (1.8.5). Release: Phrase TMS Integration for TMGMT 8.x-1.32 — Minor update available for module tmgmt_memsource (8.x-1.32). Release: Protected Content 10.1.128 — Minor update available for module proc (10.1.128). Release: Update Manager Advanced 8.x-2.3 — Minor update available for module advupdate (8.x-2.3). Release: Update Manager Advanced 8.x-1.6 — Minor update available for module advupdate (8.x-1.6). Release: Protected Content 10.1.127 — Minor update available for module proc (10.1.127). Usage Milestone: Element Class Formatter — Module element_class_formatter crossed 1,000 active installs. Module Revived: Country Block 1.0.5 — Module country_block updated after 7 months of inactivity (1.0.5).

Strata

Security covered Drupal 10–11 PHP >=8.1
View on drupal.org

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.json

Content 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 Tip

Fields 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.json

Validates 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.json

Introspects 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 --pretty

Exports 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
Tip

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 --force is used)
  • updated: modified entry. The existing Drupal configuration is updated in place
  • deleted: removed entry. Skipped by default; use --hard-delete to actually remove the configuration
Tip

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:

  1. 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.
  2. 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.
  3. Export a validated JSON manifest from Strata.
  4. Import into Drupal with drush strata:import. Content types, fields, displays, permissions, all created through the Entity API.
  5. 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.

Tip

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

Tracked releases
1
Tracked since
Sep 2026
Latest release
6 hours ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Core Release date
1.0.0 Stable 10–11 Sep 30, 2026