Skip to content

Commit b46d438

Browse files
committed
CCM-14325: Remove authentication from PDM mock
1 parent f57305c commit b46d438

8 files changed

Lines changed: 4 additions & 202 deletions

File tree

infrastructure/terraform/components/dl/locals.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ locals {
44
apim_keystore_s3_bucket = "nhs-${var.aws_account_id}-${var.region}-${var.environment}-${var.component}-static-assets"
55
apim_private_key_ssm_parameter_name = "/${var.component}/${var.environment}/apim/private_key"
66
aws_lambda_functions_dir_path = "../../../../lambdas"
7+
pdm_access_token_ssm_parameter_name = var.enable_pdm_mock ? "" : "${local.apim_access_token_ssm_parameter_name}"
78
pdm_url = var.enable_pdm_mock ? aws_api_gateway_stage.pdm_mock[0].invoke_url : var.apim_base_url
89
firehose_output_path_prefix = "kinesis-firehose-output"
910
log_destination_arn = "arn:aws:logs:${var.region}:${var.shared_infra_account_id}:destination:nhs-main-obs-firehose-logs"

infrastructure/terraform/components/dl/ssm_parameter_access_token.tf

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ resource "aws_ssm_parameter" "access_token" {
22
name = local.apim_access_token_ssm_parameter_name
33
description = "Access token for APIM"
44
type = "SecureString"
5-
value = jsonencode({
6-
"access_token" : "PLACEHOLDER",
7-
"expires_at" : 1772810483,
8-
"token_type" : "Bearer"
9-
})
5+
value = jsonencode({})
106

117
tags = merge(local.default_tags, { Backup = "true" })
128

lambdas/pdm-mock-lambda/src/__tests__/authenticator.test.ts

Lines changed: 0 additions & 74 deletions
This file was deleted.

lambdas/pdm-mock-lambda/src/__tests__/container.test.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,11 @@ describe('Container', () => {
3535

3636
it('should create a container with all required dependencies', () => {
3737
expect(container).toBeDefined();
38-
expect(container.authenticator).toBeDefined();
3938
expect(container.getResourceHandler).toBeDefined();
4039
expect(container.createResourceHandler).toBeDefined();
4140
expect(container.logger).toBeDefined();
4241
});
4342

44-
it('should create an authenticator function', () => {
45-
expect(typeof container.authenticator).toBe('function');
46-
});
47-
4843
it('should create a getResourceHandler function', () => {
4944
expect(typeof container.getResourceHandler).toBe('function');
5045
});
@@ -74,14 +69,4 @@ describe('Container', () => {
7469
expect(result).toBeDefined();
7570
expect(result.statusCode).toBeDefined();
7671
});
77-
78-
it('should create authenticator that can be called', async () => {
79-
const mockEvent = {
80-
headers: { Authorization: 'Bearer test-token' },
81-
};
82-
83-
const result = await container.authenticator(mockEvent);
84-
expect(result).toBeDefined();
85-
expect(result.isValid).toBeDefined();
86-
});
8772
});

lambdas/pdm-mock-lambda/src/__tests__/index.test.ts

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -66,41 +66,18 @@ const createMockEvent = (
6666
};
6767

6868
describe('Lambda Handler Integration', () => {
69-
let mockAuthenticator: jest.Mock;
7069
let mockGetResourceHandler: jest.Mock;
7170
let mockCreateResourceHandler: jest.Mock;
7271

7372
beforeEach(() => {
7473
jest.clearAllMocks();
7574

7675
const container = createContainer();
77-
mockAuthenticator = container.authenticator as jest.Mock;
7876
mockGetResourceHandler = container.getResourceHandler as jest.Mock;
7977
mockCreateResourceHandler = container.createResourceHandler as jest.Mock;
8078
});
8179

82-
it('should return authentication error when authentication fails', async () => {
83-
mockAuthenticator.mockResolvedValue({
84-
isValid: false,
85-
error: {
86-
statusCode: 401,
87-
body: JSON.stringify({ error: 'Unauthorized' }),
88-
},
89-
});
90-
91-
const event = createMockEvent();
92-
const response = (await handler(
93-
event,
94-
{} as Context,
95-
{} as Callback,
96-
)) as APIGatewayProxyResult;
97-
98-
expect(response.statusCode).toBe(401);
99-
expect(mockGetResourceHandler).not.toHaveBeenCalled();
100-
});
101-
10280
it('should route GET requests to getResourceHandler', async () => {
103-
mockAuthenticator.mockResolvedValue({ isValid: true });
10481
mockGetResourceHandler.mockResolvedValue({
10582
statusCode: 200,
10683
body: JSON.stringify({ id: 'test-id' }),
@@ -117,13 +94,11 @@ describe('Lambda Handler Integration', () => {
11794
{} as Callback,
11895
)) as APIGatewayProxyResult;
11996

120-
expect(mockAuthenticator).toHaveBeenCalledWith(event);
12197
expect(mockGetResourceHandler).toHaveBeenCalledWith(event);
12298
expect(response.statusCode).toBe(200);
12399
});
124100

125101
it('should route POST requests to createResourceHandler', async () => {
126-
mockAuthenticator.mockResolvedValue({ isValid: true });
127102
mockCreateResourceHandler.mockResolvedValue({
128103
statusCode: 201,
129104
body: JSON.stringify({ id: 'new-id' }),
@@ -141,14 +116,11 @@ describe('Lambda Handler Integration', () => {
141116
{} as Callback,
142117
)) as APIGatewayProxyResult;
143118

144-
expect(mockAuthenticator).toHaveBeenCalledWith(event);
145119
expect(mockCreateResourceHandler).toHaveBeenCalledWith(event);
146120
expect(response.statusCode).toBe(201);
147121
});
148122

149123
it('should return 404 for unsupported endpoints', async () => {
150-
mockAuthenticator.mockResolvedValue({ isValid: true });
151-
152124
const event = createMockEvent({
153125
httpMethod: 'DELETE',
154126
path: '/unsupported',
@@ -165,7 +137,7 @@ describe('Lambda Handler Integration', () => {
165137
});
166138

167139
it('should handle unexpected errors gracefully', async () => {
168-
mockAuthenticator.mockRejectedValue(new Error('Unexpected error'));
140+
mockGetResourceHandler.mockRejectedValue(new Error('Unexpected error'));
169141

170142
const event = createMockEvent();
171143
const response = (await handler(

lambdas/pdm-mock-lambda/src/authenticator.ts

Lines changed: 0 additions & 66 deletions
This file was deleted.

lambdas/pdm-mock-lambda/src/container.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
import { logger } from 'utils';
2-
import { createAuthenticator } from 'authenticator';
32
import {
43
createCreateResourceHandler,
54
createGetResourceHandler,
65
} from 'handlers';
76

87
export interface Container {
9-
authenticator: ReturnType<typeof createAuthenticator>;
108
getResourceHandler: ReturnType<typeof createGetResourceHandler>;
119
createResourceHandler: ReturnType<typeof createCreateResourceHandler>;
1210
logger: typeof logger;
1311
}
1412

1513
export const createContainer = (): Container => {
16-
const authenticator = createAuthenticator(logger);
17-
1814
const getResourceHandler = createGetResourceHandler(logger);
1915
const createResourceHandler = createCreateResourceHandler(logger);
2016

2117
return {
22-
authenticator,
2318
getResourceHandler,
2419
createResourceHandler,
2520
logger,

lambdas/pdm-mock-lambda/src/index.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ export const handler: Handler<
1111
APIGatewayProxyEvent,
1212
APIGatewayProxyResult
1313
> = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
14-
const { authenticator, createResourceHandler, getResourceHandler, logger } =
15-
container;
14+
const { createResourceHandler, getResourceHandler, logger } = container;
1615

1716
try {
1817
const { requestId } = event.requestContext;
@@ -26,12 +25,6 @@ export const handler: Handler<
2625
hasAuth: !!event.headers?.Authorization,
2726
});
2827

29-
const authResult = await authenticator(event);
30-
if (!authResult.isValid) {
31-
logger.warn('Authentication failed', { requestId, httpMethod, path });
32-
return authResult.error;
33-
}
34-
3528
if (
3629
httpMethod === 'GET' &&
3730
path.includes('/patient-data-manager/FHIR/R4/DocumentReference/')

0 commit comments

Comments
 (0)