Skip to content

Commit cd5d052

Browse files
feat(auth): add scoped access key suspension lifecycle
Signed-off-by: anastasia-nesterenko <anesterenko@nvidia.com>
1 parent 2c64fa6 commit cd5d052

38 files changed

Lines changed: 1500 additions & 24 deletions

File tree

docs/auth/authentication/using-authentication.mdx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,17 +134,21 @@ Pass `--expires-in <seconds>` to request a specific finite lifetime. Pass
134134
`--expires-in none` only for deployments where the administrator has explicitly
135135
allowed unlimited keys.
136136

137-
List keys or revoke one by its stable `jti`:
137+
List keys, temporarily suspend and restore one, or permanently revoke one by its stable `jti`:
138138

139139
```bash
140140
nemo auth access-keys list
141141
nemo auth access-keys list --page 2 --page-size 100
142+
nemo auth access-keys suspend ak_0123456789abcdef0123456789abcdef
143+
nemo auth access-keys unsuspend ak_0123456789abcdef0123456789abcdef
142144
nemo auth access-keys revoke ak_0123456789abcdef0123456789abcdef
143145
```
144146

145-
The list includes each key's `ACTIVE`, `EXPIRED`, or `REVOKED` status plus its
146-
description, issuer, audiences, creation time, and expiration time. Revocation takes
147-
effect on subsequent authenticated platform requests. Rotation is not implemented.
147+
The list includes each key's `ACTIVE`, `EXPIRED`, `SUSPENDED`, or `REVOKED` status
148+
plus its description, issuer, audiences, creation time, and expiration time. Suspension
149+
and revocation take effect on subsequent authenticated platform requests. A suspended
150+
key can be restored with `unsuspend`; a revoked key cannot be restored. Rotation is not
151+
implemented.
148152

149153
### Token Inspection
150154

docs/cli/reference.mdx

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,8 @@ nemo auth access-keys [OPTIONS] COMMAND [ARGS]...
281281
* `create`: Create a Scoped Access Key for the currently...
282282
* `list`: List Scoped Access Keys owned by the currently...
283283
* `revoke`: Revoke a Scoped Access Key owned by the currently...
284+
* `suspend`: Temporarily suspend a Scoped Access Key owned by the...
285+
* `unsuspend`: Restore a suspended Scoped Access Key owned by the...
284286

285287
##### nemo auth access-keys create
286288

@@ -339,6 +341,42 @@ nemo auth access-keys revoke [OPTIONS] JTI
339341

340342
* `--help, -h`: Show this message and exit.
341343

344+
##### nemo auth access-keys suspend
345+
346+
Temporarily suspend a Scoped Access Key owned by the current user.
347+
348+
**Usage:**
349+
350+
```shell
351+
nemo auth access-keys suspend [OPTIONS] JTI
352+
```
353+
354+
**Arguments:**
355+
356+
* `<JTI>`: Stable ID of the Scoped Access Key to suspend.
357+
358+
**Help:**
359+
360+
* `--help, -h`: Show this message and exit.
361+
362+
##### nemo auth access-keys unsuspend
363+
364+
Restore a suspended Scoped Access Key owned by the current user.
365+
366+
**Usage:**
367+
368+
```shell
369+
nemo auth access-keys unsuspend [OPTIONS] JTI
370+
```
371+
372+
**Arguments:**
373+
374+
* `<JTI>`: Stable ID of the Scoped Access Key to unsuspend.
375+
376+
**Help:**
377+
378+
* `--help, -h`: Show this message and exit.
379+
342380
### nemo services
343381

344382
Run platform services locally.

k8s/helm/helm-docs-template/nemo-helm-readme.md.gotmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
{{/* SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */}}
2-
{{/* SPDX-License-Identifier: Apache-2.0 */}}
1+
<!-- SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
2+
<!-- SPDX-License-Identifier: Apache-2.0 -->
33

44
# {{ template "chart.description" . }}
55

openapi/ga/individual/platform.openapi.yaml

Lines changed: 126 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)