Skip to content

Commit c549af7

Browse files
authored
feat: add request id to auth logs (#6491)
1 parent f7d65fe commit c549af7

File tree

4 files changed

+29
-29
lines changed

4 files changed

+29
-29
lines changed

packages/services/api/src/modules/auth/lib/authz.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -506,11 +506,11 @@ export abstract class AuthNStrategy<TSession extends Session> {
506506

507507
/** Helper class to Authenticate an incoming request. */
508508
export class AuthN {
509-
private strategies: Array<AuthNStrategy<Session>>;
509+
private strategies: Array<AuthNStrategy<Session> | ((logger: Logger) => AuthNStrategy<Session>)>;
510510

511511
constructor(deps: {
512512
/** List of strategies for authentication a user */
513-
strategies: Array<AuthNStrategy<Session>>;
513+
strategies: Array<AuthNStrategy<Session> | ((logger: Logger) => AuthNStrategy<Session>)>;
514514
}) {
515515
this.strategies = deps.strategies;
516516
}
@@ -520,7 +520,10 @@ export class AuthN {
520520
* If no authentication strategy succeeds a `UnauthenticatedSession` is returned instead.
521521
*/
522522
async authenticate(args: { req: FastifyRequest; reply: FastifyReply }): Promise<Session> {
523-
for (const strategy of this.strategies) {
523+
for (let strategy of this.strategies) {
524+
if (strategy instanceof AuthNStrategy === false) {
525+
strategy = strategy(args.req.log as Logger);
526+
}
524527
const session = await strategy.parse(args);
525528
if (session) {
526529
return session;

packages/services/api/src/modules/auth/lib/supertokens-strategy.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import SessionNode from 'supertokens-node/recipe/session/index.js';
22
import * as zod from 'zod';
3-
import type { FastifyReply, FastifyRequest, ServiceLogger } from '@hive/service-common';
3+
import type { FastifyReply, FastifyRequest } from '@hive/service-common';
44
import { captureException } from '@sentry/node';
55
import type { User } from '../../../shared/entities';
66
import { AccessError, HiveError } from '../../../shared/errors';
@@ -211,12 +211,12 @@ export class SuperTokensCookieBasedSession extends Session {
211211
}
212212

213213
export class SuperTokensUserAuthNStrategy extends AuthNStrategy<SuperTokensCookieBasedSession> {
214-
private logger: ServiceLogger;
214+
private logger: Logger;
215215
private organizationMembers: OrganizationMembers;
216216
private storage: Storage;
217217

218218
constructor(deps: {
219-
logger: ServiceLogger;
219+
logger: Logger;
220220
storage: Storage;
221221
organizationMembers: OrganizationMembers;
222222
}) {

packages/services/api/src/modules/auth/lib/target-access-token-strategy.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
import {
2-
maskToken,
3-
type FastifyReply,
4-
type FastifyRequest,
5-
type ServiceLogger,
6-
} from '@hive/service-common';
1+
import { maskToken, type FastifyReply, type FastifyRequest } from '@hive/service-common';
72
import { Logger } from '../../shared/providers/logger';
83
import { TokenStorage } from '../../token/providers/token-storage';
94
import { TokensConfig } from '../../token/providers/tokens';
@@ -59,10 +54,10 @@ export class TargetAccessTokenSession extends Session {
5954
}
6055

6156
export class TargetAccessTokenStrategy extends AuthNStrategy<TargetAccessTokenSession> {
62-
private logger: ServiceLogger;
57+
private logger: Logger;
6358
private tokensConfig: TokensConfig;
6459

65-
constructor(deps: { logger: ServiceLogger; tokensConfig: TokensConfig }) {
60+
constructor(deps: { logger: Logger; tokensConfig: TokensConfig }) {
6661
super();
6762
this.logger = deps.logger.child({ module: 'TargetAccessTokenStrategy' });
6863
this.tokensConfig = deps.tokensConfig;

packages/services/server/src/index.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -406,22 +406,24 @@ export async function main() {
406406

407407
const authN = new AuthN({
408408
strategies: [
409-
new SuperTokensUserAuthNStrategy({
410-
logger: server.log,
411-
storage,
412-
organizationMembers: new OrganizationMembers(
413-
storage.pool,
414-
new OrganizationMemberRoles(storage.pool, server.log),
409+
(logger: Logger) =>
410+
new SuperTokensUserAuthNStrategy({
411+
logger,
415412
storage,
416-
server.log,
417-
),
418-
}),
419-
new TargetAccessTokenStrategy({
420-
logger: server.log,
421-
tokensConfig: {
422-
endpoint: env.hiveServices.tokens.endpoint,
423-
},
424-
}),
413+
organizationMembers: new OrganizationMembers(
414+
storage.pool,
415+
new OrganizationMemberRoles(storage.pool, logger),
416+
storage,
417+
logger,
418+
),
419+
}),
420+
(logger: Logger) =>
421+
new TargetAccessTokenStrategy({
422+
logger,
423+
tokensConfig: {
424+
endpoint: env.hiveServices.tokens.endpoint,
425+
},
426+
}),
425427
],
426428
});
427429

0 commit comments

Comments
 (0)