imagex/recipe-base

Base installation for Imagex.

Maintainers

Package info

bitbucket.org/ixm/recipe-base

Type:drupal-recipe

pkg:composer/imagex/recipe-base

Transparency log

Statistics

Installs: 402

Dependents: 0

Suggesters: 0

1.0.0-rc2 2026-08-04 15:35 UTC

This package is auto-updated.

Last update: 2026-08-04 16:14:13 UTC


README

Foundational Drupal installation for ImageX builds: core roles, the "basic" custom block type, the default Page content type, navigation, and baseline site settings that recipe-standard and recipe-layout build on top of.

Recipes Included

  • core/recipes/basic_block_type
  • core/recipes/page_content_type
  • core/recipes/core_recommended_performance
  • core/recipes/administrator_role
  • core/recipes/content_editor_role
  • core/recipes/restricted_html_format

Modules Installed

  • CKEditor 5 (core)
  • Configuration Manager (core)
  • Contextual Links (core)
  • Datetime (core)
  • Field UI (core)
  • Image (core)
  • Custom Menu Links (core)
  • Menu UI (core)
  • Navigation (core)
  • Options (core)
  • Stark (core, theme)
  • Views UI (core)

Configuration Highlights

  • Sets the site's front page to /node and enables the admin theme for content editing.
  • Imports the core Navigation module's config, plus the Archive, Content, and Frontpage admin views and the People view.
  • Configures user registration to require admin approval and a verified email, and sets the account cancellation method to disable-and-keep-content.
  • Sets is_admin: false on the administrator role and grants it explicit permissions (including bypass node access) instead of relying on Drupal's implicit "is_admin bypasses everything" behavior, so admin access stays auditable.
  • Grants content_editor and administrator the "basic" custom block permissions, plus baseline permissions for accessing site administration, content overview, and navigation.
  • Grants content_editor create/edit/delete/revert/view permissions for every node content type via grantPermissionsForEachNodeType.
  • Grants baseline access content to anonymous and authenticated users.

A gotcha with grantPermissionsForEachNodeType

This action only generates permissions for node types that exist at the moment recipe-base is applied — it is not a standing rule that automatically covers content types added later by other recipes. For example, recipe-layout defines its own landing_page content type; content_editor's create/edit/delete permissions for landing_page are not covered by this recipe and had to be granted explicitly in recipe-layout/recipe.yml instead. Keep this in mind if a downstream recipe adds a new content type and assumes editorial permissions "just work."

Installation

Add the recipe to a project with Composer:

composer require imagex/recipe-base

Then apply it:

drush recipe:apply recipes/recipe-base

Notes

Unlike recipe-standard and recipe-layout, this recipe uses strict: true (Drupal's default) — every piece of configuration it ships must match the site's active configuration exactly, or applying it throws RecipePreExistingConfigException. It's meant to be the first recipe applied to a fresh site, not reapplied on top of an already-configured one.