38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""Seed runtime OTP settings.
|
|
|
|
Revision ID: 0005_otp_settings
|
|
Revises: 0004_device_otp
|
|
Create Date: 2026-07-22
|
|
"""
|
|
|
|
from collections.abc import Sequence
|
|
|
|
from alembic import op
|
|
|
|
revision: str = "0005_otp_settings"
|
|
down_revision: str | None = "0004_device_otp"
|
|
branch_labels: str | Sequence[str] | None = None
|
|
depends_on: str | Sequence[str] | None = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute(
|
|
"""
|
|
INSERT INTO han_app.app_settings
|
|
(setting_key, setting_value, value_type, is_public, description,
|
|
record_status, updated_at)
|
|
VALUES
|
|
('otp.phone.code_length', '6', 'integer', false,
|
|
'Length of the numeric phone OTP', 'A', now()),
|
|
('otp.phone.ttl_seconds', '60', 'integer', false,
|
|
'Phone OTP lifetime from durable order time', 'A', now()),
|
|
('otp.phone.sms_order_timeout_ms', '3000', 'integer', false,
|
|
'Keycloak timeout for durable SMS order creation', 'A', now())
|
|
ON CONFLICT (setting_key) DO NOTHING
|
|
"""
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
raise RuntimeError("OTP runtime settings migration is forward-only")
|