From 58a4a8ee06bcf23c3957af5c2ea035b6797c4395 Mon Sep 17 00:00:00 2001 From: Dennis Fink Date: Sun, 16 Aug 2026 20:39:41 +0200 Subject: refactor(core): remove user credential length limits Store usernames and password hashes as text instead of fixed-length strings so their maximum length is not constrained by the database schema. Require every user to have a password hash. --- ...a3d_do_not_limit_username_and_password_hash_.py | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py (limited to 'migrations/versions') diff --git a/migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py b/migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py new file mode 100644 index 0000000..ac94095 --- /dev/null +++ b/migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py @@ -0,0 +1,46 @@ +"""Do not limit username and password hash length + +Revision ID: be6e229d6a3d +Revises: 681a2a9a1bc0 +Create Date: 2026-08-16 20:38:27.992624 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'be6e229d6a3d' +down_revision = '681a2a9a1bc0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('users', schema=None) as batch_op: + batch_op.alter_column('username', + existing_type=sa.VARCHAR(length=64), + type_=sa.Text(), + existing_nullable=False) + batch_op.alter_column('password_hash', + existing_type=sa.VARCHAR(length=256), + type_=sa.Text(), + nullable=False) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('users', schema=None) as batch_op: + batch_op.alter_column('password_hash', + existing_type=sa.Text(), + type_=sa.VARCHAR(length=256), + nullable=True) + batch_op.alter_column('username', + existing_type=sa.Text(), + type_=sa.VARCHAR(length=64), + existing_nullable=False) + + # ### end Alembic commands ### -- cgit v1.3.1