mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 12:45:42 +02:00
Versamento su API AgID
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user