Scarica un'esportazione dei dati utente

GET /v1/jobs/user-exports/{job_id}/download · autorizzazione users:export

Restituisce un link monouso al pacchetto di una esportazione dei dati utente completata. Ogni chiamata scrive un record user_export.downloaded nel log di audit della gestione prima che il link venga emesso.

Richiesta

Parametro In Obbligatorio Descrizione
job_id path sì ID del job, con prefisso job_.

Un job creato con include_ip: true richiede anche audit-events:read_ip sulla credenziale che effettua il download.

Risposta

302 Found con corpo vuoto. Location è un link relativo sullo stesso host, /downloads/user-exports/{environment_id}/{job_id}/{token}. La risposta contiene Cache-Control: no-store e Referrer-Policy: no-referrer.

Seguendo il link con GET si ottiene 200 OK con Content-Type: application/zip, Content-Length e Content-Disposition: attachment; filename="user-export-job_….zip". HEAD viene rifiutato con 405 così che le anteprime dei link non consumino il token. Confronta il SHA-256 del file con file.sha256 del job. Se la connessione termina prima che siano arrivati Content-Length byte, il pacchetto è incompleto; eliminalo e richiedi un nuovo link. Un link non valido, già usato o scaduto restituisce 404 not_found.

Errori

Ogni errore è un corpo application/problem+json con un code stabile.

HTTP code Quando
401 unauthenticated La chiave API è mancante, non valida o revocata.
403 insufficient_permissions La chiave non ha users:export, oppure il job è stato creato con include_ip e la chiave non ha audit-events:read_ip (required_permissions elenca entrambe).
404 not_found Il job non esiste, appartiene a un altro ambiente, oppure l'ID non è valido. Sul link: il token non è valido, è già stato usato o è scaduto.
409 conflict Il job non è ancora completato, oppure il suo file è scaduto.
429 rate_limited È stato superato il limite di richieste; rispetta Retry-After. Il link stesso consente 10 richieste al minuto per indirizzo IP.
503 service_unavailable Una dipendenza è temporaneamente non disponibile; riprova più tardi.

Esempio

curl -L -o user-export.zip \
  https://api.eu.keenauth.com/v1/jobs/user-exports/job_01j9xk3m7q8r2s4t6v8w0y2z4e/download \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

La CLI segue il link da sola, scrive il pacchetto in un file (mai sull'output standard), rifiuta di sovrascrivere un file esistente e stampa dimensione e SHA-256 di ciò che ha scritto:

keenauth jobs user-exports download job_01j9xk3m7q8r2s4t6v8w0y2z4e --file user-export.zip

Dati personali

Questo endpoint contiene dati personali: profilo dell'utente finale. Dati personali nelle API di KeenAuth descrive cosa viene memorizzato, per quanto tempo viene conservato e come viene cancellato. Non inviare in nessun campo categorie particolari di dati personali (salute, dati biometrici, religione, opinioni politiche, orientamento sessuale).