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

Disallow certain CUE constructs within lineage (schema) declarations #65

Open
3 tasks
sdboyer opened this issue Aug 18, 2022 · 1 comment
Open
3 tasks
Assignees
Labels
enhancement New feature or request invariants Involves the definition or enforcement of a key system invariant prio/low Low priority readiness/prod Requisite for achieving production readiness

Comments

@sdboyer
Copy link
Contributor

sdboyer commented Aug 18, 2022

There are some logical constructs in CUE that make analysis more complicated, and we'll probably have a much easier time creating the invariants if we just disallow their use within schema declarations. Here's a preliminary list:

  • if statements
  • comprehensions? def yes if composition logic (Introduce compositional Lineages #8) can be kept entirely outside the schema itself and unified in when called
  • aliases? no specific reason to do this apart from it being suggestive that people are being too fancy

Cats don't like going back in bags. Better to err on the side of being restrictive initially, then open up later.

Tasks

  1. prio/low readiness/prod
  2. prio/low readiness/prod
@verdverm
Copy link

fyi, Marcel has said that there will probably be a CUE native way to do this in the future. Something to keep an eye on, not sure if there is an issue yet

@joanlopez joanlopez added prio/low Low priority readiness/prod Requisite for achieving production readiness labels Jun 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request invariants Involves the definition or enforcement of a key system invariant prio/low Low priority readiness/prod Requisite for achieving production readiness
Projects
None yet
Development

No branches or pull requests

3 participants