Passa al contenuto principale

Roadmap Akira v5.16 — Timeline realistica post-checkpoint v5.15

Owner: Massimo Bagnoli (PM/architetto) Documento di riferimento: sostituisce cap. 47 del docx Akira v5.2 Stato: bozza per congelamento in v5.16 Data: 2026-05-13

Questo documento riscrive il capitolo Roadmap del docx Akira con una timeline realistica, costruita a valle del checkpoint v5.15 (mockup cristallizzato, schema DB completo, stack congelato). Recepisce le decisioni di scope prese il 2026-05-13:

  • Tutti e 6 i Reports estesi (cap. 22-28) entrano in MVP: allunga Fase 3b.
  • Topologia 12 VM full mirror-prod dal day 1 (no staging ridotto).
  • Scope creep cap. 62.2 chiuso: Interconnection Wizard AI-guided e Calendar Future Tariffs spostati a v2; tier1/2/3 taxonomy rimossa (sostituita da premium/standard/grey); Invoice viewer 3-pagine pager rimandato a v1.1 (MVP-light con singola pagina); autoCat keyword Payments resta in MVP.

1. Stato attuale (checkpoint v5.15+)

AssetStatoNote
Mockup akira-mockup.htmlCristallizzato22 route, hash-routed; gap cap. 62.1 ancora aperti
Mockup akira-routing-topology.htmlCristallizzatoReference visiva cap. 45
Schema DBakira_schema_v1.sql in produzione (2012 righe, 74 tabelle, 139 indici)Squash baseline per Alembic
Stack tecnologicoCongelato (ADR-0001)Python 3.12 + FastAPI + SQLAlchemy + TimescaleDB + Next.js 14
ADR firmati7+0001 (stack), 0006 (sip-creds-encryption), 0007 (cdr-pipeline-nats), 0008 (kamailio-ha-hetzner), 0009 (imap-oauth2) + conventions error-handling + branch-strategy
Repo layoutSingolo akira/ monorepoDecisione utente vs 3 repo separati
Documento correnteAkira v5.2 docxda rigenerare in v5.16 a chiusura Fase 0

Gap residui rilevati

  • cap. 62.1 lacune mockup ancora aperte (Agent Mgmt, Rebill, Auto-Upload, Currency, Routing avanzato, Access Policies, 6 Reports, Settings tabs).
  • cap. 62.3 incoerenze terminologiche solo parzialmente risolte (tier1/2/3 → premium/standard/grey applicato, altri glossari in coda).
  • Stati Loading/Error/Empty/Toast non sistematizzati nel design system.
  • Login + MFA + Empty-state mockup mancanti.
  • WCAG: focus visible, ARIA labels, contrasto ancora con fix puntuali.

2. Fase 0 — Hardening pre-backend (3-4 settimane)

Obiettivo: chiudere tutti i gap "carta" prima di scrivere una riga di backend. Le attività sono parallelizzabili dove indicato.

IDAttivitàDurataParalleloOwnerOutput
A0.1Fix cap. 62.3 incoerenze terminologia1 settMassimoGlossary v1, applicato a docx + mockup
A0.2Fix cap. 62.1 lacune mockup2 settparz.Massimo + Francesco8 schermate aggiunte/rifinite (Agent Mgmt, Rebill, Auto-Upload, Currency, Routing avanzato, Access Policies, 6 Reports, Settings tabs)
A0.3Validazione Francesco mockup2 sett wallclockFrancesco4 sessioni totali (2/sett), checklist UX firmata
A0.4Ansible inventory + ruoli core1.5 settMassimoakira-infra con ruoli base (common, postgres, redis, kamailio-base)
A0.5.env populate + secrets generate + Vault encrypt3ggMassimo.env.staging + .env.prod cifrati Ansible Vault
A0.6Onboarding Akira su Toolbox VPS2ggMassimotask notturni akira-* registrati in toolbox runner
A0.7Bozza importer Stealth mapping tabelle1 settMassimomapping doc Stealth→Akira (companies, rates, cdr, balance)
A0.8Login + MFA + Empty-state mockup1 settMassimo + Francesco3 nuove schermate nel mockup
A0.9Stati Loading/Error/Empty/Toast nel design system1 settMassimotokens + componenti nel mockup
A0.10WCAG fixes (focus, ARIA, contrasto)0.5 settMassimopass automatico axe-core su mockup

Output Fase 0:

  • docx v5.16 freezed;
  • mockup cristallizzato senza lacune note;
  • infra Ansible scaffold completo;
  • .env staging popolato;
  • ready per primo provision_staging.yml.

Gate uscita Fase 0: walkthrough completo mockup + design system con Francesco, zero blocker UX residui.


3. Fase 1 — Backend foundation (3 settimane)

IDAttivitàDurataParalleloNote
F1.1Alembic squash schema = akira_schema_v1.sql + seed reference data1 settnobaseline 0001_initial_squash + seed (countries, currencies, default tariffs)
F1.2FastAPI scaffold + routers stub per ogni dominio + JWT auth + MFA TOTP + recovery codes1 settnoOpenAPI dump in CI; pyotp + cryptography per TOTP
F1.3Deploy staging 12 VM via Ansible + smoke ping E2E1 settnoprovision_staging.yml esegue su 12 host Hetzner
F1.4AgentCore container deploy su mgmt-01 + system prompt akira-docs/agentcore-akira-prompt.md1 settcontainer A.Sheep, prompt iniziale read-only
F1.5Importer Stealth — sviluppo ETL script standalone read-only1 settrun nightly su Toolbox VPS, output JSONL su Storage Box
F1.6DR test PG+Timescale: pg_dump → Storage Box → restore su db-02 ephemeral0.5 settverifica RTO/RPO documentati (target Fase 4)

Gate Fase 1 → Fase 2: smoke test SIP REGISTER E2E green su staging (softphone esterno → Kamailio staging → 200 OK).


4. Fase 2 — Signaling core (4-5 settimane)

IDAttivitàDurataParalleloNote
F2.1Kamailio config + htable sync DB 30s + Redis pub/sub event-driven invalidation2 settnodispatcher + permissions + acc, hot-reload via Redis
F2.2RTPengine + media bridge + recording G.711 via FreeSWITCH1.5 settparz.recording dual-leg, WAV su Storage Box
F2.3FreeSWITCH B2BUA + transcoding on-demand G.729→G.7111 settnoprofilo transcode-only, no media full-anchoring
F2.4Integration test E2E softphone + benchmark 200 CPS burst1 settnosipp scenari + grafana dashboard
F2.5Frontend scaffold Next.js + design system + componenti foundation2 settApp Router, Tailwind + shadcn, design tokens dal mockup

Gate Fase 2 → Fase 3a: 200 CPS burst test passa con loss < 0.5%.


5. Fase 3a — Management plane CRUD (3 settimane)

IDAttivitàDurataNote
F3a.1Frontend CRUD Companies + Originators + Terminators + Devices1.5 settinclude static vs dynamic device UI differenziato (vedi feedback)
F3a.2Frontend CRUD Tariffs + Destinations + Offers1 settoffer con valid_to opzionale, reverts_to in advanced
F3a.3Frontend Routing Plans editor + Access Policies0.5 settDnD priority + IP/CIDR allowlist

6. Fase 3b — Reports + Topology + Pattern Analyzer (4 settimane)

Decisione 2026-05-13: tutti e 6 i Reports estesi entrano in MVP.

IDAttivitàDurataCapitoli docx
F3b.1Active Calls (NOC Live View) + SSE live1 settcap. 22
F3b.2Live Performance (Carrier Health Matrix) + Calls per Day1 settcap. 23 + cap. 24
F3b.3Consumption (Period Comparison) + SLA Quality Agreements1 settcap. 26 + cap. 27
F3b.4Source Destinations + Topology Map + Pattern Analyzer UI1 settcap. 28 + cap. 45 + cap. 46

Note tecniche:

  • Active Calls usa Server-Sent Events (SSE), vedi ADR-0018 per razionale: GET /api/v1/live/calls (stream) e GET /api/v1/live/calls/snapshot (initial state).
  • Carrier Health Matrix aggrega da cdr_continuous_aggregate_5m (TimescaleDB).
  • Pattern Analyzer UI consuma output del runner notturno (Toolbox akira-pattern-detector).

7. Fase 3c — Integrations parallel (2 settimane)

Esegue in parallelo a Fase 3b (lavoro indipendente dal frontend Reports).

IDAttivitàDurataNote
F3c.1AgentCore tools registry + MCP integration1 setttools = endpoint FastAPI esposti come MCP; auth via service token
F3c.2Revolut OAuth2 + webhook + auto-match Payments0.5 settautoCat keyword in MVP
F3c.3IMAP pipelines (tickets + supplier invoices) OAuth20.5 settADR-0009 reference; Gmail + M365

8. Fase 4 — Pilot + import + go-live (5-6 settimane)

IDAttivitàDurataNote
F4.1Importer Stealth → Akira dry-run staging + reconciliation1 setttolleranza delta 0% su counts, < 0.5% su somme monetarie
F4.2Dual-stack 1 customer side-by-side billing 7gg2 settApex Telecom (interno A.Sheep candidato)
F4.3Pilot 2 customer reali ≥ 14gg continui dual-stack2 settgating KPI in pilot-gating-kpi.md
F4.4Cutover progressivo + rollback plan1 settrunbook cutover + DR drill finale

Vedi pilot-gating-kpi.md per criteri di promozione/rollback.


9. Totali e milestone

FaseDurata
Fase 0 (Hardening)3-4 sett
Fase 1 (Backend foundation)3 sett
Fase 2 (Signaling core)4-5 sett
Fase 3a (CRUD)3 sett
Fase 3b (Reports + Topology + Pattern)4 sett
Fase 3c (Integrations, parallelo a 3b)2 sett (assorbiti)
Fase 4 (Pilot + go-live)5-6 sett
  • TOTALE post-kickoff backend (Fase 1→4): 21-23 settimane (5-6 mesi).
  • TOTALE incluso Fase 0: 24-27 settimane (6-7 mesi).
  • Target go-live pilot: dicembre 2026 / gennaio 2027.

Gantt sintetico

Mese 1 | F0 hardening ████████
Mese 2 | F1 backend ██████
Mese 3 | F2 signaling ██████████
Mese 4 | F2 (coda) + F3a CRUD ██████████
Mese 5 | F3b Reports ████████ // F3c Integrations ████ (parallelo)
Mese 6 | F4 import + pilot ████████
Mese 7 | F4 pilot + cutover ████████

10. Out-of-scope MVP (parking lot v2)

FeatureDestinazioneNote
Interconnection Tool AI-guided wizardv2 (cap. 63 v2)richiede AgentCore maturo + dataset reale
Calendar view Future Tariffsv2 (cap. 14 v2)UI ricca, MVP usa lista flat
Invoice viewer 3-pagine pager + supplier side-by-sidev1.1 (cap. 58/60)MVP-light singola pagina
Cost Explorerv1.1 (cap. 21)post-pilot, richiede dati storici reali
TLS/SRTP signalingv2 (cap. 5.4)MVP solo UDP + IP allowlist
Hardware MFA WebAuthn/YubiKeyv2 (cap. 5.2)MVP solo TOTP + recovery codes
Multi-region DR HEL1v2 (cap. 7.4)MVP solo single-region FSN1 + Storage Box backup
HashiCorp Vault enterprisev2 (cap. 5.3)MVP Ansible Vault sufficiente
Mutation testingpost-MVPnice-to-have, dopo stabilità
Bug bountypost-MVPrichiede maturità + base utenti

11. Rischi principali residui

RischioProbabilitàImpattoMitigazione
200 CPS non raggiunto in Fase 2mediaaltobenchmark anticipato F2.4; profilo Kamailio già validato in lab
Importer Stealth con drift su balancemediaaltoreconciliation in F4.1, tolleranza < 0.5%, alert su mismatch
Francesco non disponibile per validazione UXbassamediosessioni preregistrate calendar, fallback async via Loom
AgentCore non production-ready entro F3cmediabassotools-registry può ritardare a v1.1 senza bloccare pilot
DR restore eccede RTO targetbassaaltotest ripetuto in F1.6 e F4.4; eventuale upgrade Storage Box

12. Riferimenti

  • docs/adr/0001-stack-python-fastapi-nextjs.md
  • docs/adr/0007-cdr-pipeline-nats-jetstream.md
  • docs/adr/0008-kamailio-ha-hetzner-cloud.md
  • docs/adr/0009-imap-oauth2-gmail-m365.md
  • docs/architecture/signaling-decisions.md
  • docs/architecture/pilot-gating-kpi.md (KPI di gating Fase 4)
  • docs/conventions/definition-of-done.md (DoD feature)
  • docs/db/SCHEMA_DELTA_v515_to_v1.md
  • Akira docx v5.2 (rigenerato in v5.16 a fine Fase 0)