diff --git a/migrations/versions/98af61feea92_add_encrypted_options_to_data_sources.py b/migrations/versions/98af61feea92_add_encrypted_options_to_data_sources.py index 0c22043613..6251d02a3c 100644 --- a/migrations/versions/98af61feea92_add_encrypted_options_to_data_sources.py +++ b/migrations/versions/98af61feea92_add_encrypted_options_to_data_sources.py @@ -15,7 +15,6 @@ from redash.utils.configuration import ConfigurationContainer from redash.models.types import ( EncryptedConfiguration, - Configuration, MutableDict, MutableList, ) @@ -45,7 +44,14 @@ def upgrade(): ) ), ), - sa.Column("options", ConfigurationContainer.as_mutable(Configuration)), + sa.Column( + "options", + ConfigurationContainer.as_mutable( + EncryptedConfiguration( + sa.Text, settings.DATASOURCE_SECRET_KEY, FernetEngine + ) + ), + ), ) conn = op.get_bind() diff --git a/migrations/versions/d7d747033183_encrypt_alert_destinations.py b/migrations/versions/d7d747033183_encrypt_alert_destinations.py index d66460c3f2..fb1d06a486 100644 --- a/migrations/versions/d7d747033183_encrypt_alert_destinations.py +++ b/migrations/versions/d7d747033183_encrypt_alert_destinations.py @@ -14,10 +14,7 @@ from redash import settings from redash.utils.configuration import ConfigurationContainer from redash.models.base import key_type -from redash.models.types import ( - EncryptedConfiguration, - Configuration, -) +from redash.models.types import EncryptedConfiguration # revision identifiers, used by Alembic. @@ -45,7 +42,14 @@ def upgrade(): ) ), ), - sa.Column("options", ConfigurationContainer.as_mutable(Configuration)), + sa.Column( + "options", + ConfigurationContainer.as_mutable( + EncryptedConfiguration( + sa.Text, settings.DATASOURCE_SECRET_KEY, FernetEngine + ) + ), + ), ) conn = op.get_bind() diff --git a/redash/models/__init__.py b/redash/models/__init__.py index 1a27570c26..a0b0508563 100644 --- a/redash/models/__init__.py +++ b/redash/models/__init__.py @@ -46,7 +46,6 @@ QueryDetachedFromDataSourceError, ) from redash.models.types import ( - Configuration, EncryptedConfiguration, JSONText, MutableDict, diff --git a/redash/models/types.py b/redash/models/types.py index b3aa467dcf..ed94031154 100644 --- a/redash/models/types.py +++ b/redash/models/types.py @@ -3,21 +3,10 @@ from sqlalchemy.types import TypeDecorator from sqlalchemy_utils import EncryptedType +from redash.models.base import db from redash.utils import json_dumps, json_loads from redash.utils.configuration import ConfigurationContainer -from .base import db - - -class Configuration(TypeDecorator): - impl = db.Text - - def process_bind_param(self, value, dialect): - return value.to_json() - - def process_result_value(self, value, dialect): - return ConfigurationContainer.from_json(value) - class EncryptedConfiguration(EncryptedType): def process_bind_param(self, value, dialect):