From 26311e4fa6c9580c17a85166dee36f619625a035 Mon Sep 17 00:00:00 2001
From: "R.I.Pienaar" <rip@devco.net>
Date: Mon, 10 Mar 2025 12:19:56 +0100
Subject: [PATCH 1/2] Support signing keys for accounts

Signed-off-by: R.I.Pienaar <rip@devco.net>
---
 cli/auth_account_command.go | 17 +++++++++++++++++
 cli/consumer_command.go     |  2 +-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/cli/auth_account_command.go b/cli/auth_account_command.go
index 7ba324cf..77fee22f 100644
--- a/cli/auth_account_command.go
+++ b/cli/auth_account_command.go
@@ -101,6 +101,7 @@ type authAccountCommand struct {
 	prefix                  string
 	tags                    []string
 	rmTags                  []string
+	signingKey              string
 }
 
 func configureAuthAccountCommand(auth commandHost) {
@@ -135,6 +136,7 @@ func configureAuthAccountCommand(auth commandHost) {
 	add := acct.Command("add", "Adds a new Account").Alias("create").Alias("new").Action(c.addAction)
 	add.Arg("name", "Unique name for this Account").StringVar(&c.accountName)
 	add.Flag("operator", "Operator to add the account to").StringVar(&c.operatorName)
+	add.Flag("key", "The public key to use when signing the user").StringVar(&c.signingKey)
 	addCreateFlags(add, false)
 	add.Flag("defaults", "Accept default values without prompting").UnNegatableBoolVar(&c.defaults)
 
@@ -912,6 +914,21 @@ func (c *authAccountCommand) addAction(_ *fisk.ParseContext) error {
 		return err
 	}
 
+	if c.signingKey != "" {
+		sk, err := au.SelectSigningKey(acct, c.signingKey)
+		if err != nil {
+			return err
+		}
+		c.signingKey = sk.Key()
+	}
+
+	if c.signingKey != "" {
+		err = acct.SetIssuer(c.signingKey)
+		if err != nil {
+			return err
+		}
+	}
+
 	err = au.UpdateTags(acct.Tags(), c.tags, c.rmTags)
 	if err != nil {
 		return err
diff --git a/cli/consumer_command.go b/cli/consumer_command.go
index d9fa76a3..7ca5095b 100644
--- a/cli/consumer_command.go
+++ b/cli/consumer_command.go
@@ -261,7 +261,7 @@ func configureConsumerCommand(app commandHost) {
 	consNext.Flag("wait", "Wait up to this period to acknowledge messages").DurationVar(&c.ackWait)
 	consNext.Flag("count", "Number of messages to try to fetch from the pull consumer").Default("1").IntVar(&c.pullCount)
 
-	consSub := cons.Command("sub", "Retrieves messages from Consumers").Action(c.subAction)
+	consSub := cons.Command("sub", "Retrieves messages from Consumers").Action(c.subAction).Hidden()
 	consSub.Arg("stream", "Stream name").StringVar(&c.stream)
 	consSub.Arg("consumer", "Consumer name").StringVar(&c.consumer)
 	consSub.Flag("ack", "Acknowledge received message").Default("true").BoolVar(&c.ack)

From 46cde83fa4455abb52dcaba7c9c495421416862b Mon Sep 17 00:00:00 2001
From: "R.I.Pienaar" <rip@devco.net>
Date: Mon, 10 Mar 2025 12:25:59 +0100
Subject: [PATCH 2/2] Update jwt auth builder dependency

Signed-off-by: R.I.Pienaar <rip@devco.net>
---
 go.mod | 2 +-
 go.sum | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/go.mod b/go.mod
index 31f8d62b..5a1e92c9 100644
--- a/go.mod
+++ b/go.mod
@@ -26,7 +26,7 @@ require (
 	github.com/nats-io/nuid v1.0.1
 	github.com/prometheus/client_golang v1.21.1
 	github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
-	github.com/synadia-io/jwt-auth-builder.go v0.0.6
+	github.com/synadia-io/jwt-auth-builder.go v0.0.7-0.20250307212657-0e3f1ee00864
 	github.com/tylertreat/hdrhistogram-writer v0.0.0-20210816161836-2e440612a39f
 	golang.org/x/crypto v0.36.0
 	golang.org/x/term v0.30.0
diff --git a/go.sum b/go.sum
index 37ca7849..3ad0bb39 100644
--- a/go.sum
+++ b/go.sum
@@ -154,6 +154,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
 github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 github.com/synadia-io/jwt-auth-builder.go v0.0.6 h1:F3bTGWlKzWHwRqtTt35fRmhrxXLgkI8qz8QvvzxKSko=
 github.com/synadia-io/jwt-auth-builder.go v0.0.6/go.mod h1:8WYR7+nLQcDMBpocuPgdFJ5/2UOr+HPll3qv+KNdGvs=
+github.com/synadia-io/jwt-auth-builder.go v0.0.7-0.20250307212657-0e3f1ee00864 h1:itO+DjIffRn+nN3jHxHNcCiJIsL1BMZF7p3wYeTN7xs=
+github.com/synadia-io/jwt-auth-builder.go v0.0.7-0.20250307212657-0e3f1ee00864/go.mod h1:8WYR7+nLQcDMBpocuPgdFJ5/2UOr+HPll3qv+KNdGvs=
 github.com/tylertreat/hdrhistogram-writer v0.0.0-20210816161836-2e440612a39f h1:SGznmvCovewbaSgBsHgdThtWsLj5aCLX/3ZXMLd1UD0=
 github.com/tylertreat/hdrhistogram-writer v0.0.0-20210816161836-2e440612a39f/go.mod h1:IY84XkhrEJTdHYLNy/zObs8mXuUAp9I65VyarbPSCCY=
 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=