@synoikia/core 0.8.1 → 0.10.0

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 (82) hide show
  1. package/dist/approvals/links.d.ts +1 -1
  2. package/dist/approvals/links.js +1 -1
  3. package/dist/approvals/links.js.map +1 -1
  4. package/dist/approvals/service.d.ts +6 -3
  5. package/dist/approvals/service.js +1 -4
  6. package/dist/approvals/service.js.map +1 -1
  7. package/dist/audit-query.d.ts +1 -0
  8. package/dist/audit-query.js +17 -11
  9. package/dist/audit-query.js.map +1 -1
  10. package/dist/auth/external-cloudflare.d.ts +11 -0
  11. package/dist/auth/external-cloudflare.js +76 -0
  12. package/dist/auth/external-cloudflare.js.map +1 -0
  13. package/dist/auth/external.d.ts +24 -0
  14. package/dist/auth/external.js +12 -0
  15. package/dist/auth/external.js.map +1 -0
  16. package/dist/auth/mcp-auth.d.ts +5 -19
  17. package/dist/auth/mcp-auth.js +60 -119
  18. package/dist/auth/mcp-auth.js.map +1 -1
  19. package/dist/auth/oauth.d.ts +1 -1
  20. package/dist/auth/oidc.d.ts +1 -1
  21. package/dist/auth/oidc.js +16 -2
  22. package/dist/auth/oidc.js.map +1 -1
  23. package/dist/auth/roles.d.ts +17 -11
  24. package/dist/auth/roles.js +51 -13
  25. package/dist/auth/roles.js.map +1 -1
  26. package/dist/auth/sessions.d.ts +0 -6
  27. package/dist/auth/sessions.js +0 -15
  28. package/dist/auth/sessions.js.map +1 -1
  29. package/dist/auth/users.d.ts +3 -2
  30. package/dist/auth/users.js +9 -9
  31. package/dist/auth/users.js.map +1 -1
  32. package/dist/catalog/role-levels.d.ts +5 -2
  33. package/dist/catalog/role-levels.js +27 -8
  34. package/dist/catalog/role-levels.js.map +1 -1
  35. package/dist/catalog/rules.d.ts +18 -18
  36. package/dist/catalog/rules.js +5 -6
  37. package/dist/catalog/rules.js.map +1 -1
  38. package/dist/config/env.d.ts +1 -1
  39. package/dist/db/schema.d.ts +60 -43
  40. package/dist/db/schema.js +6 -5
  41. package/dist/db/schema.js.map +1 -1
  42. package/dist/gate/pipeline.js +2 -0
  43. package/dist/gate/pipeline.js.map +1 -1
  44. package/dist/gate/preapproval.d.ts +1 -1
  45. package/dist/gate/preapproval.js +6 -10
  46. package/dist/gate/preapproval.js.map +1 -1
  47. package/dist/http/admin/auth.js +6 -6
  48. package/dist/http/admin/auth.js.map +1 -1
  49. package/dist/http/admin/instances.js +11 -7
  50. package/dist/http/admin/instances.js.map +1 -1
  51. package/dist/http/admin/me.js +25 -21
  52. package/dist/http/admin/me.js.map +1 -1
  53. package/dist/http/admin/roles.js +5 -0
  54. package/dist/http/admin/roles.js.map +1 -1
  55. package/dist/http/admin/system.js +3 -3
  56. package/dist/http/admin/system.js.map +1 -1
  57. package/dist/http/mcp/approval-routes.d.ts +2 -2
  58. package/dist/http/mcp/approval-routes.js +54 -46
  59. package/dist/http/mcp/approval-routes.js.map +1 -1
  60. package/dist/http/mcp/endpoint.js +5 -2
  61. package/dist/http/mcp/endpoint.js.map +1 -1
  62. package/dist/http/mcp/oauth-routes.d.ts +4 -2
  63. package/dist/http/mcp/oauth-routes.js +15 -7
  64. package/dist/http/mcp/oauth-routes.js.map +1 -1
  65. package/dist/http/mcp/pages.d.ts +2 -2
  66. package/dist/http/mcp/pages.js +4 -13
  67. package/dist/http/mcp/pages.js.map +1 -1
  68. package/dist/instances/manager.d.ts +38 -12
  69. package/dist/instances/manager.js +86 -35
  70. package/dist/instances/manager.js.map +1 -1
  71. package/dist/maintenance.js +1 -1
  72. package/dist/maintenance.js.map +1 -1
  73. package/dist/notify/service.d.ts +2 -2
  74. package/dist/settings.d.ts +10 -7
  75. package/dist/settings.js +59 -11
  76. package/dist/settings.js.map +1 -1
  77. package/drizzle/0015_endpoint_switches.sql +12 -0
  78. package/drizzle/0016_client_auth_methods.sql +55 -0
  79. package/drizzle/meta/0015_snapshot.json +2848 -0
  80. package/drizzle/meta/0016_snapshot.json +2848 -0
  81. package/drizzle/meta/_journal.json +14 -0
  82. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { parseManifest, SDK_VERSION } from '@synoikia/plugin-sdk';
5
5
  import { asc, count, eq } from 'drizzle-orm';
6
6
  import { writeAudit } from '../audit.js';
7
7
  import { applyRegistrySync } from '../catalog/registry.js';
8
- import { roleInstanceIds } from '../catalog/role-levels.js';
8
+ import { roleEndpointSwitches } from '../catalog/role-levels.js';
9
9
  import { applyCatalogSync } from '../catalog/sync.js';
10
10
  import { aad } from '../crypto/index.js';
11
11
  import { pendingApprovals, pluginInstances, plugins } from '../db/schema.js';
@@ -19,7 +19,24 @@ import { mergeSecrets, storedSecretsFor, summarizeSecrets, validateConnection }
19
19
  import { cleanInstanceSettings, parseInstanceSettings, readInstanceSettings } from './settings.js';
20
20
  /** Instance lifecycle (design §4, §10): connection config, one supervised plugin child per enabled
21
21
  * instance, and sync scheduling. */
22
- export const AUTH_MODES = ['external', 'bearer', 'oauth', 'bearer+oauth'];
22
+ export const AUTH_METHODS = ['bearer', 'oauth', 'external'];
23
+ /** An endpoint's stored method list (design §6.2): null inherits every enabled method; anything unreadable
24
+ * allows none. */
25
+ export function storedAuthMethods(raw) {
26
+ if (raw === null || raw === undefined)
27
+ return null;
28
+ if (!Array.isArray(raw))
29
+ return [];
30
+ return AUTH_METHODS.filter((m) => raw.includes(m));
31
+ }
32
+ /** The methods an endpoint accepts: its own list, or all, narrowed to the globally enabled ones. */
33
+ export function effectiveAuthMethods(db, raw) {
34
+ const enabled = getSettings(db, 'mcp').clientAuth;
35
+ return (storedAuthMethods(raw) ?? AUTH_METHODS).filter((m) => enabled[m]);
36
+ }
37
+ function uniqueMethods(methods) {
38
+ return methods && AUTH_METHODS.filter((m) => methods.includes(m));
39
+ }
23
40
  /** The version in a plugin directory's manifest.json, as the child about to run it sees it. */
24
41
  function bundleVersion(dir) {
25
42
  const version = JSON.parse(readFileSync(path.join(dir, 'manifest.json'), 'utf8')).version;
@@ -90,32 +107,66 @@ export class InstanceManager {
90
107
  .all()
91
108
  .map(({ instance, plugin }) => this.describe(instance, plugin));
92
109
  }
93
- /** The role's endpoints at `mcpBase`, with live status only where the role shows it (design §6.4). */
110
+ /** The role's endpoints at `mcpBase`, each with the role's switches on it and live status only where
111
+ * its switch shows it (design §6.4). */
94
112
  listForRole(role, mcpBase) {
95
- const mine = role.isAdmin ? null : new Set(roleInstanceIds(this.db, role.id));
96
- const mode = getSettings(this.db, 'mcp').defaultAuthMode;
97
- return this.list()
98
- .filter((i) => !mine || mine.has(i.id))
99
- .map((i) => ({
100
- id: i.id,
101
- slug: i.slug,
102
- displayName: i.displayName,
103
- endpointUrl: `${mcpBase}/${i.slug}`,
104
- authMode: i.authMode ?? mode,
105
- ...(role.isAdmin || role.canSeeStatus
106
- ? {
107
- status: {
108
- enabled: i.enabled,
109
- state: i.status,
110
- error: i.statusError,
111
- plugin: i.plugin.name,
112
- upstreamVersion: i.upstreamVersion,
113
- lastSyncedAt: i.lastSyncedAt,
114
- lastSyncStatus: i.lastSyncStatus,
115
- },
116
- }
117
- : {}),
118
- }));
113
+ return this.list().flatMap((i) => {
114
+ const switches = roleEndpointSwitches(this.db, role.id, i.id);
115
+ if (!switches)
116
+ return [];
117
+ return [
118
+ {
119
+ id: i.id,
120
+ slug: i.slug,
121
+ displayName: i.displayName,
122
+ endpointUrl: `${mcpBase}/${i.slug}`,
123
+ authMethods: effectiveAuthMethods(this.db, i.authMethods),
124
+ ...switches,
125
+ ...(switches.canSeeStatus
126
+ ? {
127
+ status: {
128
+ enabled: i.enabled,
129
+ state: i.status,
130
+ error: i.statusError,
131
+ plugin: i.plugin.name,
132
+ upstreamVersion: i.upstreamVersion,
133
+ lastSyncedAt: i.lastSyncedAt,
134
+ lastSyncStatus: i.lastSyncStatus,
135
+ },
136
+ }
137
+ : {}),
138
+ },
139
+ ];
140
+ });
141
+ }
142
+ /** Endpoints outside the role, by name only, when the role may see them (design §6.4). Admins have every one. */
143
+ listUnassigned(role) {
144
+ if (role.isAdmin || !role.canSeeOtherEndpoints)
145
+ return [];
146
+ return this.db
147
+ .select({ instance: pluginInstances, plugin: plugins })
148
+ .from(pluginInstances)
149
+ .innerJoin(plugins, eq(pluginInstances.pluginId, plugins.id))
150
+ .orderBy(asc(pluginInstances.slug))
151
+ .all()
152
+ .filter(({ instance }) => !roleEndpointSwitches(this.db, role.id, instance.id))
153
+ .map(({ instance, plugin }) => {
154
+ const manifest = plugin.status === 'ok' ? parseManifest(plugin.manifest) : undefined;
155
+ return {
156
+ id: instance.id,
157
+ slug: instance.slug,
158
+ displayName: instance.displayName,
159
+ plugin: manifest?.name ?? plugin.pluginId,
160
+ description: manifest?.description ?? null,
161
+ };
162
+ });
163
+ }
164
+ /** One endpoint outside the role, as `listUnassigned` shows it; 404 for any other id. */
165
+ aboutUnassigned(role, instanceId) {
166
+ const endpoint = this.listUnassigned(role).find((e) => e.id === instanceId);
167
+ if (!endpoint)
168
+ throw new NotFoundError('instance_not_found', 'No such endpoint');
169
+ return { ...endpoint, role: role.name };
119
170
  }
120
171
  get(id) {
121
172
  const instance = this.row(id);
@@ -137,7 +188,7 @@ export class InstanceManager {
137
188
  slug: instance.slug,
138
189
  displayName: instance.displayName,
139
190
  enabled: instance.enabled,
140
- authMode: instance.authMode ?? null,
191
+ authMethods: storedAuthMethods(instance.authMethods),
141
192
  status: instance.status,
142
193
  statusError: instance.statusError,
143
194
  upstreamVersion: instance.upstreamVersion,
@@ -246,8 +297,8 @@ export class InstanceManager {
246
297
  }
247
298
  if (this.bySlug(slug))
248
299
  throw new ConflictError('slug_taken', `/${slug} is already in use`);
249
- if (input.authMode != null && !AUTH_MODES.includes(input.authMode)) {
250
- throw new ValidationError('invalid_auth_mode', 'Unknown auth mode');
300
+ if (input.authMethods?.some((m) => !AUTH_METHODS.includes(m))) {
301
+ throw new ValidationError('invalid_auth_method', 'Unknown client auth method');
251
302
  }
252
303
  const settings = parseInstanceSettings(input.settings);
253
304
  const { config, secrets } = validateConnection(manifest, input.connection);
@@ -262,7 +313,7 @@ export class InstanceManager {
262
313
  enabled: input.enabled ?? true,
263
314
  config,
264
315
  secretsEnc: this.sealSecrets(id, secrets),
265
- authMode: input.authMode ?? null,
316
+ authMethods: uniqueMethods(input.authMethods) ?? null,
266
317
  settings,
267
318
  createdAt: this.now(),
268
319
  })
@@ -298,11 +349,11 @@ export class InstanceManager {
298
349
  }
299
350
  if (patch.enabled !== undefined)
300
351
  set.enabled = patch.enabled;
301
- if (patch.authMode !== undefined) {
302
- if (patch.authMode !== null && !AUTH_MODES.includes(patch.authMode)) {
303
- throw new ValidationError('invalid_auth_mode', 'Unknown auth mode');
352
+ if (patch.authMethods !== undefined) {
353
+ if (patch.authMethods?.some((m) => !AUTH_METHODS.includes(m))) {
354
+ throw new ValidationError('invalid_auth_method', 'Unknown client auth method');
304
355
  }
305
- set.authMode = patch.authMode;
356
+ set.authMethods = uniqueMethods(patch.authMethods) ?? null;
306
357
  }
307
358
  if (patch.settings !== undefined) {
308
359
  // Start from the normalized stored settings, so a field an older release stored and this one
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/instances/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/instances/manager.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { writeAudit } from './audit.js';
3
3
  import { auditLog, pendingApprovals, preApprovalHits, preApprovalRules } from './db/schema.js';
4
4
  import { getSettings } from './settings.js';
5
5
  /** Hourly, idempotent housekeeping (design §10): expired sessions, tokens and links, old rule hits and
6
- * decided approvals, and old audit rows only when a retention is set. */
6
+ * decided approvals, and audit rows past the retention. */
7
7
  const DAY = 24 * 60 * 60_000;
8
8
  export function runHousekeeping(ctx) {
9
9
  const now = ctx.now();
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../src/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;yEACyE;AAEzE,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AAW7B,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAEtB,kFAAkF;IAClF,MAAM,OAAO,GACX,GAAG,CAAC,EAAE;SACH,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;SAClD,IAAI,CAAC,gBAAgB,CAAC;SACtB,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IACtB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAE3G,mGAAmG;IACnG,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE;SACrB,MAAM,CAAC,gBAAgB,CAAC;SACxB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,EACnE,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CACjD,CACF;SACA,GAAG,EAAE,CAAC,OAAO,CAAC;IAEjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC;QAC7D,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;QAC7E,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,UAAU,CACR,GAAG,CAAC,EAAE,EACN;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,cAAc;gBACxB,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE;aACrE,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;QACrC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;QAC/B,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;QACvC,eAAe,EAAE,IAAI;QACrB,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../src/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;2DAC2D;AAE3D,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AAW7B,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAEtB,kFAAkF;IAClF,MAAM,OAAO,GACX,GAAG,CAAC,EAAE;SACH,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;SAClD,IAAI,CAAC,gBAAgB,CAAC;SACtB,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IACtB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAE3G,mGAAmG;IACnG,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE;SACrB,MAAM,CAAC,gBAAgB,CAAC;SACxB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,EACnE,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CACjD,CACF;SACA,GAAG,EAAE,CAAC,OAAO,CAAC;IAEjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC;QAC7D,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;QAC7E,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,UAAU,CACR,GAAG,CAAC,EAAE,EACN;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,cAAc;gBACxB,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE;aACrE,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;QACrC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;QAC/B,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;QACvC,eAAe,EAAE,IAAI;QACrB,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -52,9 +52,9 @@ export declare class NotifierService {
52
52
  };
53
53
  id: string;
54
54
  name: string;
55
- kind: "ntfy" | "webhook";
56
55
  enabled: boolean;
57
56
  config: unknown;
57
+ kind: "ntfy" | "webhook";
58
58
  instanceFilter: string[] | null;
59
59
  lastSentAt: Date | null;
60
60
  lastError: string | null;
@@ -81,9 +81,9 @@ export declare class NotifierService {
81
81
  };
82
82
  id: string;
83
83
  name: string;
84
- kind: "ntfy" | "webhook";
85
84
  enabled: boolean;
86
85
  config: unknown;
86
+ kind: "ntfy" | "webhook";
87
87
  instanceFilter: string[] | null;
88
88
  lastSentAt: Date | null;
89
89
  lastError: string | null;
@@ -13,18 +13,21 @@ declare const SETTINGS_SCHEMAS: {
13
13
  localSignup: z.ZodDefault<z.ZodBoolean>;
14
14
  }, z.core.$strip>>;
15
15
  readonly mcp: z.ZodPrefault<z.ZodObject<{
16
- defaultAuthMode: z.ZodDefault<z.ZodEnum<{
17
- external: "external";
18
- bearer: "bearer";
19
- oauth: "oauth";
20
- "bearer+oauth": "bearer+oauth";
21
- }>>;
16
+ clientAuth: z.ZodPrefault<z.ZodObject<{
17
+ bearer: z.ZodDefault<z.ZodBoolean>;
18
+ oauth: z.ZodDefault<z.ZodBoolean>;
19
+ external: z.ZodDefault<z.ZodBoolean>;
20
+ }, z.core.$strip>>;
21
+ external: z.ZodPrefault<z.ZodObject<{
22
+ provider: z.ZodDefault<z.ZodEnum<{
23
+ cloudflare: "cloudflare";
24
+ }>>;
25
+ }, z.core.$strip>>;
22
26
  allowDynamicRegistration: z.ZodDefault<z.ZodBoolean>;
23
27
  cfAccess: z.ZodPrefault<z.ZodObject<{
24
28
  teamDomain: z.ZodDefault<z.ZodString>;
25
29
  aud: z.ZodDefault<z.ZodString>;
26
30
  }, z.core.$strip>>;
27
- trustedIdentityHeader: z.ZodDefault<z.ZodString>;
28
31
  accessTokenTtlMinutes: z.ZodDefault<z.ZodNumber>;
29
32
  refreshTokenTtlDays: z.ZodDefault<z.ZodNumber>;
30
33
  }, z.core.$strip>>;
package/dist/settings.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { eq } from 'drizzle-orm';
2
2
  import { z } from 'zod';
3
3
  import { writeAudit } from './audit.js';
4
+ import { EXTERNAL_PROVIDER_IDS, externalProvider } from './auth/external.js';
4
5
  import { settings } from './db/schema.js';
5
6
  import { ValidationError } from './errors.js';
6
- import { cleanStored, parseLeniently } from './lenient.js';
7
+ import { cleanStored } from './lenient.js';
7
8
  /** Global settings (design §8.2 "Settings"), one JSON document per section in the `settings` table. */
8
9
  const SETTINGS_SCHEMAS = {
9
10
  security: z
@@ -24,7 +25,7 @@ const SETTINGS_SCHEMAS = {
24
25
  .min(1)
25
26
  .max(24 * 30)
26
27
  .default(12),
27
- /** Approval-page sign-in on the MCP port (design §5.3): TOTP once per browser for this long. */
28
+ /** Approval-page sign-in on the MCP port (design §5.3): how long one browser stays signed in. */
28
29
  approvalSessionIdleHours: z
29
30
  .number()
30
31
  .int()
@@ -40,12 +41,18 @@ const SETTINGS_SCHEMAS = {
40
41
  .prefault({}),
41
42
  mcp: z
42
43
  .object({
43
- defaultAuthMode: z.enum(['external', 'bearer', 'oauth', 'bearer+oauth']).default('bearer+oauth'),
44
+ /** Client auth methods enabled on the MCP port (design §6.2); an endpoint can only narrow them. */
45
+ clientAuth: z
46
+ .object({
47
+ bearer: z.boolean().default(true),
48
+ oauth: z.boolean().default(true),
49
+ external: z.boolean().default(false),
50
+ })
51
+ .prefault({}),
52
+ external: z.object({ provider: z.enum(EXTERNAL_PROVIDER_IDS).default('cloudflare') }).prefault({}),
44
53
  allowDynamicRegistration: z.boolean().default(true),
45
- /** Cloudflare Access JWT verification for `external` mode. */
54
+ /** The Cloudflare Access provider's application (design §6.2). */
46
55
  cfAccess: z.object({ teamDomain: z.string().default(''), aud: z.string().default('') }).prefault({}),
47
- /** Header set by an auth proxy (Authelia/Authentik) used only to attribute calls in `external` mode. */
48
- trustedIdentityHeader: z.string().default(''),
49
56
  accessTokenTtlMinutes: z
50
57
  .number()
51
58
  .int()
@@ -57,18 +64,47 @@ const SETTINGS_SCHEMAS = {
57
64
  .prefault({}),
58
65
  audit: z
59
66
  .object({
60
- /** Unset = keep forever (design §10). */
61
- retentionDays: z.number().int().min(7).nullable().default(null),
67
+ /** Null = keep forever (design §10). */
68
+ retentionDays: z.number().int().min(7).nullable().default(90),
62
69
  })
63
70
  .prefault({}),
64
71
  };
72
+ /** Rules across fields of `mcp`, checked on save only: stored values stay readable as they are. */
73
+ function mcpProblems(value) {
74
+ const problems = [];
75
+ if (!Object.values(value.clientAuth).some(Boolean))
76
+ problems.push('clientAuth: enable at least one method');
77
+ const provider = externalProvider(value);
78
+ if (value.clientAuth.external && !provider.configured(value))
79
+ problems.push(`external: configure ${provider.name} before you enable external auth`);
80
+ return problems;
81
+ }
65
82
  export function isSettingsSection(name) {
66
83
  return Object.prototype.hasOwnProperty.call(SETTINGS_SCHEMAS, name);
67
84
  }
85
+ /** Stored fields that read as off, not as their open defaults, when they can't be read (design §6.2). */
86
+ const FAIL_CLOSED = {
87
+ mcp: { clientAuth: { bearer: false, oauth: false, external: false } },
88
+ };
89
+ /** Fields an earlier release stored that a save now refuses, so a stale client can't lose them silently. */
90
+ const RETIRED = {
91
+ mcp: ['defaultAuthMode', 'trustedIdentityHeader'],
92
+ };
93
+ const isPlainObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
94
+ /** The lenient read of a stored section, with {@link FAIL_CLOSED} fields closed when dropped. */
95
+ function readStored(section, raw) {
96
+ const schema = SETTINGS_SCHEMAS[section];
97
+ const result = cleanStored(schema, raw, `settings.${section}`);
98
+ const closed = Object.entries(FAIL_CLOSED[section] ?? {}).filter(([key]) => result.dropped.some((p) => p === '*' || p === key || p.startsWith(`${key}.`)));
99
+ if (!closed.length)
100
+ return { ...result, value: result.value };
101
+ const cleaned = { ...(isPlainObject(result.cleaned) ? result.cleaned : {}), ...Object.fromEntries(closed) };
102
+ return { value: schema.parse(cleaned), cleaned, dropped: result.dropped };
103
+ }
68
104
  /** Stored settings are read leniently: a field a newer schema rejects falls back to its default. */
69
105
  export function getSettings(db, section) {
70
106
  const row = db.select().from(settings).where(eq(settings.key, section)).get();
71
- return parseLeniently(SETTINGS_SCHEMAS[section], row?.value, `settings.${section}`);
107
+ return readStored(section, row?.value).value;
72
108
  }
73
109
  /** Startup: removes stored settings fields the schema rejects, once; valid fields stay as stored. */
74
110
  export function normalizeStoredSettings(db) {
@@ -76,7 +112,7 @@ export function normalizeStoredSettings(db) {
76
112
  for (const row of db.select().from(settings).all()) {
77
113
  if (!isSettingsSection(row.key))
78
114
  continue;
79
- const { cleaned, dropped } = cleanStored(SETTINGS_SCHEMAS[row.key], row.value, `settings.${row.key}`);
115
+ const { cleaned, dropped } = readStored(row.key, row.value);
80
116
  if (!dropped.length)
81
117
  continue;
82
118
  db.update(settings).set({ value: cleaned }).where(eq(settings.key, row.key)).run();
@@ -86,10 +122,22 @@ export function normalizeStoredSettings(db) {
86
122
  }
87
123
  export function updateSettings(db, section, patch, actor = {}) {
88
124
  const before = getSettings(db, section);
89
- const parsed = SETTINGS_SCHEMAS[section].safeParse({ ...before, ...patch });
125
+ const retired = (RETIRED[section] ?? []).filter((k) => isPlainObject(patch) && k in patch);
126
+ if (retired.length)
127
+ throw new ValidationError('invalid_settings', 'Invalid settings', retired.map((k) => `${k}: no longer supported`));
128
+ // Nested objects merge with the stored ones, so a partial save keeps the fields it leaves out.
129
+ const merged = { ...before };
130
+ for (const [key, value] of Object.entries(isPlainObject(patch) ? patch : {})) {
131
+ const stored = merged[key];
132
+ merged[key] = isPlainObject(stored) && isPlainObject(value) ? { ...stored, ...value } : value;
133
+ }
134
+ const parsed = SETTINGS_SCHEMAS[section].safeParse(merged);
90
135
  if (!parsed.success) {
91
136
  throw new ValidationError('invalid_settings', 'Invalid settings', parsed.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`));
92
137
  }
138
+ const problems = section === 'mcp' ? mcpProblems(parsed.data) : [];
139
+ if (problems.length)
140
+ throw new ValidationError('invalid_settings', 'Invalid settings', problems);
93
141
  db.transaction((tx) => {
94
142
  tx.insert(settings)
95
143
  .values({ key: section, value: parsed.data })
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,uGAAuG;AAEvG,MAAM,gBAAgB,GAAG;IACvB,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,qDAAqD;QACrD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACvC,iGAAiG;QACjG,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;aACZ,OAAO,CAAC,EAAE,CAAC;QACd,oBAAoB,EAAE,CAAC;aACpB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;aACZ,OAAO,CAAC,EAAE,CAAC;QACd,iGAAiG;QACjG,wBAAwB,EAAE,CAAC;aACxB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;aACX,OAAO,CAAC,EAAE,CAAC;QACd,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvE,qFAAqF;QACrF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACjE,2EAA2E;QAC3E,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACxC,CAAC;SACD,QAAQ,CAAC,EAAE,CAAC;IACf,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,mGAAmG;QACnG,UAAU,EAAE,CAAC;aACV,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SACrC,CAAC;aACD,QAAQ,CAAC,EAAE,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClG,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACnD,kEAAkE;QAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpG,qBAAqB,EAAE,CAAC;aACrB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;aACZ,OAAO,CAAC,EAAE,CAAC;QACd,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KAClE,CAAC;SACD,QAAQ,CAAC,EAAE,CAAC;IACf,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,wCAAwC;QACxC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KAC9D,CAAC;SACD,QAAQ,CAAC,EAAE,CAAC;CACP,CAAC;AAKX,mGAAmG;AACnG,SAAS,WAAW,CAAC,KAAsB;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,IAAI,kCAAkC,CAAC,CAAC;IACxF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,yGAAyG;AACzG,MAAM,WAAW,GAAyD;IACxE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;CACtE,CAAC;AAEF,4GAA4G;AAC5G,MAAM,OAAO,GAA0C;IACrD,GAAG,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;CAClD,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,CAAU,EAAgC,EAAE,CACjE,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3D,iGAAiG;AACjG,SAAS,UAAU,CAA4B,OAAU,EAAE,GAAY;IACrE,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,OAAO,EAAE,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAC9E,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAoB,EAAE,CAAC;IAC7E,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC3F,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAA4B,EAAM,EAAE,OAAU;IACvE,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9E,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,EAAM;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,SAAS;QAC9B,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,EAAM,EACN,OAAU,EACV,KAAc,EACd,QAA6B,EAAE;IAE/B,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IAC3F,IAAI,OAAO,CAAC,MAAM;QAChB,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAChD,CAAC;IACJ,+FAA+F;IAC/F,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAChG,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,IAAI,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACjG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;QACpB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;aAC5C,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;aACzE,GAAG,EAAE,CAAC;QACT,UAAU,CAAC,EAAE,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;YAC5B,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAmB,CAAC;AACpC,CAAC"}
@@ -0,0 +1,12 @@
1
+ ALTER TABLE `role_instances` ADD `can_set_own_levels` integer DEFAULT false NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE `role_instances` ADD `can_manage_own_rules` integer DEFAULT false NOT NULL;--> statement-breakpoint
3
+ ALTER TABLE `role_instances` ADD `can_see_status` integer DEFAULT false NOT NULL;--> statement-breakpoint
4
+ ALTER TABLE `roles` ADD `can_see_other_endpoints` integer DEFAULT false NOT NULL;--> statement-breakpoint
5
+ -- Each endpoint of a role keeps the switches the role had before they moved to the endpoint.
6
+ UPDATE `role_instances` SET
7
+ `can_set_own_levels` = (SELECT `can_set_own_levels` FROM `roles` WHERE `roles`.`id` = `role_instances`.`role_id`),
8
+ `can_manage_own_rules` = (SELECT `can_manage_own_rules` FROM `roles` WHERE `roles`.`id` = `role_instances`.`role_id`),
9
+ `can_see_status` = (SELECT `can_see_status` FROM `roles` WHERE `roles`.`id` = `role_instances`.`role_id`);--> statement-breakpoint
10
+ ALTER TABLE `roles` DROP COLUMN `can_set_own_levels`;--> statement-breakpoint
11
+ ALTER TABLE `roles` DROP COLUMN `can_manage_own_rules`;--> statement-breakpoint
12
+ ALTER TABLE `roles` DROP COLUMN `can_see_status`;
@@ -0,0 +1,55 @@
1
+ ALTER TABLE `plugin_instances` ADD `auth_methods` text;--> statement-breakpoint
2
+ -- The old auth modes become method lists, and nothing gains a method. External mode without Cloudflare Access
3
+ -- relied on the removed trusted header: it gets no method, so it refuses calls until an admin sets one.
4
+ CREATE TEMP TABLE `__client_auth_0016` AS
5
+ WITH `old` AS (
6
+ SELECT (SELECT CASE WHEN json_valid(`value`) THEN `value` END FROM `settings` WHERE `key` = 'mcp') AS `v`
7
+ ), `base` AS (
8
+ SELECT
9
+ coalesce(json_extract(`v`, '$.cfAccess.teamDomain'), '') != ''
10
+ AND coalesce(json_extract(`v`, '$.cfAccess.aud'), '') != '' AS `cf`,
11
+ CASE WHEN json_extract(`v`, '$.defaultAuthMode') IN ('external', 'bearer', 'oauth', 'bearer+oauth')
12
+ THEN json_extract(`v`, '$.defaultAuthMode') ELSE 'bearer+oauth' END AS `d`
13
+ FROM `old`
14
+ )
15
+ SELECT `cf`, `d`,
16
+ `d` IN ('bearer', 'bearer+oauth') AS `d_bearer`,
17
+ `d` IN ('oauth', 'bearer+oauth') AS `d_oauth`,
18
+ `d` = 'external' AND `cf` AS `d_external`,
19
+ `d` IN ('bearer', 'bearer+oauth')
20
+ OR EXISTS (SELECT 1 FROM `plugin_instances` WHERE `auth_mode` IN ('bearer', 'bearer+oauth')) AS `g_bearer`,
21
+ `d` IN ('oauth', 'bearer+oauth')
22
+ OR EXISTS (SELECT 1 FROM `plugin_instances` WHERE `auth_mode` IN ('oauth', 'bearer+oauth')) AS `g_oauth`,
23
+ `cf` AND (`d` = 'external' OR EXISTS (SELECT 1 FROM `plugin_instances` WHERE `auth_mode` = 'external')) AS `g_external`
24
+ FROM `base`;--> statement-breakpoint
25
+ UPDATE `plugin_instances` SET `auth_methods` = CASE `auth_mode`
26
+ WHEN 'bearer' THEN '["bearer"]'
27
+ WHEN 'oauth' THEN '["oauth"]'
28
+ WHEN 'bearer+oauth' THEN '["bearer","oauth"]'
29
+ WHEN 'external' THEN CASE WHEN (SELECT `cf` FROM `__client_auth_0016`) THEN '["external"]' ELSE '[]' END
30
+ ELSE '[]' END
31
+ WHERE `auth_mode` IS NOT NULL;--> statement-breakpoint
32
+ -- An endpoint that inherited the old default keeps exactly its methods when the new global set is wider,
33
+ -- or when the old default gave it none.
34
+ UPDATE `plugin_instances` SET `auth_methods` = (
35
+ SELECT CASE `d`
36
+ WHEN 'bearer' THEN '["bearer"]'
37
+ WHEN 'oauth' THEN '["oauth"]'
38
+ WHEN 'bearer+oauth' THEN '["bearer","oauth"]'
39
+ ELSE CASE WHEN `cf` THEN '["external"]' ELSE '[]' END END
40
+ FROM `__client_auth_0016`)
41
+ WHERE `auth_mode` IS NULL AND (SELECT
42
+ (`g_bearer` AND NOT `d_bearer`) OR (`g_oauth` AND NOT `d_oauth`) OR (`g_external` AND NOT `d_external`)
43
+ OR NOT (`d_bearer` OR `d_oauth` OR `d_external`)
44
+ FROM `__client_auth_0016`);--> statement-breakpoint
45
+ -- The global methods are the old default and every endpoint's own mode, together.
46
+ UPDATE `settings` SET `value` = json_set(
47
+ json_remove(`value`, '$.defaultAuthMode', '$.trustedIdentityHeader'),
48
+ '$.clientAuth', (SELECT json_object(
49
+ 'bearer', json(CASE WHEN `g_bearer` THEN 'true' ELSE 'false' END),
50
+ 'oauth', json(CASE WHEN `g_oauth` THEN 'true' ELSE 'false' END),
51
+ 'external', json(CASE WHEN `g_external` THEN 'true' ELSE 'false' END)) FROM `__client_auth_0016`),
52
+ '$.external', json_object('provider', 'cloudflare'))
53
+ WHERE `key` = 'mcp' AND json_valid(`value`);--> statement-breakpoint
54
+ DROP TABLE `__client_auth_0016`;--> statement-breakpoint
55
+ ALTER TABLE `plugin_instances` DROP COLUMN `auth_mode`;