Content Architecture
Strata provides a dedicated tab for every Drupal entity type you need to plan. Define bundles, fields, displays, permissions, and components — all in one collaborative workspace.
Entity type tabs
When you create a project, Strata provisions a set of tabs in the sidebar, one for each supported entity type. Each tab displays its entries in a sortable, filterable data grid powered by TanStack Table.
Bundle entity types
These are fieldable bundle types — each entry can host inline Fields, Form Displays, View Displays, and Permissions tabs, mirroring Drupal's entity architecture.
| Tab | Drupal entity | Key columns |
|---|---|---|
| Content Types | node_type | Label, Machine Name, Field Prefix, Published, Fields count |
| Taxonomy Vocabularies | taxonomy_vocabulary | Label, Machine Name, Hierarchy, Fields count |
| Media Types | media_type | Label, Machine Name, Source Plugin, Fields count |
| Block Types | block_content_type | Label, Machine Name, Revision Default, Fields count |
| Paragraph Types | paragraph_type | Label, Machine Name, Behavior Plugins, Fields count |
Non-bundle entity types
These tabs do not host inline field tabs but still define important parts of your content architecture.
| Tab | Purpose |
|---|---|
| Views | Drupal Views listings with inline display configuration (display plugin, style, row, pager, access) |
| User Roles | Role definitions with weight, admin flag, and permissions summary |
| Menus | Custom menu definitions (supports hyphens in machine names, like Drupal) |
| Text Formats | Filter formats with weight, roles, and embeddable entity type references |
| Date Formats | Named date format patterns (PHP date format strings) |
| Image Styles | Image style presets with effect pipeline summaries |
| Components (SDC) | Single Directory Components with inline Props and Slots tabs |
Fields
Fields are defined as inline entries within any fieldable bundle type. Click on a content type (or taxonomy vocabulary, media type, block type, or paragraph type) and switch to the Fields tab.
Field properties
| Property | Description |
|---|---|
| Label | Human-readable name (e.g. 'Hero Image') |
| Machine Name | Auto-prefixed with field_ and the bundle's field prefix. Validated for uniqueness. |
| Field Type | From Drupal's registry (e.g. text_long, entity_reference, image). Version-filtered. |
| Widget | Form widget, filtered to those compatible with the selected field type. |
| Formatter | Display formatter, also filtered by field type compatibility. |
| Required | Whether the field is required on the form. |
| Cardinality | Number of values: 1 (single), -1 (unlimited), or a specific limit. |
| Translatable | Whether the field supports translation. |
| Revisionable | Whether the field participates in revisions (defaults to true). |
| Help Text | Descriptive text shown below the field on forms. |
| Default Value | The initial value for new entries. |
| Text Format | For formatted text fields: which text format to use (references the Text Formats tab). |
| Target Entity Type | For entity reference fields: which entity type to reference. |
| Target Bundles | For entity reference fields: which specific bundles to allow (references other tabs). |
| Field Group | Optional group name for organizing fields in displays. |
| Storage / Widget / Formatter Settings | Type-specific settings from the registry (e.g. max_length, allowed_values). |
Field prefix
Each bundle type can set a Field Prefix (e.g. art_ for Article). When a field is created, the machine name is auto-generated as field_ + prefix + label. For example, a “Body” field on Article with prefix art_ becomes field_art_body. This keeps field names namespaced and avoids collisions across bundles.
Conditional fields
Some field properties are only shown when relevant. For example, the Target Entity Type and Target Bundles columns appear only when the field type is entity_reference or entity_reference_revisions. The Text Format column appears only for formatted text field types. This keeps the form clean and focused.
Shared field storage
When you need the same field on multiple bundles (shared field storage in Drupal), use Reuse field instead of Add field. This lets you select a field already defined on another bundle and share it — exactly like Drupal's “Re-use an existing field” feature.
Reuse intent is always recorded explicitly via a reused_from marker. Strata never infers reuse from matching machine names — two fields with the same name on different bundles are independent unless one was explicitly reused from the other.
When fields share storage, the manifest exports a single FieldStorageConfig with multiple FieldConfig instances, so the Drush companion handles creation correctly.
Form & View Displays
Every fieldable bundle automatically gets default Form Display and View Display entries when created. You can add additional display modes (e.g. “Teaser”, “Full”, “Search Result”).
Within each display, the Field Configuration inline tab lets you control per-field settings: visibility, weight (ordering), region, and the widget (for form displays) or formatter and label display (for view displays). Field groups can be configured for tab or group-based form layouts.
Permissions
Content Types, Media Types, and Taxonomy Vocabularies include inline Permissions tabs. These let you define a per-role permission matrix (referencing your User Roles tab) that maps to Drupal's node, media, and taxonomy permissions.
Content type permissions include: Create, Edit Own, Edit Any, Delete Own, Delete Any, View Revisions, and Revert Revisions. Vocabulary permissions include: Create Terms, Edit Terms, and Delete Terms.
Views
The Views tab lets you plan Drupal Views listings. Each view entry specifies a label, machine name, base entity type (Content, Taxonomy Term, Media, User, Paragraph, or Block Content), and enabled status.
Views have inline View Displays tabs where you configure each display: the display plugin (Page, Block, Feed, etc.), style plugin, row plugin, pager, items per page, access control, path, and filter summaries. All plugin selections come from the registry and are version-filtered.
Components (SDC)
The Components (SDC) tab is for planning Drupal's Single Directory Components. Each component entry includes a label, machine name, provider module/theme, group, description, and status (Stable, Experimental, or Deprecated).
Components have two inline tabs: Props (typed property definitions with type, required flag, default value, and enum values) and Slots (named content insertion points with title and description).
All Fields view
The All Fields view provides a cross-bundle view of every field across all entity types in your project. It lets you see field reuse at a glance, find fields by name or type, and spot inconsistencies in naming or configuration. The grid is sortable and filterable, just like the individual bundle field tabs.
Sortable & filterable grids
Every entity tab uses a data grid built on TanStack Table. Grid features include:
- Column sorting — click any sortable column header to sort ascending or descending
- Column filtering — filter by text, select values, or boolean state on filterable columns
- Column visibility — toggle which columns are shown (some are hidden by default and can be revealed)
- Inline editing — click on a cell to edit values directly in the grid without opening a form
- Computed columns — columns like “Fields” count are automatically computed from child entries