- Add seed/metadata.json to all 12 core packages installed at bootstrap - Update admin_dialog and dashboard metadata to current standard - Create comprehensive SEED_FORMAT.md documentation with usage guidelines - Create PACKAGE_AUDIT.md analyzing all 51 packages: - 12 core packages: have seed/metadata.json (100% complete) - 39 optional packages: no seed needed (components, tools, development) - Establish simple 1-folder-per-entity-type pattern as standard - Remove kitchen-sink anti-patterns from seed structure The seed system is now complete and ready for extending with entity-specific seed data (page-config, workflow, credential, etc.) as packages need them. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
6.6 KiB
Package Audit Report
Summary
- Total packages: 51
- Packages with seed/metadata.json: 12 (100% of installed packages)
- Packages without seed: 39 (no seed needed - optional components)
- Status: ✅ COMPLETE - All required packages have seed structure
Core Installed Packages (12)
These packages are installed during bootstrap and have seed/metadata.json:
| Package | Type | Category | Seed Data |
|---|---|---|---|
package_manager |
System | system | metadata.json only |
ui_header |
UI | ui | metadata.json only |
ui_footer |
UI | ui | metadata.json only |
ui_home |
UI | ui | metadata.json + page-config.json |
ui_auth |
UI | ui | metadata.json only |
ui_login |
UI | ui | metadata.json only |
dashboard |
UI | ui | metadata.json only |
user_manager |
Tool | admin | metadata.json only |
role_editor |
Tool | admin | metadata.json only |
admin_dialog |
UI | ui | metadata.json only |
database_manager |
Tool | admin | metadata.json only |
schema_editor |
Tool | admin | metadata.json only |
Installed at Bootstrap
- package_manager - Required first (installs packages)
- ui_header, ui_footer - Layout components
- ui_home - Landing page (has page-config.json)
- ui_auth, ui_login - Authentication UI
- dashboard - User dashboard
- user_manager - User administration
- role_editor - Permission/role management
- admin_dialog - Admin UI component
- database_manager - Database tools
- schema_editor - Schema management
See /dbal/shared/seeds/database/installed_packages.yaml for full bootstrap order.
Optional Packages (39)
These packages are NOT part of automatic bootstrap. They're loaded on-demand or used as components.
UI Component Libraries (14)
Reusable components that can be included by other packages:
ui_intro- Page intro componentui_level2- Tutorial/demo page (level 2)ui_level3- Tutorial/demo page (level 3)ui_level4- Tutorial/demo page (level 4)ui_level5- Tutorial/demo page (level 5)ui_level6- Tutorial/demo page (level 6)ui_pages- Page builder componentform_builder- Form creation tooldata_table- Data table componentdropdown_manager- Dropdown component- And others...
Why no seed? These are component libraries, not standalone pages. They're used as building blocks by other packages.
Developer Tools (9)
Optional utility packages for development/administration:
code_editor- Code editor toolcodegen_studio- Code generation toolcomponent_editor- Visual component editorconfig_summary- Configuration viewercss_designer- CSS design tooldbal_demo- DBAL demonstrationnerd_mode_ide- IDE modetheme_editor- Theme customizationworkflow_editor- Workflow builder
Why no seed? These are optional tools installed on-demand by admins. They don't need automatic seed data.
Data/Integration Packages (6)
Media, data, and integration packages:
arcade_lobby- Game/arcade datagithub_tools- GitHub integrationirc_webchat- IRC web clientmedia_center- Media libraryroute_manager- Route configurationscreenshot_analyzer- Screenshot tools
Why no seed? These packages manage data dynamically or integrate with external systems. They don't need static seed data.
Test/Demo Packages (4)
Development and testing utilities:
json_script_example- JSON Script examplespackage_validator- Package validation toolquick_guide- Quick start guidetesting- Test utilities
Why no seed? These are for development/testing only, not deployed to production.
Specialized Packages (6)
Specialty/niche functionality:
forum_forge- Forum systemsocial_hub- Social media integrationstream_cast- Streaming toolsaudit_log- Audit loggingsmtp_config- Email configurationstats_grid- Analytics dashboard
Why no seed? These either manage their own data or are configured dynamically.
Seed Data Architecture
Bootstrap Flow
1. System starts
2. GET /api/bootstrap
3. DBAL reads installed_packages.yaml (12 packages)
4. For each package:
- Check if seed/metadata.json exists
- If seed.schema is specified, load that data file
- Create records in database (idempotent)
5. Return success/error
Seed Files Location
/dbal/shared/seeds/database/
├── installed_packages.yaml [List of 12 packages to install]
└── package_permissions.yaml [Permission seed data]
/packages/*/seed/
├── metadata.json [Required - package manifest]
└── [entity-type].json [Optional - data files]
Seed Data Examples
Only ui_home currently includes entity seed data:
// /packages/ui_home/seed/page-config.json
[
{
"id": "page_ui_home_root",
"path": "/",
"title": "MetaBuilder",
"component": "home_page",
"level": 0,
"requiresAuth": false,
"isPublished": true
}
]
Other packages reference empty or omit seed references (to be added as needed).
Adding Seed Data to Packages
If a package needs to seed data:
- Create
/packages/[packageId]/seed/metadata.jsonwith reference - Create data file(s) like
/packages/[packageId]/seed/page-config.json - Update seed orchestration in
/dbal/development/src/seeds/index.ts - Test with
POST /api/bootstrap
See /packages/SEED_FORMAT.md for detailed instructions.
Audit Results
| Check | Status | Details |
|---|---|---|
| All 12 installed packages have metadata.json | ✅ PASS | 12/12 files exist |
| No unwanted seed folders | ✅ PASS | Only 12 packages have seed dirs |
| Metadata format valid | ✅ PASS | All files conform to schema |
| page-config.json present for ui_home | ✅ PASS | Contains 1 route definition |
| No code in seed folders | ✅ PASS | Only JSON data files |
| No excessive cruft | ✅ PASS | Simple, minimal structure |
Conclusion
✅ Seed structure is complete and well-organized.
The 12 core packages that bootstrap automatically all have proper seed/metadata.json files. The other 39 packages don't need seed data because they're optional components or tools, not part of automatic installation.
Future work can add entity seed data (page-config, workflow, etc.) to packages as needed, but the fundamental structure is sound.
References
/packages/SEED_FORMAT.md- Seed data format specification/dbal/shared/seeds/database/installed_packages.yaml- Package bootstrap list/dbal/development/src/seeds/index.ts- Seed orchestration implementationCLAUDE.md- Seed folder guidelines and anti-patterns