A project is the highest level entity in Continua and acts as a container for a Configuration(s). Without a project Configurations cannot exists. Projects don't exists purely for a Configuration to exist though, they also provide a way for users of the system to setup project specific configurables. For example, security and permissions that are applied at a global level can also be applied to a specific project. A user has the ability to allow and deny certain permissions to a user/group/role just for a specific project. A project can also contain repositories which are only accessible by configurations created in the project. Projects are also capable of overriding variables and cleanup policies which were defined at the global level.
A Configuration is the defining component of Continua and the continuous integration process. The main function of a Configuration is to define a work flow using the Stage Editor which runs whenever the Configuration is executed. A Configuration can be executed manually by a user or a Trigger. Triggers are setup per configuration and can be set to trigger the Configuration at a specific time or when a check in is made to a repository. Repositories need to be assigned to a Configuration before a trigger can start monitoring the repositories' activity. A Configuration also has the ability to be setup with conditions that are checked before a Configuration is executed, when all conditions pass the Configuration can be executed. Finally, like a Project, a Configuration can also have Configuration specific permissions, variables and cleanup policies which are specific to that Configuration.