38 lines
1.0 KiB
Markdown
38 lines
1.0 KiB
Markdown
# Setup Plugin Development
|
|
|
|
Setup plugins let modules extend setup without editing the setup wizard directly.
|
|
|
|
Plugin source lives under:
|
|
|
|
```text
|
|
src/features/setup/plugins/
|
|
```
|
|
|
|
Required plugin contract:
|
|
|
|
- plugin id and version
|
|
- installation profiles
|
|
- setup templates
|
|
- wizard steps
|
|
- readiness checks
|
|
- verification checks
|
|
- CSV preview validators
|
|
- import handlers
|
|
- reset scopes
|
|
- reseed targets
|
|
- golden dataset registration
|
|
|
|
Core plugins:
|
|
|
|
- `foundation`: setup platform foundations, state, seed manifests, reset framework, CSV framework
|
|
- `crm`: CRM templates, CRM verification, CRM reset scopes, and CRM golden dataset
|
|
|
|
Future modules should add a plugin class and register it in `plugin-registry.ts`. They should not add one-off setup logic directly to the wizard.
|
|
|
|
Safety rules:
|
|
|
|
- Plugins cannot bypass Auth.js setup route protection.
|
|
- Reset scopes must declare destructive behavior and affected tables.
|
|
- CSV templates must declare ownership to avoid duplicate file contracts.
|
|
- Seed tasks must be idempotent before execution is exposed.
|