Render token scan as compact token table

This commit is contained in:
mpabi
2026-04-26 20:49:35 +02:00
parent a9d0d0117a
commit 2885d3a4fa
4 changed files with 399 additions and 226 deletions
+27 -28
View File
@@ -88,49 +88,48 @@ Dzialanie:
- laczy oba zrodla po endpoincie serwera
- zapisuje znalezione tokeny do `tokens.json`
- zapisuje je per endpoint serwera
- wypisuje domyslnie tylko waska tabele `items`
- z `--verbose` dopisuje diagnostyczne sekcje `context` oraz `scan`
- wypisuje tabele `tokens`
Tabela `items` porownuje dwa zrodla dla tego samego endpointu. Ten sam `item`
moze miec dwa wiersze:
Tabela `tokens` pokazuje jeden logiczny wiersz na token. Remote i `tokens.json`
sa laczone po endpoincie, userze i wartosci tokena.
- `source=repo` - stan remote URL-i w repo
- `source=tokens.json` - stan lokalnego store tokenow
Znacznik w `token_ref`:
Dzieki temu widac, dla ktorego endpointu token jest w remote, a dla ktorego
jest tylko w `tokens.json`.
- `*` - token jest w remote i `tokens.json`, uprawnienia zostaly wczytane
- `R` - token jest tylko w remote
- `S` - token jest tylko w `tokens.json`
- `!` - blad wczytania uprawnien dla sparowanego tokena
Kolumny w tabeli `items`:
Kolumny w tabeli `tokens`:
- `item` - numer porownywanego endpointu
- `source` - `repo` albo `tokens.json`
- `id` - identyfikator miejsca tokena: remote `r1` dla repo albo token `t1` dla `tokens.json`
- `item` - numer wiersza tokena
- `server` - typ serwera, na przyklad `gitea`
- `scheme` - schemat URL, na przyklad `http`
- `host` - host endpointu, na przyklad `77.90.8.171`
- `port` - port endpointu, na przyklad `3001`
- `credential` - typ wpisu: `auth`, `plain`, `store` albo `missing`
- `repo_user` - login odczytany z remote URL-i repo
- `store_user` - login odczytany z `tokens.json`
- `token` - `yes` albo `no`, czyli czy dane zrodlo ma token dla endpointu
- `sync` - `*` przy zrodle prawdy albo `!` przy konflikcie
- `org` - organizacja z remote URL
- `repo` - repo z remote URL
- `user` - login wlasciciela tokena
- `remote` - nazwa remota, na przyklad `r1`
- `token_ref` - nazwa tokena z markerem po prawej stronie
- `token` - zamaskowana wartosc tokena
- `scope` - maska scope tokena `awrop`
- `org` - maska praw w organizacji `oawrc`
- `repo` - maska praw w repo `oawr`
Tabela nie wypisuje sekretu tokena. Jezeli token jest w remote, `id` pokazuje
nazwe remota, na przyklad `r1`. Jezeli token jest w `tokens.json`, `id`
pokazuje nazwe tokenu, na przyklad `t1`.
Maski uprawnien:
Zasada znacznika `sync`:
- `+` - flaga wlaczona
- `-` - flaga wylaczona
- `?` - nie wczytano, na przyklad dla `R` albo `S`
- `!` - blad wczytania
- `in_sync`, `store_only`, `store_ahead` - `*` przy `tokens.json`
- `repo_only`, `repo_ahead` - `*` przy `repo`
- `diverged` - `!`, bo nie ma jednoznacznego zrodla prawdy
Tabela nie wypisuje sekretu tokena wprost. Kolumna `token` pokazuje skrot, na
przyklad `e59cc...13be`.
Przyklad:
```bash
./rvctl tokens scan
./rvctl tokens scan --repo ~/dev/workspace/rv/series/inf/03
./rvctl tokens scan --verbose
```
### `tokens read`
@@ -170,7 +169,7 @@ Wynik ma ten sam model porownania co `tokens scan`, ale nie zapisuje zmian:
- liczbe endpointow w store
- laczna unie endpointow
- statusy zgodnosci, na przyklad `in_sync`, `store_ahead`, `repo_ahead`
- tabele `items`, w ktorej repo i `tokens.json` sa osobnymi wierszami tego samego itemu
- tabele `tokens`
Przyklad: