docs: add auto-update architecture README
This commit is contained in:
parent
e4aa9da7f8
commit
8531fbe2c2
97
README.md
97
README.md
@ -1,3 +1,96 @@
|
|||||||
# updates
|
# apps/updates — Auto-update manifests
|
||||||
|
|
||||||
|
Este repositório serve os manifestos `latest.json` para o auto-update Tauri das aplicações RT Medical.
|
||||||
|
|
||||||
|
## Como funciona
|
||||||
|
|
||||||
|
O Tauri verifica atualizações consultando uma URL fixa ao iniciar o app. Essa URL aponta para o `latest.json` deste repo. Se a versão no manifesto for maior que a instalada, o app baixa e instala silenciosamente (estilo VS Code).
|
||||||
|
|
||||||
|
```
|
||||||
|
App inicia
|
||||||
|
└─► GET https://pkg.rtmedical.ai/apps/updates/raw/branch/main/{app}/latest.json
|
||||||
|
└─► versão nova? → baixa binário do Generic Package Registry → instala
|
||||||
|
```
|
||||||
|
|
||||||
|
## Estrutura
|
||||||
|
|
||||||
|
```
|
||||||
|
updates/
|
||||||
|
├── autoseg-desktop/
|
||||||
|
│ └── latest.json ← consultado pelo AutoSeg Desktop (Tauri)
|
||||||
|
└── voxelview/
|
||||||
|
└── latest.json ← consultado pelo VoxelView (Tauri)
|
||||||
|
```
|
||||||
|
|
||||||
|
## URL do endpoint (tauri.conf.json)
|
||||||
|
|
||||||
|
```json
|
||||||
|
"plugins": {
|
||||||
|
"updater": {
|
||||||
|
"endpoints": [
|
||||||
|
"https://pkg.rtmedical.ai/apps/updates/raw/branch/main/autoseg-desktop/latest.json"
|
||||||
|
],
|
||||||
|
"pubkey": "<Ed25519 public key>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Formato do latest.json
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"version": "1.2.3",
|
||||||
|
"notes": "Descrição do que mudou nesta versão.",
|
||||||
|
"pub_date": "2026-06-10T00:00:00Z",
|
||||||
|
"platforms": {
|
||||||
|
"windows-x86_64": {
|
||||||
|
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_x64.msi.zip",
|
||||||
|
"signature": "<Ed25519 sig>"
|
||||||
|
},
|
||||||
|
"linux-x86_64": {
|
||||||
|
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_amd64.AppImage.tar.gz",
|
||||||
|
"signature": "<Ed25519 sig>"
|
||||||
|
},
|
||||||
|
"darwin-aarch64": {
|
||||||
|
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_aarch64.dmg.tar.gz",
|
||||||
|
"signature": "<Ed25519 sig>"
|
||||||
|
},
|
||||||
|
"darwin-x86_64": {
|
||||||
|
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_x86_64.dmg.tar.gz",
|
||||||
|
"signature": "<Ed25519 sig>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Como o CI atualiza este arquivo
|
||||||
|
|
||||||
|
```bash
|
||||||
|
SHA=$(curl -s https://pkg.rtmedical.ai/api/v1/repos/apps/updates/contents/{app}/latest.json \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" | jq -r .sha)
|
||||||
|
|
||||||
|
curl -X PUT https://pkg.rtmedical.ai/api/v1/repos/apps/updates/contents/{app}/latest.json \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"message\": \"release: v1.2.3\", \"content\": \"$(base64 -w0 latest.json)\", \"sha\": \"$SHA\"}"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Binários (Generic Package Registry)
|
||||||
|
|
||||||
|
Os binários ficam em `https://pkg.rtmedical.ai/apps/-/packages/generic/{app}/{version}/`
|
||||||
|
|
||||||
|
Upload via CI:
|
||||||
|
```bash
|
||||||
|
curl -X PUT https://pkg.rtmedical.ai/api/packages/apps/generic/{app}/{version}/{file} \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
--data-binary @arquivo
|
||||||
|
```
|
||||||
|
|
||||||
|
## Adicionando um novo app Tauri
|
||||||
|
|
||||||
|
1. Criar pasta `{novo-app}/` com `latest.json` placeholder
|
||||||
|
2. Configurar endpoint em `tauri.conf.json`
|
||||||
|
3. Gerar Ed25519: `cargo tauri signer generate`
|
||||||
|
4. Adicionar secrets no GitHub: `TAURI_SIGNING_PRIVATE_KEY`, `GITEA_TOKEN`
|
||||||
|
5. Adicionar Formula em `apps/homebrew-tap` (macOS)
|
||||||
|
|
||||||
Auto-update manifests (latest.json) for RT Medical Tauri applications
|
|
||||||
Loading…
x
Reference in New Issue
Block a user