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

Introduce concept of Silos #814

Merged
merged 3 commits into from
Mar 25, 2022
Merged

Introduce concept of Silos #814

merged 3 commits into from
Mar 25, 2022

Conversation

jmpesp
Copy link
Contributor

@jmpesp jmpesp commented Mar 25, 2022

Add silos, which will isolate organizations, and provide a namespace for
users and groups.

This required adding Silo id to Actor, so users that have authenticated
now have an associated Silo id that can be used to restrict organization
lookup.

Silos can be created, read, and deleted. Modification is a TODO. Silos
can be marked discoverable or not, to support a tenancy model where
users and resources are strongly isolated from each other.

A few tests have been modified to use authn_as because an earlier
version of this branch added OpContext to every endpoint, but that was
reverted because the blast radius of the PR would have been too large.
What remains are a few modified tests that make authenticated calls.

When all endpoints are protected and each datastore function has an
OpContext, Silo can be looked up on Actor. For now, there are places
hard coding as the built-in Silo.

Still TODO:

  • authz for silos and silo users
    • some testing is dependent on ^
  • PUT /silos/{name}
  • building on top of silos

Add silos, which will isolate organizations, and provide a namespace for
users and groups.

This required adding Silo id to Actor, so users that have authenticated
now have an associated Silo id that can be used to restrict organization
lookup.

Silos can be created, read, and deleted. Modification is a TODO. Silos
can be marked discoverable or not, to support a tenancy model where
users and resources are strongly isolated from each other.

A few tests have been modified to use authn_as because an earlier
version of this branch added OpContext to every endpoint, but that was
reverted because the blast radius of the PR would have been too large.
What remains are a few modified tests that make authenticated calls.

When all endpoints are protected and each datastore function has an
OpContext, Silo can be looked up on Actor. For now, there are places
hard coding as the built-in Silo.

Still TODO:
- authz for silos and silo users
  - some testing is dependent on ^
- PUT /silos/{name}
- building on top of silos
@jmpesp
Copy link
Contributor Author

jmpesp commented Mar 25, 2022

note: original PR at #747

@davepacheco
Copy link
Collaborator

Is this basically the same as #747 plus sync'd with "main"? If so are there any tricky parts of the rebase/merge that you'd like eyes on?

@jmpesp
Copy link
Contributor Author

jmpesp commented Mar 25, 2022

Is this basically the same as #747 plus sync'd with "main"? If so are there any tricky parts of the rebase/merge that you'd like eyes on?

yes, and I think a very quick once over would help make sure I rebased correctly, but otherwise this is the same.

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.

2 participants