Skip to content

Commit 48fd4ab

Browse files
authored
fix(device-agent): dedicated long-lived session per install (CS-280)
fix(device-agent): dedicated long-lived session per install (CS-280)
1 parent cc7e756 commit 48fd4ab

42 files changed

Lines changed: 2017 additions & 41 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/api/src/auth/hybrid-auth.guard.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ export class HybridAuthGuard implements CanActivate {
218218
request.authType = 'session';
219219
request.isApiKey = false;
220220
request.isServiceToken = false;
221+
request.sessionId = sessionData.id;
222+
request.sessionDeviceAgent =
223+
(sessionData as Record<string, unknown>).deviceAgent === true;
221224
// Resolve isPlatformAdmin from the User.role column (via better-auth session),
222225
// not from the member relation. This ensures the flag is set regardless of
223226
// org membership or skipOrgCheck.

apps/api/src/auth/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ export interface AuthenticatedRequest extends Request {
1616
memberDepartment?: Departments; // Member department for visibility filtering (only available for session auth)
1717
apiKeyScopes?: string[]; // Scopes for API key auth (empty = legacy full access)
1818
impersonatedBy?: string; // User ID of the admin who initiated impersonation (only set during impersonation sessions)
19+
sessionId?: string; // Session ID (only set for session auth)
20+
sessionDeviceAgent?: boolean; // Whether the session is a device-agent session (only set for session auth)
1921
}
2022

2123
export interface AuthContext {

0 commit comments

Comments
 (0)