MCPcopy Index your code
hub / github.com/callstack/agent-device / scopeRequestSession

Function scopeRequestSession

src/daemon/request-admission.ts:15–57  ·  view source on GitHub ↗
(req: DaemonRequest)

Source from the content-addressed store, hash-verified

13import type { DaemonRequest, SessionState } from './types.ts';
14
15export function scopeRequestSession(req: DaemonRequest): DaemonRequest {
16 const isolation = resolveSessionIsolationMode(
17 req.meta?.sessionIsolation ?? req.flags?.sessionIsolation,
18 );
19 const rawTenant = req.meta?.tenantId ?? req.flags?.tenant;
20 const tenant = normalizeTenantId(rawTenant);
21
22 if (rawTenant && !tenant) {
23 throw new AppError(
24 'INVALID_ARGS',
25 'Invalid tenant id. Use 1-128 chars: letters, numbers, dot, underscore, hyphen.',
26 );
27 }
28 if (isolation !== 'tenant') {
29 return req;
30 }
31 if (!tenant) {
32 throw new AppError(
33 'INVALID_ARGS',
34 'session isolation mode tenant requires --tenant (or meta.tenantId).',
35 );
36 }
37 const requestedSession = req.session || 'default';
38 if (requestedSession.startsWith(`${tenant}:`)) {
39 return {
40 ...req,
41 meta: {
42 ...req.meta,
43 tenantId: tenant,
44 sessionIsolation: isolation,
45 },
46 };
47 }
48 return {
49 ...req,
50 session: `${tenant}:${requestedSession}`,
51 meta: {
52 ...req.meta,
53 tenantId: tenant,
54 sessionIsolation: isolation,
55 },
56 };
57}
58
59export function assertRequestLeaseAdmission(
60 req: DaemonRequest,

Callers 1

Calls 3

normalizeTenantIdFunction · 0.90
startsWithMethod · 0.80

Tested by

no test coverage detected