From 196e4704ac28bb6f3248d31842d4511c459fb35f Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Mon, 6 Mar 2023 12:01:06 -0600 Subject: [PATCH] fix(shorebird_code_push_api): secrets access (#18) --- packages/shorebird_code_push_api/bin/server.dart | 11 +++++------ .../lib/src/middleware/api_key_verifier.dart | 2 +- .../test/src/middleware/api_key_verifier_test.dart | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/shorebird_code_push_api/bin/server.dart b/packages/shorebird_code_push_api/bin/server.dart index d8e2f988..66a49015 100644 --- a/packages/shorebird_code_push_api/bin/server.dart +++ b/packages/shorebird_code_push_api/bin/server.dart @@ -16,16 +16,15 @@ Future main() async { ..post('/api/v1/releases', uploadReleaseHandler) ..get('/api/v1/engines/', downloadEngineHandler); - final apiKeys = json.decode( - Platform.environment['CODE_PUSH_API_KEYS'] ?? '[]', - ) as List; - - final gcpKey = Platform.environment['GCP_SA'] ?? ''; + final gcpKey = Platform.environment['GCP_SA']!; + final apiKeys = + (json.decode(Platform.environment['CODE_PUSH_API_KEYS']!) as List) + .cast(); final handler = const Pipeline() .addMiddleware(versionStoreProvider) .addMiddleware(httpClientProvider(gcpKey)) - .addMiddleware(apiKeyVerifier(keys: apiKeys.cast())) + .addMiddleware(apiKeyVerifier(apiKeys)) .addHandler(router.call); final server = await shelf_io.serve( diff --git a/packages/shorebird_code_push_api/lib/src/middleware/api_key_verifier.dart b/packages/shorebird_code_push_api/lib/src/middleware/api_key_verifier.dart index 0ef41cac..a8e7ec62 100644 --- a/packages/shorebird_code_push_api/lib/src/middleware/api_key_verifier.dart +++ b/packages/shorebird_code_push_api/lib/src/middleware/api_key_verifier.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'package:shelf/shelf.dart'; -Middleware apiKeyVerifier({List keys = const []}) { +Middleware apiKeyVerifier([List keys = const []]) { return (handler) { return (request) async { final apiKey = request.headers['x-api-key']; diff --git a/packages/shorebird_code_push_api/test/src/middleware/api_key_verifier_test.dart b/packages/shorebird_code_push_api/test/src/middleware/api_key_verifier_test.dart index cd19d161..c1aae192 100644 --- a/packages/shorebird_code_push_api/test/src/middleware/api_key_verifier_test.dart +++ b/packages/shorebird_code_push_api/test/src/middleware/api_key_verifier_test.dart @@ -20,7 +20,7 @@ void main() { test('returns 401 if key is invalid', () async { final handler = const Pipeline() - .addMiddleware(apiKeyVerifier(keys: keys)) + .addMiddleware(apiKeyVerifier(keys)) .addHandler((_) => Response.ok('OK')); final request = Request( @@ -34,7 +34,7 @@ void main() { test('returns 200 if key is valid', () async { final handler = const Pipeline() - .addMiddleware(apiKeyVerifier(keys: keys)) + .addMiddleware(apiKeyVerifier(keys)) .addHandler((_) => Response.ok('OK')); final request = Request(