Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial commit of multitenant support (Velocidex#1917)
This large refactor introduces the concept of organizations within Velociraptor. The server uses an org manager to select between a set of org specific configuration files - all derived from the main configuration. The root org is the org with an empty org id and is what is running when using a standard deployment. A new org can be created using the command velociraptor orgs create orgname This will also generate a new orgs id. Orgs store all their files in the filestore under their own org directory (/orgs// ) this keeps all the data from one org separate from other orgs. A user may belong to multiple orgs and have different ACLs on different orgs (add a user to an org using the vql function user_create() with the orgid arg. When a user belongs to multiple orgs they receive a select box in the user preferences. This allows them to switch between orgs. switching between orgs gives a completely different view - since orgs have completely different filestore directories none of the data is shared - so it feels like logging into a completely different server. Searching will give only the org clients, labels are only present into the org, notebooks and hunts are separate etc. Users can only target clients within the org. On the client's side, the client's config contains the org id and a separate nonce that allows to connect to this org. This means that we need to create new client packages to each org and the clients will automatically connect to their own org. This is the initial PR and some work is still needed.
- Loading branch information