diff --git a/client/rpc/key.go b/client/rpc/key.go index 710d9fb06..a38c0962a 100644 --- a/client/rpc/key.go +++ b/client/rpc/key.go @@ -101,7 +101,7 @@ func (api *KeyAPI) List(ctx context.Context) ([]iface.Key, error) { var out struct { Keys []keyOutput } - if err := api.core().Request("key/list").Exec(ctx, &out); err != nil { + if err := api.core().Request("key/ls").Exec(ctx, &out); err != nil { return nil, err } diff --git a/core/commands/commands_test.go b/core/commands/commands_test.go index 49e359e24..d4bad9601 100644 --- a/core/commands/commands_test.go +++ b/core/commands/commands_test.go @@ -106,6 +106,7 @@ func TestCommands(t *testing.T) { "/key/gen", "/key/import", "/key/list", + "/key/ls", "/key/rename", "/key/rm", "/key/rotate", diff --git a/core/commands/keystore.go b/core/commands/keystore.go index 0e0eb7ca2..e2a5ba438 100644 --- a/core/commands/keystore.go +++ b/core/commands/keystore.go @@ -38,9 +38,9 @@ publish'. > ipfs key gen --type=rsa --size=2048 mykey > ipfs name publish --key=mykey QmSomeHash -'ipfs key list' lists the available keys. +'ipfs key ls' lists the available keys. - > ipfs key list + > ipfs key ls self mykey `, @@ -49,7 +49,7 @@ publish'. "gen": keyGenCmd, "export": keyExportCmd, "import": keyImportCmd, - "list": keyListCmd, + "list": keyListDeprecatedCmd, "ls": keyListCmd, "rename": keyRenameCmd, "rm": keyRmCmd, @@ -489,6 +489,17 @@ var keyListCmd = &cmds.Command{ Type: KeyOutputList{}, } +var keyListDeprecatedCmd = &cmds.Command{ + Status: cmds.Deprecated, + Helptext: cmds.HelpText{ + Tagline: "Deprecated: use 'ipfs key ls' instead.", + }, + Options: keyListCmd.Options, + Run: keyListCmd.Run, + Encoders: keyListCmd.Encoders, + Type: keyListCmd.Type, +} + const ( keyStoreForceOptionName = "force" ) diff --git a/docs/changelogs/v0.40.md b/docs/changelogs/v0.40.md index ca7fede84..c9d72bdad 100644 --- a/docs/changelogs/v0.40.md +++ b/docs/changelogs/v0.40.md @@ -17,7 +17,7 @@ This release was brought to you by the [Shipyard](https://ipshipyard.com/) team. - [New `ipfs diag datastore` commands](#new-ipfs-diag-datastore-commands) - [🚇 Improved `ipfs p2p` tunnels with foreground mode](#-improved-ipfs-p2p-tunnels-with-foreground-mode) - [Improved `ipfs dag stat` output](#improved-ipfs-dag-stat-output) - - [Skip bad keys when listing](#skip_bad_keys_when_listing) + - [🔑 `ipfs key` improvements](#-ipfs-key-improvements) - [Accelerated DHT Client and Provide Sweep now work together](#accelerated-dht-client-and-provide-sweep-now-work-together) - [⏱️ Configurable gateway request duration limit](#️-configurable-gateway-request-duration-limit) - [🔧 Recovery from corrupted MFS root](#-recovery-from-corrupted-mfs-root) @@ -110,9 +110,11 @@ Ratio: 1.500000 Use `--progress=true` to force progress even when piped, or `--progress=false` to disable it. -#### Skip bad keys when listing +#### 🔑 `ipfs key` improvements -Change the `ipfs key list` behavior to log an error and continue listing keys when a key cannot be read from the keystore or decoded. +`ipfs key ls` is now the canonical command for listing keys, matching `ipfs pin ls` and `ipfs files ls`. The old `ipfs key list` still works but is deprecated. + +Listing also became more resilient: bad keys are now skipped with an error log instead of failing the entire operation. #### Accelerated DHT Client and Provide Sweep now work together