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 23670adfee..3f416422ae 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, PseudoJSON, @@ -46,7 +45,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 252e5bc225..159df5329a 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 4588f2340d..ed51ff8791 100644 --- a/redash/models/__init__.py +++ b/redash/models/__init__.py @@ -46,7 +46,6 @@ QueryDetachedFromDataSourceError, ) from redash.models.types import ( - Configuration, EncryptedConfiguration, MutableDict, MutableList, diff --git a/redash/models/types.py b/redash/models/types.py index ae1c4fd8e7..297a0d6373 100644 --- a/redash/models/types.py +++ b/redash/models/types.py @@ -5,21 +5,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):