From 314cd415b43ef1a09a7c370f0cc7ae1aada90dc0 Mon Sep 17 00:00:00 2001 From: Melissa Autumn Date: Fri, 12 Jan 2024 09:54:22 -0800 Subject: [PATCH] Wrap minimum_valid_iat_time with our standard db encryption --- backend/src/appointment/database/models.py | 2 +- ...c2de5ff8_add_minimum_valid_iat_time_to_subscribers.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/backend/src/appointment/database/models.py b/backend/src/appointment/database/models.py index 84ce3f0ee..36937f215 100644 --- a/backend/src/appointment/database/models.py +++ b/backend/src/appointment/database/models.py @@ -93,7 +93,7 @@ class Subscriber(Base): short_link_hash = Column(StringEncryptedType(String, secret, AesEngine, "pkcs5", length=255), index=False) # Only accept the times greater than the one specified in the `iat` claim of the jwt token - minimum_valid_iat_time = Column(DateTime, index=True) + minimum_valid_iat_time = Column('minimum_valid_iat_time', StringEncryptedType(DateTime, secret, AesEngine, "pkcs5", length=255)) calendars = relationship("Calendar", cascade="all,delete", back_populates="owner") slots = relationship("Slot", cascade="all,delete", back_populates="subscriber") diff --git a/backend/src/appointment/migrations/versions/2024_01_09_1652-ad7cc2de5ff8_add_minimum_valid_iat_time_to_subscribers.py b/backend/src/appointment/migrations/versions/2024_01_09_1652-ad7cc2de5ff8_add_minimum_valid_iat_time_to_subscribers.py index e6782b4de..38f14fd19 100644 --- a/backend/src/appointment/migrations/versions/2024_01_09_1652-ad7cc2de5ff8_add_minimum_valid_iat_time_to_subscribers.py +++ b/backend/src/appointment/migrations/versions/2024_01_09_1652-ad7cc2de5ff8_add_minimum_valid_iat_time_to_subscribers.py @@ -5,8 +5,15 @@ Create Date: 2024-01-09 16:52:20.941572 """ +import os from alembic import op import sqlalchemy as sa +from sqlalchemy_utils import StringEncryptedType +from sqlalchemy_utils.types.encrypted.encrypted_type import AesEngine + + +def secret(): + return os.getenv("DB_SECRET") # revision identifiers, used by Alembic. @@ -17,7 +24,7 @@ def upgrade() -> None: - op.add_column('subscribers', sa.Column('minimum_valid_iat_time', sa.DateTime, index=True)) + op.add_column('subscribers', sa.Column('minimum_valid_iat_time', StringEncryptedType(sa.DateTime, secret, AesEngine, "pkcs5", length=255))) def downgrade() -> None: