diff --git a/cmd/config/validate.go b/cmd/config/validate.go index 46c9047e..d5a40d35 100644 --- a/cmd/config/validate.go +++ b/cmd/config/validate.go @@ -129,7 +129,7 @@ func Validate( return nil, fmt.Errorf("failed to create schema: %w", err) } - cfg, err = appconfig.SecretsResolver[model.ConfigConfig](cfg, secrets, schema.Fill) + cfg, err = appconfig.SecretsResolver(cfg, secrets, schema.Fill) if err != nil { return nil, fmt.Errorf("failed to validate config: %w", err) } @@ -137,6 +137,11 @@ func Validate( return cfg, nil } +// ValidateRemote validates the configuration of a remote project by fetching +// the secrets and applying them to the configuration. It also applies any +// JSON patches from the overlay directory if it exists. +// It returns the original configuration with the applied patches (without being filled +// and without secrets resolved) and another configuration filled and with secrets resolved. func ValidateRemote( ctx context.Context, ce *clienv.CliEnv, @@ -148,6 +153,14 @@ func ValidateRemote( return nil, nil, fmt.Errorf("failed to parse config: %w", err) } + if clienv.PathExists(ce.Path.Overlay(subdomain)) { + var err error + cfg, err = ApplyJSONPatches(*cfg, ce.Path.Overlay(subdomain)) + if err != nil { + return nil, nil, fmt.Errorf("failed to apply json patches: %w", err) + } + } + schema, err := schema.New() if err != nil { return nil, nil, fmt.Errorf("failed to create schema: %w", err) @@ -166,16 +179,9 @@ func ValidateRemote( return nil, nil, fmt.Errorf("failed to get secrets: %w", err) } - if clienv.PathExists(ce.Path.Overlay(subdomain)) { - var err error - cfg, err = ApplyJSONPatches(*cfg, ce.Path.Overlay(subdomain)) - if err != nil { - return nil, nil, fmt.Errorf("failed to apply json patches: %w", err) - } - } - secrets := respToSecrets(secretsResp.GetAppSecrets(), false) - cfgSecrets, err := appconfig.SecretsResolver[model.ConfigConfig](cfg, secrets, schema.Fill) + + cfgSecrets, err := appconfig.SecretsResolver(cfg, secrets, schema.Fill) if err != nil { return nil, nil, fmt.Errorf("failed to validate config: %w", err) } diff --git a/cmd/dev/cloud.go b/cmd/dev/cloud.go index 645368d1..0183c7bf 100644 --- a/cmd/dev/cloud.go +++ b/cmd/dev/cloud.go @@ -176,13 +176,13 @@ func cloud( //nolint:funlen ctxWithTimeout, cancel := context.WithTimeout(ctx, 5*time.Second) //nolint:mnd defer cancel() ce.Infoln("Checking versions...") - if err := software.CheckVersions(ctxWithTimeout, ce, cfg, appVersion); err != nil { + if err := software.CheckVersions(ctxWithTimeout, ce, cfgSecrets, appVersion); err != nil { ce.Warnln("Problem verifying recommended versions: %s", err.Error()) } ce.Infoln("Setting up Nhost development environment...") composeFile, err := dockercompose.CloudComposeFileFromConfig( - cfg, + cfgSecrets, ce.LocalSubdomain(), proj.GetSubdomain(), proj.GetRegion().GetName(), @@ -231,7 +231,7 @@ func cloud( //nolint:funlen ctx, ce.LocalSubdomain(), ce.Path.NhostFolder(), - *cfg.Hasura.Version, + *cfgSecrets.Hasura.Version, "metadata", "export", "--skip-update-check", "--log-level", "ERROR",