Skip to main content
Version: 1.0.0

Organization

Organizing your Zeet Apps

Zeet organizes your Projects into Groups and Sub-Groups. A Project is always a member of a Sub-Group, and Sub-Group is always a member of a Group.

When viewing a Project, the header presents "breadcrumbs" showing the Project's "location" under your zeet team, from left to right: team, group, sub-group, and project name:

Creating Groups and Sub-Groups

For a New Project

Groups (and/or Sub-Groups) can be created during the New Project flow. The final section of the New Project flow is the "Organize" section. This is where you decide which Group and Sub-Group this Project should be located in.

In this section, you can select an existing Group and Sub-Group combination, or you may begin typing a new Group name to create a new Group:

Sub-Groups operate very similarly - the only difference is they always need a parent Group. You can create a new Sub-Group within a Group by typing a new name. If you're creating a new Group, this is required.

New Sub-Group

Sub-Groups can also be created from the Group view page (see below).

Group View

On the Group view, you can see all the Projects in the Group. This view will include all Projects across all Sub-Groups that are contained within the Group.

On this page, you can create a new Sub-Group under this Group, by clicking the New sub-group button.

Sub-Group View

Similar to the Group view, the Sub-Group view list all Projects that belong to only this Sub-Group:

Group Permissions

In addition to team member "Global Roles", which are applicable to all resources within a team, team member's can be individually assigned a "Group Role" within each group.

A Group Role confers the corresponding permissions for all aspects of the group, as well as all sub-groups within the group, and all projects in all sub-groups. Group Roles can be controlled from the Access Control tab in the Group view.

Team Owners and Admins can assign Group Roles to each user individually.

When a Group Role is assigned to a team member, the Group Role supersedes the Global Role for that team member. This allows you to elevate or restrict individual users' permissions on a per-group basis.

Group Roles

Zeet provides three Group Roles to choose from:

  • WRITER: read and modify all aspects of a group, and its sub-groups and projects
  • READER: read, but not modify, all aspects of a group, and its sub-groups and projects
  • NO_ACCESS: may not modify nor read any aspects of a group, and its sub-groups and projects

After assigning a Group Role to a user, it can be unassigned at any time, reverting that team member's permissions to the Global Role for the team.

Auto-Cleanup

Each Zeet Group can be configured to be automatically deleted when the last Project within the Group is deleted.

When enabled, if there is one Project in the Group and that Project is deleted, the Group will also be deleted. All Sub-Groups within the Group will necessarily be deleted (as Sub-Groups cannot exist without belonging to a Group).

This auto-cleanup behavior (as configured for each Group) applies only to the Group as a whole: meaning Sub-Groups will not be automatically deleted when the last Project in the Sub-Group is deleted (although the Sub-Group may be deleted if that Project was the last Project in the entire Group).

This setting can be toggled from the Group's Danger Zone Settings tab:

Environment Variables

Environment variables are useful for providing configuration values to your applications. You can read more about Zeet's Environment Variables feature here.

Groups and Sub-Groups provide a mechanism for propagating environment variables to many Projects at once. From the Group or Sub-Group view, navigate to the Settings tab:

Sub-Groups inherit environment variables from their parent Group:

Projects, in turn, inherit environment variables from their parent Sub-Group (and, by extension, from their parent Group).

Moving Projects

caution

Moving a Project should only be performed with great care and consideration. Zeet URLs previously used to navigate to the project will no longer be correct, and API calls performed using the Project's "Path" will no longer function.

There are two methods to change the location of a Project.

The first method is on the Project's Settings page, under the Danger Zone section:

Any existing Group and/or Sub-Group can be selected.

The second method is found on the Sub-Group view.

The Move Project button will present you with a list of Projects. Any projects you select will be relocated into this Sub-Group.

Best Practices

How to use Groups and Sub-Groups is totally up to you, but here are a few common patterns:

  • By Environment: software is often deployed in multiple stages, or "environments". These might be "staging" or "QA" or "production" environments. In this scenario, a Zeet Group could correspond to a single environment, and could be further divided into Sub-Groups for different aspects of the system.
  • By Team: large software organizations might be divided into separate teams, each with ownership of one or more deployed Projects. Teams might be divided by function, like Frontend or Backend development, or by business unit, like Payment Processing or Authentication. In this scenario, a Zeet Group could correspond to a single team, and Sub-Groups could be divided by application or geographic region of deployments.
  • By Application: if your team has multiple distinct applications or services, you might choose to contain each within its own Zeet Group. The Sub-Groups could be divided based on the deployment tiers, like database, server-side deployments, and web tier.