Skip to main content

Drupal Demos and Custom Modules Plan

Drupal Demos and Custom Modules Plan

Canonical plan for WORKING_DEMOs (Drupal_AgentDash, Drupal_AgentMarketplace, Drupal_Fleet_Manager) and custom modules in TESTING_DEMOS.

Single source of truth

  • Custom modules: Each module has its own Git repo under __BARE_REPOS/agent-platform/drupal/<module>.git. Development source: TESTING_DEMOS/DEMO_SITE_drupal_testing/web/modules/custom/<module>. Demos consume via Composer (GitLab Package Registry) or controlled sync; no duplicate logic.
  • Recipes: Recipe repos (recipe_agentdash, recipe_agent_marketplace) and in-repo recipe dirs use DRY layout: subrecipes/recipe_agent_platform_core, ../recipe_secure_drupal, shared subrecipes. One recipe definition per product; demos apply that recipe or pull it via Composer.
  • Config and Wikis: NAS config/ and applications/Wikis/ are single source. Docs live in GitLab Wiki only; no .md in repo roots.

Naming

  • Module machine name = directory name: Use dragonfly_client (underscore), not dragonfly-client. GitLab project URL may still be dragonfly-client; local folder must match Drupal machine name.

Recipe alignment (best practice)

  • AgentDash (WORKING_DEMO): Recipe uses subrecipes/recipe_agent_platform_core (not ../recipe_agent_platform_core). Install includes dragonfly_client, dragonfly_client_orchestration. Config import includes dragonfly_client.settings, alternative_dragonfly.settings, rest.resource.a2a_agents. Roles have administer dragonfly, access dragonfly dashboard, use orchestration, restful get a2a_agents.
  • Marketplace: Recipe lives in recipe_agent_marketplace repo; demo has no in-repo recipe (only recipes/README.txt). Consume via Composer.
  • Fleet_Manager: Minimal; uses GitLab Composer only for alternative_services, recipe_onboarding, ai_agents_ossa, api_normalization.

Package-first (target state)

  • Publish custom modules to GitLab Composer registry. Demos composer require them; remove in-repo copies when packages exist. Single source per module in GitLab; demos stay thin.

Config and plan pointer

  • Config entry: NAS config/AGENTS.md points to this plan (see "Drupal demos and custom modules").
  • Wiki: This page is the canonical plan. Update here; do not add duplicate plan .md in repo roots.

Action checklist (when aligning a demo)

  1. Rename any dragonfly-client dir to dragonfly_client.
  2. Recipe: use subrecipes/recipe_agent_platform_core; add dragonfly_client, A2A REST, role permissions as above.
  3. Verify composer.json / composer.lock reference GitLab repo URL (dragonfly-client.git is fine); module name in code is dragonfly_client.
  4. Publish plan changes to this Wiki page; add/update pointer in config AGENTS.md if needed.