@mantajs/core 0.2.0-beta.1 → 0.2.0-beta.10

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.
Files changed (48) hide show
  1. package/dist/adapters/file-memory.d.ts +2 -5
  2. package/dist/adapters/file-memory.d.ts.map +1 -1
  3. package/dist/adapters/file-memory.js +1 -1
  4. package/dist/adapters/file-memory.js.map +1 -1
  5. package/dist/config/types.d.ts +36 -16
  6. package/dist/config/types.d.ts.map +1 -1
  7. package/dist/config/types.js +4 -2
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/ports/file.d.ts +9 -5
  13. package/dist/ports/file.d.ts.map +1 -1
  14. package/dist/ports/index.d.ts +1 -1
  15. package/dist/ports/index.d.ts.map +1 -1
  16. package/dist/query/define-query.d.ts +17 -1
  17. package/dist/query/define-query.d.ts.map +1 -1
  18. package/dist/query/define-query.js.map +1 -1
  19. package/dist/query/index.d.ts.map +1 -1
  20. package/dist/query/index.js +7 -1
  21. package/dist/query/index.js.map +1 -1
  22. package/dist/service/define.d.ts +9 -1
  23. package/dist/service/define.d.ts.map +1 -1
  24. package/dist/service/define.js.map +1 -1
  25. package/dist/service/instantiate.d.ts +7 -1
  26. package/dist/service/instantiate.d.ts.map +1 -1
  27. package/dist/service/instantiate.js +9 -2
  28. package/dist/service/instantiate.js.map +1 -1
  29. package/dist/user/auto-routes.d.ts +6 -0
  30. package/dist/user/auto-routes.d.ts.map +1 -1
  31. package/dist/user/auto-routes.js +70 -8
  32. package/dist/user/auto-routes.js.map +1 -1
  33. package/docs/00-overview.md +9 -10
  34. package/docs/01-getting-started.md +26 -29
  35. package/docs/03-services.md +23 -5
  36. package/docs/04-users.md +47 -3
  37. package/docs/05-commands.md +1 -1
  38. package/docs/06-queries.md +54 -23
  39. package/docs/10-spa.md +63 -1
  40. package/docs/11-config.md +158 -39
  41. package/docs/14-adapters.md +52 -2
  42. package/docs/15-hosts.md +17 -2
  43. package/docs/16-reference.md +32 -3
  44. package/docs/17-dashboard.md +4 -2
  45. package/docs/AGENT.md +51 -4
  46. package/package.json +5 -3
  47. package/skills/mantajs/SKILL.md +67 -0
  48. package/skills/mantajs/agents/openai.yaml +3 -0
@@ -22,6 +22,12 @@ export interface AutoRouteDeps {
22
22
  notification?: INotificationPort;
23
23
  baseUrl?: string;
24
24
  publicPathPrefix?: string;
25
+ authCookie?: {
26
+ secure?: boolean;
27
+ sameSite?: 'lax' | 'strict' | 'none';
28
+ domain?: string;
29
+ path?: string;
30
+ };
25
31
  }
26
32
  export declare function generateAuthRoutes(deps: AutoRouteDeps): RouteEntry[];
27
33
  export declare function generateUserCrudRoutes(deps: AutoRouteDeps): RouteEntry[];
@@ -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;CAC1B;AA6DD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CA2MpE;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"}
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"}
@@ -14,7 +14,59 @@ async function getBody(req) {
14
14
  }
15
15
  function extractToken(req) {
16
16
  const authHeader = req.headers.get('authorization');
17
- return authHeader?.startsWith('Bearer ') ? authHeader.slice(7) : null;
17
+ if (authHeader?.startsWith('Bearer '))
18
+ return authHeader.slice(7);
19
+ const ctx = new URL(req.url, 'http://localhost').pathname.split('/')[2];
20
+ const cookies = parseCookies(req.headers.get('cookie'));
21
+ return cookies[`manta.${ctx}.access`] ?? cookies['manta.access'] ?? null;
22
+ }
23
+ function extractRefreshToken(req, body) {
24
+ if (body.refreshToken)
25
+ return body.refreshToken;
26
+ const ctx = new URL(req.url, 'http://localhost').pathname.split('/')[2];
27
+ const cookies = parseCookies(req.headers.get('cookie'));
28
+ return cookies[`manta.${ctx}.refresh`] ?? cookies['manta.refresh'] ?? null;
29
+ }
30
+ function parseCookies(cookieHeader) {
31
+ const cookies = {};
32
+ if (!cookieHeader)
33
+ return cookies;
34
+ for (const part of cookieHeader.split(';')) {
35
+ const [rawKey, ...rest] = part.trim().split('=');
36
+ if (!rawKey)
37
+ continue;
38
+ cookies[rawKey] = decodeURIComponent(rest.join('='));
39
+ }
40
+ return cookies;
41
+ }
42
+ function serializeCookie(name, value, options) {
43
+ const parts = [`${name}=${encodeURIComponent(value)}`, `Path=${options.path ?? '/'}`];
44
+ if (options.maxAge !== undefined)
45
+ parts.push(`Max-Age=${options.maxAge}`);
46
+ if (options.domain)
47
+ parts.push(`Domain=${options.domain}`);
48
+ if (options.httpOnly !== false)
49
+ parts.push('HttpOnly');
50
+ if (options.secure)
51
+ parts.push('Secure');
52
+ parts.push(`SameSite=${options.sameSite ?? 'lax'}`);
53
+ return parts.join('; ');
54
+ }
55
+ function authCookieHeaders(ctx, token, refreshToken, options) {
56
+ const headers = new Headers({ 'Content-Type': 'application/json' });
57
+ const cookieOptions = { httpOnly: true, secure: options?.secure ?? process.env.NODE_ENV === 'production', ...options };
58
+ headers.append('Set-Cookie', serializeCookie(`manta.${ctx}.access`, token, { ...cookieOptions, maxAge: 60 * 60 }));
59
+ if (refreshToken) {
60
+ headers.append('Set-Cookie', serializeCookie(`manta.${ctx}.refresh`, refreshToken, { ...cookieOptions, maxAge: 60 * 60 * 24 * 30 }));
61
+ }
62
+ return headers;
63
+ }
64
+ function clearAuthCookieHeaders(ctx, options) {
65
+ const headers = new Headers({ 'Content-Type': 'application/json' });
66
+ const cookieOptions = { httpOnly: true, secure: options?.secure ?? process.env.NODE_ENV === 'production', ...options };
67
+ headers.append('Set-Cookie', serializeCookie(`manta.${ctx}.access`, '', { ...cookieOptions, maxAge: 0 }));
68
+ headers.append('Set-Cookie', serializeCookie(`manta.${ctx}.refresh`, '', { ...cookieOptions, maxAge: 0 }));
69
+ return headers;
18
70
  }
19
71
  function getBaseUrl(req, configured) {
20
72
  const base = configured ?? process.env.ADMIN_BASE_URL ?? process.env.MANTA_BASE_URL;
@@ -46,7 +98,7 @@ async function sendAuthEmail(notification, input, logger) {
46
98
  }
47
99
  // ── Auth routes ─────────────────────────────────────────
48
100
  export function generateAuthRoutes(deps) {
49
- const { userDef, authService, userRepo, cache, logger, jwtSecret, notification, baseUrl, publicPathPrefix } = deps;
101
+ const { userDef, authService, userRepo, cache, logger, jwtSecret, notification, baseUrl, publicPathPrefix, authCookie, } = deps;
50
102
  const ctx = userDef.contextName;
51
103
  const basePath = `/api/${ctx}`;
52
104
  return [
@@ -86,7 +138,7 @@ export function generateAuthRoutes(deps) {
86
138
  };
87
139
  const token = await authService.generateToken(tokenPayload, jwtSecret, '1h');
88
140
  const refreshToken = await authService.generateToken({ ...tokenPayload, app_metadata: { ...tokenPayload.app_metadata, type: 'refresh' } }, jwtSecret, '30d');
89
- return Response.json({ token, refreshToken, user });
141
+ return Response.json({ token, refreshToken, user }, { headers: authCookieHeaders(ctx, token, refreshToken, authCookie) });
90
142
  },
91
143
  },
92
144
  // DELETE /api/{ctx}/logout
@@ -96,13 +148,22 @@ export function generateAuthRoutes(deps) {
96
148
  public: true,
97
149
  handler: async (req) => {
98
150
  const token = extractToken(req);
151
+ let revoked = false;
152
+ let revocationError;
99
153
  if (token) {
100
154
  const payload = await authService.verifyToken(token, jwtSecret).catch(() => null);
101
155
  if (payload) {
102
- await cache.set(`auth:blacklist:${payload.auth_identity_id}`, '1', 2592000);
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
+ }
103
164
  }
104
165
  }
105
- return Response.json({ success: true });
166
+ return Response.json({ success: true, revoked, ...(revocationError ? { warning: 'TOKEN_REVOCATION_FAILED' } : {}) }, { headers: clearAuthCookieHeaders(ctx, authCookie) });
106
167
  },
107
168
  },
108
169
  // POST /api/{ctx}/refresh
@@ -112,10 +173,11 @@ export function generateAuthRoutes(deps) {
112
173
  public: true,
113
174
  handler: async (req) => {
114
175
  const body = await getBody(req);
115
- if (!body.refreshToken) {
176
+ const refreshToken = extractRefreshToken(req, body);
177
+ if (!refreshToken) {
116
178
  return Response.json({ type: 'INVALID_DATA', message: 'refreshToken is required' }, { status: 400 });
117
179
  }
118
- const payload = await authService.verifyToken(body.refreshToken, jwtSecret);
180
+ const payload = await authService.verifyToken(refreshToken, jwtSecret);
119
181
  const appMeta = payload.app_metadata;
120
182
  if (appMeta?.type !== 'refresh') {
121
183
  return Response.json({ type: 'UNAUTHORIZED', message: 'Invalid refresh token' }, { status: 401 });
@@ -132,7 +194,7 @@ export function generateAuthRoutes(deps) {
132
194
  auth_identity_id: payload.auth_identity_id,
133
195
  app_metadata: cleanMeta,
134
196
  }, jwtSecret, '1h');
135
- return Response.json({ token });
197
+ return Response.json({ token }, { headers: authCookieHeaders(ctx, token, null, authCookie) });
136
198
  },
137
199
  },
138
200
  // POST /api/{ctx}/forgot-password
@@ -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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"}
@@ -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 (`src/contexts/*.ts`) no `defineContext()` function.
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 [Config — Publishing](./08-config.md#publishing-modules-and-plugins) for CLI details.
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
- | `defineContext({ name: 'store', basePath: '/api/store', ... })` | Route filtering, auth checks |
141
- | `manta dev` | `.manta/types/` — full TypeScript autocomplete for app.modules.*, events, entities |
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`, `defineContext`, `defineWorkflow`, `defineUserModel`, `defineConfig`, `definePreset`, `defineMiddleware` | Type-safe |
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
- │ └── contexts/
248
- ├── admin.ts # defineContext({...})
249
- │ └── store.ts
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
- │ └── contexts/
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 — Define a context
138
+ ## Step 6 — Expose reads for the admin context
135
139
 
136
- Create `src/contexts/admin.ts`:
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 defineContext({
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/types/ (1 modules, 3 events)
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
- API docs at http://localhost:9000/api/docs
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/query/blog \
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": {"status": "published"}}'
192
+ -d '{"entity":"post","filters":{"status":"published"}}'
197
193
  ```
198
194
 
199
195
  View API docs:
200
196
  ```
201
- open http://localhost:9000/api/docs
197
+ open http://localhost:9000/api/openapi.json
202
198
  ```
203
199
 
204
200
  ## What happened automatically
205
201
 
206
- From your 4 files (model, service, command, context), Manta generated:
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/query/blog`
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/types/`)
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](./07-links.md))
222
- - Add scheduled tasks (see [Events](./06-events.md))
223
- - Expose a storefront API (see [Contexts](./08-contexts.md))
224
- - Deploy to production (see [Config](./09-config.md))
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))
@@ -4,7 +4,7 @@
4
4
 
5
5
  **1 entity = 1 service. Always.**
6
6
 
7
- A service defines the mutations (writes) for **one** entity. The repository it receives is typed for that entity only. A service cannot mutate another entity that's a command.
7
+ A service defines the mutations (writes) for **one** entity. It receives the generated repository for compensated CRUD and the schema-aware Drizzle client for explicit SQL-shaped writes. A service should own one entity's invariants; if you need to coordinate multiple entities, write a command that orchestrates the services or use a transaction deliberately.
8
8
 
9
9
  A module can have multiple entities, and therefore multiple services. If you need to mutate two entities together, write a module command that orchestrates them.
10
10
 
@@ -13,23 +13,26 @@ If you don't have an entity, you don't have a module. Use `app.infra.*` for infr
13
13
  ## defineService()
14
14
 
15
15
  ```typescript
16
- export default defineService('product', ({ db, log }) => ({
16
+ import { eq } from 'drizzle-orm'
17
+
18
+ export default defineService('product', ({ db, drizzle, schema, log }) => ({
17
19
  activate: async (id: string) => {
18
- await db.update({ id, status: 'active' })
20
+ await drizzle.update(schema.products).set({ status: 'active' }).where(eq(schema.products.id, id))
19
21
  log.info(`Product ${id} activated`)
20
22
  },
21
23
 
22
24
  archive: async (id: string) => {
25
+ // Generated repository remains useful for simple compensated CRUD.
23
26
  await db.update({ id, status: 'archived' })
24
27
  log.info(`Product ${id} archived`)
25
28
  },
26
29
  }))
27
30
  ```
28
31
 
29
- **Signature:** `defineService(entityName: string, factory: ({ db, log }) => Methods, options?)`
32
+ **Signature:** `defineService(entityName: string, factory: ({ db, drizzle, schema, database, sql, log }) => Methods, options?)`
30
33
 
31
34
  - `entityName` — Entity name as a string (autocompletes from codegen)
32
- - `factory` — Receives `{ db, log }` (typed repository + logger), returns methods
35
+ - `factory` — Receives the typed repository, Drizzle runtime, generated schema, database adapter, SQL helper, and logger
33
36
  - `options.publicMethods` — (optional) Array of method names visible to other modules
34
37
 
35
38
  No imports needed — `defineService` is a global. Compensation is automatic — the repo snapshots state before every mutation. No `service.method()` wrapper needed.
@@ -67,6 +70,21 @@ activate: async (id: string) => {
67
70
 
68
71
  **How it works:** The framework auto-snapshots repository state before every mutation. In a workflow, if step 3 fails, steps 1 and 2 are automatically rolled back using the snapshots. You don't write compensation logic — the framework handles it.
69
72
 
73
+ ## Data APIs in services
74
+
75
+ Use `drizzle`, `schema`, and `sql` when the mutation is easier to express as SQL/Drizzle, needs custom predicates, bulk operations, joins, or transaction-shaped code.
76
+
77
+ Use `db` for simple generated CRUD that should participate in the repository snapshot compensation path.
78
+
79
+ ```typescript
80
+ const products = schema.products
81
+
82
+ await drizzle
83
+ .update(products)
84
+ .set({ status: 'archived', updated_at: new Date() })
85
+ .where(eq(products.id, id))
86
+ ```
87
+
70
88
  ## TypedRepository — the db API
71
89
 
72
90
  The `db` parameter is a `TypedRepository<T>` where `T` is the inferred entity type:
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 | Blacklists token in cache |
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. Check `auth.type === 'admin'`
84
- 3. Reject with 401/403 if invalid
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
 
@@ -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/types/`)
98
+ - **Typed** — autocomplete from codegen (`.manta/generated.d.ts`)
99
99
 
100
100
  ### step.service.MODULE.link — Create links
101
101