Files
alla-allaos-fullstack/docs/implementation/task-d79-installation-profiles-setup-plugin-registry.md
phaichayon 9c8d6a0d6d task-d.7.9
2026-07-03 11:39:37 +07:00

81 lines
2.8 KiB
Markdown

# Task D.7.9 Installation Profiles & Setup Plugin Registry
Date: 2026-07-03
Status: implemented
## Scope Delivered
Added setup plugin platform layer:
- `src/features/setup/plugins/plugin-types.ts`
- `src/features/setup/plugins/plugin-registry.ts`
- `src/features/setup/plugins/installation-profile.ts`
- `src/features/setup/plugins/foundation/foundation-plugin.ts`
- `src/features/setup/plugins/crm/crm-setup-plugin.ts`
- `src/features/setup/plugins/crm/crm-installation-profile.ts`
Added installation profile API:
- `GET /api/setup/profiles`
Updated existing setup APIs:
- `GET /api/setup/templates?profile=<profileId>` now returns plugin-aware metadata while preserving legacy template fields.
- `GET /api/setup/readiness?profile=<profileId>` includes plugin registry readiness checks.
- `POST /api/setup/verify` accepts optional `profileId` and includes plugin registry verification checks.
Updated Setup Wizard:
- Loads installation profiles from the setup plugin registry.
- Allows profile selection.
- Builds wizard stepper from profile-resolved wizard steps with fallback to existing steps.
- Displays installed setup modules/plugins.
Added plugin documentation:
- `docs/setup/installation-profiles.md`
- `docs/setup/setup-plugin-development.md`
Added setup tests:
- `src/tests/setup/setup-plugin-registry.test.ts`
## Profiles
Implemented profiles:
- `crm_starter`
- `crm_demo`
- `production`
- `restore_backup`
- `custom`
## Plugins
Implemented built-in plugins:
- `foundation`
- owns setup platform foundations, setup state, seed manifests, reset framework, CSV framework, and foundation golden dataset registration
- `crm`
- owns CRM templates, CRM verification registration, CRM reset scopes, CRM reseed target registration, and CRM golden dataset registration
## Compatibility Notes
- No breaking API field removals were introduced.
- Existing template metadata fields remain: `file`, `seedType`, `importOrder`, `supported`, `requiredColumns`, `description`.
- New template metadata fields are additive: `plugin`, `profiles`, `visible`.
- Existing CSV preview/commit behavior is unchanged.
- Existing reset/reseed behavior is unchanged.
- External plugin loading, marketplace behavior, and new business modules remain out of scope.
## Validation
- `npm run typecheck -- --pretty false` passed.
- `npm run test:setup` passed: 20 tests.
- `npx oxlint src/features/setup/plugins src/app/api/setup/profiles src/app/api/setup/templates src/app/api/setup/readiness src/app/api/setup/verify src/features/setup/components/setup-wizard.tsx src/features/setup/api src/tests/setup` passed.
## Residual Notes
- Readiness and verification services now aggregate plugin registry checks additively. Existing concrete CRM checks remain in place to avoid regression.
- Future module plugins should register through `plugin-registry.ts` rather than editing the setup wizard directly.