@antasphere/chassis-server 1.4.0 → 1.5.1

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.
@@ -0,0 +1,74 @@
1
+ import { type Db } from '@antasphere/chassis-db';
2
+ import type { AppsList, Principal } from '@antasphere/chassis-contract';
3
+ import type { GrantAccess } from '../identity/hub-grant.js';
4
+ import type { Logger } from '../logger.js';
5
+ /**
6
+ * The Apps page's list (`GET /apps`, PRDCT-3493): the other tools of the
7
+ * person's organization, and the account that signs them in.
8
+ *
9
+ * On the cloud edition the hub is asked AS THE PERSON, with their own grant
10
+ * (the chassis's `HubGrantService`, the same stored grant and the same
11
+ * cross-replica refresh lock the reconciler uses): ONE call, `GET
12
+ * <hub>/api/v1/me/apps` with `X-Workspace-Id` naming the workspace's hub
13
+ * organization (`workspaces.central_account_id`), answers the catalogue as
14
+ * the person sees it there (the restricted tools they may not see already
15
+ * left out by the hub) with the access verdict per tool; the tools not open
16
+ * are left out here. A SUSPENDED organization (the hub's `organization.status`)
17
+ * is served as an empty list carrying the organization and its status, never
18
+ * as the tools: the hub's contract says a tool's Apps service never serves
19
+ * such a list, and the dashboard says why. The answer is held five minutes
20
+ * per person and workspace. A grant that is missing or dead, a hub that does
21
+ * not answer, a malformed body, or a workspace that is no hub organization
22
+ * falls back to the operator's file, never to an error: the page is a
23
+ * convenience, not an access decision (each tool still asks the hub when it
24
+ * is opened).
25
+ *
26
+ * On a self-hosted instance the list is the operator's file (`APPS_FILE`),
27
+ * read on every call; without one the page lists nothing.
28
+ */
29
+ /** How long a person's hub answer is held. */
30
+ export declare const APPS_CACHE_TTL_MS: number;
31
+ /** The as-the-person token source: what the page needs of the chassis's `HubGrantService`. */
32
+ export interface HubTokens {
33
+ accessToken(userId: string): Promise<GrantAccess>;
34
+ refresh(userId: string): Promise<GrantAccess>;
35
+ invalidateAccess(userId: string): void;
36
+ }
37
+ export interface AppsServiceOptions {
38
+ db: Db;
39
+ logger: Logger;
40
+ edition: 'oss' | 'cloud';
41
+ /** HUB_ISSUER_URL (cloud). */
42
+ hubIssuerUrl?: string | undefined;
43
+ /** APPS_FILE. */
44
+ appsFile?: string | undefined;
45
+ /** This tool's own slug (the identity's): its card says "You are here". */
46
+ selfSlug: string;
47
+ /** The person's hub grant (cloud); null on a self-hosted instance. */
48
+ tokens: HubTokens | null;
49
+ /** Test seams. */
50
+ fetchImpl?: typeof fetch;
51
+ now?: () => number;
52
+ }
53
+ export declare class AppsService {
54
+ private readonly opts;
55
+ private readonly cache;
56
+ private readonly fetchImpl;
57
+ private readonly now;
58
+ private readonly hubBase;
59
+ constructor(opts: AppsServiceOptions);
60
+ /** The list for one person in one workspace. */
61
+ list(principal: Pick<Principal, 'userId' | 'workspaceId'>): Promise<AppsList>;
62
+ /** The hub's card: the issuer on the cloud edition. */
63
+ private cloudHub;
64
+ /** The operator's file; `none` without one, or when it cannot be read. */
65
+ fromFile(): Promise<AppsList>;
66
+ /**
67
+ * The hub's answer, or null when the hub cannot be asked for this person
68
+ * (no grant, a dead one, a workspace that is no hub organization, a hub
69
+ * that does not answer or answers another shape): the file is read instead.
70
+ */
71
+ private fromHub;
72
+ private get;
73
+ }
74
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/apps/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,QAAa,CAAC;AAM5C,8FAA8F;AAC9F,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAID,qBAAa,WAAW;IAMV,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsD;IAC5E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAEX,IAAI,EAAE,kBAAkB;IAOrD,gDAAgD;IAC1C,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBnF,uDAAuD;IACvD,OAAO,CAAC,QAAQ;IAKhB,0EAA0E;IACpE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAoBnC;;;;OAIG;YACW,OAAO;YA+CP,GAAG;CAsBlB"}
@@ -0,0 +1,165 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { eq } from 'drizzle-orm';
3
+ import { workspaces } from '@antasphere/chassis-db';
4
+ import { HUB_APP_NAME, appsFromFile, readOrganization, safeHttpUrl, selectHubApps } from './select.js';
5
+ /**
6
+ * The Apps page's list (`GET /apps`, PRDCT-3493): the other tools of the
7
+ * person's organization, and the account that signs them in.
8
+ *
9
+ * On the cloud edition the hub is asked AS THE PERSON, with their own grant
10
+ * (the chassis's `HubGrantService`, the same stored grant and the same
11
+ * cross-replica refresh lock the reconciler uses): ONE call, `GET
12
+ * <hub>/api/v1/me/apps` with `X-Workspace-Id` naming the workspace's hub
13
+ * organization (`workspaces.central_account_id`), answers the catalogue as
14
+ * the person sees it there (the restricted tools they may not see already
15
+ * left out by the hub) with the access verdict per tool; the tools not open
16
+ * are left out here. A SUSPENDED organization (the hub's `organization.status`)
17
+ * is served as an empty list carrying the organization and its status, never
18
+ * as the tools: the hub's contract says a tool's Apps service never serves
19
+ * such a list, and the dashboard says why. The answer is held five minutes
20
+ * per person and workspace. A grant that is missing or dead, a hub that does
21
+ * not answer, a malformed body, or a workspace that is no hub organization
22
+ * falls back to the operator's file, never to an error: the page is a
23
+ * convenience, not an access decision (each tool still asks the hub when it
24
+ * is opened).
25
+ *
26
+ * On a self-hosted instance the list is the operator's file (`APPS_FILE`),
27
+ * read on every call; without one the page lists nothing.
28
+ */
29
+ /** How long a person's hub answer is held. */
30
+ export const APPS_CACHE_TTL_MS = 5 * 60_000;
31
+ /** At most this many answers are held; the oldest goes first. */
32
+ const APPS_CACHE_MAX = 5_000;
33
+ /** The hub read's budget: the page waits on it. */
34
+ const HUB_TIMEOUT_MS = 3_000;
35
+ export class AppsService {
36
+ opts;
37
+ cache = new Map();
38
+ fetchImpl;
39
+ now;
40
+ hubBase;
41
+ constructor(opts) {
42
+ this.opts = opts;
43
+ this.fetchImpl = opts.fetchImpl ?? fetch;
44
+ this.now = opts.now ?? Date.now;
45
+ this.hubBase =
46
+ opts.edition === 'cloud' && opts.hubIssuerUrl ? opts.hubIssuerUrl.replace(/\/+$/, '') : null;
47
+ }
48
+ /** The list for one person in one workspace. */
49
+ async list(principal) {
50
+ const key = `${principal.userId}:${principal.workspaceId}`;
51
+ const held = this.cache.get(key);
52
+ if (held && this.now() - held.at < APPS_CACHE_TTL_MS)
53
+ return held.value;
54
+ const fromHub = await this.fromHub(principal);
55
+ if (!fromHub)
56
+ return this.fromFile();
57
+ this.cache.delete(key);
58
+ this.cache.set(key, { at: this.now(), value: fromHub });
59
+ if (this.cache.size > APPS_CACHE_MAX) {
60
+ const oldest = this.cache.keys().next().value;
61
+ if (oldest !== undefined)
62
+ this.cache.delete(oldest);
63
+ }
64
+ return fromHub;
65
+ }
66
+ /** The hub's card: the issuer on the cloud edition. */
67
+ cloudHub() {
68
+ const url = this.hubBase ? safeHttpUrl(this.hubBase) : null;
69
+ return url ? { url, name: HUB_APP_NAME } : null;
70
+ }
71
+ /** The operator's file; `none` without one, or when it cannot be read. */
72
+ async fromFile() {
73
+ const path = this.opts.appsFile;
74
+ if (!path)
75
+ return { apps: [], hub: this.cloudHub(), source: 'none' };
76
+ let raw;
77
+ try {
78
+ raw = JSON.parse(await readFile(path, 'utf8'));
79
+ }
80
+ catch (err) {
81
+ this.opts.logger.warn({ err, path }, 'APPS_FILE could not be read as JSON — the Apps page lists nothing');
82
+ return { apps: [], hub: this.cloudHub(), source: 'none' };
83
+ }
84
+ const file = appsFromFile(raw, this.opts.selfSlug);
85
+ if (file.rejected.length > 0) {
86
+ this.opts.logger.warn({ path, rejected: file.rejected }, 'APPS_FILE entries left out of the Apps page');
87
+ }
88
+ return { apps: file.apps, hub: file.hub ?? this.cloudHub(), source: 'file' };
89
+ }
90
+ /**
91
+ * The hub's answer, or null when the hub cannot be asked for this person
92
+ * (no grant, a dead one, a workspace that is no hub organization, a hub
93
+ * that does not answer or answers another shape): the file is read instead.
94
+ */
95
+ async fromHub(principal) {
96
+ const tokens = this.opts.tokens;
97
+ if (!this.hubBase || !tokens)
98
+ return null;
99
+ const [row] = await this.opts.db
100
+ .select({ hubOrgId: workspaces.centralAccountId })
101
+ .from(workspaces)
102
+ .where(eq(workspaces.id, principal.workspaceId))
103
+ .limit(1);
104
+ const hubOrgId = row?.hubOrgId ?? null;
105
+ if (!hubOrgId)
106
+ return null;
107
+ const access = await tokens.accessToken(principal.userId);
108
+ if (access.kind !== 'ok')
109
+ return null;
110
+ // One forced refresh and one retry on a 401/403 (the stored token may be
111
+ // stale): the chassis's own posture (hub-user-client.ts).
112
+ let res = await this.get(access.accessToken, hubOrgId);
113
+ if (res.kind === 'ok' && (res.status === 401 || res.status === 403)) {
114
+ tokens.invalidateAccess(principal.userId);
115
+ const refreshed = await tokens.refresh(principal.userId);
116
+ if (refreshed.kind !== 'ok')
117
+ return null;
118
+ res = await this.get(refreshed.accessToken, hubOrgId);
119
+ }
120
+ if (res.kind !== 'ok' || res.status !== 200) {
121
+ if (res.kind === 'ok') {
122
+ this.opts.logger.warn({ status: res.status }, 'hub /me/apps answered non-200 — the Apps page reads the file');
123
+ }
124
+ return null;
125
+ }
126
+ // The organization's status first: a suspended one empties the list
127
+ // whatever the body's tools say (or fail to say).
128
+ const organization = readOrganization(res.body);
129
+ if (organization?.status === 'suspended') {
130
+ this.opts.logger.info({ hubOrgId }, 'hub organization suspended — the Apps page lists nothing');
131
+ return { apps: [], hub: this.cloudHub(), source: 'hub', organization };
132
+ }
133
+ const apps = selectHubApps(res.body, this.opts.selfSlug);
134
+ if (!apps) {
135
+ this.opts.logger.warn('hub /me/apps carried no tools list — the Apps page reads the file');
136
+ return null;
137
+ }
138
+ return { apps, hub: this.cloudHub(), source: 'hub', ...(organization ? { organization } : {}) };
139
+ }
140
+ async get(token, hubOrgId) {
141
+ try {
142
+ const response = await this.fetchImpl(`${this.hubBase}/api/v1/me/apps`, {
143
+ headers: {
144
+ authorization: `Bearer ${token}`,
145
+ accept: 'application/json',
146
+ 'x-workspace-id': hubOrgId
147
+ },
148
+ signal: AbortSignal.timeout(HUB_TIMEOUT_MS)
149
+ });
150
+ let body = null;
151
+ try {
152
+ body = await response.json();
153
+ }
154
+ catch {
155
+ body = null;
156
+ }
157
+ return { kind: 'ok', status: response.status, body };
158
+ }
159
+ catch (err) {
160
+ this.opts.logger.warn({ err }, 'hub read for the Apps page failed');
161
+ return { kind: 'fail' };
162
+ }
163
+ }
164
+ }
165
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/apps/service.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts CHANGED
@@ -158,6 +158,8 @@ declare const chassisEnvShape: (version: string) => {
158
158
  HSTS_MAX_AGE: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
159
159
  /** Instance-level cap read by the default AllowAllEntitlements. */
160
160
  MAX_FILE_SIZE_MB: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
161
+ /** A JSON file listing the other tools of the organization for the Apps page (PRDCT-3493): `[{ "slug": "finance", "name": "Antasphere Finance", "launchUrl": "https://finance.example.com", "description": "optional sentence", "icon": "landmark", "drawing": "ledger", "accent": "#B5542A" }]`, the last four the hub's descriptor keys (icon and drawing from the contract's closed lists; an invalid descriptor is dropped, the entry kept). Read on a self-hosted instance (`EDITION=oss`), and on the cloud edition when the hub cannot be asked (the cloud edition otherwise asks the hub as the person, `GET /me/apps`). Every `launchUrl` must be http(s); an entry that is not is left out, with a warning in the log. Absent: the Apps page lists no other tool. */
162
+ APPS_FILE: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
161
163
  /** How many workspaces ONE person may own on this instance — the cap on creating another workspace from the dashboard (the first one comes from setup). Any signed-in member who is not a guest may create one until they own this many. 0 closes workspace creation for everyone. On the cloud edition the count is Antasphere's own organization limit; only the 0 switch applies here. */
162
164
  MAX_WORKSPACES_PER_USER: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
163
165
  /** General per-principal API quota: sustained requests/minute allowed to every authenticated /api/v1 principal (API key, OAuth token, session). 0 disables the general limiter. */
package/dist/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
package/dist/env.js CHANGED
@@ -206,6 +206,8 @@ const chassisEnvShape = (version) => ({
206
206
  HSTS_MAX_AGE: numeric(z.coerce.number().int().min(0).default(15552000)),
207
207
  /** Instance-level cap read by the default AllowAllEntitlements. */
208
208
  MAX_FILE_SIZE_MB: numeric(z.coerce.number().int().min(1).default(100)),
209
+ /** A JSON file listing the other tools of the organization for the Apps page (PRDCT-3493): `[{ "slug": "finance", "name": "Antasphere Finance", "launchUrl": "https://finance.example.com", "description": "optional sentence", "icon": "landmark", "drawing": "ledger", "accent": "#B5542A" }]`, the last four the hub's descriptor keys (icon and drawing from the contract's closed lists; an invalid descriptor is dropped, the entry kept). Read on a self-hosted instance (`EDITION=oss`), and on the cloud edition when the hub cannot be asked (the cloud edition otherwise asks the hub as the person, `GET /me/apps`). Every `launchUrl` must be http(s); an entry that is not is left out, with a warning in the log. Absent: the Apps page lists no other tool. */
210
+ APPS_FILE: optionalString(z.string().min(1).max(1000)),
209
211
  /** How many workspaces ONE person may own on this instance — the cap on creating another workspace from the dashboard (the first one comes from setup). Any signed-in member who is not a guest may create one until they own this many. 0 closes workspace creation for everyone. On the cloud edition the count is Antasphere's own organization limit; only the 0 switch applies here. */
210
212
  MAX_WORKSPACES_PER_USER: numeric(z.coerce.number().int().min(0).max(1000).default(10)),
211
213
  /** General per-principal API quota: sustained requests/minute allowed to every authenticated /api/v1 principal (API key, OAuth token, session). 0 disables the general limiter. */
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,13 @@ export interface HubUserFixture {
95
95
  workspaceName?: string | null | undefined;
96
96
  overrides?: HubTokenOverrides | undefined;
97
97
  }
98
+ /** One tool of the fake's catalogue (what GET /me/apps serves, PRDCT-3493). */
99
+ export interface FakeHubTool {
100
+ slug: string;
101
+ name: string;
102
+ launchUrl: string;
103
+ descriptor?: Record<string, unknown> | undefined;
104
+ }
98
105
  /** One entry of a user's org registry (what GET /orgs serves). */
99
106
  export interface HubOrgEntry {
100
107
  name: string | null;
@@ -141,6 +148,14 @@ export declare class FakeHub {
141
148
  private readonly orgTeamRegistry;
142
149
  /** sub → the orgs that do NOT open the tool to them (GET /orgs' top-level `denied`). */
143
150
  private readonly userDenied;
151
+ /** The catalogue GET /me/apps serves (PRDCT-3493): the registry's tools, in order, with their descriptor. */
152
+ private tools;
153
+ /** Per user and tool, the organizations that do NOT open the tool to them (absent = open everywhere). */
154
+ private readonly userToolClosed;
155
+ readonly meAppsRequests: Array<{
156
+ auth: string | null;
157
+ orgId: string | null;
158
+ }>;
144
159
  /** Every JWT access token this fake minted (bearer lookup for /api/v1). */
145
160
  private readonly accessTokens;
146
161
  /** Live + rotated-out refresh tokens (rotation families). */
@@ -407,6 +422,11 @@ export declare class FakeHub {
407
422
  private handleUsageEvents;
408
423
  private handleUsageEntitlements;
409
424
  private handleUsageCheck;
425
+ /** The tools GET /me/apps lists, in this order. */
426
+ setTools(tools: FakeHubTool[]): void;
427
+ /** Close one tool to one user in one organization (the real hub's teams rule, reduced to its verdict). */
428
+ setToolClosed(sub: string, slug: string, orgId: string, closed?: boolean): void;
429
+ private handleMeApps;
410
430
  private handleOrgs;
411
431
  private handleTeams;
412
432
  private handleOrgCreate;
@@ -1 +1 @@
1
- {"version":3,"file":"fake-hub.d.ts","sourceRoot":"","sources":["../../src/testing/fake-hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-hub.d.ts","sourceRoot":"","sources":["../../src/testing/fake-hub.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { createServer } from 'node:http';
2
- import { entitlementProfileSchema, usageCheckRequestSchema, usageCheckSchema, usageEventSchema, usageEventsBatchSchema, usageIngestResultSchema } from '@antasphere/chassis-contract';
2
+ import { entitlementProfileSchema, usageCheckRequestSchema, usageCheckSchema, usageEventSchema, usageEventsBatchSchema, usageIngestResultSchema, meAppsSchema } from '@antasphere/chassis-contract';
3
3
  import { randomUUID } from 'node:crypto';
4
4
  import { exportJWK, generateKeyPair, SignJWT } from 'jose';
5
5
  /** What the tool requested before PRDCT-2443 — and what the hub's H3 connect grant carries. */
@@ -34,6 +34,11 @@ export class FakeHub {
34
34
  orgTeamRegistry = new Map();
35
35
  /** sub → the orgs that do NOT open the tool to them (GET /orgs' top-level `denied`). */
36
36
  userDenied = new Map();
37
+ /** The catalogue GET /me/apps serves (PRDCT-3493): the registry's tools, in order, with their descriptor. */
38
+ tools = [];
39
+ /** Per user and tool, the organizations that do NOT open the tool to them (absent = open everywhere). */
40
+ userToolClosed = new Map();
41
+ meAppsRequests = [];
37
42
  /** Every JWT access token this fake minted (bearer lookup for /api/v1). */
38
43
  accessTokens = new Map();
39
44
  /** Live + rotated-out refresh tokens (rotation families). */
@@ -331,6 +336,9 @@ export class FakeHub {
331
336
  if (req.method === 'GET' && url.pathname === '/api/v1/teams') {
332
337
  return this.handleTeams(req, res, url);
333
338
  }
339
+ if (req.method === 'GET' && url.pathname === '/api/v1/me/apps') {
340
+ return this.handleMeApps(req, res);
341
+ }
334
342
  if (req.method === 'POST' && url.pathname === '/api/v1/orgs') {
335
343
  return this.handleOrgCreate(req, res);
336
344
  }
@@ -643,6 +651,70 @@ export class FakeHub {
643
651
  }));
644
652
  }
645
653
  // ── GET /api/v1/orgs: the caller-scoped org list ──────────────────────
654
+ /** The tools GET /me/apps lists, in this order. */
655
+ setTools(tools) {
656
+ this.tools = tools;
657
+ }
658
+ /** Close one tool to one user in one organization (the real hub's teams rule, reduced to its verdict). */
659
+ setToolClosed(sub, slug, orgId, closed = true) {
660
+ const key = `${sub}:${slug}`;
661
+ const set = this.userToolClosed.get(key) ?? new Set();
662
+ if (closed)
663
+ set.add(orgId);
664
+ else
665
+ set.delete(orgId);
666
+ this.userToolClosed.set(key, set);
667
+ }
668
+ // ── GET /api/v1/me/apps: the catalogue as one person sees it (PRDCT-3493) ─
669
+ // Mirrors the hub's api/me-apps.ts: the same bearer rule as /orgs, the
670
+ // organization the `X-Workspace-Id` header names (else the user's first org,
671
+ // the real hub's default), every registered tool with `open` from the
672
+ // per-user closures, `connected` false (the fake keeps no connection facts).
673
+ handleMeApps(req, res) {
674
+ const header = req.headers['x-workspace-id'];
675
+ const orgId = (Array.isArray(header) ? header[0] : header) ?? null;
676
+ this.meAppsRequests.push({ auth: req.headers.authorization ?? null, orgId });
677
+ const bearer = /^Bearer\s+(.+)$/i.exec(req.headers.authorization ?? '')?.[1] ?? null;
678
+ const record = bearer ? this.accessTokens.get(bearer) : undefined;
679
+ if (!record || record.expMs <= Date.now() || !record.aud.includes(this.apiResource)) {
680
+ return sendJson(res, 401, { error: { code: 'invalid_token', message: 'Unauthorized' } });
681
+ }
682
+ const orgs = this.userOrgs.get(record.sub) ?? new Map();
683
+ const resolved = orgId ?? orgs.keys().next().value ?? null;
684
+ if (!resolved || !orgs.has(resolved)) {
685
+ return sendJson(res, 401, { error: { code: 'unauthenticated', message: 'Authentication required' } });
686
+ }
687
+ const tools = this.tools.map((tool) => ({
688
+ slug: tool.slug,
689
+ clientId: `tool-${tool.slug}`,
690
+ name: tool.name,
691
+ launchUrl: tool.launchUrl,
692
+ returnOrigins: [new URL(tool.launchUrl).origin],
693
+ connected: false,
694
+ connectedAt: null,
695
+ lastUsedAt: null,
696
+ ...(tool.descriptor ? { descriptor: tool.descriptor } : {}),
697
+ open: !(this.userToolClosed.get(`${record.sub}:${tool.slug}`)?.has(resolved) ?? false)
698
+ }));
699
+ const entry = orgs.get(resolved);
700
+ const body = {
701
+ organization: { id: resolved, name: entry?.name ?? '', status: entry?.status ?? 'active' },
702
+ tools
703
+ };
704
+ // The fake answers the hub's published shape and nothing else: a body the
705
+ // real hub would never send is a test proving nothing, so it is refused
706
+ // here, as a 500 naming the drift (a thrown error would only hang the socket).
707
+ const checked = meAppsSchema.safeParse(body);
708
+ if (!checked.success) {
709
+ return sendJson(res, 500, {
710
+ error: {
711
+ code: 'fake_hub_drift',
712
+ message: `/me/apps body is off the hub contract: ${checked.error.message}`
713
+ }
714
+ });
715
+ }
716
+ return sendJson(res, 200, body);
717
+ }
646
718
  async handleOrgs(req, res) {
647
719
  this.orgsRequests.push({ auth: req.headers.authorization ?? null });
648
720
  if (this.orgsDelayMs > 0)