Project

A Hyphen project is a container for apps, environments, and secrets

A Project in Hyphen is a container that groups related apps, environments, and secrets, allowing teams to manage them together under a unified workflow. Projects provide a way to organize and control access to multiple apps and their environments, ensuring that secrets and configurations are securely stored and accessible to the appropriate team members.

Each project is linked to an Organization and can be accessed by users who have the appropriate permissions within that organization.

Environments

Within each project, you can define multiple Environments (e.g., development, production). Environments help segregate the configurations and secrets specific to different stages of the app lifecycle.

Examples of Common Environments:

  • Development: Used during the active development of an app. Secrets and configurations in this environment might include development-specific databases, API keys, and testing services.
  • Production: The live environment where the app runs in real-world use, with production-specific secrets and configurations.

Environments allow for flexibility and separation of concerns. Secrets and settings can be isolated per environment to ensure that, for example, development credentials do not affect the production system.

Access

Projects are managed using role-based access control (RBAC), which allows you to define what each team member can do within a specific project. This ensures that sensitive operations (like modifying production secrets) can only be performed by users with the appropriate permissions.

Project Roles

Project roles allow you to fine-tune access to different parts of a project, including the ability to view, modify, or manage secrets, apps, and environments. These roles may differ from organization-level roles, allowing flexibility in team collaboration.

  • Project Owner: Has full control over the project, including managing users, apps, environments, and secrets. The Project Owner can invite or remove members, modify project settings, and manage access to secrets and resources across all environments.
  • Project Collaborator: Can actively contribute to the project by managing apps and environments and working with secrets. However, a collaborator may not manage project access by adding or removing members.
  • Project Viewer: Can view the resources within a project, including apps, environments, but cannot view secrets or make any changes. This role is useful for team members who need to monitor the project without directly contributing.