From 6bdec1ccd0766b37d4332d4b5c9e7801abd87dfd Mon Sep 17 00:00:00 2001 From: Rich M Date: Sun, 1 Oct 2023 11:52:06 +0100 Subject: [PATCH] Written secret length verification in the wrong place. --- cli/app/new.go | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/cli/app/new.go b/cli/app/new.go index 91d4d12b..5e4c88fe 100644 --- a/cli/app/new.go +++ b/cli/app/new.go @@ -126,7 +126,7 @@ var appNewCommand = cli.Command{ logrus.Fatal(err) } - if err := ensureSecretLengths(secrets, internal.Domain); err != nil { + if err := ensureSecretLengths(secrets, sanitisedAppName); err != nil { logrus.Fatal(err) } @@ -262,20 +262,35 @@ func ensureServerFlag() error { return nil } -func ensureSecretLengths(secrets AppSecrets, domain string) error { - domainLength := len(domain) +func ensureSecretLengths(secrets AppSecrets, sanitisedAppName string) error { + if len(sanitisedAppName) > 45 { + sanitisedAppName = sanitisedAppName[:45] + } + + domainLength := len(sanitisedAppName) failingSecrets := []string{} + maxSecretLength := 0 for secretName := range secrets { - if len(secretName)+domainLength > 64 { + + if len(secretName) > maxSecretLength { + maxSecretLength = len(secretName) + } + + if len(secretName+"_v1")+domainLength > 64 { failingSecrets = append(failingSecrets, secretName) } } if len(failingSecrets) > 0 { failedSecretsString := strings.Join(failingSecrets, ", ") - return fmt.Errorf("The following secrets are too long to work with the domain name %s, change their length or use a shorter domain name: %s", domain, failedSecretsString) + return fmt.Errorf("the following secrets are too long to work with the domain name %s, change their length or use a shorter domain name: %s", sanitisedAppName, failedSecretsString) } + logrus.Debugf( + `The longest secret name is %d +including 4 extra characters for format %s__v1 +fits with domain length of %d for max docker secret length of %d`, + maxSecretLength, sanitisedAppName, domainLength, domainLength+maxSecretLength+4) return nil }