Skip to content

Commit e834361

Browse files
Refactor of auth/device/token API (#183)
* Refactor of auth/device/token API * Point go-sdk to main version
1 parent ba5787b commit e834361

File tree

4 files changed

+37
-14
lines changed

4 files changed

+37
-14
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ require (
1717
github.com/nsf/jsondiff v0.0.0-20210926074059-1e845ec5d249
1818
github.com/oklog/run v1.1.0
1919
github.com/panta/machineid v1.0.2
20-
github.com/signadot/go-sdk v0.3.8-0.20250502141929-71adbfb62bd0
20+
github.com/signadot/go-sdk v0.3.8-0.20250512165812-53eb89975b2a
2121
github.com/signadot/libconnect v0.1.1-0.20250505143054-fbbea25d0081
2222
github.com/spf13/cobra v1.8.1
2323
github.com/spf13/viper v1.11.0
@@ -62,7 +62,7 @@ require (
6262
github.com/x448/float16 v0.8.4 // indirect
6363
github.com/xanzy/ssh-agent v0.3.3 // indirect
6464
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
65-
golang.org/x/sync v0.13.0 // indirect
65+
golang.org/x/sync v0.14.0 // indirect
6666
google.golang.org/genproto/googleapis/rpc v0.0.0-20250414145226-207652e42e2e // indirect
6767
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
6868
gopkg.in/warnings.v0 v0.1.2 // indirect

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,8 +331,8 @@ github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7
331331
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
332332
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
333333
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
334-
github.com/signadot/go-sdk v0.3.8-0.20250502141929-71adbfb62bd0 h1:ujylkC2g7u05OYm91oa+ovPK8nmjQq7PO39PNexNP3o=
335-
github.com/signadot/go-sdk v0.3.8-0.20250502141929-71adbfb62bd0/go.mod h1:pnXR9BhGedBWjtAZGwGGY94sMgh6VuAbP/4vq4Qw1Fg=
334+
github.com/signadot/go-sdk v0.3.8-0.20250512165812-53eb89975b2a h1:bJqx8yL+vgJciabu6x2uU9yVtosGtCTzztiH9i4hTo8=
335+
github.com/signadot/go-sdk v0.3.8-0.20250512165812-53eb89975b2a/go.mod h1:mK44llfPHwm02Fz3vFKPzqgP/zQftUgndGayY4WIV5w=
336336
github.com/signadot/libconnect v0.1.1-0.20250505143054-fbbea25d0081 h1:sGiEMUNzm4ZsjVtBJQGkTsnVYJSTN/VW0V5oVAMhmxY=
337337
github.com/signadot/libconnect v0.1.1-0.20250505143054-fbbea25d0081/go.mod h1:MWfhryOARFnhDnmYGcTmmu+kHJbE6z0dDgKQpxOKVLQ=
338338
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
@@ -504,8 +504,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
504504
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
505505
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
506506
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
507-
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
508-
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
507+
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
508+
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
509509
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
510510
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
511511
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

internal/command/auth/login.go

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,11 @@ func apiKeyLogin(cfg *config.AuthLogin, out io.Writer) error {
5757
defer spin.Stop()
5858

5959
// resolve the org from the api key
60-
res, err := cfg.Client.Orgs.GetOrgName(&orgs.GetOrgNameParams{}, nil)
60+
org, err := resolveOrg(cfg)
6161
if err != nil {
6262
spin.StopFail()
6363
return err
6464
}
65-
orgInfo := res.Payload
66-
if len(orgInfo.Orgs) == 0 {
67-
spin.StopFail()
68-
return errors.New("could not resolve org from API key")
69-
}
70-
org := orgInfo.Orgs[0]
7165

7266
// store the auth info
7367
err = auth.StoreAuthInKeyring(&auth.Auth{
@@ -99,11 +93,22 @@ func bearerTokenLogin(cfg *config.AuthLogin, out io.Writer) error {
9993
return err
10094
}
10195

96+
// init the API client with the provided bearer token
97+
if err := cfg.InitAPIConfigWithBearerToken(token.AccessToken); err != nil {
98+
return err
99+
}
100+
101+
// resolve the org from the bearer token
102+
org, err := resolveOrg(cfg)
103+
if err != nil {
104+
return err
105+
}
106+
102107
// store the auth info
103108
expiresAt := time.Now().Add(time.Duration(token.ExpiresIn) * time.Second)
104109
err = auth.StoreAuthInKeyring(&auth.Auth{
105110
BearerToken: token.AccessToken,
106-
OrgName: token.OrgName,
111+
OrgName: org.Name,
107112
ExpiresAt: &expiresAt,
108113
})
109114
if err != nil {
@@ -153,3 +158,15 @@ func waitForUserAuth(cfg *config.AuthLogin, out io.Writer,
153158
}
154159
}
155160
}
161+
162+
func resolveOrg(cfg *config.AuthLogin) (*models.OrgsOrg, error) {
163+
res, err := cfg.Client.Orgs.GetOrgName(&orgs.GetOrgNameParams{}, nil)
164+
if err != nil {
165+
return nil, err
166+
}
167+
orgInfo := res.Payload
168+
if len(orgInfo.Orgs) == 0 {
169+
return nil, errors.New("could not resolve orgs")
170+
}
171+
return orgInfo.Orgs[0], nil
172+
}

internal/config/api.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,12 @@ func (a *API) InitAPIConfigWithApiKey(apiKey string) error {
116116
return a.InitAPITransport()
117117
}
118118

119+
func (a *API) InitAPIConfigWithBearerToken(bearerToken string) error {
120+
a.BearerToken = bearerToken
121+
a.basicInit()
122+
return a.InitAPITransport()
123+
}
124+
119125
func (a *API) GetBaseTransport() *transport.APIConfig {
120126
cfg := &transport.APIConfig{
121127
APIURL: a.APIURL,

0 commit comments

Comments
 (0)