Checklist di avanzamento
Aggiornare questa pagina nello stesso commit/PR con cui un'attività viene completata. Una macro-voce si considera chiusa solo quando sono soddisfatti codice, test, migrazione e documentazione.
Decisioni e baseline
- Approvare requisiti, glossario e confini MVP/Release 1 con il committente
- Fotografare API, schema, dataset e comportamento AS-IS
- Creare regression suite del POC
- Approvare ADR tenant/source of truth
- Approvare matrice ruoli e permessi
- Approvare ADR architettura modulare
- Approvare ADR cursori/consegna/correzioni
- Approvare ADR forecasting e funzione obiettivo
- Approvare ADR adapter import/export
P0 — Organizzazione e sicurezza
- Identificare Italbiotec come tenant destinatario dei dati legacy in DEV, TEST e PROD
- Implementare
OrganizationContextderivato server-side - Aggiungere
organization_ida tutte le entità operative - Rendere tenant-aware foreign key, unicità e indici
- Migrare i dati legacy DEV a Consorzio Italbiotec
- Migrare i dati legacy TEST a Consorzio Italbiotec durante il deploy
- Migrare i dati legacy PROD a Consorzio Italbiotec durante il deploy
- Rendere tenant-aware stato operativo, audit, import, export e job
- Creare profili applicativi Rendicontazione e matrice capability per ruolo
- Collegare profili, utenti e organizzazione con migrazione idempotente
- Applicare i permessi alle API server-side con comportamento deny-by-default
- Aggiungere gestione Team per inviti, profilo amministrativo e ruoli operativi
- Filtrare la navigazione UI in base alle capability effettive
- Applicare scope a list/detail/create/update/delete/search
- Applicare scope a calcoli, report, cache ed eventi
- Rimuovere fallback/query globali
- Scopare per organizzazione il reset amministrativo datahub (niente
TRUNCATEglobale) - Rendere fail-closed il filtro tenant di datahub per i chiamanti tenant-aware
- Rendere lo schema di clean-install e la migrazione 088 eseguibili su un ambiente senza dati legacy
- Testare due utenti della stessa organizzazione
- Testare isolamento e IDOR tra due organizzazioni
- Creare lo script di verifica invarianti tenant (
db/postgres/checks/rendicontazione_tenant_invariants.sql) - Verificare zero record orfani/null/cross-tenant in DEV
- Verificare zero record orfani/null/cross-tenant in TEST
- Verificare zero record orfani/null/cross-tenant in PROD
- Allineare
backbone_identityindb/postgres/init/(oggi i backport 042 e 044 falliscono all'init e vengono riparati solo dalle migrazioni) - Rimuovere le tabelle placeholder
rendicontazione.organizationseorganization_members - Correggere l'attribuzione utente e impedire che l'attore sia scelto dal chiamante
- Scrivere
audit_logsu ogni mutazione, con attore, organizzazione e correlation id - Scopare per organizzazione le chiavi Redis dei job di import
- Eseguire pilot e chiudere il gate P0
HR e risorse
- Introdurre società/sotto-aziende e storico appartenenza
- Creare catalogo sedi tenant-aware e pagina di gestione
- Storicizzare la sede di assegnazione del dipendente senza intervalli sovrapposti
- Separare ruoli, macro-livelli e job level
- Storicizzare reporting line e impedire cicli
- Collegare dipendente e account utente
- Consolidare storico costo e intervalli non sovrapposti
- Introdurre tipo risorsa employee/freelancer
- Gestire ore contrattuali dei freelancer
- Completare tab/UI del mini gestionale HR
- Aggiornare import/export dipendenti
Ferie e disponibilità
- Definire policy ferie, unità, carry-over e calendari
- Implementare monte ferie annuale
- Implementare piano ferie e stati workflow
- Implementare self-service dipendente
- Implementare vista/permessi HR e manager
- Integrare ferie pianificate nella capacità
- Integrare riserva per ferie non pianificate
- Coprire part-time, assunzione e cessazione infra-annuale
Enti, progetti e costi
- Completare anagrafica enti finanziatori
- Storicizzare tariffe ente per macro-livello
- Impedire intervalli tariffa sovrapposti
- Rendere esplicita strategia costo reale/standard
- Applicare la tariffa valida alla data
- Aggiungere limite ore per risorsa default 1720
- Gestire override del limite per progetto
- Aggiungere sede opzionale al progetto
- Normalizzare la città e validare la compatibilità sede progetto-risorsa sull'intero intervallo
- Gestire cambi sede senza lasciare associazioni incompatibili
- Validare associazioni e tariffe mancanti
- Aggiungere UI e report qualità dati
Import/export
- Definire modelli canonici dipendenti, progetti, ferie e consuntivi
- Definire interfacce e registry adapter
- Incapsulare formati attuali come adapter v1
- Implementare nuovi formati come adapter separati
- Versionare detection, mapping e contratti
- Garantire staging, diff, approvazione e rollback
- Garantire idempotenza tenant-aware
- Creare fixture anonimizzate e contract test
Consuntivo e consegna
- Implementare
actual_through_monthper organizzazione - Implementare
delivered_through_monthper organizzazione - Implementare comando/permesso di consegna
- Creare snapshot/hash dei periodi consegnati
- Bloccare modifiche a periodi consegnati in DB/API/UI
- Implementare dirty range per correzioni retroattive
- Ricalcolare tutti i periodi/progetti impattati
- Conservare versioni, motivazione e confronto prima/dopo
- Rigenerare report aperti senza alterare snapshot consegnati
Forecasting
- Formalizzare domanda, capacità, priorità e copertura
- Implementare vincoli periodo/associazione/rapporto
- Integrare nel forecast il vincolo di compatibilità città progetto-risorsa
- Implementare vincoli capacità e no over-allocation
- Implementare limite cumulativo risorsa-progetto
- Integrare costi reali e standard temporali
- Integrare ferie e calendario
- Implementare strategia freelancer
- Calcolare globalmente tutti i progetti dell'organizzazione
- Collegare tutti i trigger tramite outbox/job idempotenti
- Coalescere eventi e calcolare il minimo dirty range
- Versionare input, algoritmo e risultati
- Mostrare infeasibilità, ore scoperte e spiegazioni
- Validare golden dataset e UAT committente
MVP avanzato
- Completare flusso HR → progetto → forecast
- Completare flusso consuntivo → correzione → consegna
- Validare report dipendente e progetto
- Eseguire UAT end-to-end con il committente
- Risolvere finding bloccanti UAT
- Ottenere sign-off MVP avanzato
Uso LLM
- Approvare casi d'uso e funzioni esplicitamente escluse
- Definire tool tenant-aware e relativi JSON Schema
- Integrare esclusivamente tramite assistant orchestrator e
llm-gateway - Implementare “Spiega il forecast” con fonti strutturate
- Implementare spiegazione delle anomalie dati
- Implementare proposta mapping import con approvazione umana
- Creare dataset di evaluation anonimizzato e versionato
- Misurare fedeltà, accuratezza, latenza e costo
- Verificare isolamento tra organizzazioni e rispetto permessi
- Verificare assenza di modifiche autonome e numeri inventati
- Definire logging, retention, redazione e fallback
- Validare con UAT del committente
Release 1
- Eseguire performance/load/concurrency test
- Definire e misurare SLO
- Creare dashboard, alert e tracing
- Provare retry, idempotenza e recovery job
- Testare backup e restore
- Completare security/privacy review
- Definire retention e audit export
- Automatizzare onboarding nuova organizzazione
- Preparare feature flag, canary e rollback
- Completare manuali utente, amministrazione e supporto
- Eseguire go-live rehearsal
- Ottenere sign-off Release 1