# API di pubblicazione per la futura JARVIS Asset Windows

La futura applicazione Windows non dovrà aprire o navigare la cartella del server. Userà due operazioni autenticate:

1. `PUT /publisher/v1/stage/{releaseId}/{filename}` per caricare ogni file in un'area temporanea;
2. `POST /publisher/v1/publish/{releaseId}` per validare e rendere visibile la release.

L'header richiesto è `Authorization: Bearer <token>`. Il token è esterno alla cartella pubblica e non deve essere incluso nell'APK, nel manifesto, nei log o nei sorgenti.

## File accettati

- APK firmato;
- `release-notes.md`, riepilogo breve leggibile prima del download;
- `changes.json`, changelog completo strutturato;
- `manifest.json`, pubblicato per ultimo dal server;
- eventuali `.txt` e `.zip` collegati alla release.

Il server rifiuta nomi con percorsi, estensioni non previste, file troppo grandi, package Android diverso, hash APK incoerente, documenti mancanti o percorsi esterni. La cartella `/jarvis` è l'unica destinazione scrivibile tramite questa API.

## Flusso previsto della futura app Windows

L'app sceglie i file locali, legge versione e firma dell'APK, calcola SHA-256, genera i due documenti e il manifesto, esegue gli upload, mostra la convalida del server e chiama `publish` solo dopo conferma dell'utente. Un errore lascia la release in staging e non modifica quella visibile ai telefoni.
