Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 2x 2x 2x 2x 27x 27x 2x 25x 25x 25x 25x 1x 24x 23x 1x 1x 2x 27x 27x 1x 26x 26x 24x 2x | import { APIGatewayProxyEventV2WithRequestContext, APIGatewayEventRequestContextV2 } from 'aws-lambda' import type { AuthSettings } from './model/AuthSettings' import { SecretsManagerClient, GetSecretValueCommand, GetSecretValueResponse } from '@aws-sdk/client-secrets-manager' const MGMT_TOKEN_SCHEME = 'mgmt-token' const EMPTY_TOKEN = '' export async function getAuthSettings(secretManagerClient: SecretsManagerClient): Promise<AuthSettings> { const secretName = process.env.SettingsSecretName if (!secretName) { throw new Error('Unable to retrieve secret. Error: environment variable SettingsSecretName not found') } try { const command = new GetSecretValueCommand({ SecretId: secretName, }) const response: GetSecretValueResponse = await secretManagerClient.send(command) if (response.SecretBinary) { return JSON.parse(Buffer.from(response.SecretBinary).toString('utf8')) } if (response.SecretString) { return JSON.parse(response.SecretString) } throw new Error('secret is empty') } catch (error: any) { throw new Error(`Unable to retrieve secret. ${error}`) } } export function retrieveAuthToken( event: APIGatewayProxyEventV2WithRequestContext<APIGatewayEventRequestContextV2> ): string { const authorization = event.headers['authorization'] if (!authorization) { return EMPTY_TOKEN } const [type, token] = authorization.split(' ') if (type == MGMT_TOKEN_SCHEME) { return token || EMPTY_TOKEN } return EMPTY_TOKEN } |