From 81d9e038003051891e8b9517e64ea72556eb25ed Mon Sep 17 00:00:00 2001 From: Rich M Date: Sat, 30 Sep 2023 11:42:01 +0100 Subject: [PATCH] Error when domain is too long for secret lengths. --- cli/app/new.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/cli/app/new.go b/cli/app/new.go index 34ee69ea..91d4d12b 100644 --- a/cli/app/new.go +++ b/cli/app/new.go @@ -2,6 +2,7 @@ package app import ( "fmt" + "strings" "coopcloud.tech/abra/cli/internal" "coopcloud.tech/abra/pkg/autocomplete" @@ -125,6 +126,10 @@ var appNewCommand = cli.Command{ logrus.Fatal(err) } + if err := ensureSecretLengths(secrets, internal.Domain); err != nil { + logrus.Fatal(err) + } + secretCols := []string{"Name", "Value"} secretTable = formatter.CreateTable(secretCols) for name, val := range secrets { @@ -256,3 +261,21 @@ func ensureServerFlag() error { return nil } + +func ensureSecretLengths(secrets AppSecrets, domain string) error { + domainLength := len(domain) + failingSecrets := []string{} + + for secretName := range secrets { + if len(secretName)+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 nil +}