Remove stale dirs/files superseded by metabuilder-small's reorganization:
- Old YAML entity/seed files (migrated to JSON)
- Root-level workflowui/ (moved to frontends/workflowui/)
- Prisma, Pyodide, old hooks, bun.lock artifacts
- Legacy scratch docs (txt/, docs/, deployment/*.md)
- Stale CI workflows consolidated in small
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Updated gen_prisma_schema.js to parse YAML entity schemas
- Generated Prisma models for EmailClient, EmailFolder, EmailMessage, EmailAttachment
- All email models include proper indexes and constraints from YAML definitions
- Schema generation now supports dynamic YAML parsing with fallback to core models
CHANGES:
- Removed datasource url from schema (Prisma 7 incompatibility)
- Schema lives at /dbal/shared/prisma/schema.prisma
- Database URL will be provided via environment variable at runtime
- Created .env.local for development (file:./prisma/dev.db)
- Prisma client will create/initialize database on first connection
NOTE: Prisma 7 CLI doesn't support db:push without URL in schema OR config.
The solution is to let the PrismaClient adapter create the database on first connection.
For local development: DATABASE_URL="file:./dbal/development/prisma/dev.db"
For tests: DATABASE_URL="file::memory:" or environment-specific config
Database will be automatically initialized when:
1. getDBALClient() is called with environment config
2. PrismaClient adapter connects to the URL
3. Tables are created from schema on first access
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
The Prisma schema is the single source of truth for the entire system
and should live in shared, not in development-specific location.
MOVED:
- /dbal/development/prisma/schema.prisma → /dbal/shared/prisma/schema.prisma
UPDATED:
- DBAL package.json: db:* scripts reference ../shared/prisma/schema.prisma
- config package.json: schema reference updated
- gen_prisma_schema.js: outputs to shared location
STRUCTURE NOW:
- /dbal/shared/prisma/ - Prisma schema (source of truth)
- /dbal/shared/seeds/ - Seed data (YAML files)
- /dbal/development/ - Uses shared schema via relative path
This ensures:
✅ Single source of truth for schema
✅ Schema is shared across all implementations (Phase 2 TypeScript, Phase 3 C++)
✅ Development just references the shared schema
✅ Independent deployability maintained
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
MOVED:
- /seed/ → /dbal/shared/seeds/
- database/ (installed_packages.yaml, package_permissions.yaml)
- config/ (bootstrap.yaml, package-repo.yaml)
- packages/ (core-packages.yaml)
- /prisma/schema.prisma → /dbal/development/prisma/schema.prisma
UPDATED:
- Root package.json: db:* scripts delegate to dbal/development
- Frontend package.json: db:* scripts delegate to dbal/development
- DBAL package.json: Added db:migrate and db:seed scripts
- /dbal/development/src/seeds/index.ts: Updated paths to new seed location
- /dbal/shared/tools/codegen/gen_prisma_schema.js: Output to new schema location
- /config/package.json: Updated schema path references
DELETED:
- /seed/ folder (moved to DBAL)
- /prisma/ folder (moved to DBAL)
BENEFITS:
- DBAL is now self-contained and independently deployable
- Single source of truth for seeds and schema
- Clear separation: database logic in DBAL, frontend in /frontends/
- All db:* commands now go through DBAL, not duplicated in frontend
This restructure is MANDATORY FIRST STEP before CODEBASE_RECOVERY_PLAN execution.
Architecture must be fixed before code cleanup happens.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Updated `list_workflows.hpp` to replace `is_active` with `enabled` filter and added `tenant_id` filter.
- Modified sorting logic for workflows based on `created_at` to handle optional values.
- Enhanced `update_workflow.hpp` to include new fields: `nodes`, `edges`, `enabled`, `version`, and `created_at`.
- Removed obsolete `isValidWorkflowTrigger` validation function from `workflow_validation.hpp`.
- Adjusted unit tests in `client_test.cpp` to reflect changes in workflow and page management, including renaming fields and updating assertions.
- Updated Prisma schema in `schema.prisma` to align with new workflow and component models, including changes to data types and attributes.
- Introduced a new script `gen_prisma_schema.js` for generating Prisma schema from DBAL API schemas to maintain synchronization.