feat: allow the use of an ENV variable to set the API key if the ParameterStore isn't used. (#40)

This commit is contained in:
Hans Knecht
2024-12-06 07:32:06 +01:00
committed by GitHub
parent 25b3cfb146
commit 241d5c0f3e
2 changed files with 11 additions and 2 deletions

View File

@@ -3,16 +3,19 @@ from typing import Annotated
import boto3
from fastapi import Depends, HTTPException, status
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
from api.setting import DEFAULT_API_KEYS
api_key_param = os.environ.get("API_KEY_PARAM_NAME")
api_key_env = os.environ.get("API_KEY")
if api_key_param:
ssm = boto3.client("ssm")
api_key = ssm.get_parameter(Name=api_key_param, WithDecryption=True)["Parameter"][
"Value"
]
elif api_key_env:
api_key = api_key_env
else:
api_key = DEFAULT_API_KEYS
@@ -20,7 +23,7 @@ security = HTTPBearer()
def api_key_auth(
credentials: Annotated[HTTPAuthorizationCredentials, Depends(security)]
credentials: Annotated[HTTPAuthorizationCredentials, Depends(security)],
):
if credentials.credentials != api_key:
raise HTTPException(