luna99 dashboard

Generato 2026-06-13 · 4 assignee · 35 subprojects · master in manifest: 7

Per utente: claudiac gabrieleg maurog stefanol
Per master: cloud88 datacenter luccawifi luna-voce luna99 mccarty office small-user undesktop

Milestone (per scadenza)

MasterScope#MilestoneTargetStato
datacenterhaos1View summary corrente/temperatura2026-05-26planned
datacenterhaos2View dettaglio apparati datacenter2026-05-26planned
datacenterhaos3View dettaglio apparati uffici2026-05-26planned
luna99ppro-mobile1Ottenere lista funzioni dal cliente PERIGEST2026-05-30done
luna99ppro-mobile2Implementazione webapp Sopralluogo (cerca/riepilogo/edit/save)2026-05-30done
small-usermaster1Milestone 12026-05-30planned
small-usermaster2Milestone 22026-05-30planned
small-usermaster3Milestone 32026-05-30planned
luna-vocemaster1Bundle scaffolding: VM in `projects.yaml`+`sysops.yaml`, jail LDAP, DB voce, DNS `sip.luna99.it`, frontend HAProxy `my.<tenant>/{voip,conf,talk}`2026-05-31done (2026-05-28)
luna99lifecycle-bus1P0 infra: Redis fleet dedicato (auth+AOF), client Perl, stream2026-06-04done
luna-vocemaster2voce-itsp1 + voce-pbx1 in linea: chiamata PSTN inbound risponde con IVR statico (CS1)2026-06-05done (2026-06-03, PSTN inbound reale e2e su trunk test kiknet; CS1 parziale: outbound non testato)
luna99lifecycle-bus2P1 publisher in admin + P2 framework consumer/sweeper2026-06-05done
luna99lifecycle-bus3P3 consumer voce (assorbe il purge sync interim + reconcile)2026-06-06done
luna99lifecycle-bus4P4 consumer mail + P5 sweeper/report2026-06-07done
luna-vocemaster3voce-users1 in linea: hardphone SIP/TLS + softphone webapp registrati, chiamata interna OK, outbound via voce-itsp1 (CS2)2026-06-09in-progress (hardphone+softphone+interne ✅ 2026-06-01; resta outbound PSTN)
luna-vocemaster4voicemail→email funzionante + contesto `[emergency]` attivo e testato con codice privato (CS3+CS4)2026-06-11in-progress (CS3 ✅ 2026-06-04 e2e live; CS4 scritto ma `include` commentato in attesa revisione AGCOM)
luna-vocemaster5voce-rtc1 (Janus) + voce-conf1 (Jitsi): click-to-call anonimo e conferenza 3-way operativi2026-06-13superata da ADR-007 (meeting = LiveKit, done 2026-06-06; Janus parked, Jitsi dismesso)
luna99lifecycle-bus5P6 consumer file — dataset ZFS su nfs1 via stream `luna:zfs`2026-06-13done
datacentermaster1Monitoraggio2026-06-15progress
datacenterlogging1Syslog centralizzato operativo2026-06-15planned
datacenterlogging2Trap receiver operativo2026-06-15planned
luna-vocemaster6`Luna::Admin::Voce` v1 su admin.luna99.it: onboarding tenant pilota end-to-end (CS5)2026-06-15in-progress (~95%; UI complete, onboarding e2e atteso con ITSP commerciale)
luna99ppro-mobile5API file in `Ppro::Mobile` (lista/upload via presigned URL diretti a luna-file/MinIO) — sblocca M32026-06-25planned
luna99ppro-mobile3Implementazione Documentazione / Richiesta docs / Foto2026-06-30blocked (API ppro: vedi M5)
luna99ppro-mobile6API modelli in `Ppro::Mobile` (lista + render PDF, scaricato via presigned GET)2026-06-30planned
officemaster1HAOS onboardato nel bundle workflow2026-06-30done (2026-05-25)
luna99ppro-mobile4Test con cliente2026-07-05planned
cloud88master1Milestone 12026-08-31planned
cloud88master2Milestone 22026-08-31planned
cloud88master3Milestone 32026-08-31planned
luccawifimaster1Milestone 12026-08-31planned
luccawifimaster2Milestone 22026-08-31planned
luccawifimaster3Milestone 32026-08-31planned
luna99master1Milestone 12026-08-31planned
luna99master2Milestone 22026-08-31planned
luna99master3Milestone 32026-08-31planned
mccartymaster1Milestone 12026-08-31planned
mccartymaster2Milestone 22026-08-31planned
mccartymaster3Milestone 32026-08-31planned
undesktopmaster1Milestone 12026-08-31planned
undesktopmaster2Milestone 22026-08-31planned
undesktopmaster3Milestone 32026-08-31planned
officemaster2Prima automazione/integration in prod2026-09-30planned
officemaster3Estensione ad altre appliance2026-12-31planned
cloud88website1Milestone 14hYYYY-MM-DD
cloud88website2Milestone 28hYYYY-MM-DD
cloud88website3Milestone 312hYYYY-MM-DD
luna99file1Browse UI HTMX + WebDAV + OCS base-done
luna99file2Login Flow v2 + app passwords-done
luna99file3Chunked upload v2-done
luna99file4Trashbin (UI + DAV)-done
luna99file5Sharing OCS API (Fase 5a)-done
luna99file6Public links con token-done
luna99file7Migrazione metadati EXIF + reverse geocoding (Nominatim)-done
luna99file8Test compat con client Nextcloud desktop + iOS + Android16h2026-06-15
luna99file9Spostare segreti (LDAP, S3, app secret) in `/etc/luna/*`4h2026-06-10
luna99file10Rimuovere `max_request_size=1 GiB` quando chunked v2 robusto4h2026-06-30
luna99file11Quota per utente (disk_stats consumato da home/profile)12h2026-06-30
luna99file12Test coverage modelli + WebDAV smoke (litmus webdav)16h2026-07-15
luna99file13Preview/thumbnail generation (oggi stub 404)16h2026-07-31
luna99file14~~Presigned wrapper~~ → API service-account `/api/svc/ppro*` (GET/PUT/DELETE/list/move su alberi `_ppro`, streaming via app — niente presigned su NFS)8h2026-06-11
luna99file15Service account `svc-ppro` (app-password, gate `Svc#gate` da config `svc.ppro.account`) + layout `<master>/<tenant>/_ppro/<prot>/...` e `_ppro/_modelli/`6h2026-06-11
luna99file16~~CORS MinIO~~ — senza presigned i client non parlano più con lo storage direttamente--
luna99file18**Layout home mail-like** (2026-06-11): chiavi `<master>/<tenant>/<uid>/{files,trash}/` da LDAP `homeDirectory` (`Model::Homes`, cache 300s/30s; helper `files_key`/`trash_key`); via i vecchi `users/<email>` e `trashbin/<email>`-2026-06-11
luna99file19**Allocazione tenant-first per-subtenant** (2026-06-12): root `/mnt/nfs-file` (tolto livello-app), schema svc `<base>/_ppro/<rel>` a profondità variabile, dataset ZFS per subtenant come unità di quota — vedi note M19-2026-06-12
luna99file17**Migrazione storage backend S3/MinIO → NFS (`nfs1`)** — vedi note sottoTBD2026-06-10
luna99ppro1Migrazione luna99 (auth plugin, portal layout, /opt path)-2026-05-06
luna99ppro2Spostare segreti da webapp.yml a `/etc/luna/*` files6h2026-06-10
luna99ppro3Rimuovere credenziali Generali hardcoded3h2026-06-10
luna99ppro4CSRF double-submit sui POST/HTMX8h2026-06-20
luna99ppro5Re-auth + authorization per-messaggio sui WebSocket12h2026-06-30
luna99ppro6Completare migrazione WS→HTTP/HTMX (rimuovere legacy)24h2026-07-31
luna99ppro7Spezzare i controller fat (Config/Nextcloud/Mail/Pratica)20h2026-07-31
luna99ppro8Baseline test `prove -lr t/` (smoke + auth + pratica CRUD)16h2026-06-30
luna99ppro9Spegnere `log->level('debug')` + ripristinare template cache1h2026-06-10
luna99ppro10Sostituire password LDAP in sessione con token IMAP/Nextcloud delegato16hTBD
luna99ppro11`webapp::Service::FileClient` — client API `/api/svc/ppro*` di luna-file (Basic `svc-ppro`): `get/put/delete/list/move/exists` in streaming (niente presigned su NFS — rivisto 2026-06-11)10h2026-06-11
luna99ppro12Refactor `Ppro::File` su `FileClient`: dismesso disk storage (`_abs_file`, `files/`), tutto su `cloud88/perigest/_ppro/<prot>/...` su NFS via luna-file (rotte+JSON invariati; thumb PDF su temp; mkdir=`.keep`)20h2026-06-11
luna99ppro13`Ppro::Modelli` su luna-file (`cloud88/perigest/_ppro/_modelli/`): render/compile/pdf_fields leggono i template via `FileClient`, compilati salvati in `<prot>/modelli/`; AcroForm fill CAM::PDF in-memory; gestione template (upload/download/delete) per gestori config12h2026-06-11
luna99ppro14Deprecazione `Ppro::Nextcloud` (~893 LOC) + `Service::NextcloudClient` (~768 LOC): rimossi quando M11-M13 done4h2026-06-30
luna99contab1Migrazione anagrafica → abook (Fasi 1→5)40h2026-05-21
luna99contab2QbImporter/QbSyncImporter via Anagrafica model8h2026-06-15
luna99contab3Cleanup `anagrafica_ext` (valutare drop cache)6h2026-06-15
luna99contab4Test coverage modelli `Fattura`/`Iva`/`Sollecito`12h2026-06-30
luna99contab5Provider bancari aggiuntivi (oltre Wise/Revolut)8h2026-06-30
luna99contab6Audit log `contab_audit` (azioni irreversibili: invio SDI, sollecito, riconciliazione, modifica fattura post-emissione)6h2026-06-30
luna99contab7Export dati per F24 (estrazione liquidazione IVA periodica accessibile a commercialista, admin e operatore — no compilazione modello)3h2026-06-30
luna99contab8Banca Sella: import movimenti via CSV8h2026-06-30
luna99contab9Revolut: import movimenti via CSV (stile Sella, in alternativa all'OAuth proxy oggi non configurato in UI)4h2026-06-30
luna99contab10API REST `/api/contab01/*` — fatture di vendita + anagrafica clienti (pattern `Quick01_contab`, primo `Quick01_*` luna99-wide)10h2026-07-15
luna99contab11Allegati PDF su fatture vendita/acquisto: upload, storage su filesystem, UUID in DB (`fatture_allegati`)6h2026-07-15
luna99contab12**Note di Credito (TD04)** attive/passive: emissione collegata a fattura origine, prima nota inversa, segno negativo in registri IVA + riconciliazione8h2026-06-20
luna99contab13**Preventivi/offerte**: tabella `preventivi`/`righe_preventivo`, CRUD, conversione → fattura di vendita10h2026-06-30
luna99contab14**Divisioni di fatturazione per business**: ogni business (1 P.IVA) ha più divisioni/marchi con template documento (logo/intestazione/footer/colore) + centro di ricavo; il documento porta `divisione_id` e il PDF usa il marchio della divisione (soggetto emittente legale = business)10h2026-06-30
luna99contab15**Report personalizzati**: lista autofatture + estrazione filtrabile/export CSV configurabile4h2026-06-30
luna99contab16**PEC SdI live** (out + ricezione ricevute via IMAP): da stub a invio reale, polling ricevute, aggiornamento stato12h2026-07-15
luna99abook1Migrazione 001: fiscal fields + contact_addresses + business books12h2026-05-21
luna99abook2API bearer-token `/api/v1/abook/*` (contacts + addresses)16h2026-05-21
luna99abook3Validazione P.IVA Luhn + CF in `Abook::Model::Contact`4h2026-05-21
luna99abook4Documentare routes API in `/srv/ia-rules/projects/contab/abook-anagrafica-migration.md`2h2026-05-21
luna99abook5UI dedicata per rubriche business_* (vista clienti/fornitori)12h2026-06-15
luna99abook6Sharing con permission `write` (oggi solo `read`)6h2026-06-30
luna99abook7Import CSV/Excel per rubriche business8h2026-06-30
luna99abook8Export vCard / CSV4h2026-06-30
luna99abook9Test coverage modelli (Contact/Addressbook/ContactAddress)12h2026-06-30
luna99abook10Rate-limit + audit log per API bearer6h2026-07-15
luna99sync1Baseline EAS 14.1 + Autodiscover XML + mobileconfig iOS-done
luna99sync2Backend CalDAV/CardDAV/IMAP + comandi core-done
luna99sync3WBXML encoder/decoder con dictionary completo-done
luna99sync4Spostare segreti (app.secret, LDAP bind) in `/etc/luna/*`4h2026-06-10
luna99sync5Disabilitare `log->level('debug')` in produzione1h2026-06-10
luna99sync6Test compatibilità: iOS Mail, Outlook mobile, Android Mail12h2026-06-30
luna99sync7Litmus-style smoke test su comandi EAS critici16h2026-07-15
luna99sync8Metriche per device/comando (ping count, sync latency)8h2026-07-31
luna99sync9Documentare procedura setup iOS via mobileconfig4h2026-06-30
luna99sync10Valutare Modern Auth (OAuth2) per iOS senza profileTBDTBD
luna99calendar1Setup baseline (schema, modelli, CalDAV minimo, web UI)-done
luna99calendar2Sharing calendari (read)-done
luna99calendar3Agent API per consumer AI-done
luna99calendar4Sharing con permission `write` (oggi solo `read`)6h2026-06-30
luna99calendar5iMIP: invio inviti via SMTP + parsing risposte24h2026-07-31
luna99calendar6Time zone handling completo (VTIMEZONE → DB timezone)8h2026-06-30
luna99calendar7Ricorrenze (RRULE) — parsing + espansione in vista16h2026-07-15
luna99calendar8Test coverage modelli + CalDAV (Litmus / litmus-caldav)16h2026-07-31
luna99calendar9Rate-limit / scoping agent API (oggi pubblica)6h2026-07-15
luna99calendar10Documentazione client setup (Apple, Thunderbird, DAVx5)4h2026-06-30
luna99uadmin1**Aggiungere codebase al bundle** (`projects.yaml`)1h2026-06-01
luna99uadmin2Riscrivere questa SPEC.md sulla base del codice reale4h2026-06-01
luna99uadmin3Tenant/business UI (lista + CRUD via contab API)TBD2026-06-30
luna99uadmin4User UI (lista + CRUD via contab API + LDAP write)TBD2026-06-30
luna99uadmin5Toggle webapp per tenant (`lunaXxxJail`)TBD2026-07-15
luna99uadmin6Audit log azioni adminTBD2026-07-15
luna99uadmin7Test coverageTBD2026-07-31
luna99admin1**Aggiungere codebase al bundle** (`projects.yaml`) o
luna99admin2Riscrivere questa SPEC sulla base del codice reale o di
luna99admin3Fleet status (proxy a Prometheus + Grafana)TBDTBD
luna99admin4Reseller CRUDTBDTBD
luna99admin5Revocation panel (consumer auth API)TBDTBD
luna99admin6Audit globale aggregatoTBDTBD
luna99admin7Rotazione segreti workflowTBDTBD
luna99auth1Baseline (login form, sessioni Pg, token HMAC, plugin)-done
luna99auth2Directory API + revocations API-done
luna99auth3uidNumber per SSSD (migration 002)-done
luna99auth4Spostare segreti (`app.secret`, LDAP bind) in `/etc/luna/*`4h2026-06-10
luna99auth5StartTLS verso LDAP (oggi `start_tls=0`)6h2026-06-30
luna99auth6API key rotation + multiple keys per consumer8h2026-06-30
luna99auth7Cambio password self-service (LDAP modify)16h2026-07-15
luna99auth8TOTP / MFA opzionale (per ruoli sensibili)24h2026-07-31
luna99auth9Audit log eventi login/logout/revoke8h2026-06-30
luna99auth10Test coverage Model::Session + Token sign/verify12h2026-06-30
luna99auth11Hardening rate limiter (oggi in-memory, no distribuito)6h2026-07-15
luna99wiki1Schema DB + pgvector + indici-done
luna99wiki2Config + auth plugin + bootstrap Mojolicious-done
luna99wiki3CRUD pagine + categorie + revisioni (Web UI HTMX)24h2026-06-30
luna99wiki4Render markdown server-side + sanitizzazione8h2026-06-30
luna99wiki5Embedding worker (background job su insert/update)12h2026-07-15
luna99wiki6RAG query endpoint (`/api/rag`) con top-K + cite16h2026-07-31
luna99wiki7Full-text search UI (GIN tsvector)8h2026-07-15
luna99wiki8Spazi wiki (namespace per area: architecture/runbooks/…)8h2026-07-31
luna99wiki9Import iniziale da `/srv/ia-rules/projects/**/*.md`6h2026-08-15
luna99wiki10Permalink stabili + supporto link `[[slug]]` cross-page6h2026-07-31
luna99wiki11Test coverage modelli + RAG smoke12h2026-08-15
luna99home1Portale + tile + favorites + profile-done
luna99home2Frontend assets condivisi (Alpine/htmx/Bootstrap)-done
luna99home3Tile dinamiche da `lunaXxxJail` + `lunaServices`-done
luna99home4Spostare segreti (`app.secret`, LDAP binds) in `/etc/luna/*`4h2026-06-10
luna99home5Connection pool LDAP (oggi bind per request)8h2026-06-30
luna99home6Cache tile per (uid,tenant) con invalidazione su favorite6h2026-06-30
luna99home7Disk stats reali via API `file`8h2026-06-30
luna99home8Cambio password via auth API (oggi placeholder?)8h2026-07-15
luna99home9Dark mode + persistenza tema utente in LDAP8h2026-07-31
luna99home10Test coverage helpers + tenant_apps8h2026-06-30
mccartybackoffice1Setup server + bundle onboarding2026-05-25
mccartybackoffice2Codebase versionato su gitea (`mccarty/backoffice`)2h2026-05-29
mccartybackoffice3Reverse proxy + URL pubblico stabile4hTBD
mccartybackoffice4Iterazione UI/CRUD su feedback claudiac (4a–4f)2026-08-31
mccartybackoffice4aBackoffice multilingua IT/EN/ES (schema testi + UI tab nei form)6h2026-06-12
mccartybackoffice4bScheda prodotto: drop zone certificati + anteprima inline5h2026-06-19
mccartybackoffice4cGestione loghi (upload + flag max 3 visualizzati + ordinamento)4h2026-06-26
mccartybackoffice4dFlag visibilità garanzie Sì/No + flag firma aderente assicurato3h2026-06-26
mccartybackoffice4eUpload documentazione obbligatoria nella scheda prodotto3h2026-07-03
mccartybackoffice4fTool caricamento policy con ambiente di staging + promozione in prod8h2026-07-24
mccartybackoffice5Iterazione UI/CRUD post-meeting 2026-05-27 (5a–5g)2026-08-15
mccartybackoffice5aCampo QR code URL su scheda prodotto1h2026-05-31
mccartybackoffice5bCampo codice prodotto clikki (2 lettere) + retrofit storico1h2026-05-31
mccartybackoffice5cLibreria loghi compagnia (`comp_loghi`)8h2026-06-19
mccartybackoffice5dProdotto multi-compagnia (pivot `comp_prodotti_compagnie`)3h2026-06-26
mccartybackoffice5eVista log certificati generati (legge `comp_certificati_log`)2h2026-07-10
mccartybackoffice5fVista log email + template email testuali multilingua2h2026-07-17
mccartybackoffice5gFlag documentazione obbligatoria con data dinamica QForm2h2026-07-24
mccartybackoffice5hCampo titolo PDF (`prod_titolo_pdf`, solo IT) → metadato `/Title`1h2026-06-13
mccartybackoffice5iTemplate certificato editabili via web (DB+placeholder, WYSIWYG+sanitizer, cliente IT/EN/ES + compagnia IT)14h2026-07-31
mccartybackoffice6Hardening (rotazione password admin, secrets fuori da `backend.yml`)4hTBD
mccartyapi1Skeleton webapp + unit + onboarding bundle2026-05-25
mccartyapi2Endpoint `POST /certificato/master` + WeasyPrint demone + storage UUID8h2026-06-12
mccartyapi3Layout dinamico 2 colonne + importi garanzia + hash + QR code4h2026-06-19
mccartyapi4Endpoint `POST /certificato/compagnia` (multi-compagnia + template per compagnia)4h2026-06-26
mccartyapi5Nomenclatura file standardizzata (`YYYYMMDD_num_cod2_Nome.pdf`)1h2026-06-26
mccartyapi6Persistenza `comp_certificati_log` (storico richieste + payload)2h2026-07-03
mccartyapi7Endpoint `POST /documentazione` con QForm date dinamica5h2026-07-17
mccartyapi8Endpoint `POST /email` + SMTP register + `comp_email_log`3h2026-07-24
mccartyapi9Gestione gruppi >40 passeggeri (layout su 2 fogli)3h2026-07-31
mccartyapi10Certificati specifici per compagnia (medico-bagaglio, annullamento)4h2026-08-14
mccartyapi11Hardening (rate limit `/file/<uuid>`, secrets fuori da yml)3h2026-08-21
mccartyapi12Metadato `/Title` PDF da `prod_titolo_pdf` (M5h backoffice)1h2026-06-13
mccartyapi13Render template **DB-backed** (corpo da `comp_cert_template`, telaio `.ep` in repo) + ri-sanitize4h2026-07-31
mccartyapi14Data emissione **congelata su ristampa** (lookup `comp_certificati_log`)1h2026-06-20
mccartyapi15Storage: sync NAS ~10min + purge locale + layout per agenzia/annualità6h2026-08-21
undesktopfrontend1Milestone 14hYYYY-MM-DD
undesktopfrontend2Milestone 28hYYYY-MM-DD
undesktopfrontend3Milestone 312hYYYY-MM-DD
undesktopbackend1Milestone 14hYYYY-MM-DD
undesktopbackend2Milestone 28hYYYY-MM-DD
undesktopbackend3Milestone 312hYYYY-MM-DD

Per utente

claudiac (8)

MasterSubprojectStatusTargetCodebase
luna99ppro-mobile (12-ppro-mobile)in-progress2026-05-30ppro-mobile
small-userluccaunited (01-luccaunited)in-progress2026-05-30luccaunited
luna99contab (03-contab)in-progress2026-06-15contab
cloud88website (01-website)planned2026-06-30website
luna99ppro (02-ppro)in-progress2026-06-30ppro
undesktopfrontend (01-frontend)planned2026-06-30undesktop-frontend
undesktopbackend (02-backend)planned2026-06-30undesktop-backend
mccartybackoffice (01-backoffice)in-progress2026-08-31backoffice

gabrieleg (24)

MasterSubprojectStatusTargetCodebase
luna99file (01-file)in-progress2026-05-30luna-file
luna-voceitsp (01-itsp)in-progress2026-06-05luna-voce-itsp
luna99lifecycle-bus (14-lifecycle-bus)in-progress2026-06-07admin + new Luna::Lifecycle lib
luna99test-machine (15-test-machine)done2026-06-07new luna-test harness (Perl) + test VM
luna-voceusers (02-users)in-progress2026-06-09luna-voce-users
luna-vocepbx (03-pbx)in-progress2026-06-11luna-voce-pbx
luna-voceconf (05-conf)done2026-06-13luna-voce-conf
datacenterlogging (02-logging)planned2026-06-15logging
luna-voceadmin (06-admin)in-progress2026-06-15admin
luna99abook (04-abook)in-progress2026-06-15abook
luna99sync (05-sync)in-progress2026-06-15sync
luna99calendar (06-calendar)in-progress2026-06-15calendar
luna99uadmin (07-uadmin)planned2026-06-15uadmin
luna99admin (08-admin)planned2026-06-15admin
officepc-security (02-pc-security)in-progress2026-06-15nixos-config (per-PC, fuori da luna99 bundles)
luna-vocelivekit (07-livekit)done2026-06-27luna-voce-livekit
luna99auth (09-auth)in-progress2026-06-30auth
luna99wiki (10-wiki)planned2026-06-30wiki
luna99home (11-home)in-progress2026-06-30home
luna99fixed-tenancy (16-fixed-tenancy)done2026-06-30admin
luna99password-manager (13-password-manager)planned2026-07-30TBD
officegestione-progetti (03-gestione-progetti)in-progress2026-07-30/srv/luna99-projects + /usr/local/bin/luna-daily-report
luna-vocertc (04-rtc)in-progress2026-08-15luna-voce-rtc
mccartyapi (02-api)in-progress2026-08-31api

maurog (1)

MasterSubprojectStatusTargetCodebase
luccawifionboard-sysop-luccawifi-it (01-onboard-sysop-luccawifi-it)planned2026-05-30TBD

stefanol (2)

MasterSubprojectStatusTargetCodebase
datacenterhaos (01-haos)planned2026-05-26haos
officeautomation (01-automation)in-progress2026-09-30office/automation

Per master

cloud88 (1 subprojects · 6 milestone)

Milestone

Scope#MilestoneTargetStato
master1Milestone 12026-08-31planned
master2Milestone 22026-08-31planned
master3Milestone 32026-08-31planned
website1Milestone 14hYYYY-MM-DD
website2Milestone 28hYYYY-MM-DD
website3Milestone 312hYYYY-MM-DD

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
cloud88website (01-website)plannedclaudiac2026-06-30website

datacenter (2 subprojects · 6 milestone)

Milestone

Scope#MilestoneTargetStato
haos1View summary corrente/temperatura2026-05-26planned
haos2View dettaglio apparati datacenter2026-05-26planned
haos3View dettaglio apparati uffici2026-05-26planned
master1Monitoraggio2026-06-15progress
logging1Syslog centralizzato operativo2026-06-15planned
logging2Trap receiver operativo2026-06-15planned

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
datacenterhaos (01-haos)plannedstefanol2026-05-26haos
datacenterlogging (02-logging)plannedgabrieleg2026-06-15logging

luccawifi (1 subprojects · 3 milestone)

Milestone

Scope#MilestoneTargetStato
master1Milestone 12026-08-31planned
master2Milestone 22026-08-31planned
master3Milestone 32026-08-31planned

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
luccawifionboard-sysop-luccawifi-it (01-onboard-sysop-luccawifi-it)plannedmaurog2026-05-30TBD

luna-voce (7 subprojects · 6 milestone)

Milestone

Scope#MilestoneTargetStato
master1Bundle scaffolding: VM in `projects.yaml`+`sysops.yaml`, jail LDAP, DB voce, DNS `sip.luna99.it`, frontend HAProxy `my.<tenant>/{voip,conf,talk}`2026-05-31done (2026-05-28)
master2voce-itsp1 + voce-pbx1 in linea: chiamata PSTN inbound risponde con IVR statico (CS1)2026-06-05done (2026-06-03, PSTN inbound reale e2e su trunk test kiknet; CS1 parziale: outbound non testato)
master3voce-users1 in linea: hardphone SIP/TLS + softphone webapp registrati, chiamata interna OK, outbound via voce-itsp1 (CS2)2026-06-09in-progress (hardphone+softphone+interne ✅ 2026-06-01; resta outbound PSTN)
master4voicemail→email funzionante + contesto `[emergency]` attivo e testato con codice privato (CS3+CS4)2026-06-11in-progress (CS3 ✅ 2026-06-04 e2e live; CS4 scritto ma `include` commentato in attesa revisione AGCOM)
master5voce-rtc1 (Janus) + voce-conf1 (Jitsi): click-to-call anonimo e conferenza 3-way operativi2026-06-13superata da ADR-007 (meeting = LiveKit, done 2026-06-06; Janus parked, Jitsi dismesso)
master6`Luna::Admin::Voce` v1 su admin.luna99.it: onboarding tenant pilota end-to-end (CS5)2026-06-15in-progress (~95%; UI complete, onboarding e2e atteso con ITSP commerciale)

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
luna-voceitsp (01-itsp)in-progressgabrieleg2026-06-05luna-voce-itsp
luna-voceusers (02-users)in-progressgabrieleg2026-06-09luna-voce-users
luna-vocepbx (03-pbx)in-progressgabrieleg2026-06-11luna-voce-pbx
luna-voceconf (05-conf)donegabrieleg2026-06-13luna-voce-conf
luna-voceadmin (06-admin)in-progressgabrieleg2026-06-15admin
luna-vocelivekit (07-livekit)donegabrieleg2026-06-27luna-voce-livekit
luna-vocertc (04-rtc)in-progressgabrieleg2026-08-15luna-voce-rtc

luna99 (16 subprojects · 139 milestone)

Milestone

Scope#MilestoneTargetStato
ppro-mobile1Ottenere lista funzioni dal cliente PERIGEST2026-05-30done
ppro-mobile2Implementazione webapp Sopralluogo (cerca/riepilogo/edit/save)2026-05-30done
lifecycle-bus1P0 infra: Redis fleet dedicato (auth+AOF), client Perl, stream2026-06-04done
lifecycle-bus2P1 publisher in admin + P2 framework consumer/sweeper2026-06-05done
lifecycle-bus3P3 consumer voce (assorbe il purge sync interim + reconcile)2026-06-06done
lifecycle-bus4P4 consumer mail + P5 sweeper/report2026-06-07done
lifecycle-bus5P6 consumer file — dataset ZFS su nfs1 via stream `luna:zfs`2026-06-13done
ppro-mobile5API file in `Ppro::Mobile` (lista/upload via presigned URL diretti a luna-file/MinIO) — sblocca M32026-06-25planned
ppro-mobile3Implementazione Documentazione / Richiesta docs / Foto2026-06-30blocked (API ppro: vedi M5)
ppro-mobile6API modelli in `Ppro::Mobile` (lista + render PDF, scaricato via presigned GET)2026-06-30planned
ppro-mobile4Test con cliente2026-07-05planned
master1Milestone 12026-08-31planned
master2Milestone 22026-08-31planned
master3Milestone 32026-08-31planned
file1Browse UI HTMX + WebDAV + OCS base-done
file2Login Flow v2 + app passwords-done
file3Chunked upload v2-done
file4Trashbin (UI + DAV)-done
file5Sharing OCS API (Fase 5a)-done
file6Public links con token-done
file7Migrazione metadati EXIF + reverse geocoding (Nominatim)-done
file8Test compat con client Nextcloud desktop + iOS + Android16h2026-06-15
file9Spostare segreti (LDAP, S3, app secret) in `/etc/luna/*`4h2026-06-10
file10Rimuovere `max_request_size=1 GiB` quando chunked v2 robusto4h2026-06-30
file11Quota per utente (disk_stats consumato da home/profile)12h2026-06-30
file12Test coverage modelli + WebDAV smoke (litmus webdav)16h2026-07-15
file13Preview/thumbnail generation (oggi stub 404)16h2026-07-31
file14~~Presigned wrapper~~ → API service-account `/api/svc/ppro*` (GET/PUT/DELETE/list/move su alberi `_ppro`, streaming via app — niente presigned su NFS)8h2026-06-11
file15Service account `svc-ppro` (app-password, gate `Svc#gate` da config `svc.ppro.account`) + layout `<master>/<tenant>/_ppro/<prot>/...` e `_ppro/_modelli/`6h2026-06-11
file16~~CORS MinIO~~ — senza presigned i client non parlano più con lo storage direttamente--
file18**Layout home mail-like** (2026-06-11): chiavi `<master>/<tenant>/<uid>/{files,trash}/` da LDAP `homeDirectory` (`Model::Homes`, cache 300s/30s; helper `files_key`/`trash_key`); via i vecchi `users/<email>` e `trashbin/<email>`-2026-06-11
file19**Allocazione tenant-first per-subtenant** (2026-06-12): root `/mnt/nfs-file` (tolto livello-app), schema svc `<base>/_ppro/<rel>` a profondità variabile, dataset ZFS per subtenant come unità di quota — vedi note M19-2026-06-12
file17**Migrazione storage backend S3/MinIO → NFS (`nfs1`)** — vedi note sottoTBD2026-06-10
ppro1Migrazione luna99 (auth plugin, portal layout, /opt path)-2026-05-06
ppro2Spostare segreti da webapp.yml a `/etc/luna/*` files6h2026-06-10
ppro3Rimuovere credenziali Generali hardcoded3h2026-06-10
ppro4CSRF double-submit sui POST/HTMX8h2026-06-20
ppro5Re-auth + authorization per-messaggio sui WebSocket12h2026-06-30
ppro6Completare migrazione WS→HTTP/HTMX (rimuovere legacy)24h2026-07-31
ppro7Spezzare i controller fat (Config/Nextcloud/Mail/Pratica)20h2026-07-31
ppro8Baseline test `prove -lr t/` (smoke + auth + pratica CRUD)16h2026-06-30
ppro9Spegnere `log->level('debug')` + ripristinare template cache1h2026-06-10
ppro10Sostituire password LDAP in sessione con token IMAP/Nextcloud delegato16hTBD
ppro11`webapp::Service::FileClient` — client API `/api/svc/ppro*` di luna-file (Basic `svc-ppro`): `get/put/delete/list/move/exists` in streaming (niente presigned su NFS — rivisto 2026-06-11)10h2026-06-11
ppro12Refactor `Ppro::File` su `FileClient`: dismesso disk storage (`_abs_file`, `files/`), tutto su `cloud88/perigest/_ppro/<prot>/...` su NFS via luna-file (rotte+JSON invariati; thumb PDF su temp; mkdir=`.keep`)20h2026-06-11
ppro13`Ppro::Modelli` su luna-file (`cloud88/perigest/_ppro/_modelli/`): render/compile/pdf_fields leggono i template via `FileClient`, compilati salvati in `<prot>/modelli/`; AcroForm fill CAM::PDF in-memory; gestione template (upload/download/delete) per gestori config12h2026-06-11
ppro14Deprecazione `Ppro::Nextcloud` (~893 LOC) + `Service::NextcloudClient` (~768 LOC): rimossi quando M11-M13 done4h2026-06-30
contab1Migrazione anagrafica → abook (Fasi 1→5)40h2026-05-21
contab2QbImporter/QbSyncImporter via Anagrafica model8h2026-06-15
contab3Cleanup `anagrafica_ext` (valutare drop cache)6h2026-06-15
contab4Test coverage modelli `Fattura`/`Iva`/`Sollecito`12h2026-06-30
contab5Provider bancari aggiuntivi (oltre Wise/Revolut)8h2026-06-30
contab6Audit log `contab_audit` (azioni irreversibili: invio SDI, sollecito, riconciliazione, modifica fattura post-emissione)6h2026-06-30
contab7Export dati per F24 (estrazione liquidazione IVA periodica accessibile a commercialista, admin e operatore — no compilazione modello)3h2026-06-30
contab8Banca Sella: import movimenti via CSV8h2026-06-30
contab9Revolut: import movimenti via CSV (stile Sella, in alternativa all'OAuth proxy oggi non configurato in UI)4h2026-06-30
contab10API REST `/api/contab01/*` — fatture di vendita + anagrafica clienti (pattern `Quick01_contab`, primo `Quick01_*` luna99-wide)10h2026-07-15
contab11Allegati PDF su fatture vendita/acquisto: upload, storage su filesystem, UUID in DB (`fatture_allegati`)6h2026-07-15
contab12**Note di Credito (TD04)** attive/passive: emissione collegata a fattura origine, prima nota inversa, segno negativo in registri IVA + riconciliazione8h2026-06-20
contab13**Preventivi/offerte**: tabella `preventivi`/`righe_preventivo`, CRUD, conversione → fattura di vendita10h2026-06-30
contab14**Divisioni di fatturazione per business**: ogni business (1 P.IVA) ha più divisioni/marchi con template documento (logo/intestazione/footer/colore) + centro di ricavo; il documento porta `divisione_id` e il PDF usa il marchio della divisione (soggetto emittente legale = business)10h2026-06-30
contab15**Report personalizzati**: lista autofatture + estrazione filtrabile/export CSV configurabile4h2026-06-30
contab16**PEC SdI live** (out + ricezione ricevute via IMAP): da stub a invio reale, polling ricevute, aggiornamento stato12h2026-07-15
abook1Migrazione 001: fiscal fields + contact_addresses + business books12h2026-05-21
abook2API bearer-token `/api/v1/abook/*` (contacts + addresses)16h2026-05-21
abook3Validazione P.IVA Luhn + CF in `Abook::Model::Contact`4h2026-05-21
abook4Documentare routes API in `/srv/ia-rules/projects/contab/abook-anagrafica-migration.md`2h2026-05-21
abook5UI dedicata per rubriche business_* (vista clienti/fornitori)12h2026-06-15
abook6Sharing con permission `write` (oggi solo `read`)6h2026-06-30
abook7Import CSV/Excel per rubriche business8h2026-06-30
abook8Export vCard / CSV4h2026-06-30
abook9Test coverage modelli (Contact/Addressbook/ContactAddress)12h2026-06-30
abook10Rate-limit + audit log per API bearer6h2026-07-15
sync1Baseline EAS 14.1 + Autodiscover XML + mobileconfig iOS-done
sync2Backend CalDAV/CardDAV/IMAP + comandi core-done
sync3WBXML encoder/decoder con dictionary completo-done
sync4Spostare segreti (app.secret, LDAP bind) in `/etc/luna/*`4h2026-06-10
sync5Disabilitare `log->level('debug')` in produzione1h2026-06-10
sync6Test compatibilità: iOS Mail, Outlook mobile, Android Mail12h2026-06-30
sync7Litmus-style smoke test su comandi EAS critici16h2026-07-15
sync8Metriche per device/comando (ping count, sync latency)8h2026-07-31
sync9Documentare procedura setup iOS via mobileconfig4h2026-06-30
sync10Valutare Modern Auth (OAuth2) per iOS senza profileTBDTBD
calendar1Setup baseline (schema, modelli, CalDAV minimo, web UI)-done
calendar2Sharing calendari (read)-done
calendar3Agent API per consumer AI-done
calendar4Sharing con permission `write` (oggi solo `read`)6h2026-06-30
calendar5iMIP: invio inviti via SMTP + parsing risposte24h2026-07-31
calendar6Time zone handling completo (VTIMEZONE → DB timezone)8h2026-06-30
calendar7Ricorrenze (RRULE) — parsing + espansione in vista16h2026-07-15
calendar8Test coverage modelli + CalDAV (Litmus / litmus-caldav)16h2026-07-31
calendar9Rate-limit / scoping agent API (oggi pubblica)6h2026-07-15
calendar10Documentazione client setup (Apple, Thunderbird, DAVx5)4h2026-06-30
uadmin1**Aggiungere codebase al bundle** (`projects.yaml`)1h2026-06-01
uadmin2Riscrivere questa SPEC.md sulla base del codice reale4h2026-06-01
uadmin3Tenant/business UI (lista + CRUD via contab API)TBD2026-06-30
uadmin4User UI (lista + CRUD via contab API + LDAP write)TBD2026-06-30
uadmin5Toggle webapp per tenant (`lunaXxxJail`)TBD2026-07-15
uadmin6Audit log azioni adminTBD2026-07-15
uadmin7Test coverageTBD2026-07-31
admin1**Aggiungere codebase al bundle** (`projects.yaml`) o
admin2Riscrivere questa SPEC sulla base del codice reale o di
admin3Fleet status (proxy a Prometheus + Grafana)TBDTBD
admin4Reseller CRUDTBDTBD
admin5Revocation panel (consumer auth API)TBDTBD
admin6Audit globale aggregatoTBDTBD
admin7Rotazione segreti workflowTBDTBD
auth1Baseline (login form, sessioni Pg, token HMAC, plugin)-done
auth2Directory API + revocations API-done
auth3uidNumber per SSSD (migration 002)-done
auth4Spostare segreti (`app.secret`, LDAP bind) in `/etc/luna/*`4h2026-06-10
auth5StartTLS verso LDAP (oggi `start_tls=0`)6h2026-06-30
auth6API key rotation + multiple keys per consumer8h2026-06-30
auth7Cambio password self-service (LDAP modify)16h2026-07-15
auth8TOTP / MFA opzionale (per ruoli sensibili)24h2026-07-31
auth9Audit log eventi login/logout/revoke8h2026-06-30
auth10Test coverage Model::Session + Token sign/verify12h2026-06-30
auth11Hardening rate limiter (oggi in-memory, no distribuito)6h2026-07-15
wiki1Schema DB + pgvector + indici-done
wiki2Config + auth plugin + bootstrap Mojolicious-done
wiki3CRUD pagine + categorie + revisioni (Web UI HTMX)24h2026-06-30
wiki4Render markdown server-side + sanitizzazione8h2026-06-30
wiki5Embedding worker (background job su insert/update)12h2026-07-15
wiki6RAG query endpoint (`/api/rag`) con top-K + cite16h2026-07-31
wiki7Full-text search UI (GIN tsvector)8h2026-07-15
wiki8Spazi wiki (namespace per area: architecture/runbooks/…)8h2026-07-31
wiki9Import iniziale da `/srv/ia-rules/projects/**/*.md`6h2026-08-15
wiki10Permalink stabili + supporto link `[[slug]]` cross-page6h2026-07-31
wiki11Test coverage modelli + RAG smoke12h2026-08-15
home1Portale + tile + favorites + profile-done
home2Frontend assets condivisi (Alpine/htmx/Bootstrap)-done
home3Tile dinamiche da `lunaXxxJail` + `lunaServices`-done
home4Spostare segreti (`app.secret`, LDAP binds) in `/etc/luna/*`4h2026-06-10
home5Connection pool LDAP (oggi bind per request)8h2026-06-30
home6Cache tile per (uid,tenant) con invalidazione su favorite6h2026-06-30
home7Disk stats reali via API `file`8h2026-06-30
home8Cambio password via auth API (oggi placeholder?)8h2026-07-15
home9Dark mode + persistenza tema utente in LDAP8h2026-07-31
home10Test coverage helpers + tenant_apps8h2026-06-30

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
luna99file (01-file)in-progressgabrieleg2026-05-30luna-file
luna99ppro-mobile (12-ppro-mobile)in-progressclaudiac2026-05-30ppro-mobile
luna99lifecycle-bus (14-lifecycle-bus)in-progressgabrieleg2026-06-07admin + new Luna::Lifecycle lib
luna99test-machine (15-test-machine)donegabrieleg2026-06-07new luna-test harness (Perl) + test VM
luna99contab (03-contab)in-progressclaudiac2026-06-15contab
luna99abook (04-abook)in-progressgabrieleg2026-06-15abook
luna99sync (05-sync)in-progressgabrieleg2026-06-15sync
luna99calendar (06-calendar)in-progressgabrieleg2026-06-15calendar
luna99uadmin (07-uadmin)plannedgabrieleg2026-06-15uadmin
luna99admin (08-admin)plannedgabrieleg2026-06-15admin
luna99ppro (02-ppro)in-progressclaudiac2026-06-30ppro
luna99auth (09-auth)in-progressgabrieleg2026-06-30auth
luna99wiki (10-wiki)plannedgabrieleg2026-06-30wiki
luna99home (11-home)in-progressgabrieleg2026-06-30home
luna99fixed-tenancy (16-fixed-tenancy)donegabrieleg2026-06-30admin
luna99password-manager (13-password-manager)plannedgabrieleg2026-07-30TBD

mccarty (2 subprojects · 39 milestone)

Milestone

Scope#MilestoneTargetStato
master1Milestone 12026-08-31planned
master2Milestone 22026-08-31planned
master3Milestone 32026-08-31planned
backoffice1Setup server + bundle onboarding2026-05-25
backoffice2Codebase versionato su gitea (`mccarty/backoffice`)2h2026-05-29
backoffice3Reverse proxy + URL pubblico stabile4hTBD
backoffice4Iterazione UI/CRUD su feedback claudiac (4a–4f)2026-08-31
backoffice4aBackoffice multilingua IT/EN/ES (schema testi + UI tab nei form)6h2026-06-12
backoffice4bScheda prodotto: drop zone certificati + anteprima inline5h2026-06-19
backoffice4cGestione loghi (upload + flag max 3 visualizzati + ordinamento)4h2026-06-26
backoffice4dFlag visibilità garanzie Sì/No + flag firma aderente assicurato3h2026-06-26
backoffice4eUpload documentazione obbligatoria nella scheda prodotto3h2026-07-03
backoffice4fTool caricamento policy con ambiente di staging + promozione in prod8h2026-07-24
backoffice5Iterazione UI/CRUD post-meeting 2026-05-27 (5a–5g)2026-08-15
backoffice5aCampo QR code URL su scheda prodotto1h2026-05-31
backoffice5bCampo codice prodotto clikki (2 lettere) + retrofit storico1h2026-05-31
backoffice5cLibreria loghi compagnia (`comp_loghi`)8h2026-06-19
backoffice5dProdotto multi-compagnia (pivot `comp_prodotti_compagnie`)3h2026-06-26
backoffice5eVista log certificati generati (legge `comp_certificati_log`)2h2026-07-10
backoffice5fVista log email + template email testuali multilingua2h2026-07-17
backoffice5gFlag documentazione obbligatoria con data dinamica QForm2h2026-07-24
backoffice5hCampo titolo PDF (`prod_titolo_pdf`, solo IT) → metadato `/Title`1h2026-06-13
backoffice5iTemplate certificato editabili via web (DB+placeholder, WYSIWYG+sanitizer, cliente IT/EN/ES + compagnia IT)14h2026-07-31
backoffice6Hardening (rotazione password admin, secrets fuori da `backend.yml`)4hTBD
api1Skeleton webapp + unit + onboarding bundle2026-05-25
api2Endpoint `POST /certificato/master` + WeasyPrint demone + storage UUID8h2026-06-12
api3Layout dinamico 2 colonne + importi garanzia + hash + QR code4h2026-06-19
api4Endpoint `POST /certificato/compagnia` (multi-compagnia + template per compagnia)4h2026-06-26
api5Nomenclatura file standardizzata (`YYYYMMDD_num_cod2_Nome.pdf`)1h2026-06-26
api6Persistenza `comp_certificati_log` (storico richieste + payload)2h2026-07-03
api7Endpoint `POST /documentazione` con QForm date dinamica5h2026-07-17
api8Endpoint `POST /email` + SMTP register + `comp_email_log`3h2026-07-24
api9Gestione gruppi >40 passeggeri (layout su 2 fogli)3h2026-07-31
api10Certificati specifici per compagnia (medico-bagaglio, annullamento)4h2026-08-14
api11Hardening (rate limit `/file/<uuid>`, secrets fuori da yml)3h2026-08-21
api12Metadato `/Title` PDF da `prod_titolo_pdf` (M5h backoffice)1h2026-06-13
api13Render template **DB-backed** (corpo da `comp_cert_template`, telaio `.ep` in repo) + ri-sanitize4h2026-07-31
api14Data emissione **congelata su ristampa** (lookup `comp_certificati_log`)1h2026-06-20
api15Storage: sync NAS ~10min + purge locale + layout per agenzia/annualità6h2026-08-21

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
mccartybackoffice (01-backoffice)in-progressclaudiac2026-08-31backoffice
mccartyapi (02-api)in-progressgabrieleg2026-08-31api

office (3 subprojects · 3 milestone)

Milestone

Scope#MilestoneTargetStato
master1HAOS onboardato nel bundle workflow2026-06-30done (2026-05-25)
master2Prima automazione/integration in prod2026-09-30planned
master3Estensione ad altre appliance2026-12-31planned

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
officepc-security (02-pc-security)in-progressgabrieleg2026-06-15nixos-config (per-PC, fuori da luna99 bundles)
officegestione-progetti (03-gestione-progetti)in-progressgabrieleg2026-07-30/srv/luna99-projects + /usr/local/bin/luna-daily-report
officeautomation (01-automation)in-progressstefanol2026-09-30office/automation

small-user (1 subprojects · 3 milestone)

Milestone

Scope#MilestoneTargetStato
master1Milestone 12026-05-30planned
master2Milestone 22026-05-30planned
master3Milestone 32026-05-30planned

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
small-userluccaunited (01-luccaunited)in-progressclaudiac2026-05-30luccaunited

undesktop (2 subprojects · 9 milestone)

Milestone

Scope#MilestoneTargetStato
master1Milestone 12026-08-31planned
master2Milestone 22026-08-31planned
master3Milestone 32026-08-31planned
frontend1Milestone 14hYYYY-MM-DD
frontend2Milestone 28hYYYY-MM-DD
frontend3Milestone 312hYYYY-MM-DD
backend1Milestone 14hYYYY-MM-DD
backend2Milestone 28hYYYY-MM-DD
backend3Milestone 312hYYYY-MM-DD

Subprojects

MasterSubprojectStatusAssigneeTargetCodebase
undesktopfrontend (01-frontend)plannedclaudiac2026-06-30undesktop-frontend
undesktopbackend (02-backend)plannedclaudiac2026-06-30undesktop-backend