Add prefix for external service accounts (#76794)
* Add prefix for external service accounts
This commit is contained in:
@@ -6,7 +6,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
kvStoreType = "extsvc-token"
|
extsvcPrefix = "extsvc-"
|
||||||
|
kvStoreType = "extsvc-token"
|
||||||
// #nosec G101 - this is not a hardcoded secret
|
// #nosec G101 - this is not a hardcoded secret
|
||||||
tokenNamePrefix = "extsvc-token"
|
tokenNamePrefix = "extsvc-token"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ func (esa *ExtSvcAccountsService) ManageExtSvcAccount(ctx context.Context, cmd *
|
|||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
saID, errRetrieve := esa.saSvc.RetrieveServiceAccountIdByName(ctx, cmd.OrgID, cmd.ExtSvcSlug)
|
saID, errRetrieve := esa.saSvc.RetrieveServiceAccountIdByName(ctx, cmd.OrgID, extsvcPrefix+cmd.ExtSvcSlug)
|
||||||
if errRetrieve != nil && !errors.Is(errRetrieve, sa.ErrServiceAccountNotFound) {
|
if errRetrieve != nil && !errors.Is(errRetrieve, sa.ErrServiceAccountNotFound) {
|
||||||
return 0, errRetrieve
|
return 0, errRetrieve
|
||||||
}
|
}
|
||||||
@@ -139,7 +139,7 @@ func (esa *ExtSvcAccountsService) saveExtSvcAccount(ctx context.Context, cmd *sa
|
|||||||
// Create a service account
|
// Create a service account
|
||||||
esa.logger.Debug("Create service account", "service", cmd.ExtSvcSlug, "orgID", cmd.OrgID)
|
esa.logger.Debug("Create service account", "service", cmd.ExtSvcSlug, "orgID", cmd.OrgID)
|
||||||
sa, err := esa.saSvc.CreateServiceAccount(ctx, cmd.OrgID, &sa.CreateServiceAccountForm{
|
sa, err := esa.saSvc.CreateServiceAccount(ctx, cmd.OrgID, &sa.CreateServiceAccountForm{
|
||||||
Name: cmd.ExtSvcSlug,
|
Name: extsvcPrefix + cmd.ExtSvcSlug,
|
||||||
Role: newRole(roletype.RoleNone),
|
Role: newRole(roletype.RoleNone),
|
||||||
IsDisabled: newBool(false),
|
IsDisabled: newBool(false),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func TestExtSvcAccountsService_ManageExtSvcAccount(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
||||||
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
||||||
@@ -114,7 +114,7 @@ func TestExtSvcAccountsService_ManageExtSvcAccount(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
||||||
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
||||||
@@ -143,11 +143,11 @@ func TestExtSvcAccountsService_ManageExtSvcAccount(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.SaSvc.AssertCalled(t, "CreateServiceAccount", mock.Anything,
|
env.SaSvc.AssertCalled(t, "CreateServiceAccount", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
||||||
mock.MatchedBy(func(cmd *sa.CreateServiceAccountForm) bool {
|
mock.MatchedBy(func(cmd *sa.CreateServiceAccountForm) bool {
|
||||||
return cmd.Name == extSvcSlug && *cmd.Role == roletype.RoleNone
|
return cmd.Name == extsvcPrefix+extSvcSlug && *cmd.Role == roletype.RoleNone
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
||||||
@@ -177,7 +177,7 @@ func TestExtSvcAccountsService_ManageExtSvcAccount(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == extSvcOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
||||||
mock.MatchedBy(func(cmd ac.SaveExternalServiceRoleCommand) bool {
|
mock.MatchedBy(func(cmd ac.SaveExternalServiceRoleCommand) bool {
|
||||||
return cmd.ServiceAccountID == int64(11) && cmd.ExternalServiceID == extSvcSlug &&
|
return cmd.ServiceAccountID == int64(11) && cmd.ExternalServiceID == extSvcSlug &&
|
||||||
@@ -257,7 +257,7 @@ func TestExtSvcAccountsService_SaveExternalService(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
||||||
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
||||||
@@ -287,7 +287,7 @@ func TestExtSvcAccountsService_SaveExternalService(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
env.SaSvc.AssertCalled(t, "DeleteServiceAccount", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
||||||
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
mock.MatchedBy(func(saID int64) bool { return saID == extSvcAccID }))
|
||||||
@@ -319,11 +319,11 @@ func TestExtSvcAccountsService_SaveExternalService(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.SaSvc.AssertCalled(t, "CreateServiceAccount", mock.Anything,
|
env.SaSvc.AssertCalled(t, "CreateServiceAccount", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
||||||
mock.MatchedBy(func(cmd *sa.CreateServiceAccountForm) bool {
|
mock.MatchedBy(func(cmd *sa.CreateServiceAccountForm) bool {
|
||||||
return cmd.Name == extSvcSlug && *cmd.Role == roletype.RoleNone
|
return cmd.Name == extsvcPrefix+extSvcSlug && *cmd.Role == roletype.RoleNone
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
||||||
@@ -360,7 +360,7 @@ func TestExtSvcAccountsService_SaveExternalService(t *testing.T) {
|
|||||||
checks: func(t *testing.T, env *TestEnv) {
|
checks: func(t *testing.T, env *TestEnv) {
|
||||||
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
env.SaSvc.AssertCalled(t, "RetrieveServiceAccountIdByName", mock.Anything,
|
||||||
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
mock.MatchedBy(func(orgID int64) bool { return orgID == tmpOrgID }),
|
||||||
mock.MatchedBy(func(slug string) bool { return slug == extSvcSlug }))
|
mock.MatchedBy(func(slug string) bool { return slug == extsvcPrefix+extSvcSlug }))
|
||||||
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
env.AcStore.AssertCalled(t, "SaveExternalServiceRole", mock.Anything,
|
||||||
mock.MatchedBy(func(cmd ac.SaveExternalServiceRoleCommand) bool {
|
mock.MatchedBy(func(cmd ac.SaveExternalServiceRoleCommand) bool {
|
||||||
return cmd.ServiceAccountID == int64(11) && cmd.ExternalServiceID == extSvcSlug &&
|
return cmd.ServiceAccountID == int64(11) && cmd.ExternalServiceID == extSvcSlug &&
|
||||||
|
|||||||
Reference in New Issue
Block a user