# Project

A project can contain one or several environments. As described in Concept of a stack when you create a project, you have to choose a public or a private stack.

Stacks

An environment describe a deployment of a stack. Stacks are automated and reproducible via IaaC. Which mean, for each environments you will deploy the same infrastructure but you can specify different configuration and variables.

Usual common environments naming are: dev, staging, and prod, those are just common names, and could be of any kind.

Environments

An environment, is a call to your IaaC with different parameters; for example if you were to call our public Magento stack you might want in dev to make your environment smaller than the production one.

# Editor view

Terraform

In this terraform sample you would not enable multi-az on RDS, you would put only one front server, you would change the front_type to have only one front server and disable the multi-az on RDS.

If you were to improve this stack, we could imagine an AWS Cloudfront component for content delivery, that would be enabled only for production too.

This highlights the concept of env shifting mentioned in IaaC, you could still have some for economic or technical reasons, but those would be much better controlled.

Project's pipelines

When you create an environment in your project, Cycloid will read the template of the pipeline from the stack. And display the variables sample file to configure it.

Variables

Then by pressing the Run button, it will create a Running pipeline from the template using the provided configuration.

Please make sure you read the pipeline section to fully understand the difference and the scope of pipeline template and a running pipeline.

# Forms view

To be able to configure your project via a user-friendly form, you will need to create a new file at the same location as your .cycloid.yml file. This file will be .forms.yml; please see the advanced guide for more insight about its format.

If present, the editor view for the project configuration will be replaced by the new one, which includes a more visual approach, via widget, hints, etc. Note that through this view, only a subset of elements might be configurable (depending on what has been defined within the file) and that the pipeline cannot be edited anymore once the project is being created.

There isn't yet a way to enforce this view or the old view, so you can switch to whichever you prefer.

WARNING

There is currently no way to fetch or edit a project via this view at the moment. This is actively being worked on!

Here is a sample of how it would look:

Forms-one Forms-two

To switch back to the original view, click the Use variables interface button.