"""Add passkey_credentials table for WebAuthn/FIDO2 authentication Revision ID: 061 Revises: 060 """ import sqlalchemy as sa from alembic import op revision = "061" down_revision = "060" branch_labels = None depends_on = None def upgrade(): op.create_table( "passkey_credentials", sa.Column("id", sa.Integer, primary_key=True), sa.Column( "user_id", sa.Integer, sa.ForeignKey("users.id", ondelete="CASCADE"), nullable=False, ), sa.Column("credential_id", sa.Text, unique=True, nullable=False), sa.Column("public_key", sa.Text, nullable=False), sa.Column("sign_count", sa.Integer, nullable=False, server_default="0"), sa.Column("name", sa.String(100), nullable=False), sa.Column("transports", sa.Text, nullable=True), sa.Column("backed_up", sa.Boolean, nullable=False, server_default="false"), sa.Column("created_at", sa.DateTime, server_default=sa.text("now()")), sa.Column("last_used_at", sa.DateTime, nullable=True), ) op.create_index( "ix_passkey_credentials_user_id", "passkey_credentials", ["user_id"] ) def downgrade(): op.drop_table("passkey_credentials")