fix: add warning for long secret names #359

Merged
decentral1se merged 14 commits from rix/abra:add-secret-length-linting into main 2024-04-06 21:41:37 +00:00
2 changed files with 18 additions and 17 deletions
Showing only changes of commit 66cf63a665 - Show all commits

View File

@ -111,7 +111,7 @@ var appNewCommand = cli.Command{
return err
}
if err := ensureSecretLengths(secretsConfig, internal.Domain, sanitisedAppName); err != nil {
if err := secret.EnsureSecretLengths(secretsConfig, internal.Domain, sanitisedAppName); err != nil {
logrus.Fatal(err)
}
@ -260,19 +260,3 @@ func ensureServerFlag() error {
return nil
}
func ensureSecretLengths(secrets map[string]string, domainName string, sanitisedAppName string) error {
if len(sanitisedAppName) > config.MAX_SANITISED_APP_NAME_LENGTH {
sanitisedAppName = sanitisedAppName[:config.MAX_SANITISED_APP_NAME_LENGTH]
}
domainAndFormatLength := len(sanitisedAppName) + 4
for secretName := range secrets {
if len(secretName)+domainAndFormatLength > config.MAX_DOCKER_SECRET_LENGTH {
return fmt.Errorf("secret %s is too long (> %d chars when combined with %s)", secretName, config.MAX_DOCKER_SECRET_LENGTH, sanitisedAppName)
}
}
return nil
}

View File

@ -11,6 +11,7 @@ import (
"sync"
"coopcloud.tech/abra/pkg/client"
"coopcloud.tech/abra/pkg/config"
"coopcloud.tech/abra/pkg/upstream/stack"
loader "coopcloud.tech/abra/pkg/upstream/stack"
"github.com/decentral1se/passgen"
@ -209,3 +210,19 @@ func GenerateSecrets(cl *dockerClient.Client, secretsFromConfig map[string]strin
return secrets, nil
}
func EnsureSecretLengths(secrets map[string]string, domainName string, sanitisedAppName string) error {
if len(sanitisedAppName) > config.MAX_SANITISED_APP_NAME_LENGTH {
sanitisedAppName = sanitisedAppName[:config.MAX_SANITISED_APP_NAME_LENGTH]
}
domainAndFormatLength := len(sanitisedAppName) + 4
for secretName := range secrets {
if len(secretName)+domainAndFormatLength > config.MAX_DOCKER_SECRET_LENGTH {
return fmt.Errorf("secret %s is too long (> %d chars when combined with %s)", secretName, config.MAX_DOCKER_SECRET_LENGTH, sanitisedAppName)
}
}
return nil
}