diff --git a/.github/workflows/deploy_unicode_api.yml b/.github/workflows/deploy_unicode_api.yml index 0a905ab..13b6939 100644 --- a/.github/workflows/deploy_unicode_api.yml +++ b/.github/workflows/deploy_unicode_api.yml @@ -26,7 +26,9 @@ jobs: files: ./docker-bake.hcl targets: unicode-api push: true - set: unicode-api.args.REDIS_PW=${{ secrets.REDIS_PW }} + set: | + unicode-api.args.REDIS_PW=${{ secrets.REDIS_PW }} + unicode-api.args.TEST1=BAKE_SET1 - name: Deploy unicode-api docker image to dokku uses: dokku/github-action@master with: diff --git a/Dockerfile b/Dockerfile index 5b292c0..8180df2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,6 +10,8 @@ ARG RATE_LIMIT_PER_PERIOD ARG RATE_LIMIT_PERIOD_SECONDS ARG RATE_LIMIT_BURST ARG TEST_HEADER +ARG TEST1 +ARG TEST2 ENV ENV=${ENV} ENV UNICODE_VERSION=${UNICODE_VERSION} @@ -21,6 +23,8 @@ ENV RATE_LIMIT_PER_PERIOD=${RATE_LIMIT_PER_PERIOD} ENV RATE_LIMIT_PERIOD_SECONDS=${RATE_LIMIT_PERIOD_SECONDS} ENV RATE_LIMIT_BURST=${RATE_LIMIT_BURST} ENV TEST_HEADER=${TEST_HEADER} +ENV TEST1=${TEST1} +ENV TEST2=${TEST2} WORKDIR /code RUN pip install -U pip setuptools wheel @@ -28,5 +32,10 @@ COPY ./requirements.txt /code/requirements.txt RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt EXPOSE 80 COPY ./app /code/app + +RUN echo REDIS_PW: $REDIS_PW +RUN echo TEST1: $TEST1 +RUN echo TEST2: $TEST2 + RUN PYTHONPATH=/code/. python /code/./app/data/scripts/get_prod_data.py CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"] diff --git a/app/core/rate_limit.py b/app/core/rate_limit.py index 69be968..8b282c3 100644 --- a/app/core/rate_limit.py +++ b/app/core/rate_limit.py @@ -1,6 +1,6 @@ import logging import re -from dataclasses import dataclass, field +from dataclasses import dataclass from datetime import timedelta from fastapi import Request diff --git a/app/core/redis_client.py b/app/core/redis_client.py index 9254896..643a2f7 100644 --- a/app/core/redis_client.py +++ b/app/core/redis_client.py @@ -77,7 +77,13 @@ def __init__(self): @property def password_discreet(self) -> str: - return f'{"*" * self.redis_pw[:-4]}{self.redis_pw[-4:]}' if self.redis_pw else "" + if not self.redis_pw: + return "" + return ( + f'{"*" * len(self.redis_pw[:-4])}{self.redis_pw[-4:]}' + if len(self.redis_pw) > 4 + else "*" * len(self.redis_pw) + ) @property def redis_url(self) -> str: diff --git a/docker-bake.hcl b/docker-bake.hcl index 22cd7f9..aa2b7e5 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -6,19 +6,29 @@ variable "REDIS_PW" { default = "" } +variable "TEST1" { + default = "NOT_SECRET1" +} + +variable "TEST2" { + default = "NOT_SECRET2" +} + target "unicode-api" { dockerfile = "./Dockerfile" tags = ["ghcr.io/a-luna/unicode-api:${GITHUB_SHA}"] args = { - ENV = "PROD" - UNICODE_VERSION = "15.1.0" - REDIS_HOST = "dokku-redis-vig-cache" - REDIS_PORT = "6379" - REDIS_DB = "1" - REDIS_PW = "${REDIS_PW}" - RATE_LIMIT_PER_PERIOD = "50" - RATE_LIMIT_PERIOD_SECONDS = "60" - RATE_LIMIT_BURST = "10" - TEST_HEADER = "X-UnicodeAPI-Test" + ENV="PROD" + UNICODE_VERSION="14.0.0" + REDIS_HOST="dokku-redis-vig-cache" + REDIS_PORT="6379" + REDIS_DB="1" + REDIS_PW="${REDIS_PW}" + RATE_LIMIT_PER_PERIOD="45" + RATE_LIMIT_PERIOD_SECONDS="55" + RATE_LIMIT_BURST="5" + TEST_HEADER="X-UnicodeAPI-Test" + TEST1="${TEST1}" + TEST2="${TEST2}" } }