Versamento su API AgID

This commit is contained in:
2026-03-19 14:43:36 +01:00
parent 06dfbfcbc4
commit 4e19090f0f
12 changed files with 1319 additions and 3 deletions
@@ -0,0 +1,61 @@
"""Aggiunge la tabella tenant_settings per configurazione archiviazione sostitutiva
Revision ID: 0005
Revises: 0004
Create Date: 2026-03-19 00:00:00.000000
Aggiunge:
- tenant_settings (configurazione per-tenant: modalità archivio mock/produzione,
credenziali conservatore AgID cifrate)
"""
from alembic import op
revision = "0005"
down_revision = "0004"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.execute("""
CREATE TABLE tenant_settings (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
-- Archiviazione sostitutiva (Fase 6)
-- 'mock' → usa conservatore simulato in locale (default sicuro per dev)
-- 'production' → usa endpoint reale AgID conservatore
archival_mode VARCHAR(20) NOT NULL DEFAULT 'mock',
-- Identificativo del conservatore (es. 'aruba-cons', 'docuvision', 'mock')
conservatore_id VARCHAR(100) NOT NULL DEFAULT 'mock',
-- URL API conservatore (NULL in modalità mock)
conservatore_endpoint TEXT,
-- Credenziali cifrate AES-256-GCM (NULL in modalità mock)
conservatore_username_enc TEXT,
conservatore_password_enc TEXT,
-- Note operative libere
archival_notes TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT uq_tenant_settings_tenant UNIQUE (tenant_id)
)
""")
op.execute("CREATE INDEX idx_tenant_settings_tenant ON tenant_settings (tenant_id)")
# Trigger updated_at
op.execute("""
CREATE TRIGGER trg_tenant_settings_updated_at
BEFORE UPDATE ON tenant_settings
FOR EACH ROW EXECUTE FUNCTION set_updated_at()
""")
def downgrade() -> None:
op.execute("DROP TABLE IF EXISTS tenant_settings CASCADE")