@mantajs/core 0.2.0-beta.3 → 0.2.0-beta.5
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 +26 -16
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +3 -2
- 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 +31 -1
- package/docs/11-config.md +113 -39
- package/docs/14-adapters.md +20 -1
- package/docs/15-hosts.md +8 -2
- package/docs/16-reference.md +32 -3
- package/docs/17-dashboard.md +4 -2
- package/docs/AGENT.md +30 -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
|
@@ -243,14 +243,17 @@ export declare const EventsConfigSchema: z.ZodOptional<z.ZodObject<{
|
|
|
243
243
|
maxPayloadSize?: number | undefined;
|
|
244
244
|
}>>;
|
|
245
245
|
export declare const SpaConfigSchema: z.ZodObject<{
|
|
246
|
-
dashboard: z.ZodOptional<z.ZodString
|
|
247
|
-
preset: z.ZodOptional<z.ZodString
|
|
246
|
+
dashboard: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
247
|
+
preset: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
248
|
+
mountPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
248
249
|
}, "strip", z.ZodTypeAny, {
|
|
249
|
-
dashboard?: string | undefined;
|
|
250
|
-
preset?: string | undefined;
|
|
250
|
+
dashboard?: string | null | undefined;
|
|
251
|
+
preset?: string | null | undefined;
|
|
252
|
+
mountPath?: string | null | undefined;
|
|
251
253
|
}, {
|
|
252
|
-
dashboard?: string | undefined;
|
|
253
|
-
preset?: string | undefined;
|
|
254
|
+
dashboard?: string | null | undefined;
|
|
255
|
+
preset?: string | null | undefined;
|
|
256
|
+
mountPath?: string | null | undefined;
|
|
254
257
|
}>;
|
|
255
258
|
export declare const LoadedConfigSchema: z.ZodObject<{
|
|
256
259
|
database: z.ZodOptional<z.ZodObject<{
|
|
@@ -444,14 +447,17 @@ export declare const LoadedConfigSchema: z.ZodObject<{
|
|
|
444
447
|
}>>>;
|
|
445
448
|
preset: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
|
|
446
449
|
spa: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
447
|
-
dashboard: z.ZodOptional<z.ZodString
|
|
448
|
-
preset: z.ZodOptional<z.ZodString
|
|
450
|
+
dashboard: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
451
|
+
preset: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
452
|
+
mountPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
449
453
|
}, "strip", z.ZodTypeAny, {
|
|
450
|
-
dashboard?: string | undefined;
|
|
451
|
-
preset?: string | undefined;
|
|
454
|
+
dashboard?: string | null | undefined;
|
|
455
|
+
preset?: string | null | undefined;
|
|
456
|
+
mountPath?: string | null | undefined;
|
|
452
457
|
}, {
|
|
453
|
-
dashboard?: string | undefined;
|
|
454
|
-
preset?: string | undefined;
|
|
458
|
+
dashboard?: string | null | undefined;
|
|
459
|
+
preset?: string | null | undefined;
|
|
460
|
+
mountPath?: string | null | undefined;
|
|
455
461
|
}>>>;
|
|
456
462
|
}, "strip", z.ZodTypeAny, {
|
|
457
463
|
strict: boolean;
|
|
@@ -509,8 +515,9 @@ export declare const LoadedConfigSchema: z.ZodObject<{
|
|
|
509
515
|
options?: Record<string, unknown> | undefined;
|
|
510
516
|
}> | undefined;
|
|
511
517
|
spa?: Record<string, {
|
|
512
|
-
dashboard?: string | undefined;
|
|
513
|
-
preset?: string | undefined;
|
|
518
|
+
dashboard?: string | null | undefined;
|
|
519
|
+
preset?: string | null | undefined;
|
|
520
|
+
mountPath?: string | null | undefined;
|
|
514
521
|
}> | undefined;
|
|
515
522
|
}, {
|
|
516
523
|
query?: {
|
|
@@ -568,8 +575,9 @@ export declare const LoadedConfigSchema: z.ZodObject<{
|
|
|
568
575
|
options?: Record<string, unknown> | undefined;
|
|
569
576
|
}> | undefined;
|
|
570
577
|
spa?: Record<string, {
|
|
571
|
-
dashboard?: string | undefined;
|
|
572
|
-
preset?: string | undefined;
|
|
578
|
+
dashboard?: string | null | undefined;
|
|
579
|
+
preset?: string | null | undefined;
|
|
580
|
+
mountPath?: string | null | undefined;
|
|
573
581
|
}> | undefined;
|
|
574
582
|
}>;
|
|
575
583
|
/**
|
|
@@ -667,6 +675,8 @@ export interface SpaConfig {
|
|
|
667
675
|
dashboard?: string | null;
|
|
668
676
|
/** UI preset. Default: '@mantajs/ui'. Set null to disable. */
|
|
669
677
|
preset?: string | null;
|
|
678
|
+
/** Public URL mount path. Default: /{spaName}; use "/" for a root-mounted SPA on a subdomain. */
|
|
679
|
+
mountPath?: string | null;
|
|
670
680
|
}
|
|
671
681
|
/** Default SPA settings — applied when no override exists. */
|
|
672
682
|
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
|
@@ -72,8 +72,9 @@ export const EventsConfigSchema = z
|
|
|
72
72
|
})
|
|
73
73
|
.optional();
|
|
74
74
|
export const SpaConfigSchema = z.object({
|
|
75
|
-
dashboard: z.string().optional(),
|
|
76
|
-
preset: z.string().optional(),
|
|
75
|
+
dashboard: z.string().nullable().optional(),
|
|
76
|
+
preset: z.string().nullable().optional(),
|
|
77
|
+
mountPath: z.string().nullable().optional(),
|
|
77
78
|
});
|
|
78
79
|
export const LoadedConfigSchema = z.object({
|
|
79
80
|
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,30 @@ 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
|
+
|
|
49
79
|
---
|
|
50
80
|
|
|
51
81
|
## 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 |
|
|
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.
|
|
61
58
|
|
|
62
|
-
|
|
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
|
|
68
|
-
|
|
69
|
-
### The AGENT.md
|
|
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,37 @@ 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 } }` | 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
|
+
|
|
136
167
|
## Presets (adapter bundles)
|
|
137
168
|
|
|
138
169
|
The framework auto-detects the environment and loads appropriate adapters:
|
|
@@ -149,6 +180,43 @@ The framework auto-detects the environment and loads appropriate adapters:
|
|
|
149
180
|
|
|
150
181
|
Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
|
|
151
182
|
|
|
183
|
+
### Durable cache for auth revocation
|
|
184
|
+
|
|
185
|
+
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:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
export default defineConfig({
|
|
189
|
+
preset: 'vercel',
|
|
190
|
+
adapters: {
|
|
191
|
+
ICachePort: {
|
|
192
|
+
adapter: '@mantajs/adapter-cache-upstash',
|
|
193
|
+
options: {
|
|
194
|
+
url: process.env.UPSTASH_REDIS_REST_URL,
|
|
195
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN,
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
})
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
If Upstash REST credentials are not available or not reliable in the deployment runtime, use the Postgres-backed cache adapter:
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
export default defineConfig({
|
|
206
|
+
preset: 'vercel',
|
|
207
|
+
adapters: {
|
|
208
|
+
ICachePort: {
|
|
209
|
+
adapter: '@mantajs/adapter-database-pg/cache',
|
|
210
|
+
options: {
|
|
211
|
+
tableName: 'manta_cache',
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
})
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The Postgres cache reuses the configured `IDatabasePort` connection when bootstrapped by the Manta CLI and creates the cache table automatically by default.
|
|
219
|
+
|
|
152
220
|
## Environment variables
|
|
153
221
|
|
|
154
222
|
| Variable | Required | Description |
|
|
@@ -156,6 +224,8 @@ Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
|
|
|
156
224
|
| `DATABASE_URL` | Yes | PostgreSQL connection string |
|
|
157
225
|
| `JWT_SECRET` | Prod only | JWT signing secret (dev: auto-generated) |
|
|
158
226
|
| `APP_ENV` | No | Force environment (`development` or `production`) |
|
|
227
|
+
| `UPSTASH_REDIS_REST_URL` | Prod when using Upstash cache | Upstash Redis REST endpoint |
|
|
228
|
+
| `UPSTASH_REDIS_REST_TOKEN` | Prod when using Upstash cache | Upstash Redis REST token |
|
|
159
229
|
| `ANTHROPIC_API_KEY` | No | Enable AI chat in admin dashboard |
|
|
160
230
|
|
|
161
231
|
## CLI commands
|
|
@@ -178,15 +248,21 @@ Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
|
|
|
178
248
|
|
|
179
249
|
Starts development server. Auto-performs:
|
|
180
250
|
1. Load env + config
|
|
181
|
-
2. Generate `.manta/
|
|
251
|
+
2. Generate `.manta/generated.d.ts` (TypeScript types for autocomplete)
|
|
182
252
|
3. Start Nitro dev server with HMR
|
|
183
253
|
4. On first request: connect DB, instantiate adapters, discover modules/commands/subscribers/jobs/links/queries
|
|
184
254
|
5. Auto-create tables in dev mode (no manual migration needed)
|
|
185
255
|
6. Wire all routes, subscribers, jobs
|
|
186
256
|
|
|
257
|
+
### manta build --preset vercel
|
|
258
|
+
|
|
259
|
+
For Vercel deployments, `manta build --preset vercel` generates the framework-owned SPA rewrites and cron routes in `vercel.json`.
|
|
260
|
+
|
|
261
|
+
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.
|
|
262
|
+
|
|
187
263
|
### manta db:generate
|
|
188
264
|
|
|
189
|
-
Scans `src/modules/*/
|
|
265
|
+
Scans entity definitions from `src/modules/*/entities/` and relation links from `src/links/` to generate SQL migrations:
|
|
190
266
|
|
|
191
267
|
```bash
|
|
192
268
|
manta db:generate --name add-blog-post
|
|
@@ -212,15 +288,13 @@ manta exec scripts/seed.ts
|
|
|
212
288
|
manta exec scripts/seed.ts --dry-run # Rollback after execution (test mode)
|
|
213
289
|
```
|
|
214
290
|
|
|
215
|
-
## Codegen (
|
|
291
|
+
## Codegen (`.manta/generated.d.ts`)
|
|
216
292
|
|
|
217
293
|
On `manta dev` or `manta build`, the framework generates:
|
|
218
294
|
|
|
219
295
|
| File | Content |
|
|
220
296
|
|------|---------|
|
|
221
|
-
|
|
|
222
|
-
| `app.d.ts` | `MantaAppModules` — typed `app.modules.catalog.listProducts()` |
|
|
223
|
-
| `events.d.ts` | `MantaEventName` — union of all known event names |
|
|
297
|
+
| `.manta/generated.d.ts` | `MantaEntities`, `MantaAppModules`, `MantaEventName`, and module augmentation used by IDE autocomplete |
|
|
224
298
|
|
|
225
299
|
These are TypeScript module augmentations. After codegen, `app.modules.*` has full autocomplete in your IDE.
|
|
226
300
|
|
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,12 @@ 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
|
+
|
|
120
126
|
## What the pipeline provides
|
|
121
127
|
|
|
122
128
|
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,21 @@ 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
|
+
`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.
|
|
433
|
+
|
|
411
434
|
### SDK — Frontend hooks
|
|
412
435
|
|
|
413
436
|
```typescript
|
|
@@ -497,5 +520,8 @@ Complete framework documentation is in `node_modules/@mantajs/core/docs/`:
|
|
|
497
520
|
| [14-adapters](node_modules/@mantajs/core/docs/14-adapters.md) | Custom adapters |
|
|
498
521
|
| [15-hosts](node_modules/@mantajs/core/docs/15-hosts.md) | Custom hosts |
|
|
499
522
|
| [16-reference](node_modules/@mantajs/core/docs/16-reference.md) | API reference |
|
|
523
|
+
| [17-dashboard](node_modules/@mantajs/core/docs/17-dashboard.md) | Dashboard specs, pages, forms, blocks |
|
|
524
|
+
|
|
525
|
+
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
526
|
|
|
501
|
-
**Read the relevant doc BEFORE writing code.** When in doubt, check [
|
|
527
|
+
**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.5",
|
|
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.
|