detached a98b865

docs(upgrading): clarify ephemeral token revocation behavior

Ephemeral tokens (≤ MaxAccessTokenLifetime) skip store validation
and cannot be individually revoked until they expire.
commit
a98b865228b59c239fbf37911760b8b0f4044c17
author
brice · · 2026-03-22 06:54 UTC
committer
brice · · 2026-03-22 17:35 UTC
parent
a5ba9ca
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
1 file · +7 -5
M docs/upgrading.md +7 -5
@@ -2,11 +2,11 @@
22
33 This guide covers breaking changes and migration steps between major versions.
44
5-## v2.7.0 to v2.8.0
5+## v2.16.0 to v2.30.0
66
77 ### Breaking: Password Authentication Removed
88
9-Gordon v2.8.0 removes password-based authentication entirely. Only token-based authentication is supported.
9+Gordon v2.30.0 removes password-based authentication entirely. Only token-based authentication is supported.
1010
1111 **What changed:**
1212
@@ -41,7 +41,7 @@ Gordon v2.8.0 removes password-based authentication entirely. Only token-based a
4141
4242 3. **Update your config** to remove password fields:
4343
44- **Before (v2.7.0):**
44+ **Before (v2.16.0):**
4545 ```toml
4646 [auth]
4747 enabled = true
@@ -51,7 +51,7 @@ Gordon v2.8.0 removes password-based authentication entirely. Only token-based a
5151 token_secret = "gordon/auth/token_secret"
5252 ```
5353
54- **After (v2.8.0):**
54+ **After (v2.30.0):**
5555 ```toml
5656 [auth]
5757 enabled = true
@@ -77,7 +77,9 @@ Gordon v2.8.0 removes password-based authentication entirely. Only token-based a
7777
7878 ### New: Configurable Access Token TTL
7979
80-Ephemeral access tokens issued by `/auth/token` now have a configurable lifetime via `auth.access_token_ttl`. The default is `"15m"`. Tokens with a lifetime of 1 hour or less skip store validation for performance.
80+Ephemeral access tokens issued by `/auth/token` now have a configurable lifetime via `auth.access_token_ttl` (default `"15m"`, maximum `"1h"`).
81+
82+Tokens with a lifetime at or below `MaxAccessTokenLifetime` (1 hour) are treated as ephemeral: they skip token store validation for performance, which means they **cannot be individually revoked**. They become invalid only when they naturally expire. If you need tighter revocation control, use a shorter TTL.
8183
8284 ```toml
8385 [auth]
@@ -2,11 +2,11 @@
2 2
3 This guide covers breaking changes and migration steps between major versions.3 This guide covers breaking changes and migration steps between major versions.
4 4
5-## v2.7.0 to v2.8.05+## v2.16.0 to v2.30.0
6 6
7 ### Breaking: Password Authentication Removed7 ### Breaking: Password Authentication Removed
8 8
9-Gordon v2.8.0 removes password-based authentication entirely. Only token-based authentication is supported.9+Gordon v2.30.0 removes password-based authentication entirely. Only token-based authentication is supported.
10 10
11 **What changed:**11 **What changed:**
12 12
@@ -41,7 +41,7 @@ Gordon v2.8.0 removes password-based authentication entirely. Only token-based a
41 41
42 3. **Update your config** to remove password fields:42 3. **Update your config** to remove password fields:
43 43
44- **Before (v2.7.0):**44+ **Before (v2.16.0):**
45 ```toml45 ```toml
46 [auth]46 [auth]
47 enabled = true47 enabled = true
@@ -51,7 +51,7 @@ Gordon v2.8.0 removes password-based authentication entirely. Only token-based a
51 token_secret = "gordon/auth/token_secret"51 token_secret = "gordon/auth/token_secret"
52 ```52 ```
53 53
54- **After (v2.8.0):**54+ **After (v2.30.0):**
55 ```toml55 ```toml
56 [auth]56 [auth]
57 enabled = true57 enabled = true
@@ -77,7 +77,9 @@ Gordon v2.8.0 removes password-based authentication entirely. Only token-based a
77 77
78 ### New: Configurable Access Token TTL78 ### New: Configurable Access Token TTL
79 79
80-Ephemeral access tokens issued by `/auth/token` now have a configurable lifetime via `auth.access_token_ttl`. The default is `"15m"`. Tokens with a lifetime of 1 hour or less skip store validation for performance.80+Ephemeral access tokens issued by `/auth/token` now have a configurable lifetime via `auth.access_token_ttl` (default `"15m"`, maximum `"1h"`).
81+
82+Tokens with a lifetime at or below `MaxAccessTokenLifetime` (1 hour) are treated as ephemeral: they skip token store validation for performance, which means they **cannot be individually revoked**. They become invalid only when they naturally expire. If you need tighter revocation control, use a shorter TTL.
81 83
82 ```toml84 ```toml
83 [auth]85 [auth]

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close