Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: added additional prefix validation #776

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

kierramarie
Copy link
Contributor

@kierramarie kierramarie commented Nov 14, 2024

Description

Added additional prefix validation to check more than length.

GIT Issue: #770

Release required?

  • No release
  • Patch release (x.x.X)
  • Minor release (x.X.x)
  • Major release (X.x.x)
Release notes content

Run the pipeline

If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.

Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:

/run pipeline

Checklist for reviewers

  • If relevant, a test for the change is included or updated with this PR.
  • If relevant, documentation for the change is included or updated with this PR.

For mergers

  • Use a conventional commit message to set the release level. Follow the guidelines.
  • Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
  • Use the Squash and merge option.

@kierramarie
Copy link
Contributor Author

/run pipeline

@kierramarie
Copy link
Contributor Author

/run pipeline

@kierramarie
Copy link
Contributor Author

/run pipeline

@kierramarie
Copy link
Contributor Author

/run pipeline

@kierramarie
Copy link
Contributor Author

/run pipeline

@kierramarie
Copy link
Contributor Author

/run pipeline

alex-reiff
alex-reiff previously approved these changes Nov 20, 2024
@kierramarie
Copy link
Contributor Author

/run pipeline

@@ -8,6 +8,10 @@ variable "prefix" {
type = string
description = "(Optional) Prefix to append to all resources created by this solution."
default = null
validation {
error_message = "Prefix must begin with a lowercase letter and contain only lowercase letters, numbers, and - characters. Prefixes must end with a lowercase letter or number and be 16 or fewer characters."
condition = can(regex("^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", coalesce(var.prefix, "cos"))) && length(coalesce(var.prefix, "cos")) <= 16
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be neater

    condition = anytrue([
      var.prefix == null,
      can(regex("^([a-z]|[a-z][-a-z0-9]{0,14}[a-z0-9])$", var.prefix))
    ])

Either
null

the regex is
a single lower letter,
or,
a single lower letter, ending in letter or number with 0 to 14 characters (making 16 total) in the middle.

This avoids the coalesce commands with an arbitrary string and the need for a specific length validation

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two adjacent '-'s are also not permitted.

  validation {
  condition = anytrue([
      var.prefix == null,
      alltrue([
        can(regex("^([a-z]|[a-z][-a-z0-9]{0,14}[a-z0-9])$", var.prefix)),
        length(regexall("^.*--.*", var.prefix)) == 0
      ])
    ])
    error_message = "Prefix must begin with a lowercase letter, contain only lowercase letters, numbers, and - characters. Prefixes must end with a lowercase letter or number and be 16 or fewer characters."
  }

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very brief discussion in the standup today. Decided this should be a request changes response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants