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
24 changes: 8 additions & 16 deletions cmd/rig-admin/cmd/projects.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,21 +69,17 @@ func ProjectsCreate(ctx context.Context, cmd *cobra.Command, ps project_service.
}

func ProjectsDelete(ctx context.Context, cmd *cobra.Command, args []string, ps project_service.Service, logger *zap.Logger) error {
str := args[0]
if str == "rig" {
str = auth.RigProjectID.String()
}
projectID, err := uuid.Parse(str)
if err != nil {
return err
projectID := args[0]
if projectID == "rig" {
projectID = auth.RigProjectID
}

ctx = auth.WithProjectID(ctx, projectID)
if err := ps.DeleteProject(ctx); err != nil {
return err
}

logger.Info("deleted project", zap.Stringer("project_id", projectID))
logger.Info("deleted project", zap.String("project_id", projectID))

return nil
}
Expand All @@ -107,13 +103,9 @@ func ProjectsList(ctx context.Context, cmd *cobra.Command, ps project_service.Se
}

func ProjectsUse(ctx context.Context, cmd *cobra.Command, args []string, as *auth_service.Service, logger *zap.Logger) error {
str := args[0]
if str == "rig" {
str = auth.RigProjectID.String()
}
projectID, err := uuid.Parse(str)
if err != nil {
return err
projectID := args[0]
if projectID == "rig" {
projectID = auth.RigProjectID
}

userID, err := uuid.Parse(args[1])
Expand All @@ -131,7 +123,7 @@ func ProjectsUse(ctx context.Context, cmd *cobra.Command, args []string, as *aut
return err
}

logger.Info("using project", zap.Stringer("project_id", projectID), zap.String("project_token", t))
logger.Info("using project", zap.String("project_id", projectID), zap.String("project_token", t))

return nil
}
14 changes: 4 additions & 10 deletions cmd/rig-admin/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"github.com/rigdev/rig/internal/config"
"github.com/rigdev/rig/internal/core"
"github.com/rigdev/rig/pkg/auth"
"github.com/rigdev/rig/pkg/uuid"
"github.com/spf13/cobra"
"go.uber.org/fx"
)
Expand All @@ -29,7 +28,7 @@ func init() {
rootCmd.PersistentFlags().StringVarP(&configFileFlag, "config", "c", "", "config file to use")
}

type ProjectID uuid.UUID
type ProjectID string

var options []fx.Option

Expand All @@ -51,23 +50,18 @@ func register(f interface{}) func(cmd *cobra.Command, args []string) error {

f := fx.New(
fx.Decorate(func(ctx context.Context, pID ProjectID) context.Context {
return auth.WithProjectID(ctx, uuid.UUID(pID))
return auth.WithProjectID(ctx, string(pID))
}),
core.GetModule(cfg),
fx.Supply(cmd),
fx.Supply(args),
fx.Provide(func() context.Context { return context.Background() }),
fx.Provide(func() (ProjectID, error) {
var pID uuid.UUID
var pID string
if projectFlag == "rig" {
pID = auth.RigProjectID
} else {
id, err := uuid.Parse(projectFlag)
if err != nil {
return "", err
}

pID = id
pID = projectFlag
}

return ProjectID(pID), nil
Expand Down
10 changes: 3 additions & 7 deletions cmd/rig-proxy/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
"github.com/rigdev/rig/internal/service/auth"
"github.com/rigdev/rig/pkg/errors"
"github.com/rigdev/rig/pkg/proxy"
"github.com/rigdev/rig/pkg/uuid"
"go.uber.org/zap"
"golang.org/x/net/http2"
"golang.org/x/net/http2/h2c"
Expand Down Expand Up @@ -94,10 +93,7 @@ func main() {

var h http.Handler = p

pid, err := uuid.Parse(pc.GetProjectId())
if err != nil {
logger.Fatal("invalid project ID", zap.String("project_id", pc.GetProjectId()), zap.Error(err))
}
pid := pc.GetProjectId()

for _, m := range e.GetMiddlewares() {
switch v := m.Kind.(type) {
Expand Down Expand Up @@ -137,7 +133,7 @@ func main() {

type authenticationMiddleware struct {
a *capsule.Authentication
projectID uuid.UUID
projectID string
publicKey interface{}
issuer string
next http.Handler
Expand Down Expand Up @@ -216,7 +212,7 @@ func (m *authenticationMiddleware) handleJWTAuth(h http.Header) (http.Header, er
}

if c.GetProjectID() != m.projectID {
m.logger.Info("invalid project ID", zap.Stringer("claims_project_id", c.GetProjectID()), zap.Stringer("service_project_id", m.projectID))
m.logger.Info("invalid project ID", zap.String("claims_project_id", c.GetProjectID()), zap.String("service_project_id", m.projectID))
return h, errors.UnauthenticatedErrorf("invalid JWT token")
}

Expand Down
34 changes: 7 additions & 27 deletions cmd/rig/cmd/auth/get_auth_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@ import (
"github.com/rigdev/rig/cmd/common"
"github.com/rigdev/rig/pkg/auth"
"github.com/rigdev/rig/pkg/errors"
"github.com/rigdev/rig/pkg/uuid"
"github.com/spf13/cobra"
)

func (c Cmd) getAuthConfig(cmd *cobra.Command, args []string) error {
ctx := c.Ctx
var projectID uuid.UUID
var projectID string
var err error
if len(args) != 1 {
res, err := c.Rig.Project().List(ctx, &connect.Request[project.ListRequest]{})
Expand All @@ -23,7 +22,7 @@ func (c Cmd) getAuthConfig(cmd *cobra.Command, args []string) error {
}

ps := []string{"Rig"}
psIds := []string{auth.RigProjectID.String()}
psIds := []string{auth.RigProjectID}
for _, p := range res.Msg.GetProjects() {
ps = append(ps, p.GetName())
psIds = append(psIds, p.GetProjectId())
Expand All @@ -34,32 +33,13 @@ func (c Cmd) getAuthConfig(cmd *cobra.Command, args []string) error {
return err
}

projectID, err = uuid.Parse(psIds[i])
if err != nil {
return err
}
} else {
if id, err := uuid.Parse(args[0]); err == nil {
projectID = id
} else {
res, err := c.Rig.Project().List(ctx, &connect.Request[project.ListRequest]{})
if err != nil {
return err
}
projectID = psIds[i]

for _, p := range res.Msg.GetProjects() {
if p.GetName() == args[0] {
projectID, err = uuid.Parse(p.GetProjectId())
if err != nil {
return err
}
break
}
}
}
} else {
projectID = args[0]
}

if projectID == uuid.Nil {
if projectID == "" {
return errors.NotFoundErrorf("project '%v' not found", args[0])
}

Expand All @@ -73,7 +53,7 @@ func (c Cmd) getAuthConfig(cmd *cobra.Command, args []string) error {
res, err := c.Rig.Authentication().GetAuthConfig(ctx, &connect.Request[authentication.GetAuthConfigRequest]{
Msg: &authentication.GetAuthConfigRequest{
RedirectAddr: redirectAddr,
ProjectId: projectID.String(),
ProjectId: projectID,
},
})
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion cmd/rig/cmd/auth/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (

func (c Cmd) login(cmd *cobra.Command, args []string) error {
ctx := c.Ctx
res, err := c.loginWithRetry(ctx, authUserIdentifier, authPassword, auth.RigProjectID.String())
res, err := c.loginWithRetry(ctx, authUserIdentifier, authPassword, auth.RigProjectID)
if err != nil {
return err
}
Expand Down
13 changes: 5 additions & 8 deletions cmd/rig/cmd/base/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ func createProject(ctx context.Context, cmd *cobra.Command, rc rig.Client, cfg *
return err
}

cfg.GetCurrentContext().Project.ProjectID = uuid.UUID(p.GetProjectId())
cfg.GetCurrentContext().Project.ProjectID = p.GetProjectId()
cfg.GetCurrentContext().Project.ProjectToken = res.Msg.GetProjectToken()
if err := cfg.Save(); err != nil {
return err
Expand Down Expand Up @@ -167,7 +167,7 @@ func login(ctx context.Context, rc rig.Client, cfg *cmd_config.Config) error {
UserPassword: &authentication.UserPassword{
Identifier: id,
Password: pw,
ProjectId: auth.RigProjectID.String(),
ProjectId: auth.RigProjectID,
},
},
},
Expand All @@ -193,7 +193,7 @@ func login(ctx context.Context, rc rig.Client, cfg *cmd_config.Config) error {
}

func useProject(ctx context.Context, rc rig.Client, cfg *cmd_config.Config) error {
var projectID uuid.UUID
var projectID string
var err error
list_res, err := rc.Project().List(ctx, &connect.Request[project.ListRequest]{})
if err != nil {
Expand All @@ -210,14 +210,11 @@ func useProject(ctx context.Context, rc rig.Client, cfg *cmd_config.Config) erro
return err
}

projectID, err = uuid.Parse(list_res.Msg.GetProjects()[i].GetProjectId())
if err != nil {
return err
}
projectID = list_res.Msg.GetProjects()[i].GetProjectId()

res, err := rc.Project().Use(ctx, &connect.Request[project.UseRequest]{
Msg: &project.UseRequest{
ProjectId: projectID.String(),
ProjectId: projectID,
},
})
if err != nil {
Expand Down
5 changes: 2 additions & 3 deletions cmd/rig/cmd/base/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/rigdev/rig-go-api/api/v1/project"
"github.com/rigdev/rig-go-sdk"
"github.com/rigdev/rig/cmd/rig/cmd/cmd_config"
"github.com/rigdev/rig/pkg/uuid"
"go.uber.org/fx"
)

Expand Down Expand Up @@ -126,10 +125,10 @@ func (i *authInterceptor) setProjectToken(ctx context.Context, h http.Header) {
return
}

if !c.VerifyExpiresAt(time.Now().Add(30*time.Second).Unix(), true) && i.cfg.GetCurrentContext().Project.ProjectID != uuid.Nil {
if !c.VerifyExpiresAt(time.Now().Add(30*time.Second).Unix(), true) && i.cfg.GetCurrentContext().Project.ProjectID != "" {
res, err := i.nc.Project().Use(ctx, &connect.Request[project.UseRequest]{
Msg: &project.UseRequest{
ProjectId: i.cfg.GetCurrentContext().Project.ProjectID.String(),
ProjectId: i.cfg.GetCurrentContext().Project.ProjectID,
},
})
if err == nil {
Expand Down
4 changes: 2 additions & 2 deletions cmd/rig/cmd/cmd_config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ type Context struct {
ServiceName string `yaml:"service"`
UserName string `yaml:"user"`
Project struct {
ProjectID uuid.UUID `yaml:"project_id"`
ProjectToken string `yaml:"project_token"`
ProjectID string `yaml:"project_id"`
ProjectToken string `yaml:"project_token"`
} `yaml:"project"`

service *Service
Expand Down
6 changes: 3 additions & 3 deletions cmd/rig/cmd/cmd_config/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ func CreateContext(cfg *Config, name, url string) error {
ServiceName: name,
UserName: name,
Project: struct {
ProjectID uuid.UUID `yaml:"project_id"`
ProjectToken string `yaml:"project_token"`
ProjectID string `yaml:"project_id"`
ProjectToken string `yaml:"project_token"`
}{
ProjectID: uuid.Nil,
ProjectID: "",
ProjectToken: "",
},
})
Expand Down
3 changes: 1 addition & 2 deletions cmd/rig/cmd/project/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"github.com/bufbuild/connect-go"
"github.com/rigdev/rig-go-api/api/v1/project"
"github.com/rigdev/rig/cmd/common"
"github.com/rigdev/rig/pkg/uuid"
"github.com/spf13/cobra"
)

Expand Down Expand Up @@ -48,7 +47,7 @@ func (c Cmd) create(cmd *cobra.Command, args []string) error {
return err
}

c.Cfg.GetCurrentContext().Project.ProjectID = uuid.UUID(p.GetProjectId())
c.Cfg.GetCurrentContext().Project.ProjectID = p.GetProjectId()
c.Cfg.GetCurrentContext().Project.ProjectToken = res.Msg.GetProjectToken()
if err := c.Cfg.Save(); err != nil {
return err
Expand Down
Loading