bugfix
This commit is contained in:
@@ -108,7 +108,19 @@ is schrijven, en dat gebeurt allemaal vanaf deze ene machine.
|
||||
Er is geen apart host-token en geen apart registry-token:
|
||||
|
||||
- **`git push`** gaat over SSH (`gitea@…:Vibe/VibeFinance.git`), dus die gebruikt
|
||||
je SSH-sleutel en niet dit token.
|
||||
je SSH-sleutel en niet dit token. Werkt SSH even niet — bijvoorbeeld omdat de
|
||||
ssh-agent niet meedoet in een niet-interactieve shell, wat `Permission denied
|
||||
(publickey,password)` geeft — dan kun je *lezen* nu anoniem over https, omdat
|
||||
de organisatie public is:
|
||||
|
||||
```powershell
|
||||
git fetch https://vibehoogie.duckdns.org/Vibe/VibeFinance.git --prune --tags "+refs/heads/*:refs/remotes/origin/*"
|
||||
```
|
||||
|
||||
Die refspec werkt ook `origin/*` bij, dus daarna doen `git merge --ff-only
|
||||
origin/main` en `git log origin/main` het weer. Pushen blijft SSH; `release.ps1`
|
||||
leest daarvoor `core.sshCommand` uit, omdat op Windows alleen de OpenSSH van het
|
||||
systeem met de ssh-agent praat en Git's eigen `ssh` niet.
|
||||
- **De registry** heeft geen eigen variabele nodig: `release.ps1` en `dev.ps1`
|
||||
vallen bij een ontbrekende `REGISTRY_TOKEN` terug op `GITEA_TOKEN`. Zet alleen
|
||||
`REGISTRY_USER` erbij, zodat het script zelf kan inloggen als de credential
|
||||
@@ -143,21 +155,28 @@ backup — een eigen image als `latest` naar de registry pushen, en die host pul
|
||||
|
||||
| Status | Betekenis |
|
||||
|---|---|
|
||||
| 401 | Token ongeldig of verlopen. Op de registry: helemaal niet ingelogd. |
|
||||
| 403 | Het token mag de repo wél zien, maar mist de **scope** voor dit endpoint. Gitea noemt de vereiste scope in de response-body. |
|
||||
| 401 | Token ongeldig, verlopen of ingetrokken — Gitea herkent hem niet. Op de registry: helemaal niet ingelogd. |
|
||||
| 403 | Het token **bestaat en werkt**, maar mist de **scope** voor dit endpoint. Gitea noemt de vereiste scope in de response-body. |
|
||||
| 404 | Het token mag de repo niet zien. Gitea geeft geen 403, om niet te verklappen dat iets bestaat: verkeerd account, of geen toegang tot de organisatie. Nu de organisatie public is, wijst een 404 op een leesactie eerder op een verkeerde URL dan op rechten. |
|
||||
|
||||
Scopes van een bestaand token zijn in Gitea niet aan te passen. Bij een 403 maak
|
||||
je dus een nieuw token aan; bijwerken kan niet.
|
||||
|
||||
Nakijken wie een token is en wat hij ziet:
|
||||
**Leeft mijn token nog?** Juist dat onderscheid tussen 401 en 403 is de test.
|
||||
Vraag *niet* `/api/v1/user` op om te kijken "wie het token is": het
|
||||
werkstation-token heeft geen `read:user`, dus dat endpoint geeft altijd 403 en
|
||||
zegt niets over geldigheid. Kijk naar de statuscode, niet naar de inhoud:
|
||||
|
||||
```powershell
|
||||
$h = @{ Authorization = "token $env:GITEA_TOKEN" }
|
||||
(Invoke-RestMethod https://vibehoogie.duckdns.org/api/v1/user -Headers $h).login
|
||||
(Invoke-RestMethod https://vibehoogie.duckdns.org/api/v1/user/repos -Headers $h).full_name
|
||||
$u = "https://vibehoogie.duckdns.org/api/v1/user/repos"
|
||||
try { (Invoke-WebRequest $u -Headers @{ Authorization = "token $env:GITEA_TOKEN" } -UseBasicParsing).StatusCode }
|
||||
catch { $_.Exception.Response.StatusCode.value__ }
|
||||
```
|
||||
|
||||
`403` = het token leeft (alleen deze scope ontbreekt). `401` = ingetrokken of
|
||||
fout gekopieerd. Nagemeten op 2026-09-10: geen header `401`, een nep-token van 40
|
||||
nullen `401`, het werkstation-token `403`.
|
||||
|
||||
Vanuit de app-container op de host valt de body van een fout anders weg —
|
||||
busybox-`wget` gooit die bij een foutstatus weg, en Node zit in het image:
|
||||
|
||||
@@ -505,7 +524,43 @@ dat op het belletje in de topbalk en onder "Over VibeFinance".
|
||||
|
||||
Builds met een `-dev` suffix melden nooit (die lopen voor op de laatste release).
|
||||
Wil je de melding tijdens ontwikkeling toch testen: open de app met `?updatecheck`
|
||||
in de URL.
|
||||
in de URL. Let op dat `isNieuwer` alleen bij een écht hoger nummer aanslaat — bij
|
||||
`1.0.2-dev` naast release `1.0.1` blijft de kaart dus ook met `?updatecheck` leeg.
|
||||
Zet dan tijdelijk een lagere versie in de root `package.json`.
|
||||
|
||||
**Wat de melding toont**
|
||||
|
||||
Alleen de kop, de versieregel en een link:
|
||||
|
||||
```
|
||||
🔔 Nieuwe versie beschikbaar
|
||||
v1.0.1 is uitgebracht. Je gebruikt momenteel v1.0.0.
|
||||
Release bekijken →
|
||||
```
|
||||
|
||||
De release-notes staan er bewust **niet** in. `/api/update-check` stuurt ze wel
|
||||
mee als `notes`, maar dat is de ruwe Markdown uit de changelog; in een kaart van
|
||||
280px leverde dat zichtbare `### `-koppen en afgekapte regels op. Wie de details
|
||||
wil, volgt de link. Het veld blijft in de API zitten voor het geval je ze ooit
|
||||
ergens met meer ruimte wilt tonen — dan is Markdown renderen de volgende stap.
|
||||
|
||||
**De release-link hangt aan Gitea's `ROOT_URL`**
|
||||
|
||||
De `url` in het antwoord is de `html_url` van de release, en die stelt Gitea bij
|
||||
elk verzoek samen uit `ROOT_URL` in `app.ini` — hij wordt *niet* per release
|
||||
opgeslagen. Staat `ROOT_URL` op een intern adres, dan wijst "Release bekijken"
|
||||
naar iets dat buiten je netwerk niet bestaat, terwijl de melding zelf gewoon
|
||||
werkt (die leest alleen het versienummer).
|
||||
|
||||
Nakijken welke waarde Gitea daadwerkelijk gebruikt — de `issuer` is `ROOT_URL`:
|
||||
|
||||
```bash
|
||||
curl -s https://vibehoogie.duckdns.org/.well-known/openid-configuration | grep issuer
|
||||
```
|
||||
|
||||
`app.ini` wordt alleen bij het opstarten gelezen, dus na een wijziging moet Gitea
|
||||
herstarten. Omdat de URL wordt samengesteld en niet bewaard, zijn daarna álle
|
||||
releases in één keer goed — ook de oude. Een `PATCH` per release is niet nodig.
|
||||
|
||||
**Configuratie**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user