Skip to content
This repository was archived by the owner on Mar 24, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions cmd/rig/cmd/auth/get.go
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
package auth

import (
"context"
"time"

"github.com/bufbuild/connect-go"
"github.com/jedib0t/go-pretty/v6/table"
"github.com/rigdev/rig-go-api/api/v1/authentication"
"github.com/rigdev/rig-go-sdk"
"github.com/rigdev/rig/cmd/common"
"github.com/rigdev/rig/cmd/rig/cmd/cmd_config"
"github.com/spf13/cobra"
"go.uber.org/zap"
)

func AuthGet(ctx context.Context, cmd *cobra.Command, args []string, nc rig.Client, cfg *cmd_config.Config, logger *zap.Logger) error {
res, err := nc.Authentication().Get(ctx, &connect.Request[authentication.GetRequest]{
func (c Cmd) get(cmd *cobra.Command, args []string) error {
ctx := c.Ctx
res, err := c.Rig.Authentication().Get(ctx, &connect.Request[authentication.GetRequest]{
Msg: &authentication.GetRequest{},
})
if err != nil {
Expand Down
14 changes: 5 additions & 9 deletions cmd/rig/cmd/auth/get_auth_config.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,23 @@
package auth

import (
"context"

"github.com/bufbuild/connect-go"
"github.com/jedib0t/go-pretty/v6/table"
"github.com/rigdev/rig-go-api/api/v1/authentication"
"github.com/rigdev/rig-go-api/api/v1/project"
"github.com/rigdev/rig-go-sdk"
"github.com/rigdev/rig/cmd/common"
"github.com/rigdev/rig/cmd/rig/cmd/cmd_config"
"github.com/rigdev/rig/pkg/auth"
"github.com/rigdev/rig/pkg/errors"
"github.com/rigdev/rig/pkg/uuid"
"github.com/spf13/cobra"
"go.uber.org/zap"
)

func AuthGetAuthConfig(ctx context.Context, cmd *cobra.Command, args []string, nc rig.Client, cfg *cmd_config.Config, logger *zap.Logger) error {
func (c Cmd) getAuthConfig(cmd *cobra.Command, args []string) error {
ctx := c.Ctx
var projectID uuid.UUID
var err error
if len(args) != 1 {
res, err := nc.Project().List(ctx, &connect.Request[project.ListRequest]{})
res, err := c.Rig.Project().List(ctx, &connect.Request[project.ListRequest]{})
if err != nil {
return err
}
Expand All @@ -46,7 +42,7 @@ func AuthGetAuthConfig(ctx context.Context, cmd *cobra.Command, args []string, n
if id, err := uuid.Parse(args[0]); err == nil {
projectID = id
} else {
res, err := nc.Project().List(ctx, &connect.Request[project.ListRequest]{})
res, err := c.Rig.Project().List(ctx, &connect.Request[project.ListRequest]{})
if err != nil {
return err
}
Expand Down Expand Up @@ -74,7 +70,7 @@ func AuthGetAuthConfig(ctx context.Context, cmd *cobra.Command, args []string, n
}
}

res, err := nc.Authentication().GetAuthConfig(ctx, &connect.Request[authentication.GetAuthConfigRequest]{
res, err := c.Rig.Authentication().GetAuthConfig(ctx, &connect.Request[authentication.GetAuthConfigRequest]{
Msg: &authentication.GetAuthConfigRequest{
RedirectAddr: redirectAddr,
ProjectId: projectID.String(),
Expand Down
19 changes: 9 additions & 10 deletions cmd/rig/cmd/auth/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,16 @@ import (
"github.com/bufbuild/connect-go"
"github.com/rigdev/rig-go-api/api/v1/authentication"
"github.com/rigdev/rig-go-api/model"
"github.com/rigdev/rig-go-sdk"
"github.com/rigdev/rig/cmd/common"
"github.com/rigdev/rig/cmd/rig/cmd/cmd_config"
"github.com/rigdev/rig/pkg/auth"
"github.com/rigdev/rig/pkg/errors"
"github.com/rigdev/rig/pkg/uuid"
"github.com/spf13/cobra"
)

func AuthLogin(ctx context.Context, cmd *cobra.Command, client rig.Client, cfg *cmd_config.Config) error {
res, err := loginWithRetry(ctx, client, authUserIdentifier, authPassword, auth.RigProjectID.String())
func (c Cmd) login(cmd *cobra.Command, args []string) error {
ctx := c.Ctx
res, err := c.loginWithRetry(ctx, authUserIdentifier, authPassword, auth.RigProjectID.String())
if err != nil {
return err
}
Expand All @@ -27,10 +26,10 @@ func AuthLogin(ctx context.Context, cmd *cobra.Command, client rig.Client, cfg *
return err
}

cfg.GetCurrentAuth().UserID = uid
cfg.GetCurrentAuth().AccessToken = res.Msg.GetToken().GetAccessToken()
cfg.GetCurrentAuth().RefreshToken = res.Msg.GetToken().GetRefreshToken()
if err := cfg.Save(); err != nil {
c.Cfg.GetCurrentAuth().UserID = uid
c.Cfg.GetCurrentAuth().AccessToken = res.Msg.GetToken().GetAccessToken()
c.Cfg.GetCurrentAuth().RefreshToken = res.Msg.GetToken().GetRefreshToken()
if err := c.Cfg.Save(); err != nil {
return err
}

Expand All @@ -39,7 +38,7 @@ func AuthLogin(ctx context.Context, cmd *cobra.Command, client rig.Client, cfg *
return nil
}

func loginWithRetry(ctx context.Context, client rig.Client, identifierStr, password, project string) (*connect.Response[authentication.LoginResponse], error) {
func (c Cmd) loginWithRetry(ctx context.Context, identifierStr, password, project string) (*connect.Response[authentication.LoginResponse], error) {
shouldPromptIdentifier := identifierStr == ""
shouldPromptPassword := password == ""
var identifier *model.UserIdentifier
Expand All @@ -61,7 +60,7 @@ func loginWithRetry(ctx context.Context, client rig.Client, identifierStr, passw
}
}

res, err := client.Authentication().Login(ctx, &connect.Request[authentication.LoginRequest]{
res, err := c.Rig.Authentication().Login(ctx, &connect.Request[authentication.LoginRequest]{
Msg: &authentication.LoginRequest{
Method: &authentication.LoginRequest_UserPassword{
UserPassword: &authentication.UserPassword{
Expand Down
21 changes: 17 additions & 4 deletions cmd/rig/cmd/auth/setup.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package auth

import (
"context"

"github.com/rigdev/rig-go-sdk"
"github.com/rigdev/rig/cmd/rig/cmd/base"
"github.com/rigdev/rig/cmd/rig/cmd/cmd_config"
"github.com/spf13/cobra"
"go.uber.org/fx"
)

var (
Expand All @@ -13,7 +18,15 @@ var (

var outputJSON bool

func Setup(parent *cobra.Command) {
type Cmd struct {
fx.In

Ctx context.Context
Rig rig.Client
Cfg *cmd_config.Config
}

func (c Cmd) Setup(parent *cobra.Command) {
auth := &cobra.Command{
Use: "auth",
Short: "Manage authentication for the current user",
Expand All @@ -27,7 +40,7 @@ func Setup(parent *cobra.Command) {
base.OmitUser: "",
base.OmitProject: "",
},
RunE: base.Register(AuthLogin),
RunE: c.login,
}
login.Flags().StringVarP(&authUserIdentifier, "user", "u", "", "useridentifier [username | email | phone number]")
login.Flags().StringVarP(&authPassword, "password", "p", "", "password of the user")
Expand All @@ -37,7 +50,7 @@ func Setup(parent *cobra.Command) {
Use: "get",
Short: "Get user information associated with the current user",
Args: cobra.NoArgs,
RunE: base.Register(AuthGet),
RunE: c.get,
Annotations: map[string]string{
base.OmitProject: "",
},
Expand All @@ -49,7 +62,7 @@ func Setup(parent *cobra.Command) {
Use: "get-auth-config {project-id | project-name}",
Short: "Get the authorization config with allowed login methods and configurations",
Args: cobra.MaximumNArgs(1),
RunE: base.Register(AuthGetAuthConfig),
RunE: c.getAuthConfig,
Annotations: map[string]string{
base.OmitProject: "",
},
Expand Down
3 changes: 1 addition & 2 deletions cmd/rig/cmd/base/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,14 @@ import (
"github.com/rigdev/rig/pkg/errors"
"github.com/rigdev/rig/pkg/uuid"
"github.com/spf13/cobra"
"go.uber.org/zap"
)

var (
OmitUser = "OMIT_USER"
OmitProject = "OMIT_PROJECT"
)

func CheckAuth(cmd *cobra.Command, rc rig.Client, cfg *cmd_config.Config, logger *zap.Logger) error {
func CheckAuth(cmd *cobra.Command, rc rig.Client, cfg *cmd_config.Config) error {
ctx := context.Background()
if _, ok := cmd.Annotations[OmitUser]; ok {
return nil
Expand Down
77 changes: 25 additions & 52 deletions cmd/rig/cmd/base/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,70 +6,43 @@ import (

"github.com/docker/docker/client"
"github.com/rigdev/rig/cmd/rig/cmd/cmd_config"
"github.com/spf13/cobra"
"go.uber.org/dig"
"go.uber.org/fx"
"go.uber.org/zap"
)

var _options []fx.Option

func AddOptions(opts ...fx.Option) {
_options = append(_options, opts...)
}

func Register(f interface{}) func(cmd *cobra.Command, args []string) error {
return func(cmd *cobra.Command, args []string) error {
cfg, err := cmd_config.NewConfig("")
if err != nil {
return err
}

f := fx.New(
clientModule,
fx.Supply(cfg),
fx.Supply(cmd),
fx.Supply(args),
fx.Provide(zap.NewDevelopment),
fx.Provide(getContext),
fx.Provide(func(c *cmd_config.Context) *cmd_config.Auth {
return c.GetAuth()
}),
fx.Provide(func(c *cmd_config.Context) *cmd_config.Service {
return c.GetService()
}),
fx.Provide(func() context.Context { return context.Background() }),
fx.Options(_options...),
fx.Provide(func() (*client.Client, error) {
return client.NewClientWithOpts(
client.WithHostFromEnv(),
client.WithAPIVersionNegotiation(),
)
}),
fx.Invoke(CheckAuth),
fx.Invoke(f),
fx.NopLogger,
var Module = fx.Module(
"rig-cli",
fx.NopLogger,
clientModule,
fx.Provide(func() (*cmd_config.Config, error) {
return cmd_config.NewConfig("")
}),
fx.Provide(zap.NewDevelopment),
fx.Provide(getContext),
fx.Provide(func(c *cmd_config.Context) *cmd_config.Auth {
return c.GetAuth()
}),
fx.Provide(func(c *cmd_config.Context) *cmd_config.Service {
return c.GetService()
}),
fx.Provide(func() context.Context { return context.Background() }),
fx.Provide(func() (*client.Client, error) {
return client.NewClientWithOpts(
client.WithHostFromEnv(),
client.WithAPIVersionNegotiation(),
)
}),
)

if err := f.Start(context.Background()); err != nil {
return dig.RootCause(err)
}
if err := f.Stop(context.Background()); err != nil {
return dig.RootCause(err)
}
return dig.RootCause(f.Err())
}
}

func getContext(cfg *cmd_config.Config, cmd *cobra.Command) (*cmd_config.Context, error) {
func getContext(cfg *cmd_config.Config) (*cmd_config.Context, error) {
if cfg.CurrentContextName == "" {
if len(cfg.Contexts) > 0 {
cmd.Println("No context selected, please select one")
fmt.Println("No context selected, please select one")
if err := cmd_config.SelectContext(cfg); err != nil {
return nil, err
}
} else {
cmd.Println("No context available, please create one")
fmt.Println("No context available, please create one")
if err := cmd_config.CreateDefaultContext(cfg); err != nil {
return nil, err
}
Expand Down
34 changes: 0 additions & 34 deletions cmd/rig/cmd/capsule/abort.go

This file was deleted.

Loading