@mantajs/core 0.2.0-beta.4 → 0.2.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/types.d.ts +10 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -0
- package/dist/config/types.js.map +1 -1
- package/dist/user/auto-routes.d.ts.map +1 -1
- package/dist/user/auto-routes.js +11 -2
- package/dist/user/auto-routes.js.map +1 -1
- package/docs/00-overview.md +9 -10
- package/docs/01-getting-started.md +26 -29
- package/docs/04-users.md +47 -3
- package/docs/05-commands.md +1 -1
- package/docs/10-spa.md +63 -1
- package/docs/11-config.md +137 -39
- package/docs/14-adapters.md +20 -1
- package/docs/15-hosts.md +15 -2
- package/docs/16-reference.md +32 -3
- package/docs/17-dashboard.md +4 -2
- package/docs/AGENT.md +51 -4
- package/package.json +5 -3
- package/skills/mantajs/SKILL.md +67 -0
- package/skills/mantajs/agents/openai.yaml +3 -0
package/dist/config/types.d.ts
CHANGED
|
@@ -246,14 +246,17 @@ export declare const SpaConfigSchema: z.ZodObject<{
|
|
|
246
246
|
dashboard: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
247
247
|
preset: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
248
248
|
mountPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
249
|
+
vitePort: z.ZodOptional<z.ZodNumber>;
|
|
249
250
|
}, "strip", z.ZodTypeAny, {
|
|
250
251
|
dashboard?: string | null | undefined;
|
|
251
252
|
preset?: string | null | undefined;
|
|
252
253
|
mountPath?: string | null | undefined;
|
|
254
|
+
vitePort?: number | undefined;
|
|
253
255
|
}, {
|
|
254
256
|
dashboard?: string | null | undefined;
|
|
255
257
|
preset?: string | null | undefined;
|
|
256
258
|
mountPath?: string | null | undefined;
|
|
259
|
+
vitePort?: number | undefined;
|
|
257
260
|
}>;
|
|
258
261
|
export declare const LoadedConfigSchema: z.ZodObject<{
|
|
259
262
|
database: z.ZodOptional<z.ZodObject<{
|
|
@@ -450,14 +453,17 @@ export declare const LoadedConfigSchema: z.ZodObject<{
|
|
|
450
453
|
dashboard: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
451
454
|
preset: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
452
455
|
mountPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
456
|
+
vitePort: z.ZodOptional<z.ZodNumber>;
|
|
453
457
|
}, "strip", z.ZodTypeAny, {
|
|
454
458
|
dashboard?: string | null | undefined;
|
|
455
459
|
preset?: string | null | undefined;
|
|
456
460
|
mountPath?: string | null | undefined;
|
|
461
|
+
vitePort?: number | undefined;
|
|
457
462
|
}, {
|
|
458
463
|
dashboard?: string | null | undefined;
|
|
459
464
|
preset?: string | null | undefined;
|
|
460
465
|
mountPath?: string | null | undefined;
|
|
466
|
+
vitePort?: number | undefined;
|
|
461
467
|
}>>>;
|
|
462
468
|
}, "strip", z.ZodTypeAny, {
|
|
463
469
|
strict: boolean;
|
|
@@ -518,6 +524,7 @@ export declare const LoadedConfigSchema: z.ZodObject<{
|
|
|
518
524
|
dashboard?: string | null | undefined;
|
|
519
525
|
preset?: string | null | undefined;
|
|
520
526
|
mountPath?: string | null | undefined;
|
|
527
|
+
vitePort?: number | undefined;
|
|
521
528
|
}> | undefined;
|
|
522
529
|
}, {
|
|
523
530
|
query?: {
|
|
@@ -578,6 +585,7 @@ export declare const LoadedConfigSchema: z.ZodObject<{
|
|
|
578
585
|
dashboard?: string | null | undefined;
|
|
579
586
|
preset?: string | null | undefined;
|
|
580
587
|
mountPath?: string | null | undefined;
|
|
588
|
+
vitePort?: number | undefined;
|
|
581
589
|
}> | undefined;
|
|
582
590
|
}>;
|
|
583
591
|
/**
|
|
@@ -677,6 +685,8 @@ export interface SpaConfig {
|
|
|
677
685
|
preset?: string | null;
|
|
678
686
|
/** Public URL mount path. Default: /{spaName}; use "/" for a root-mounted SPA on a subdomain. */
|
|
679
687
|
mountPath?: string | null;
|
|
688
|
+
/** Dev-only Vite server port. Default starts at 5200; can also be set with MANTA_VITE_PORT or MANTA_VITE_PORT_{SPA}. */
|
|
689
|
+
vitePort?: number;
|
|
680
690
|
}
|
|
681
691
|
/** Default SPA settings — applied when no override exists. */
|
|
682
692
|
export declare const SPA_DEFAULTS: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAWpB,CAAA;AAEb,eAAO,MAAM,qBAAqB;;;;;;;;;;;;GAMrB,CAAA;AAEb,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAMhB,CAAA;AAEb,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;GAQzB,CAAA;AAEb,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUvB,CAAA;AAEb,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKhB,CAAA;AAEb,eAAO,MAAM,iBAAiB;;;;;;GAIjB,CAAA;AAEb,eAAO,MAAM,gBAAgB;;;;;;;;;GAKhB,CAAA;AAEb,eAAO,MAAM,kBAAkB;;;;;;GAIlB,CAAA;AAEb,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.js
CHANGED
|
@@ -75,6 +75,7 @@ export const SpaConfigSchema = z.object({
|
|
|
75
75
|
dashboard: z.string().nullable().optional(),
|
|
76
76
|
preset: z.string().nullable().optional(),
|
|
77
77
|
mountPath: z.string().nullable().optional(),
|
|
78
|
+
vitePort: z.number().int().positive().optional(),
|
|
78
79
|
});
|
|
79
80
|
export const LoadedConfigSchema = z.object({
|
|
80
81
|
database: DatabaseConfigSchema,
|
package/dist/config/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-routes.d.ts","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5C,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,UAAU,EAAE,WAAW,CAAA;IACvB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;QACpC,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAiID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"auto-routes.d.ts","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5C,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,UAAU,EAAE,WAAW,CAAA;IACvB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;QACpC,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAiID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAsOpE;AAID,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CA2GxE;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAyHtE;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAEvE;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpD"}
|
package/dist/user/auto-routes.js
CHANGED
|
@@ -148,13 +148,22 @@ export function generateAuthRoutes(deps) {
|
|
|
148
148
|
public: true,
|
|
149
149
|
handler: async (req) => {
|
|
150
150
|
const token = extractToken(req);
|
|
151
|
+
let revoked = false;
|
|
152
|
+
let revocationError;
|
|
151
153
|
if (token) {
|
|
152
154
|
const payload = await authService.verifyToken(token, jwtSecret).catch(() => null);
|
|
153
155
|
if (payload) {
|
|
154
|
-
|
|
156
|
+
try {
|
|
157
|
+
await cache.set(`auth:blacklist:${payload.auth_identity_id}`, '1', 2592000);
|
|
158
|
+
revoked = true;
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
revocationError = err instanceof Error ? err.message : String(err);
|
|
162
|
+
logger.warn(`[auth] Logout token revocation failed: ${revocationError}`);
|
|
163
|
+
}
|
|
155
164
|
}
|
|
156
165
|
}
|
|
157
|
-
return Response.json({ success: true }, { headers: clearAuthCookieHeaders(ctx, authCookie) });
|
|
166
|
+
return Response.json({ success: true, revoked, ...(revocationError ? { warning: 'TOKEN_REVOCATION_FAILED' } : {}) }, { headers: clearAuthCookieHeaders(ctx, authCookie) });
|
|
158
167
|
},
|
|
159
168
|
},
|
|
160
169
|
// POST /api/{ctx}/refresh
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-routes.js","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-routes.js","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"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"}
|
package/docs/00-overview.md
CHANGED
|
@@ -46,7 +46,7 @@ defineConfig() — Configuration (database, presets, features)
|
|
|
46
46
|
definePreset() — Reusable config preset
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
**Plus helpers**: `field`, `many`, `z` (Zod), `MantaError`, `service`. All globals — zero imports needed. Contexts are filesystem-derived in V2
|
|
49
|
+
**Plus helpers**: `field`, `many`, `z` (Zod), `MantaError`, `service`. All globals — zero imports needed. Contexts are filesystem-derived in V2 from `src/commands/{context}/` and `src/queries/{context}/`; `defineContext()` is legacy/deprecated.
|
|
50
50
|
|
|
51
51
|
## The module rule
|
|
52
52
|
|
|
@@ -108,7 +108,7 @@ Manta uses the same file-based convention for local code and packages. This make
|
|
|
108
108
|
|
|
109
109
|
This separation is enforced at build time. A plugin that contains `defineModel()` or `defineService()` calls will fail validation. This forces module authors to publish modules independently, making them reusable across plugins.
|
|
110
110
|
|
|
111
|
-
See [
|
|
111
|
+
See [Configuration — Publishing](./11-config.md#publishing-modules-and-plugins) for CLI details.
|
|
112
112
|
|
|
113
113
|
#### Why plugins can't contain modules
|
|
114
114
|
|
|
@@ -137,8 +137,8 @@ By forcing separation:
|
|
|
137
137
|
| `defineSubscriber({ event: 'product.created', ... })` | Event bus wiring |
|
|
138
138
|
| `defineJob({ name: 'cleanup', schedule: '0 * * * *', ... })` | Cron scheduling, job history |
|
|
139
139
|
| `defineLink((model) => [model.product, many(model.variant)])` | Pivot table, auto-cascade logic |
|
|
140
|
-
| `
|
|
141
|
-
| `manta dev` | `.manta/
|
|
140
|
+
| `src/commands/admin/*` + `src/queries/admin/*` | Context-scoped HTTP routes under `/api/admin/*` |
|
|
141
|
+
| `manta dev` | `.manta/generated.d.ts` — full TypeScript autocomplete for app.modules.*, events, entities |
|
|
142
142
|
|
|
143
143
|
## Constraint as Convention
|
|
144
144
|
|
|
@@ -173,7 +173,7 @@ All the following are available at compile time without any import:
|
|
|
173
173
|
|
|
174
174
|
| Global | Type |
|
|
175
175
|
|--------|------|
|
|
176
|
-
| `defineCommand`, `defineQuery`, `defineModel`, `defineService`, `defineLink`, `defineSubscriber`, `defineJob`, `defineAgent`, `
|
|
176
|
+
| `defineCommand`, `defineQuery`, `defineModel`, `defineService`, `defineLink`, `defineSubscriber`, `defineJob`, `defineAgent`, `defineWorkflow`, `defineUserModel`, `defineConfig`, `definePreset`, `defineMiddleware` | Type-safe |
|
|
177
177
|
| `field`, `many`, `service` | Type-safe |
|
|
178
178
|
| `z` (Zod) | Type-safe |
|
|
179
179
|
|
|
@@ -244,11 +244,10 @@ my-app/
|
|
|
244
244
|
│ │ └── product-inventory.ts # defineLink({...}) — cross-module ONLY
|
|
245
245
|
│ ├── agents/
|
|
246
246
|
│ │ └── categorize.ts # defineAgent({...})
|
|
247
|
-
│ └──
|
|
248
|
-
│
|
|
249
|
-
|
|
250
|
-
├── .manta/types/ # Auto-generated TypeScript types
|
|
247
|
+
│ └── spa/
|
|
248
|
+
│ └── admin/ # Dashboard SPA (optional)
|
|
249
|
+
├── .manta/generated.d.ts # Auto-generated TypeScript types
|
|
251
250
|
└── drizzle/migrations/ # Auto-generated SQL migrations
|
|
252
251
|
```
|
|
253
252
|
|
|
254
|
-
Every directory is auto-discovered. The `export default` of each file is registered automatically at boot.
|
|
253
|
+
Every directory is auto-discovered. The `export default` of each file is registered automatically at boot. Context routing is derived from folders: `src/commands/admin/create-product.ts` becomes `POST /api/admin/command/create-product`; `src/queries/store/catalog.ts` becomes `GET /api/store/catalog`.
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
## Prerequisites
|
|
4
4
|
|
|
5
5
|
- Node.js 18+ (AsyncLocalStorage required)
|
|
6
|
+
- Manta packages require Node.js 20+ in published projects
|
|
6
7
|
- PostgreSQL (local or cloud — Neon, Supabase, etc.)
|
|
7
8
|
- pnpm
|
|
8
9
|
|
|
@@ -26,8 +27,11 @@ my-app/
|
|
|
26
27
|
│ ├── subscribers/
|
|
27
28
|
│ ├── jobs/
|
|
28
29
|
│ ├── links/
|
|
29
|
-
│ └──
|
|
30
|
+
│ └── spa/
|
|
30
31
|
├── drizzle/migrations/
|
|
32
|
+
├── AGENT.md
|
|
33
|
+
├── .codex/skills/mantajs/
|
|
34
|
+
├── .claude/skills/mantajs/
|
|
31
35
|
└── tsconfig.json
|
|
32
36
|
```
|
|
33
37
|
|
|
@@ -86,7 +90,7 @@ This gives you 8 CRUD methods for free + the custom `publish` method. No imports
|
|
|
86
90
|
|
|
87
91
|
## Step 4 — Define a command
|
|
88
92
|
|
|
89
|
-
Create `src/commands/create-post.ts`:
|
|
93
|
+
Create `src/commands/admin/create-post.ts`:
|
|
90
94
|
|
|
91
95
|
```typescript
|
|
92
96
|
export default defineCommand({
|
|
@@ -131,21 +135,14 @@ export default defineSubscriber({
|
|
|
131
135
|
})
|
|
132
136
|
```
|
|
133
137
|
|
|
134
|
-
## Step 6 —
|
|
138
|
+
## Step 6 — Expose reads for the admin context
|
|
135
139
|
|
|
136
|
-
|
|
140
|
+
In Manta V2, the context is the folder name under `src/commands/{context}` and `src/queries/{context}`. `src/commands/admin/create-post.ts` creates `POST /api/admin/command/create-post`.
|
|
141
|
+
|
|
142
|
+
Create `src/queries/admin/graph.ts` so the dashboard and SDK can read blog data:
|
|
137
143
|
|
|
138
144
|
```typescript
|
|
139
|
-
export default
|
|
140
|
-
name: 'admin',
|
|
141
|
-
basePath: '/api/admin',
|
|
142
|
-
actors: ['admin'],
|
|
143
|
-
modules: {
|
|
144
|
-
blog: { expose: '*' },
|
|
145
|
-
},
|
|
146
|
-
commands: ['create-post'],
|
|
147
|
-
ai: { enabled: true },
|
|
148
|
-
})
|
|
145
|
+
export default defineQueryGraph('*')
|
|
149
146
|
```
|
|
150
147
|
|
|
151
148
|
## Step 7 — Generate migrations and run
|
|
@@ -163,14 +160,13 @@ manta dev
|
|
|
163
160
|
|
|
164
161
|
Output:
|
|
165
162
|
```
|
|
166
|
-
[codegen] .manta/
|
|
163
|
+
[codegen] .manta/generated.d.ts (1 entities, 1 commands, 0 agents, 1 actors, 3 events)
|
|
167
164
|
Module: blog (Post) ✓
|
|
168
165
|
Subscriber: post.created → post-created ✓
|
|
169
|
-
Command: create-post ✓
|
|
170
|
-
Context: admin → /api/admin ✓
|
|
166
|
+
Command: admin/create-post ✓
|
|
171
167
|
|
|
172
168
|
Server running at http://localhost:9000
|
|
173
|
-
|
|
169
|
+
OpenAPI at http://localhost:9000/api/openapi.json
|
|
174
170
|
```
|
|
175
171
|
|
|
176
172
|
## Step 9 — Test it
|
|
@@ -188,37 +184,38 @@ curl -X POST http://localhost:9000/api/admin/command/create-post \
|
|
|
188
184
|
}'
|
|
189
185
|
```
|
|
190
186
|
|
|
191
|
-
Query posts:
|
|
187
|
+
Query posts through the graph:
|
|
192
188
|
```bash
|
|
193
|
-
curl -X POST http://localhost:9000/api/admin/
|
|
189
|
+
curl -X POST http://localhost:9000/api/admin/graph \
|
|
194
190
|
-H "Content-Type: application/json" \
|
|
195
191
|
-H "Authorization: Bearer <jwt>" \
|
|
196
|
-
-d '{"filters":
|
|
192
|
+
-d '{"entity":"post","filters":{"status":"published"}}'
|
|
197
193
|
```
|
|
198
194
|
|
|
199
195
|
View API docs:
|
|
200
196
|
```
|
|
201
|
-
open http://localhost:9000/api/
|
|
197
|
+
open http://localhost:9000/api/openapi.json
|
|
202
198
|
```
|
|
203
199
|
|
|
204
200
|
## What happened automatically
|
|
205
201
|
|
|
206
|
-
From your
|
|
202
|
+
From your files (model, service, command, query graph), Manta generated:
|
|
207
203
|
|
|
208
204
|
- PostgreSQL table `posts` with all columns + indexes
|
|
209
205
|
- 8 CRUD methods on `app.modules.blog`
|
|
210
206
|
- HTTP endpoint `POST /api/admin/command/create-post`
|
|
211
|
-
- HTTP endpoint `POST /api/admin/
|
|
207
|
+
- HTTP endpoint `POST /api/admin/graph`
|
|
212
208
|
- AI tool schema for `create-post` (Zod → JSON Schema)
|
|
213
209
|
- OpenAPI spec with full schema documentation
|
|
214
|
-
- TypeScript types for autocomplete (`.manta/
|
|
210
|
+
- TypeScript types for autocomplete (`.manta/generated.d.ts`)
|
|
215
211
|
- Event wiring for `post.created` subscriber
|
|
216
212
|
- Compensation logic (if create-post fails, the post is deleted)
|
|
213
|
+
- Codex and Claude skills pointing to `node_modules/@mantajs/core/docs/`
|
|
217
214
|
|
|
218
215
|
## Next steps
|
|
219
216
|
|
|
220
217
|
- Add more modules (see [Models](./02-models.md) and [Services](./03-services.md))
|
|
221
|
-
- Add cross-module relations (see [Links](./
|
|
222
|
-
- Add scheduled tasks (see [Events](./
|
|
223
|
-
- Expose a storefront API (see [
|
|
224
|
-
- Deploy to production (see [Config](./
|
|
218
|
+
- Add cross-module relations (see [Links](./08-links.md))
|
|
219
|
+
- Add scheduled tasks (see [Events](./07-events.md))
|
|
220
|
+
- Expose a storefront API with `src/commands/store/` and `src/queries/store/` (see [Queries](./06-queries.md))
|
|
221
|
+
- Deploy to production (see [Config](./11-config.md))
|
package/docs/04-users.md
CHANGED
|
@@ -63,7 +63,7 @@ All on `/api/admin/`:
|
|
|
63
63
|
| Route | Method | Auth | Description |
|
|
64
64
|
|-------|--------|------|-------------|
|
|
65
65
|
| `/login` | POST | Public | Email/password → JWT (`{ id, type: 'admin' }`) |
|
|
66
|
-
| `/logout` | DELETE | Public |
|
|
66
|
+
| `/logout` | DELETE | Public | Clears auth cookies/local credentials and attempts server-side token revocation |
|
|
67
67
|
| `/refresh` | POST | Public | Exchange refresh token for new JWT |
|
|
68
68
|
| `/forgot-password` | POST | Public | Generates reset token |
|
|
69
69
|
| `/reset-password` | POST | Public | Validates token + resets password |
|
|
@@ -80,8 +80,52 @@ All on `/api/admin/`:
|
|
|
80
80
|
|
|
81
81
|
All `/api/admin/*` routes (except public auth routes):
|
|
82
82
|
1. Verify JWT Bearer token
|
|
83
|
-
2.
|
|
84
|
-
3.
|
|
83
|
+
2. Reject tokens present in `auth:blacklist:{auth_identity_id}` when a durable cache is reachable
|
|
84
|
+
3. Check `auth.type === 'admin'`
|
|
85
|
+
4. Reject with 401/403 if invalid
|
|
86
|
+
|
|
87
|
+
### Logout and token revocation
|
|
88
|
+
|
|
89
|
+
`DELETE /api/{context}/logout` always clears framework auth cookies and returns a successful logout response for the browser. If a Bearer/access token is present, Manta also writes `auth:blacklist:{auth_identity_id}` to `ICachePort` for 30 days.
|
|
90
|
+
|
|
91
|
+
Response shape:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{ "success": true, "revoked": true }
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
If the cache backend is temporarily unreachable, the route still clears cookies and returns:
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{ "success": true, "revoked": false, "warning": "TOKEN_REVOCATION_FAILED" }
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
In that degraded case, a JWT already issued remains valid until its normal expiry unless the client discards it. Production deployments that use `defineUserModel()` therefore need a durable, reachable `ICachePort`.
|
|
104
|
+
|
|
105
|
+
Supported durable cache choices:
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
// Default Vercel/Cloudflare-style production cache
|
|
109
|
+
adapters: {
|
|
110
|
+
ICachePort: {
|
|
111
|
+
adapter: '@mantajs/adapter-cache-upstash',
|
|
112
|
+
options: {
|
|
113
|
+
url: process.env.UPSTASH_REDIS_REST_URL,
|
|
114
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
// Durable Postgres fallback, reusing the configured IDatabasePort connection
|
|
122
|
+
adapters: {
|
|
123
|
+
ICachePort: {
|
|
124
|
+
adapter: '@mantajs/adapter-database-pg/cache',
|
|
125
|
+
options: { tableName: 'manta_cache' },
|
|
126
|
+
},
|
|
127
|
+
}
|
|
128
|
+
```
|
|
85
129
|
|
|
86
130
|
### Dev seed
|
|
87
131
|
|
package/docs/05-commands.md
CHANGED
|
@@ -95,7 +95,7 @@ await step.service.inventory.adjustQuantity(inventoryId, -1)
|
|
|
95
95
|
Every `step.service.*` call is:
|
|
96
96
|
- **Checkpointed** — saved to storage, skipped on retry
|
|
97
97
|
- **Compensated** — rollback registered in LIFO order
|
|
98
|
-
- **Typed** — autocomplete from codegen (`.manta/
|
|
98
|
+
- **Typed** — autocomplete from codegen (`.manta/generated.d.ts`)
|
|
99
99
|
|
|
100
100
|
### step.service.MODULE.link — Create links
|
|
101
101
|
|
package/docs/10-spa.md
CHANGED
|
@@ -34,7 +34,13 @@ src/spa/admin/
|
|
|
34
34
|
- **`.ts`** — exports `definePage()` or `defineForm()` spec (declarative, no React)
|
|
35
35
|
- **`.tsx`** — exports a React component (full control, for complex cases)
|
|
36
36
|
|
|
37
|
-
**Defaults**: `@mantajs/dashboard` shell + `@mantajs/ui` preset.
|
|
37
|
+
**Defaults**: `@mantajs/dashboard` shell + `@mantajs/ui` preset. The generated entry imports the public stylesheet export:
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import '@mantajs/dashboard/index.css'
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Override in config if needed:
|
|
38
44
|
|
|
39
45
|
```typescript
|
|
40
46
|
// manta.config.ts — optional, only for overrides
|
|
@@ -46,6 +52,62 @@ export default defineConfig({
|
|
|
46
52
|
})
|
|
47
53
|
```
|
|
48
54
|
|
|
55
|
+
### Mount path
|
|
56
|
+
|
|
57
|
+
By default, a SPA named `admin` is mounted at `/admin`:
|
|
58
|
+
|
|
59
|
+
| Generated setting | Default for `src/spa/admin` |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| React Router basename | `/admin` |
|
|
62
|
+
| Vite `base` | `/admin/` |
|
|
63
|
+
| Static output | `public/admin` |
|
|
64
|
+
| Vercel SPA rewrite | `/admin/:path*` → `/admin/index.html` |
|
|
65
|
+
|
|
66
|
+
Use `mountPath: '/'` for a dashboard on a dedicated subdomain, such as `admin.fancypalas.com/paniers`:
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// manta.config.ts
|
|
70
|
+
export default defineConfig({
|
|
71
|
+
spa: {
|
|
72
|
+
admin: { mountPath: '/' },
|
|
73
|
+
},
|
|
74
|
+
})
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
With `mountPath: '/'`, React Router uses `basename="/"`, Vite uses `base: '/'`, the SPA builds into `public/`, and generated Vercel rewrites exclude `/api/*`.
|
|
78
|
+
|
|
79
|
+
### Dev Vite port
|
|
80
|
+
|
|
81
|
+
`manta dev` starts one Vite server per detected SPA. Ports default to `5200`, then increment for additional SPAs.
|
|
82
|
+
|
|
83
|
+
Configure the port in `manta.config.ts` when another project already uses the default:
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
export default defineConfig({
|
|
87
|
+
spa: {
|
|
88
|
+
admin: { vitePort: 5310 },
|
|
89
|
+
},
|
|
90
|
+
})
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Environment overrides are also supported:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
MANTA_VITE_PORT=5310 manta dev
|
|
97
|
+
MANTA_VITE_PORT_ADMIN=5311 manta dev
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The SPA-specific variable wins over the global one. The suffix uses the SPA name uppercased with non-alphanumeric characters replaced by `_`.
|
|
101
|
+
|
|
102
|
+
### Local production fallback
|
|
103
|
+
|
|
104
|
+
`manta build` writes a SPA fallback manifest into `.manta/server/spa-manifest.ts`. For the Node preset, `manta start` uses it to mirror the Vercel SPA behavior locally:
|
|
105
|
+
|
|
106
|
+
- `/` redirects to the single SPA mount path when the SPA is not mounted at `/`
|
|
107
|
+
- `/login`, `/reset-password`, and `/accept-invite` redirect under that mount path
|
|
108
|
+
- `/admin/*` and other configured SPA mount paths serve the built `index.html`
|
|
109
|
+
- `/api/*` and asset URLs remain server-side/static and are not swallowed by the SPA fallback
|
|
110
|
+
|
|
49
111
|
---
|
|
50
112
|
|
|
51
113
|
## SPA Configuration — defineSpa()
|
package/docs/11-config.md
CHANGED
|
@@ -17,12 +17,15 @@ Creates a complete, functional Manta project. After `pnpm install`, the project
|
|
|
17
17
|
|
|
18
18
|
```
|
|
19
19
|
my-app/
|
|
20
|
-
├── manta.config.ts # defineConfig() — database, http,
|
|
20
|
+
├── manta.config.ts # defineConfig() — database, http, spa, presets
|
|
21
|
+
├── nitro.config.ts # Nitro host config for standalone builds
|
|
21
22
|
├── package.json # @mantajs/core, @mantajs/cli, @mantajs/host-nitro, @mantajs/dashboard
|
|
22
23
|
├── tsconfig.json # ES2022, ESNext, JSX support, strict
|
|
23
24
|
├── .env / .env.example # DATABASE_URL, PORT, ANTHROPIC_API_KEY
|
|
24
|
-
├── .gitignore # .manta/,
|
|
25
|
+
├── .gitignore # .manta/, node_modules/, .env
|
|
25
26
|
├── AGENT.md # AI instructions (copied from @mantajs/core/docs/)
|
|
27
|
+
├── .codex/skills/mantajs/ # Codex skill pointing to the shipped Manta docs
|
|
28
|
+
├── .claude/skills/mantajs/ # Claude skill pointing to the same docs
|
|
26
29
|
└── src/
|
|
27
30
|
├── modules/ # Your business modules (entities + services)
|
|
28
31
|
├── commands/ # Application commands (cross-module workflows)
|
|
@@ -31,48 +34,44 @@ my-app/
|
|
|
31
34
|
├── links/ # Cross-module relations
|
|
32
35
|
├── queries/ # CQRS read endpoints (defineQuery, defineQueryGraph)
|
|
33
36
|
├── agents/ # AI steps
|
|
34
|
-
└── admin/
|
|
35
|
-
├──
|
|
36
|
-
|
|
37
|
+
└── spa/admin/ # Dashboard SPA pages, config, blocks
|
|
38
|
+
├── config.ts
|
|
39
|
+
├── pages/
|
|
40
|
+
└── blocks/
|
|
37
41
|
```
|
|
38
42
|
|
|
39
43
|
**What it does NOT generate:**
|
|
40
|
-
- No `nitro.config.ts` — the host adapter handles this internally
|
|
41
44
|
- No `drizzle.config.ts` — the CLI handles this internally
|
|
42
45
|
- No `src/api/` — routes are auto-generated from commands + queries
|
|
43
46
|
|
|
44
|
-
The
|
|
47
|
+
The developer normally maintains `manta.config.ts`, `nitro.config.ts` only when deployment/static asset behavior needs customization, and the generated `AGENT.md` when project-specific conventions need to be added.
|
|
45
48
|
|
|
46
|
-
###
|
|
49
|
+
### Existing projects
|
|
50
|
+
|
|
51
|
+
The current CLI does not expose a separate `manta setup` command. Existing projects should install or update the Manta packages, keep a `manta.config.ts` at the project root, then run:
|
|
47
52
|
|
|
48
53
|
```bash
|
|
49
|
-
|
|
50
|
-
npx manta setup
|
|
54
|
+
manta dev
|
|
51
55
|
```
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
| Detected | Context | What it generates |
|
|
56
|
-
|----------|---------|------------------|
|
|
57
|
-
| `next.config.*` | Next.js | `AGENT.md` with Next.js + Manta instructions, `src/manta/` subdirectory |
|
|
58
|
-
| `nuxt.config.*` | Nuxt | `AGENT.md` with Nuxt + Manta instructions, `server/manta/` subdirectory |
|
|
59
|
-
| `workspaces` in package.json | Monorepo | `AGENT.md` at root, `packages/backend/` with Manta structure |
|
|
60
|
-
| Nothing detected | Standalone | Full Manta project structure in current directory |
|
|
61
|
-
|
|
62
|
-
In all cases, `manta setup`:
|
|
63
|
-
1. Creates `manta.config.ts`
|
|
64
|
-
2. Creates module/command/subscriber directories
|
|
65
|
-
3. Generates **`AGENT.md` at the project root** — the first file an AI reads
|
|
66
|
-
4. The `AGENT.md` is context-aware (mentions the detected framework)
|
|
67
|
-
5. `AGENT.md` is committed to git (not gitignored) — every clone has it
|
|
57
|
+
`manta dev` refreshes **`.codex/skills/mantajs/SKILL.md`** and **`.claude/skills/mantajs/SKILL.md`** from the installed `@mantajs/core` package before boot validation. This keeps Codex and Claude pointed at the docs shipped in `node_modules/@mantajs/core/docs/` even when a project already existed before the current framework version.
|
|
68
58
|
|
|
69
|
-
###
|
|
59
|
+
### Agent docs and Codex skill
|
|
70
60
|
|
|
71
61
|
The `AGENT.md` lives at the root of every Manta project. It's the first file an AI reads.
|
|
72
62
|
|
|
73
63
|
**Canonical location:** `@mantajs/core/docs/AGENT.md` — alongside all other framework documentation. The CLI copies it to the project root during `manta init`.
|
|
74
64
|
|
|
75
|
-
|
|
65
|
+
The Codex skill is intentionally separate and smaller:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
.codex/skills/mantajs/SKILL.md
|
|
69
|
+
.claude/skills/mantajs/SKILL.md
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
It is copied from `@mantajs/core/skills/mantajs/SKILL.md` and tells Codex/Claude to load the relevant file from `node_modules/@mantajs/core/docs/` before changing Manta code. It is not installed with an npm `postinstall` hook; `manta init` creates it and `manta dev` refreshes it so existing projects stay aligned with the installed framework docs.
|
|
73
|
+
|
|
74
|
+
For future setup flows and framework-specific projects, context-specific templates exist in the CLI:
|
|
76
75
|
|
|
77
76
|
```
|
|
78
77
|
packages/cli/src/templates/agent/
|
|
@@ -80,7 +79,7 @@ packages/cli/src/templates/agent/
|
|
|
80
79
|
└── nuxt.md # Nuxt + Manta
|
|
81
80
|
```
|
|
82
81
|
|
|
83
|
-
`manta init` copies the canonical AGENT.md from `@mantajs/core/docs/`.
|
|
82
|
+
`manta init` copies the canonical AGENT.md from `@mantajs/core/docs/`. Framework-specific templates can be used by future setup flows or custom scaffolding. The developer can then edit the project AGENT.md to add project-specific context (business domain, team conventions, etc.).
|
|
84
83
|
|
|
85
84
|
Each AGENT.md contains:
|
|
86
85
|
- Stack description (what framework + Manta)
|
|
@@ -100,7 +99,9 @@ export default {
|
|
|
100
99
|
pool: { min: 2, max: 10 },
|
|
101
100
|
},
|
|
102
101
|
http: { port: 3000 },
|
|
103
|
-
|
|
102
|
+
spa: {
|
|
103
|
+
admin: {}, // mounted at /admin by default
|
|
104
|
+
},
|
|
104
105
|
}
|
|
105
106
|
```
|
|
106
107
|
|
|
@@ -113,7 +114,12 @@ export default defineConfig({
|
|
|
113
114
|
auth: {
|
|
114
115
|
jwtSecret: process.env.JWT_SECRET,
|
|
115
116
|
},
|
|
116
|
-
|
|
117
|
+
spa: {
|
|
118
|
+
admin: {
|
|
119
|
+
// Default mount path is "/admin"; use "/" for admin.example.com routes.
|
|
120
|
+
mountPath: '/admin',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
117
123
|
strict: false,
|
|
118
124
|
})
|
|
119
125
|
```
|
|
@@ -127,12 +133,61 @@ export default defineConfig({
|
|
|
127
133
|
| `database` | `url`, `pool.min`, `pool.max` | Required |
|
|
128
134
|
| `http` | `port` | `9000` |
|
|
129
135
|
| `auth` | `jwtSecret`, `session.enabled`, `session.cookieName` | Dev: auto-generated secret |
|
|
130
|
-
| `query` | `
|
|
131
|
-
| `admin` |
|
|
132
|
-
| `
|
|
136
|
+
| `query` | `maxTotalEntities` | `10000` |
|
|
137
|
+
| `admin` | Reserved legacy object | `{}` |
|
|
138
|
+
| `spa` | `{ [name]: { dashboard, preset, mountPath, vitePort } }` | Auto-detected from `src/spa/{name}` |
|
|
139
|
+
| `preset` | `'dev'`, `'vercel'`, custom preset object | Auto-detected from `APP_ENV` |
|
|
133
140
|
| `strict` | `true`/`false` | `false` |
|
|
134
141
|
| `plugins` | Array of plugin configs | `[]` |
|
|
135
142
|
|
|
143
|
+
### SPA mount path
|
|
144
|
+
|
|
145
|
+
Standalone/Nitro SPAs are discovered from `src/spa/{name}/`. By default, the public mount path is `/{name}`:
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
export default defineConfig({
|
|
149
|
+
spa: {
|
|
150
|
+
admin: {}, // mounted at /admin
|
|
151
|
+
},
|
|
152
|
+
})
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
For a dedicated admin subdomain such as `admin.fancypalas.com`, mount the SPA at the root:
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
export default defineConfig({
|
|
159
|
+
spa: {
|
|
160
|
+
admin: { mountPath: '/' },
|
|
161
|
+
},
|
|
162
|
+
})
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
With `mountPath: '/'`, the Vite SPA uses `base: '/'`, builds into `public/`, and generated Vercel rewrites exclude `/api/*` so API routes remain server-side.
|
|
166
|
+
|
|
167
|
+
### SPA dev port
|
|
168
|
+
|
|
169
|
+
`manta dev` starts SPA Vite servers at `5200`, then increments for additional SPAs. Use `vitePort` when a local project already owns that port:
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
export default defineConfig({
|
|
173
|
+
spa: {
|
|
174
|
+
admin: {
|
|
175
|
+
mountPath: '/admin',
|
|
176
|
+
vitePort: 5310,
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
})
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Environment overrides are supported for temporary local conflicts:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
MANTA_VITE_PORT=5310 manta dev
|
|
186
|
+
MANTA_VITE_PORT_ADMIN=5311 manta dev
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Precedence is `spa.{name}.vitePort`, then `MANTA_VITE_PORT_{NAME}`, then `MANTA_VITE_PORT`, then the default sequence.
|
|
190
|
+
|
|
136
191
|
## Presets (adapter bundles)
|
|
137
192
|
|
|
138
193
|
The framework auto-detects the environment and loads appropriate adapters:
|
|
@@ -149,6 +204,43 @@ The framework auto-detects the environment and loads appropriate adapters:
|
|
|
149
204
|
|
|
150
205
|
Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
|
|
151
206
|
|
|
207
|
+
### Durable cache for auth revocation
|
|
208
|
+
|
|
209
|
+
Production auth uses `ICachePort` for logout token revocation, refresh-token blacklist checks, reset flows, and session state. The Vercel and Cloudflare presets default to Upstash:
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
export default defineConfig({
|
|
213
|
+
preset: 'vercel',
|
|
214
|
+
adapters: {
|
|
215
|
+
ICachePort: {
|
|
216
|
+
adapter: '@mantajs/adapter-cache-upstash',
|
|
217
|
+
options: {
|
|
218
|
+
url: process.env.UPSTASH_REDIS_REST_URL,
|
|
219
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN,
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
})
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
If Upstash REST credentials are not available or not reliable in the deployment runtime, use the Postgres-backed cache adapter:
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
export default defineConfig({
|
|
230
|
+
preset: 'vercel',
|
|
231
|
+
adapters: {
|
|
232
|
+
ICachePort: {
|
|
233
|
+
adapter: '@mantajs/adapter-database-pg/cache',
|
|
234
|
+
options: {
|
|
235
|
+
tableName: 'manta_cache',
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
})
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
The Postgres cache reuses the configured `IDatabasePort` connection when bootstrapped by the Manta CLI and creates the cache table automatically by default.
|
|
243
|
+
|
|
152
244
|
## Environment variables
|
|
153
245
|
|
|
154
246
|
| Variable | Required | Description |
|
|
@@ -156,6 +248,8 @@ Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
|
|
|
156
248
|
| `DATABASE_URL` | Yes | PostgreSQL connection string |
|
|
157
249
|
| `JWT_SECRET` | Prod only | JWT signing secret (dev: auto-generated) |
|
|
158
250
|
| `APP_ENV` | No | Force environment (`development` or `production`) |
|
|
251
|
+
| `UPSTASH_REDIS_REST_URL` | Prod when using Upstash cache | Upstash Redis REST endpoint |
|
|
252
|
+
| `UPSTASH_REDIS_REST_TOKEN` | Prod when using Upstash cache | Upstash Redis REST token |
|
|
159
253
|
| `ANTHROPIC_API_KEY` | No | Enable AI chat in admin dashboard |
|
|
160
254
|
|
|
161
255
|
## CLI commands
|
|
@@ -178,15 +272,21 @@ Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
|
|
|
178
272
|
|
|
179
273
|
Starts development server. Auto-performs:
|
|
180
274
|
1. Load env + config
|
|
181
|
-
2. Generate `.manta/
|
|
275
|
+
2. Generate `.manta/generated.d.ts` (TypeScript types for autocomplete)
|
|
182
276
|
3. Start Nitro dev server with HMR
|
|
183
277
|
4. On first request: connect DB, instantiate adapters, discover modules/commands/subscribers/jobs/links/queries
|
|
184
278
|
5. Auto-create tables in dev mode (no manual migration needed)
|
|
185
279
|
6. Wire all routes, subscribers, jobs
|
|
186
280
|
|
|
281
|
+
### manta build --preset vercel
|
|
282
|
+
|
|
283
|
+
For Vercel deployments, `manta build --preset vercel` generates the framework-owned SPA rewrites and cron routes in `vercel.json`.
|
|
284
|
+
|
|
285
|
+
If `vercel.json` already exists, Manta preserves custom top-level project settings such as `buildCommand`, `installCommand`, `outputDirectory`, `functions`, `headers`, and other Vercel options. It also preserves custom `redirects`, `rewrites`, and `crons` unless they collide on the same `source` or `path` as a framework-generated entry.
|
|
286
|
+
|
|
187
287
|
### manta db:generate
|
|
188
288
|
|
|
189
|
-
Scans `src/modules/*/
|
|
289
|
+
Scans entity definitions from `src/modules/*/entities/` and relation links from `src/links/` to generate SQL migrations:
|
|
190
290
|
|
|
191
291
|
```bash
|
|
192
292
|
manta db:generate --name add-blog-post
|
|
@@ -212,15 +312,13 @@ manta exec scripts/seed.ts
|
|
|
212
312
|
manta exec scripts/seed.ts --dry-run # Rollback after execution (test mode)
|
|
213
313
|
```
|
|
214
314
|
|
|
215
|
-
## Codegen (
|
|
315
|
+
## Codegen (`.manta/generated.d.ts`)
|
|
216
316
|
|
|
217
317
|
On `manta dev` or `manta build`, the framework generates:
|
|
218
318
|
|
|
219
319
|
| File | Content |
|
|
220
320
|
|------|---------|
|
|
221
|
-
|
|
|
222
|
-
| `app.d.ts` | `MantaAppModules` — typed `app.modules.catalog.listProducts()` |
|
|
223
|
-
| `events.d.ts` | `MantaEventName` — union of all known event names |
|
|
321
|
+
| `.manta/generated.d.ts` | `MantaEntities`, `MantaAppModules`, `MantaEventName`, and module augmentation used by IDE autocomplete |
|
|
224
322
|
|
|
225
323
|
These are TypeScript module augmentations. After codegen, `app.modules.*` has full autocomplete in your IDE.
|
|
226
324
|
|
package/docs/14-adapters.md
CHANGED
|
@@ -8,7 +8,7 @@ Every infrastructure concern is abstracted behind a port. Here are all ports you
|
|
|
8
8
|
|
|
9
9
|
| Port | Responsibility | Dev adapter | Prod adapter |
|
|
10
10
|
|------|---------------|-------------|--------------|
|
|
11
|
-
| `ICachePort` | Key-value cache | InMemoryCacheAdapter | UpstashCacheAdapter |
|
|
11
|
+
| `ICachePort` | Key-value cache | InMemoryCacheAdapter | UpstashCacheAdapter, PostgresCacheAdapter |
|
|
12
12
|
| `IEventBusPort` | Event pub/sub | InMemoryEventBusAdapter | Upstash Queues |
|
|
13
13
|
| `IFilePort` | File storage | InMemoryFileAdapter | VercelBlobAdapter |
|
|
14
14
|
| `ILoggerPort` | Structured logging | TestLogger | PinoLoggerAdapter |
|
|
@@ -67,6 +67,25 @@ export class RedisCacheAdapter implements ICachePort {
|
|
|
67
67
|
}
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
+
## Built-in durable Postgres cache
|
|
71
|
+
|
|
72
|
+
When Redis/Upstash is not desirable, `@mantajs/adapter-database-pg` exposes a durable cache adapter:
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
export default defineConfig({
|
|
76
|
+
adapters: {
|
|
77
|
+
ICachePort: {
|
|
78
|
+
adapter: '@mantajs/adapter-database-pg/cache',
|
|
79
|
+
options: {
|
|
80
|
+
tableName: 'manta_cache',
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
})
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The CLI factory reuses the active `IDatabasePort` Postgres connection. This adapter is appropriate for auth logout/reset/session revocation state where durability matters more than sub-millisecond Redis latency.
|
|
88
|
+
|
|
70
89
|
### 2. Create the barrel export
|
|
71
90
|
|
|
72
91
|
```typescript
|
package/docs/15-hosts.md
CHANGED
|
@@ -33,7 +33,7 @@ export async function startExpressHost(options: { port?: number; cwd?: string }
|
|
|
33
33
|
// Bootstrap the Manta app (same as manta dev / manta start)
|
|
34
34
|
const { app, adapter, logger, shutdown } = await bootstrapApp({
|
|
35
35
|
cwd,
|
|
36
|
-
mode: '
|
|
36
|
+
mode: 'prod',
|
|
37
37
|
})
|
|
38
38
|
|
|
39
39
|
// Create Express app
|
|
@@ -84,7 +84,7 @@ let bootstrapped: Awaited<ReturnType<typeof bootstrapApp>> | null = null
|
|
|
84
84
|
export async function handler(event: APIGatewayProxyEventV2) {
|
|
85
85
|
// Cold start: bootstrap once
|
|
86
86
|
if (!bootstrapped) {
|
|
87
|
-
bootstrapped = await bootstrapApp({ cwd: process.cwd(), mode: '
|
|
87
|
+
bootstrapped = await bootstrapApp({ cwd: process.cwd(), mode: 'prod' })
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
// Translate Lambda event to Web Request
|
|
@@ -117,6 +117,19 @@ A host must:
|
|
|
117
117
|
|
|
118
118
|
The H3Adapter's `handleRequest(request: Request): Promise<Response>` is the single entry point. It runs the full 12-step pipeline (auth, validation, routing, error handling).
|
|
119
119
|
|
|
120
|
+
## Production bootstrap mode
|
|
121
|
+
|
|
122
|
+
Production hosts must call `bootstrapApp()` with `mode: 'prod'`. Development tooling uses `mode: 'dev'`.
|
|
123
|
+
|
|
124
|
+
The Nitro production build generated by `@mantajs/host-nitro` writes a production bootstrap with `mode: 'prod'` for both manifest-based builds and runtime-discovery fallback builds. This matters because production error handling must not expose development stack traces.
|
|
125
|
+
|
|
126
|
+
For the Node preset, the generated Nitro catch-all route calls the Manta API first, then serves SPA fallbacks from the built static output when the API returns `404` for a `GET` request. This mirrors the generated Vercel routing locally:
|
|
127
|
+
|
|
128
|
+
- `/` redirects to the single SPA mount path when there is one SPA mounted away from `/`
|
|
129
|
+
- `/login`, `/reset-password`, and `/accept-invite` redirect under that mount path
|
|
130
|
+
- SPA subroutes such as `/admin/login` return the built `index.html`
|
|
131
|
+
- `/api/*` and file-extension asset paths are never handled by the SPA fallback
|
|
132
|
+
|
|
120
133
|
## What the pipeline provides
|
|
121
134
|
|
|
122
135
|
Every request passing through `adapter.handleRequest()` goes through:
|
package/docs/16-reference.md
CHANGED
|
@@ -58,7 +58,7 @@ function defineLink(
|
|
|
58
58
|
): ResolvedLink
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
### defineContext(config)
|
|
61
|
+
### defineContext(config) — legacy
|
|
62
62
|
|
|
63
63
|
```typescript
|
|
64
64
|
function defineContext(config: {
|
|
@@ -71,12 +71,32 @@ function defineContext(config: {
|
|
|
71
71
|
}): ContextDefinition
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
+
`defineContext()` is kept for legacy compatibility. New Manta apps should use filesystem contexts: `src/commands/{context}/` and `src/queries/{context}/` map to `/api/{context}/...`.
|
|
75
|
+
|
|
74
76
|
### defineConfig(config?)
|
|
75
77
|
|
|
76
78
|
```typescript
|
|
77
79
|
function defineConfig(config?: Partial<MantaConfig>): MantaConfig
|
|
78
80
|
```
|
|
79
81
|
|
|
82
|
+
Common SPA config shape:
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
type SpaConfig = {
|
|
86
|
+
dashboard?: string | null // default: '@mantajs/dashboard'; null disables the shell
|
|
87
|
+
preset?: string | null // default: '@mantajs/ui'; null disables the preset
|
|
88
|
+
mountPath?: string | null // default: /{spaName}; use '/' for root-mounted SPA
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
export default defineConfig({
|
|
94
|
+
spa: {
|
|
95
|
+
admin: { mountPath: '/' },
|
|
96
|
+
},
|
|
97
|
+
})
|
|
98
|
+
```
|
|
99
|
+
|
|
80
100
|
## Helpers
|
|
81
101
|
|
|
82
102
|
### field property types
|
|
@@ -102,7 +122,7 @@ Modifiers: `.nullable()`, `.unique()`, `.indexed()`, `.searchable()`, `.default(
|
|
|
102
122
|
function many(entity: DmlEntity): Many<DmlEntity>
|
|
103
123
|
```
|
|
104
124
|
|
|
105
|
-
Cardinality modifier for `defineLink()`. See [Links](./
|
|
125
|
+
Cardinality modifier for `defineLink()`. See [Links](./08-links.md).
|
|
106
126
|
|
|
107
127
|
### Globals
|
|
108
128
|
|
|
@@ -111,7 +131,8 @@ All `define*` functions and helpers are globals — zero imports needed:
|
|
|
111
131
|
| Global | Purpose |
|
|
112
132
|
|--------|---------|
|
|
113
133
|
| `defineModel`, `defineService`, `defineLink`, `defineCommand` | Core primitives |
|
|
114
|
-
| `defineAgent`, `defineSubscriber`, `defineJob
|
|
134
|
+
| `defineAgent`, `defineSubscriber`, `defineJob` | Extended primitives |
|
|
135
|
+
| `defineContext` | Legacy context primitive; prefer filesystem contexts |
|
|
115
136
|
| `defineConfig` | Configuration |
|
|
116
137
|
| `field` | Property type factory |
|
|
117
138
|
| `many` | Cardinality modifier |
|
|
@@ -137,6 +158,14 @@ function makeIdempotent<T>(
|
|
|
137
158
|
): (event: Message<T>) => Promise<void>
|
|
138
159
|
```
|
|
139
160
|
|
|
161
|
+
### ICachePort production adapters
|
|
162
|
+
|
|
163
|
+
| Adapter | Package path | Notes |
|
|
164
|
+
| --- | --- | --- |
|
|
165
|
+
| Upstash Redis | `@mantajs/adapter-cache-upstash` | Default production cache for Vercel/Cloudflare presets |
|
|
166
|
+
| Postgres | `@mantajs/adapter-database-pg/cache` | Durable DB-backed fallback for auth revocation/session state |
|
|
167
|
+
| In-memory | `InMemoryCacheAdapter` | Dev/test only; not durable across instances |
|
|
168
|
+
|
|
140
169
|
## step API
|
|
141
170
|
|
|
142
171
|
Used inside `defineCommand({ workflow: (input, { step }) => {...} })`:
|
package/docs/17-dashboard.md
CHANGED
|
@@ -51,6 +51,8 @@ src/spa/admin/
|
|
|
51
51
|
|
|
52
52
|
**`.ts` not `.tsx`** — pages export `definePage()` or `defineForm()` specs (pure data), not JSX. Only files in `blocks/` and `components/` are `.tsx`.
|
|
53
53
|
|
|
54
|
+
**Mount path is project config, not page config.** A SPA named `admin` defaults to `/admin`. For a dedicated admin subdomain, set `spa.admin.mountPath = "/"` in `manta.config.ts`; page routes and navigation items remain SPA-local (`/products`, `/dashboard`, etc.).
|
|
55
|
+
|
|
54
56
|
---
|
|
55
57
|
|
|
56
58
|
## defineSpa()
|
|
@@ -141,7 +143,7 @@ export default definePage({
|
|
|
141
143
|
{ key: 'created_at', label: 'Created', format: 'date' },
|
|
142
144
|
],
|
|
143
145
|
searchable: ['title'],
|
|
144
|
-
navigateTo: '/
|
|
146
|
+
navigateTo: '/products/:id',
|
|
145
147
|
},
|
|
146
148
|
],
|
|
147
149
|
})
|
|
@@ -564,7 +566,7 @@ header: {
|
|
|
564
566
|
actions: [
|
|
565
567
|
'create',
|
|
566
568
|
{ label: 'Export', command: 'export-products' },
|
|
567
|
-
{ label: 'Import', to: '/
|
|
569
|
+
{ label: 'Import', to: '/products/import' },
|
|
568
570
|
],
|
|
569
571
|
}
|
|
570
572
|
```
|
package/docs/AGENT.md
CHANGED
|
@@ -350,7 +350,7 @@ Tables: `admin_user`, `admin_invite`
|
|
|
350
350
|
|
|
351
351
|
Auth routes (on `/api/admin/`):
|
|
352
352
|
- `POST /login` (public) — returns JWT with `{ id, type: 'admin' }`
|
|
353
|
-
- `DELETE /logout` (public) —
|
|
353
|
+
- `DELETE /logout` (public) — clears auth cookies and attempts server-side token revocation
|
|
354
354
|
- `POST /refresh` (public) — refresh token
|
|
355
355
|
- `POST /forgot-password` (public) — reset flow
|
|
356
356
|
- `POST /reset-password` (public) — confirm reset
|
|
@@ -362,7 +362,9 @@ Protected routes (JWT required, `type === 'admin'`):
|
|
|
362
362
|
- `POST /create-user`, `POST /update-user`, `POST /delete-user`
|
|
363
363
|
- `POST /create-invite`, `POST /refresh-invite`
|
|
364
364
|
|
|
365
|
-
Middleware: all `/api/admin/*` routes verify JWT
|
|
365
|
+
Middleware: all `/api/admin/*` routes verify JWT, reject cache-blacklisted identities when cache is reachable, then require `type === 'admin'`
|
|
366
|
+
|
|
367
|
+
Production auth requires a durable `ICachePort` for logout/reset/session revocation. Default production presets use `@mantajs/adapter-cache-upstash`; use `@mantajs/adapter-database-pg/cache` when Postgres should be the durable cache backend.
|
|
366
368
|
|
|
367
369
|
Override: create `src/commands/admin/login.ts` to replace auto-generated login.
|
|
368
370
|
Override: create `src/middleware/admin.ts` to replace auto-generated middleware.
|
|
@@ -396,7 +398,13 @@ src/spa/admin/
|
|
|
396
398
|
└── page.tsx # → /admin/products
|
|
397
399
|
```
|
|
398
400
|
|
|
399
|
-
Defaults: `@mantajs/dashboard` (shell) + `@mantajs/ui` (preset).
|
|
401
|
+
Defaults: `@mantajs/dashboard` (shell) + `@mantajs/ui` (preset). The generated Vite entry imports the dashboard CSS through the package export:
|
|
402
|
+
|
|
403
|
+
```typescript
|
|
404
|
+
import '@mantajs/dashboard/index.css'
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Override in config:
|
|
400
408
|
|
|
401
409
|
```typescript
|
|
402
410
|
// manta.config.ts
|
|
@@ -408,6 +416,42 @@ export default defineConfig({
|
|
|
408
416
|
})
|
|
409
417
|
```
|
|
410
418
|
|
|
419
|
+
Mount paths:
|
|
420
|
+
|
|
421
|
+
```typescript
|
|
422
|
+
export default defineConfig({
|
|
423
|
+
spa: {
|
|
424
|
+
admin: {}, // default: /admin
|
|
425
|
+
// admin: { mountPath: '/' } // root mount for admin.example.com
|
|
426
|
+
},
|
|
427
|
+
})
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
When `mountPath` is `/`, generated Vercel rewrites exclude `/api/*` so API routes remain server-side.
|
|
431
|
+
|
|
432
|
+
Dev Vite ports:
|
|
433
|
+
|
|
434
|
+
```typescript
|
|
435
|
+
export default defineConfig({
|
|
436
|
+
spa: {
|
|
437
|
+
admin: {
|
|
438
|
+
vitePort: 5310, // default starts at 5200
|
|
439
|
+
},
|
|
440
|
+
},
|
|
441
|
+
})
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
Temporary local overrides also work:
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
MANTA_VITE_PORT=5310 manta dev
|
|
448
|
+
MANTA_VITE_PORT_ADMIN=5311 manta dev
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
`manta build` writes a SPA fallback manifest. With the Node preset, `manta start` mirrors Vercel SPA fallback behavior locally: root/login auth shortcuts redirect under the single SPA mount path, SPA subroutes serve `index.html`, and `/api/*` remains server-side.
|
|
452
|
+
|
|
453
|
+
`manta build --preset vercel` preserves existing custom `vercel.json` project settings such as `buildCommand`, `installCommand`, `outputDirectory`, `functions`, `headers`, plus custom redirects/rewrites/crons that do not collide with framework-generated SPA or cron entries.
|
|
454
|
+
|
|
411
455
|
### SDK — Frontend hooks
|
|
412
456
|
|
|
413
457
|
```typescript
|
|
@@ -497,5 +541,8 @@ Complete framework documentation is in `node_modules/@mantajs/core/docs/`:
|
|
|
497
541
|
| [14-adapters](node_modules/@mantajs/core/docs/14-adapters.md) | Custom adapters |
|
|
498
542
|
| [15-hosts](node_modules/@mantajs/core/docs/15-hosts.md) | Custom hosts |
|
|
499
543
|
| [16-reference](node_modules/@mantajs/core/docs/16-reference.md) | API reference |
|
|
544
|
+
| [17-dashboard](node_modules/@mantajs/core/docs/17-dashboard.md) | Dashboard specs, pages, forms, blocks |
|
|
545
|
+
|
|
546
|
+
Projects generated by `manta init` include `.codex/skills/mantajs/SKILL.md` and `.claude/skills/mantajs/SKILL.md`. `manta dev` refreshes both from `@mantajs/core/skills/mantajs/SKILL.md` so Codex and Claude keep pointing at this same docs directory.
|
|
500
547
|
|
|
501
|
-
**Read the relevant doc BEFORE writing code.** When in doubt, check [
|
|
548
|
+
**Read the relevant doc BEFORE writing code.** When in doubt, check [05-commands.md](node_modules/@mantajs/core/docs/05-commands.md) for workflow patterns.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantajs/core",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"default": "./dist/testing/relational-query-suite.js"
|
|
37
37
|
},
|
|
38
38
|
"./package.json": "./package.json",
|
|
39
|
-
"./docs/*": "./docs/*"
|
|
39
|
+
"./docs/*": "./docs/*",
|
|
40
|
+
"./skills/*": "./skills/*"
|
|
40
41
|
},
|
|
41
42
|
"dependencies": {
|
|
42
43
|
"drizzle-orm": "^0.35.0",
|
|
@@ -51,6 +52,7 @@
|
|
|
51
52
|
},
|
|
52
53
|
"files": [
|
|
53
54
|
"dist",
|
|
54
|
-
"docs"
|
|
55
|
+
"docs",
|
|
56
|
+
"skills"
|
|
55
57
|
]
|
|
56
58
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mantajs
|
|
3
|
+
description: Use when working inside a Manta/Mantajs project: creating models, services, commands, queries, workflows, dashboards/SPAs, adapters, plugins, hosts, tests, or deployment config. Loads the canonical framework documentation shipped by @mantajs/core.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Mantajs
|
|
7
|
+
|
|
8
|
+
Before changing Manta code in an application, read the project root `AGENT.md` if it exists. It contains project-specific conventions plus links to the framework docs.
|
|
9
|
+
|
|
10
|
+
The canonical framework documentation is shipped with `@mantajs/core`:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
node_modules/@mantajs/core/docs/
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If this skill was installed or refreshed by the Manta CLI, it should live at:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
.codex/skills/mantajs/SKILL.md
|
|
20
|
+
.claude/skills/mantajs/SKILL.md
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
`manta init` writes the skill for new projects. `manta dev` refreshes it for existing projects so it stays aligned with the installed `@mantajs/core` docs.
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
1. Identify the primitive or area involved.
|
|
28
|
+
2. Read only the matching doc file from `node_modules/@mantajs/core/docs/`.
|
|
29
|
+
3. Follow the existing project structure and generated `AGENT.md`.
|
|
30
|
+
4. Prefer Manta primitives over hand-written routes or custom framework glue.
|
|
31
|
+
|
|
32
|
+
## Doc Map
|
|
33
|
+
|
|
34
|
+
| Need | Read |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| Mental model, project structure | `00-overview.md` |
|
|
37
|
+
| First project or scaffolded layout | `01-getting-started.md` |
|
|
38
|
+
| Entities and fields | `02-models.md` |
|
|
39
|
+
| Services and repositories | `03-services.md` |
|
|
40
|
+
| Users, auth, sessions | `04-users.md` |
|
|
41
|
+
| Commands, workflows, long-running runs | `05-commands.md` |
|
|
42
|
+
| Queries and external query graph | `06-queries.md` |
|
|
43
|
+
| Events, jobs, workflows | `07-events.md` |
|
|
44
|
+
| Links and relations | `08-links.md` |
|
|
45
|
+
| AI agents and typed LLM steps | `09-agents.md` |
|
|
46
|
+
| SPA generation, dashboard mount path, SDK | `10-spa.md` |
|
|
47
|
+
| `defineConfig`, CLI, presets, release config | `11-config.md` |
|
|
48
|
+
| Constraints and validation rules | `12-constraints.md` |
|
|
49
|
+
| Tests and conformance suites | `13-testing.md` |
|
|
50
|
+
| Adapter authoring | `14-adapters.md` |
|
|
51
|
+
| Host authoring and production bootstrap | `15-hosts.md` |
|
|
52
|
+
| API surface reference | `16-reference.md` |
|
|
53
|
+
| Dashboard specs, pages, forms, blocks | `17-dashboard.md` |
|
|
54
|
+
|
|
55
|
+
## Current SPA Rules
|
|
56
|
+
|
|
57
|
+
- Standalone/Nitro SPAs live in `src/spa/{name}/`.
|
|
58
|
+
- The default mount path is `/{name}`; set `spa.{name}.mountPath = "/"` in `manta.config.ts` for a root-mounted SPA on a dedicated subdomain.
|
|
59
|
+
- `@mantajs/dashboard/index.css` is the public dashboard stylesheet export.
|
|
60
|
+
- Root-mounted SPAs must not capture `/api/*`; keep API routes under `/api`.
|
|
61
|
+
|
|
62
|
+
## Hard Rules
|
|
63
|
+
|
|
64
|
+
- Do not create ad hoc API routes for business behavior; use `defineCommand()` or `defineQuery()`.
|
|
65
|
+
- Do not bypass generated services for simple entity writes.
|
|
66
|
+
- Keep module entities/services together under `src/modules/{module}/entities/{entity}/`.
|
|
67
|
+
- Read the relevant doc before inventing a new pattern.
|