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/andapplications/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), notdragonfly-client. GitLab project URL may still bedragonfly-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 includesdragonfly_client,dragonfly_client_orchestration. Config import includesdragonfly_client.settings,alternative_dragonfly.settings,rest.resource.a2a_agents. Roles haveadminister 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
onlyfor alternative_services, recipe_onboarding, ai_agents_ossa, api_normalization.
Package-first (target state)
- Publish custom modules to GitLab Composer registry. Demos
composer requirethem; 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.mdpoints 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)
- Rename any
dragonfly-clientdir todragonfly_client. - Recipe: use
subrecipes/recipe_agent_platform_core; add dragonfly_client, A2A REST, role permissions as above. - Verify composer.json / composer.lock reference GitLab repo URL (dragonfly-client.git is fine); module name in code is dragonfly_client.
- Publish plan changes to this Wiki page; add/update pointer in config AGENTS.md if needed.