package resolver // This file will be automatically regenerated based on the schema, any resolver implementations // will be copied through when generating and any unknown code will be moved to the end. // Code generated by github.com/99designs/gqlgen version v0.17.45 import ( "context" "encoding/base64" "errors" "fmt" "edge-infra.dev/pkg/edge/api/graph/model" "edge-infra.dev/pkg/edge/api/middleware" "edge-infra.dev/pkg/edge/api/utils" "edge-infra.dev/pkg/edge/bsl" "edge-infra.dev/pkg/edge/constants" "edge-infra.dev/pkg/edge/externalsecrets" ) // CreateOrUpdateSecretManagerSecret is the resolver for the createOrUpdateSecretManagerSecret field. func (r *mutationResolver) CreateOrUpdateSecretManagerSecret(ctx context.Context, name string, bannerEdgeID string, owner string, values []*model.KeyValues, workload *string, typeArg string) (bool, error) { if workload != nil && !constants.NamespaceSelectorType(*workload).Valid() { return false, fmt.Errorf("invalid workload: %s", *workload) } projectID, err := r.BannerService.GetBannerProjectID(ctx, bannerEdgeID) if err != nil { return false, err } if typeArg == externalsecrets.DockerPullSecretType { url, username, password, err := utils.GetDockerValsOrFail(values) if err != nil { return false, err } auth := base64.RawStdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", username, password))) values = []*model.KeyValues{ { Key: "dockerconfigjson", Value: fmt.Sprintf(`{"auths": {"%s":{"auth":"%s"}}}`, url, auth), }, } } err = r.GCPService.AddSecret(ctx, name, owner, typeArg, values, projectID, workload, nil) if err != nil { return false, err } return true, nil } // DeleteSecretManagerSecret is the resolver for the deleteSecretManagerSecret field. func (r *mutationResolver) DeleteSecretManagerSecret(ctx context.Context, name string, bannerEdgeID string) (bool, error) { tenantName := bsl.GetOrgShortName(middleware.ForContext(ctx).Organization) tenant, err := r.BannerService.GetBannerTenantInfo(ctx, tenantName) if err != nil { return false, err } banner, err := r.BannerService.GetBannerByEdgeID(ctx, bannerEdgeID) if err != nil { return false, err } if banner.TenantEdgeID == tenant.TenantEdgeID { if _, err := r.GCPService.DeleteSecret(ctx, name, banner.ProjectID); err != nil { return false, err } if err = r.SecretService.DeleteExternalSecret(ctx, name, "", banner.ProjectID, nil, nil, name); err != nil { return false, err } return true, nil } return false, errors.New("user does not have access to the specified banner") } // SecretManagerSecrets is the resolver for the secretManagerSecrets field. func (r *queryResolver) SecretManagerSecrets(ctx context.Context, bannerEdgeID string, owner *string, typeArg *string, getValues bool) ([]*model.SecretManagerResponse, error) { tenantName := bsl.GetOrgShortName(middleware.ForContext(ctx).Organization) tenant, err := r.BannerService.GetBannerTenantInfo(ctx, tenantName) if err != nil { return nil, err } banner, err := r.BannerService.GetBannerByEdgeID(ctx, bannerEdgeID) if err != nil { return nil, err } if banner.TenantEdgeID == tenant.TenantEdgeID { if owner != nil { return r.GCPService.GetSecrets(ctx, nil, owner, typeArg, getValues, banner.ProjectID) } defaultOwnerFilter := constants.DefaultOwnerFilter return r.GCPService.GetSecrets(ctx, nil, &defaultOwnerFilter, typeArg, getValues, banner.ProjectID) } return nil, errors.New("user does not have access to the specified banner") } // SecretManagerSecret is the resolver for the secretManagerSecret field. func (r *queryResolver) SecretManagerSecret(ctx context.Context, name string, bannerEdgeID string, owner *string, typeArg *string, getValues bool) (*model.SecretManagerResponse, error) { tenantName := bsl.GetOrgShortName(middleware.ForContext(ctx).Organization) tenant, err := r.BannerService.GetBannerTenantInfo(ctx, tenantName) if err != nil { return nil, err } banner, err := r.BannerService.GetBannerByEdgeID(ctx, bannerEdgeID) if err != nil { return nil, err } if banner.TenantEdgeID == tenant.TenantEdgeID { result, err := r.GCPService.GetSecrets(ctx, &name, owner, typeArg, getValues, banner.ProjectID) if len(result) == 0 { return nil, fmt.Errorf("secret %s not found in banner %s ", name, bannerEdgeID) } return result[0], err } return nil, errors.New("user does not have access to the specified banner") }