Introduzione
GPF Dashboard è una dashboard iOS indipendente per consultare e gestire servizi Cloudflare tramite API ufficiali documentate da Cloudflare.
Nota importante: l'app non è ancora pubblicata. Al momento non è disponibile una data prevista per la pubblicazione.
L'app non è affiliata, sponsorizzata o approvata da Cloudflare, Inc. Cloudflare è un marchio registrato di Cloudflare, Inc.
Requisiti
- iPhone con iOS 18.6 o successivo.
- Account Cloudflare.
- API Token Cloudflare con i permessi necessari ai moduli che si vogliono usare.
- Connessione internet attiva.
GPF Dashboard usa esclusivamente API Token Cloudflare con autenticazione:
Authorization: Bearer <API_TOKEN>
L'app non usa Global API Key.
Sicurezza delle credenziali
L'API Token viene salvato nel Keychain iOS.
L'app non salva token in:
- repository;
- file di configurazione;
UserDefaults;- log applicativi.
Il token può essere rimosso usando il logout dalle impostazioni dell'app.
Primo accesso
All'avvio l'app mostra una schermata di caricamento con icona GPF Dashboard, barra di avanzamento e percentuale da 0 a 100%. Terminato il caricamento, l'app mostra la sessione ripristinata oppure la schermata di configurazione.
- Creare un API Token da Cloudflare.
- Aprire GPF Dashboard.
- Inserire il token nella schermata di autenticazione.
- Confermare.
- L'app verifica il token tramite l'endpoint ufficiale Cloudflare:
GET /client/v4/user/tokens/verify
Se il token è valido, la sessione viene salvata nel Keychain e ripristinata automaticamente ai successivi avvii.
Dashboard
La dashboard è la schermata principale dell'app.
Mostra:
- stato del token;
- numero di account accessibili;
- numero di zone accessibili;
- riepilogo zone per stato;
- accessi rapidi ai moduli principali;
- eventuali errori restituiti dalle API Cloudflare.
Dalla dashboard si può aprire rapidamente:
- Account;
- Zone;
- DNS;
- Cache;
- Impostazioni zona;
- Analytics;
- Zero Trust;
- Pages;
- Impostazioni app.
Account
Il modulo Account mostra gli account Cloudflare accessibili dal token.
Funzioni disponibili:
- elenco account;
- dettaglio account;
- identificativo account;
- informazioni di base restituite dalle API Cloudflare;
- accesso diretto ai moduli collegati all'account, quando disponibili.
Endpoint usato:
GET /client/v4/accounts
Zone
Il modulo Zone mostra le zone Cloudflare accessibili dal token.
Funzioni disponibili:
- elenco zone;
- ricerca zone;
- dettaglio zona;
- stato zona;
- nameserver;
- piano;
- registrar attuale (best-effort, quando il token ha il permesso Registrar Domains Read) e registrar al momento dell'attivazione su Cloudflare;
- accesso diretto a DNS, Cache, Impostazioni zona e Analytics per la zona selezionata.
Il campo "Registrar al momento dell'attivazione su Cloudflare" proviene da
original_registrar nei dettagli zona: è un valore statico, fissato quando
il dominio è stato aggiunto a Cloudflare, e non si aggiorna se in seguito il
dominio viene trasferito su un altro registrar o su Cloudflare Registrar. Per
mostrare il registrar effettivamente in uso oggi, l'app interroga anche
l'API Registrar Domains: se il dominio risulta gestito da Cloudflare
Registrar, compare il campo "Registrar attuale" con il valore aggiornato; se
il dominio non è (o non è più) su Cloudflare Registrar, oppure il token non
ha il permesso necessario, il campo viene omesso senza generare un errore.
Endpoint usati:
GET /client/v4/zones
GET /client/v4/zones/{zone_id}
GET /client/v4/accounts/{account_id}/registrar/domains/{domain_name}
DNS
Il modulo DNS permette di consultare e gestire record DNS di una zona.
Funzioni disponibili:
- selezione zona;
- elenco record DNS;
- ricerca record;
- filtro per tipo record;
- dettaglio record;
- creazione record;
- modifica record;
- duplicazione record;
- eliminazione record con conferma esplicita.
Tipi record attualmente editabili:
AAAAACNAMETXTMXNSPTR
Campi gestiti:
- nome;
- contenuto;
- TTL;
- proxy Cloudflare per
A,AAAAeCNAME; - priorità per
MX; - commenti;
- tag.
Gli altri tipi record restano consultabili ma non modificabili finché non viene implementata in modo sicuro la relativa struttura dati ufficiale.
Endpoint usati:
GET /client/v4/zones/{zone_id}/dns_records
POST /client/v4/zones/{zone_id}/dns_records
PUT /client/v4/zones/{zone_id}/dns_records/{dns_record_id}
DELETE /client/v4/zones/{zone_id}/dns_records/{dns_record_id}
Cache
Il modulo Cache permette di svuotare la cache Cloudflare di una zona.
Funzioni disponibili:
- purge per URL;
- purge per hostname;
- purge per prefisso;
- purge per cache tag;
- purge totale con conferma esplicita.
Il purge totale è trattato come azione distruttiva e richiede una conferma specifica prima dell'esecuzione.
Endpoint usato:
POST /client/v4/zones/{zone_id}/purge_cache
Impostazioni zona
Il modulo Impostazioni zona consente di leggere e modificare alcune impostazioni Cloudflare della zona selezionata.
L'app mostra controlli di modifica solo quando Cloudflare restituisce
editable: true.
Impostazioni attualmente supportate:
sslalways_use_httpsbrotlicache_levelsecurity_leveldevelopment_mode
Endpoint usati:
GET /client/v4/zones/{zone_id}/settings/{setting_id}
PATCH /client/v4/zones/{zone_id}/settings/{setting_id}
Analytics
Il modulo Analytics usa l'endpoint GraphQL ufficiale Cloudflare.
Funzioni disponibili:
- selezione zona;
- traffico degli ultimi 7 giorni;
- visite;
- dati trasferiti;
- punti orari;
- visite per ora;
- gestione errori GraphQL e permessi mancanti.
Endpoint usato:
POST /client/v4/graphql
Query iniziale:
viewer.zones(...).httpRequestsAdaptiveGroups
Zero Trust
Il modulo Zero Trust è in parte read-only e in parte con scrittura protetta da conferma esplicita: oltre alla sezione Dispositivi (impostazioni client, Emergency Disconnect esterno, disconnessione globale WARP e i profili dispositivo WARP) e alla sezione Gateway (policy e liste), anche la sezione Access (applicazioni e policy) consente ora scritture protette da conferma esplicita.
Funzioni disponibili:
- selezione account;
- gestione completa delle Access Applications e delle relative policy (vedi sotto);
- elenco Cloudflare Tunnels;
- dettaglio tunnel con stato, tipo, remote config, metadata, client cloudflared e connessioni;
- regole ingress della configurazione remota per i tunnel supportati;
- gestione di policy e liste Gateway (DNS, Rete e HTTP), con creazione, modifica, riordino ed eliminazione;
- log Gateway con selezione del range di date (preset rapidi o range libero), con totali per livello e i domini, destinazioni e host più bloccati nel periodo scelto;
- gestione completa di route tunnel e reti virtuali (vedi sotto);
- date principali restituite dalle API.
Endpoint usati:
GET/POST /client/v4/accounts/{account_id}/access/apps
GET/PUT/DELETE /client/v4/accounts/{account_id}/access/apps/{app_id}
GET/POST /client/v4/accounts/{account_id}/access/apps/{app_id}/policies
GET/PUT/DELETE /client/v4/accounts/{account_id}/access/apps/{app_id}/policies/{policy_id}
GET /client/v4/accounts/{account_id}/access/groups
GET /client/v4/accounts/{account_id}/cfd_tunnel
GET /client/v4/accounts/{account_id}/cfd_tunnel/{tunnel_id}/configurations
GET /client/v4/accounts/{account_id}/cfd_tunnel/{tunnel_id}/connections
POST /client/v4/graphql
GET/PATCH/DELETE /client/v4/accounts/{account_id}/devices/settings
GET/POST /client/v4/accounts/{account_id}/devices/resilience/disconnect
GET /client/v4/accounts/{account_id}/devices/registrations/{registration_id}/override_codes
GET /client/v4/accounts/{account_id}/devices/registrations
GET /client/v4/accounts/{account_id}/devices/policies
GET/POST/PATCH /client/v4/accounts/{account_id}/devices/policy
GET/PATCH/DELETE /client/v4/accounts/{account_id}/devices/policy/{policy_id}
GET/PUT /client/v4/accounts/{account_id}/devices/policy/exclude
GET/PUT /client/v4/accounts/{account_id}/devices/policy/include
GET/PUT /client/v4/accounts/{account_id}/devices/policy/fallback_domains
GET/PUT /client/v4/accounts/{account_id}/devices/policy/{policy_id}/exclude
GET/PUT /client/v4/accounts/{account_id}/devices/policy/{policy_id}/include
GET/PUT /client/v4/accounts/{account_id}/devices/policy/{policy_id}/fallback_domains
GET/POST /client/v4/accounts/{account_id}/gateway/lists
PUT/DELETE /client/v4/accounts/{account_id}/gateway/lists/{list_id}
GET/POST /client/v4/accounts/{account_id}/gateway/rules
PUT/DELETE /client/v4/accounts/{account_id}/gateway/rules/{rule_id}
GET/POST /client/v4/accounts/{account_id}/teamnet/virtual_networks
GET/PATCH/DELETE /client/v4/accounts/{account_id}/teamnet/virtual_networks/{virtual_network_id}
GET/POST /client/v4/accounts/{account_id}/teamnet/routes
GET/PATCH/DELETE /client/v4/accounts/{account_id}/teamnet/routes/{route_id}
Il log Gateway usa l'API GraphQL Analytics ufficiale per interrogare, per
l'account selezionato e il range di date scelto (oggi, 7 giorni, 30 giorni o
un range libero), i blocchi su tre dataset:
gatewayResolverQueriesAdaptiveGroups (DNS), gatewayL4SessionsAdaptiveGroups
(Rete) e gatewayL7RequestsAdaptiveGroups (HTTP). Questa schermata è in sola
lettura: nessuna policy, lista o regola Gateway viene creata, modificata o
eliminata da qui.
Le sezioni "Policy Gateway" e "Liste Gateway" (raggiungibili da Gateway) espongono invece la gestione completa:
- le liste Gateway (tipo dominio, IP, URL o numero di serie) possono essere create, modificate (nome, descrizione, elementi) ed eliminate; il tipo non è modificabile dopo la creazione perché l'API Cloudflare non lo consente; aprendo una lista esistente l'app carica sempre gli elementi aggiornati direttamente da Cloudflare (l'elenco delle liste da solo non li include);
- il menu che permette di inserire in una policy il riferimento a una lista Gateway esistente mostra anche un'anteprima del contenuto della lista, utile per non doverne ricordare a memoria il contenuto;
- le policy Gateway (filtro DNS, HTTP o Rete, azione blocca/consenti/isola/ sovrascrivi/nessuna azione/SafeSearch/YouTube ristretto/pagina di blocco) possono essere create, modificate, riordinate per precedenza (trascinamento in modalità modifica) ed eliminate;
- l'espressione di traffico (sintassi Wirefilter di Cloudflare) è un campo di testo libero: l'app non ne valida la sintassi lato client, eventuali errori vengono restituiti dall'API al salvataggio; un menu dedicato permette di inserire un riferimento rapido a una lista Gateway esistente nell'espressione;
- i campi di pagina di blocco (attivazione e motivo) sono mostrati solo quando l'azione scelta è "Blocca";
- Cloudflare non espone un endpoint dedicato per il riordino delle policy: lo spostamento in trascinamento aggiorna il campo di precedenza di ciascuna regola spostata con una chiamata separata;
- ogni scrittura, anche non distruttiva, richiede conferma esplicita che nomina la lista o la policy interessata.
Le sezioni "Access Applications" e "Policy" dell'applicazione (raggiungibili da Zero Trust → Access) espongono la gestione completa:
- elenco delle Access Applications dell'account, con creazione, modifica ed eliminazione; le applicazioni create dall'app sono sempre di tipo self-hosted (dominio da proteggere), gli altri tipi (SaaS, infrastructure, ecc.) non sono gestibili da qui;
- per ciascuna applicazione: nome, dominio, durata sessione facoltativa, visibilità in App Launcher e redirect automatico verso l'identity provider, con conferma esplicita prima del salvataggio;
- da ogni applicazione si accede alle sue policy Access, con creazione, modifica, riordino per precedenza (trascinamento in modalità modifica) ed eliminazione;
- ogni policy ha una decisione (Consenti, Blocca, Non identity, Bypass), una durata sessione facoltativa e tre elenchi di regole — Include (almeno una obbligatoria), Exclude e Require — ciascuna regola scelta da un menu con tipo Email, Dominio email, Everyone, IP/CIDR, oppure un Gruppo Access esistente (elenco caricato in sola lettura dall'account); regole create altrove con un tipo non gestito da questo menu (ad esempio SAML, Okta, Azure AD, Google Workspace, service token, device posture, paese) vengono mostrate come riga "Regola non gestita" e preservate integralmente al salvataggio, senza essere alterate o perse;
- Cloudflare non espone un endpoint dedicato per il riordino delle policy Access: lo spostamento in trascinamento aggiorna la precedenza di ciascuna policy spostata con una chiamata separata che include sempre l'intero contenuto della policy (l'API Cloudflare sostituisce la policy per intero ad ogni salvataggio);
- ogni scrittura, anche non distruttiva, richiede conferma esplicita che nomina l'applicazione o la policy interessata.
Le sezioni "Route tunnel" e "Reti virtuali" (raggiungibili da Zero Trust → Networks) espongono la gestione completa:
- le reti virtuali possono essere create, modificate (nome, commento, rete predefinita dell'account) ed eliminate; la rete predefinita dell'account non può essere eliminata (l'azione è disabilitata nell'app, coerentemente con il rifiuto dell'API Cloudflare);
- le route tunnel collegano un intervallo IP privato (CIDR) a un tunnel esistente, con un commento facoltativo e, opzionalmente, una rete virtuale specifica (se non indicata, la route usa la rete predefinita dell'account); possono essere create, modificate ed eliminate;
- il tunnel e la rete virtuale si scelgono da un menu popolato in sola lettura rispettivamente dall'elenco Cloudflare Tunnels e dall'elenco reti virtuali dell'account;
- ogni scrittura, anche non distruttiva, richiede conferma esplicita che nomina la route o la rete virtuale interessata.
Le sezioni "Utenti" e "Gruppi" (raggiungibili da Zero Trust → Teams) sono in sola lettura:
- "Utenti" elenca gli utenti Zero Trust dell'account che hanno effettuato l'accesso tramite Access o Gateway, con nome/email, i seat Access e Gateway assegnati, il numero di dispositivi attivi e la data dell'ultimo accesso riuscito; il numero di dispositivi mostrato riflette le registrazioni WARP realmente attive per quell'utente (stesso elenco usato dalla sezione "Dispositivi"), non il contatore seat di Cloudflare, che può restare a zero anche con dispositivi effettivamente registrati; se il caricamento delle registrazioni non riesce, l'app mostra come fallback il valore grezzo restituito da Cloudflare;
- "Gruppi" elenca i gruppi Access dell'account (già usati altrove nell'app per popolare il selettore gruppi nelle regole delle policy Access);
- la gestione dei seat (assegnazione/rimozione) non è disponibile in questa sezione perché incide direttamente sulla fatturazione delle licenze Zero Trust dell'account: una scelta di sicurezza deliberata, non un limite tecnico temporaneo.
La sezione "Dispositivi" (raggiungibile da Zero Trust) espone:
- lettura e modifica delle impostazioni dispositivo account-wide (proxy Gateway, proxy UDP, installazione certificato root, IP virtuale Zero Trust,
disable_for_time), con conferma esplicita prima del salvataggio. Il campodisable_for_timecorrisponde alla voce "Allow admin override codes" di Devices management sulla dashboard Cloudflare (0 = sempre consentito, vuoto = mai consentito, un valore positivo = consentito per quel numero di secondi); - lettura e modifica della configurazione di External Emergency Disconnect (attivazione, URL, fingerprint, intervallo), con conferma esplicita prima del salvataggio;
- lettura e impostazione del Global WARP Override, che disconnette o riconnette tutti i dispositivi registrati sull'account, con una motivazione facoltativa registrata nel log di audit Cloudflare e una conferma esplicita prima dell'invio;
- ripristino delle impostazioni predefinite del dispositivo (equivalente a
DELETE, che Cloudflare documenta come disattivazione di tutto il proxying), con la conferma più severa del modulo; - consultazione in sola lettura dei codici di override amministratore per un dispositivo registrato; l'API ufficiale Cloudflare non espone generazione o revoca per questo endpoint;
- elenco in sola lettura dei dispositivi/registrazioni dell'account (nome del dispositivo, utente, tipo di registrazione, stato e ultimo accesso — l'API di Cloudflare per questo elenco non include sistema operativo, modello o produttore, quindi questi dati mostrati nella dashboard web non sono disponibili nell'app): toccando un dispositivo il suo ID viene selezionato e inserito nel campo di lookup dei codici di override sopra, mentre l'icona accanto all'ID lo copia direttamente negli appunti. Non esiste un'API per attivare/disattivare l'admin override per il singolo dispositivo: solo l'impostazione account-wide
disable_for_timesopra e un codice monouso che l'utente deve inserire direttamente sul proprio client WARP.
La sezione "Profili dispositivo WARP" (raggiungibile da Dispositivi) espone:
- elenco del profilo predefinito e dei profili personalizzati dell'account, ordinati per precedenza;
- apertura del profilo predefinito o di un profilo personalizzato per modificarne informazioni generali (nome, descrizione, espressione match, precedenza — non applicabili al profilo predefinito), stato attivo, comportamento del client WARP (blocco switch modalità, protezione da disinstallazione, consenso a cambio modalità/aggiornamenti/disconnessione, fallback automatico, esclusione IP ufficio, registrazione IP interfaccia in DNS, supporto boundary SCCM VPN) e traffico (protocollo tunnel, service mode e porta, auto connect, captive portal, LAN allow minutes/subnet size, support URL), con conferma esplicita prima del salvataggio;
- creazione di un nuovo profilo personalizzato (nome, precedenza ed espressione match obbligatori) ed eliminazione di un profilo personalizzato esistente, con conferma esplicita che nomina il profilo interessato;
- gestione delle liste Split Tunnel Escludi/Includi di ciascun profilo (aggiunta e rimozione di CIDR o domini, con descrizione facoltativa); il salvataggio sostituisce integralmente la lista sul server, quindi l'app la ricarica sempre prima di mostrarla all'utente;
- gestione della lista Local Domain Fallback di ciascun profilo (suffisso di dominio, descrizione facoltativa, DNS server facoltativi), con lo stesso comportamento di sostituzione integrale al salvataggio.
L'app espone anche una Shortcut nativa per l'app Comandi Rapidi e Siri, "Imposta modalità profilo WARP": permette di scegliere account, profilo dispositivo (predefinito o personalizzato) e modalità (Gateway con WARP, Solo DNS, Solo proxy, Solo tunnel WARP, Solo posture), e cambia la modalità di quel profilo senza aprire l'app. Il cambiamento vale per tutti i dispositivi assegnati al profilo e viene applicato dal client WARP al successivo check-in, non istantaneamente. Per usarla è necessario aver già collegato un token API a GPFDashboard almeno una volta (la Shortcut legge il token salvato nel Portachiavi).
Le funzionalità Zero Trust più avanzate, come modifica tunnel, applicazioni Access di tipo diverso da self-hosted, Service Tokens, certificati mTLS, DLP, gestione dei seat/licenze e Risk Scoring, restano previste come moduli separati o volutamente fuori scope.
Pages
Il modulo Pages è attualmente read-only.
Funzioni disponibili:
- selezione account;
- elenco progetti Cloudflare Pages;
- ricerca progetto;
- dettaglio progetto;
- sottodominio;
- branch di produzione;
- configurazione build disponibile;
- domini personalizzati;
- deployment recenti;
- stato deployment;
- URL deployment;
- metadati Git disponibili;
- date principali restituite dalle API.
Endpoint usati:
GET /client/v4/accounts/{account_id}/pages/projects
GET /client/v4/accounts/{account_id}/pages/projects/{project_name}/deployments
GET /client/v4/accounts/{account_id}/pages/projects/{project_name}/domains
Creazione progetti, rollback deployment, gestione domini e altre modifiche Pages sono previste come moduli separati con conferme esplicite.
Impostazioni app
La sezione Impostazioni mostra informazioni applicative e azioni di sessione.
Funzioni disponibili:
- selezione opzionale della zona principale;
- nome app;
- versione;
- build;
- disclaimer indipendenza da Cloudflare;
- logout;
- rimozione token dal Keychain.
La zona principale è un filtro locale dell'interfaccia: limita i moduli Zone, DNS, Cache, Analytics e Dashboard alla zona scelta. Non sostituisce i permessi reali del token Cloudflare.
Permessi API Token consigliati
I permessi necessari dipendono dai moduli usati.
Per sola consultazione:
- Account Read, se disponibile nella configurazione token;
- Zone Read;
- DNS Read;
- Zone Settings Read;
- Analytics Read o permessi equivalenti richiesti dai dataset;
- Cloudflare Tunnel read permission;
- Account Analytics Read, per il riepilogo blocchi Gateway;
- Zero Trust / Device registrations read permission, per i codici di override;
- Registrar Domains Read (opzionale), per mostrare il registrar attuale nel dettaglio zona quando il dominio è gestito da Cloudflare Registrar;
- Access: Audit Logs Read, per la sezione "Utenti" (Teams);
- Pages Read.
Per operazioni di modifica:
- DNS Write per creare, modificare o cancellare record DNS;
- Cache Purge per svuotare cache;
- Zone Settings Write per modificare impostazioni zona;
- Zero Trust / Device settings read e write permission, per la sezione Dispositivi (impostazioni client, Emergency Disconnect esterno e disconnessione globale WARP).
- Zero Trust / Device Posture Rules read e write permission (o permesso equivalente per i profili dispositivo), per la schermata "Profili dispositivo WARP" (creazione, modifica, eliminazione profili, split tunnel e fallback DNS).
- Zero Trust / Gateway read e write permission, per le sezioni "Policy Gateway" e "Liste Gateway" (creazione, modifica, riordino, eliminazione).
- Zero Trust / Access application read e write permission, per la sezione "Access Applications" (creazione, modifica, eliminazione).
- Zero Trust / Access policy read e write permission, per la gestione delle policy di ciascuna applicazione (creazione, modifica, riordino, eliminazione).
- Zero Trust / Access group read permission, per popolare il selettore gruppi nell'editor delle regole policy.
- Zero Trust / Networks read e write permission, per le sezioni "Route tunnel" e "Reti virtuali" (creazione, modifica, eliminazione).
Il principio consigliato è concedere al token solo i permessi realmente necessari.
Limiti attuali
- L'app non gestisce Global API Key.
- Alcuni tipi DNS strutturati sono read-only.
- Zero Trust ha ora scrittura protetta da conferma esplicita nelle sezioni Dispositivi (impostazioni client, Emergency Disconnect esterno, disconnessione globale WARP e profili dispositivo WARP con split tunnel e fallback DNS), Gateway (policy e liste), Access (applicazioni e policy) e Networks (route tunnel e reti virtuali); le altre funzionalità Zero Trust restano in sola lettura o pianificate.
- Pages è attualmente in sola lettura.
- I moduli Workers, R2, D1, KV, Queues, WAF, Rulesets, SSL/TLS avanzato, audit log e notifiche sono pianificati ma non ancora implementati.
- La disponibilità delle funzioni può dipendere dal piano Cloudflare e dai permessi del token.
- La zona principale configurata nelle Impostazioni è solo un filtro UI; per sicurezza reale è necessario limitare lo scope del token Cloudflare.
Manutenzione del manuale
Ogni nuova funzionalità deve aggiornare il registro API, il piano moduli e questo manuale con istruzioni utente, limiti e permessi necessari.