2026-06-10 09:54:22 +00:00
# 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)
2026-06-10 09:53:25 +00:00