Skip to main content

Recipe Onboarding Module

Recipe Onboarding Module

Separation of Duties: See Separation of Duties - Drupal modules are responsible for Drupal-specific functionality. They do NOT own agent manifests, execution, or OSSA spec.

Comprehensive Drupal recipe management system with sub-recipe support, validation, and deployment.

Module Information

  • Name: Recipe Management System
  • Machine Name: recipe_onboarding
  • Package: Recipe Management
  • Version: 0.1.1
  • Drupal Compatibility: ^10.3 || ^11
  • Source: $LLM_ROOT/all_drupal_custom/modules/recipe_onboarding/

Features

  • Recipe Management: Deploy and manage Drupal recipes
  • Sub-Recipe Support: Modular recipe architecture
  • Validation: Comprehensive recipe validation
  • Deployment: Automated recipe deployment
  • API Support: REST, JSON:API, GraphQL
  • BPMN Integration: Business process modeling
  • Tour Builder: Guided recipe tours
  • AI Integration: AI-powered recipe recommendations

Installation

composer require drupal/recipe_onboarding drush en recipe_onboarding -y

Dependencies

Core Drupal (Required)

  • drupal:system (>=10.3)
  • drupal:user, serialization, rest, jsonapi
  • drupal:field, field_ui, node, taxonomy
  • drupal:media, file, image
  • drupal:views, views_ui
  • drupal:path, pathauto, menu_ui
  • drupal:block, block_content, config
  • drupal:content_translation, language, locale
  • drupal:help, toolbar, shortcut, search
  • drupal:comment, contact
  • drupal:automated_cron, big_pipe
  • drupal:dynamic_page_cache, page_cache
  • drupal:contextual, announcements_feed
  • drupal:breakpoint, history, link, datetime
  • drupal:options, text, filter, editor, ckeditor5
  • drupal:workflows, content_moderation
  • drupal:entity_browser, user_redirect
  • openapi:openapi, openapi_ui, openapi_ui_swagger, openapi_jsonapi
  • schemata:schemata, schemata_json_schema
  • consumers:consumers
  • graphql:graphql, graphql_compose
  • drupal:eck
  • drupal:ai

Sub-Modules

Recipe Onboarding BPMN

Business process modeling for recipes.

Machine Name: recipe_onboarding_bpmn

Recipe Onboarding Tour Builder

Guided tours for recipe deployment.

Machine Name: recipe_onboarding_tour_builder

Configuration

Navigate to: /admin/config/recipe_onboarding/settings

# config/recipe_onboarding.settings.yml recipes: validation: strict_mode: true check_dependencies: true deployment: auto_backup: true rollback_enabled: true

Usage

List Recipes

drush recipe-onboarding:list

Validate Recipe

drush recipe-onboarding:validate recipes/my_recipe

Deploy Recipe

drush recipe-onboarding:deploy recipes/my_recipe

Programmatic Usage

<?php $recipe_manager = \Drupal::service('recipe_onboarding.manager'); // List recipes $recipes = $recipe_manager->listRecipes(); // Validate recipe $validation = $recipe_manager->validate('recipes/my_recipe'); // Deploy recipe $result = $recipe_manager->deploy('recipes/my_recipe', [ 'backup' => true, 'rollback_on_error' => true, ]);

Recipe Structure

# recipe.yml name: 'My Recipe' description: 'Recipe description' type: 'Site' version: '1.0.0' install: - drupal:system - drupal:user recipes: - './subrecipes/core' - './subrecipes/security' config: import: system.site: name: 'Site Name'

API Endpoints

# List recipes GET /api/v1/recipes # Recipe details GET /api/v1/recipes/{recipe_id} # Validate recipe POST /api/v1/recipes/validate { "recipe_path": "recipes/my_recipe" } # Deploy recipe POST /api/v1/recipes/deploy { "recipe_path": "recipes/my_recipe", "options": {} }

Testing

# Run tests vendor/bin/phpunit modules/custom/recipe_onboarding/tests # Validate all recipes drush recipe-onboarding:validate --all

Resources

See Also