@mostajs/setup
v2.2.2
Published
Reusable setup wizard module — multi-dialect DB configuration, .env.local writer, seed runner
Maintainers
Readme
@mostajs/setup
Setup wizard — multi-dialect DB config, schema management, seed runner, module discovery. Author: Dr Hamid MADANI [email protected]
Install
npm install @mostajs/setup @mostajs/ormHow to Use
1. Setup Route (Next.js catch-all)
// src/app/api/setup/[...slug]/route.ts
import { createSetupRoutes } from '@mostajs/setup'
export const { GET, POST, DELETE, PATCH } = createSetupRoutes({
needsSetup: appNeedsSetup,
getSetupConfig,
})2. Setup Page
// src/app/setup/page.tsx
import { SetupWizard } from '@mostajs/setup'
export default function Setup() { return <SetupWizard /> }3. Config from setup.json (generated by Studio)
import { loadSetupJson } from '@mostajs/setup'
const config = await loadSetupJson('./setup.json', dalRepoFactory)4. Module Discovery
import { discoverModules, collectSchemas } from '@mostajs/setup/lib/module-registry'
const modules = await discoverModules(['rbac', 'audit', 'settings'])
const allSchemas = collectSchemas(modules)
// Seed each module
for (const mod of modules) {
await mod.seed(setupJson[mod.name])
}
// Create admin via rbac
const rbac = modules.find(m => m.createAdmin)
await rbac.createAdmin({ email, password, firstName, lastName })5. Dual ORM/NET Mode
The wizard supports both:
- ORM mode: direct DB connection (dialect selection, URI, create DB, apply schema)
- NET mode: remote @mostajs/net server (test connection, upload schemas, wait restart)
6. Setup Wizard Features
- Welcome: choose ORM or NET mode
- Modules: select @mostajs modules
- Dialect/Database or NET config
- Admin user creation (delegates to @mostajs/rbac)
- Schema upload (JSON, ZIP, scan directory)
- Seeds (from setup.json)
- Summary with config review
7. API Routes
GET /api/setup/status — needsSetup check
POST /api/setup/install — run full installation
POST /api/setup/test-db — test DB connection
POST /api/setup/create-db — create database
POST /api/setup/create-admin — create admin (delegates to rbac)
GET /api/setup/detect-modules — list available modules
POST /api/setup/net-test — test NET server connection