Skip to content

Remove organization & user scopes for parameters #1966

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

Closed
Tracked by #1939
spikecurtis opened this issue Jun 1, 2022 · 2 comments · Fixed by #2007
Closed
Tracked by #1939

Remove organization & user scopes for parameters #1966

spikecurtis opened this issue Jun 1, 2022 · 2 comments · Fixed by #2007
Assignees
Labels
api Area: HTTP API
Milestone

Comments

@spikecurtis
Copy link
Contributor

BLUF: organization- & user-scoped parameter are underspecified, essentially unimplemented, and have unresolved issues in terms of encapsulation. We should drop them for now.


The initial Workspaces V2 RFC defined 4 parameter scopes:

  1. organization
  2. template (nee project)
  3. user
  4. workspace

However, it didn't give exact details on how resolution would work if a parameter were specified in multiple scopes.

Template- and workspace-scoped parameter values are currently implemented. However, organization- and user-scoped parameter values are unused in workspace creation at present, and no CLI or WEB UI affordances exist to set them. The only implementation is via the REST endpoint which could be used to create them.

Parameters are identified by name in the template, and so the template is the natural namespace for parameter names. Template-scoped parameters identified by name thus present no ambiguity, and neither do workspace-scoped parameters since each workspace has exactly one template.

However, organization-scoped parameters are a challenge if different templates use the same name for different things. Introducing a new organization-scoped parameter could easily break existing templates if a naming collision occurs. Ditto for user-scoped parameters. These problems are akin to global variables in software. If local names can be interpreted in some other scope without warning, encapsulation is difficult.

These problems are not insurmountable (the software analogy gives some immediate possible paths), but without a detailed customer/user/business need it's hard to pick the right path. Removing the problematic scopes does not constrain us appreciably in re-introducing them later when the matter has been given more analysis and/or it is driven by a concrete customer request.

@spikecurtis
Copy link
Contributor Author

cc @kylecarbs

@ketang
Copy link
Contributor

ketang commented Jun 2, 2022

I agree with "underspecified." I never really understood how this was intended to work.

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

Successfully merging a pull request may close this issue.

3 participants