IP Whitelistening - global ip, fixing 30s timeout on wrong sender authentication using username and password to be instant.
This commit is contained in:
+50
-46
@@ -1,8 +1,8 @@
|
||||
"""Initial migration
|
||||
"""update ip whitelist
|
||||
|
||||
Revision ID: 3ce273a1be20
|
||||
Revision ID: 8652d2ab8a26
|
||||
Revises:
|
||||
Create Date: 2025-06-07 15:25:35.603295
|
||||
Create Date: 2025-06-10 02:17:23.718102
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
@@ -10,7 +10,7 @@ import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '3ce273a1be20'
|
||||
revision = '8652d2ab8a26'
|
||||
down_revision = None
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
@@ -18,12 +18,12 @@ depends_on = None
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table('esrv_dkim_keys')
|
||||
op.drop_table('esrv_auth_logs')
|
||||
op.drop_table('esrv_users')
|
||||
op.drop_table('esrv_domains')
|
||||
op.drop_table('esrv_whitelisted_ips')
|
||||
op.drop_table('esrv_email_logs')
|
||||
op.drop_table('esrv_senders')
|
||||
op.drop_table('esrv_whitelisted_ips')
|
||||
op.drop_table('esrv_dkim_keys')
|
||||
op.drop_table('esrv_domains')
|
||||
op.drop_table('esrv_custom_headers')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
@@ -37,8 +37,50 @@ def downgrade():
|
||||
sa.Column('header_value', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['domain_id'], ['esrv_domains.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('esrv_domains',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('domain_name', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('domain_name')
|
||||
)
|
||||
op.create_table('esrv_dkim_keys',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('domain_id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('selector', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('private_key', sa.TEXT(), nullable=False),
|
||||
sa.Column('public_key', sa.TEXT(), nullable=False),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.Column('replaced_at', sa.DATETIME(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['domain_id'], ['esrv_domains.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('esrv_whitelisted_ips',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('ip_address', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('domain_id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['domain_id'], ['esrv_domains.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('esrv_senders',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('email', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('password_hash', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('domain_id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('can_send_as_domain', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['domain_id'], ['esrv_domains.id'], ),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('email')
|
||||
)
|
||||
op.create_table('esrv_email_logs',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('message_id', sa.VARCHAR(), nullable=False),
|
||||
@@ -57,33 +99,6 @@ def downgrade():
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('message_id')
|
||||
)
|
||||
op.create_table('esrv_whitelisted_ips',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('ip_address', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('domain_id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('esrv_domains',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('domain_name', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('domain_name')
|
||||
)
|
||||
op.create_table('esrv_users',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('email', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('password_hash', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('domain_id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('can_send_as_domain', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('email')
|
||||
)
|
||||
op.create_table('esrv_auth_logs',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('auth_type', sa.VARCHAR(), nullable=False),
|
||||
@@ -94,15 +109,4 @@ def downgrade():
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('esrv_dkim_keys',
|
||||
sa.Column('id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('domain_id', sa.INTEGER(), nullable=False),
|
||||
sa.Column('selector', sa.VARCHAR(), nullable=False),
|
||||
sa.Column('private_key', sa.TEXT(), nullable=False),
|
||||
sa.Column('public_key', sa.TEXT(), nullable=False),
|
||||
sa.Column('is_active', sa.BOOLEAN(), nullable=True),
|
||||
sa.Column('created_at', sa.DATETIME(), nullable=True),
|
||||
sa.Column('replaced_at', sa.DATETIME(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
Reference in New Issue
Block a user