Projects and Environments
Create a project
The active project is shown in the bottom left of the Hop Gui status bar (briefcase icon and project name). Click it to open the project menu.

Choose Add project… and then In a folder to add a project from an existing folder. That opens the project properties dialog.

From version control checks out a project from a Git repository instead.
The project properties fields are grouped on four tabs: Basic, Folders, Parent project, and Variables.

| Property | Description | Variables Supported | Mandatory | Default |
|---|---|---|---|---|
Name | The project name | Yes | No | |
Home folder | The folder where the project is located | Yes | No | |
This project is read only | When checked, Hop does not write | No | No | unchecked |
Configuration file (relative path) | The project’s configuration json, relative to the home folder. | Yes | Yes |
|
Description | A description for this project | No | No | |
Company | The company this project belongs to | No | No | |
Department | The department this project is created for | No | No | |
Version | A version label for the project | No | No | |
Auto-export metadata | Write a single metadata JSON file when the project is enabled or metadata changes | No | No | unchecked |
Auto-export metadata filename | Target file for auto-export, relative to the project home | Yes | No |
|

| Property | Description | Variables Supported | Mandatory | Default |
|---|---|---|---|---|
Metadata base folder | The folder where this project’s metadata will be stored | Yes | Yes | ${PROJECT_HOME}/metadata |
Unit test base path | The base path to use for unit tests in the project. If your | Yes | Yes | ${PROJECT_HOME} |
Data Sets CSV Folder | The folder where this project’s data files will be stored | Yes | Yes | ${PROJECT_HOME}/datasets |
Enforce execution in project home | Give an error when trying to execute a pipeline or workflow which is not located in the project home directory or in a sub-directory | No | No | checked |

| Property | Description | Variables Supported | Mandatory | Default |
|---|---|---|---|---|
Parent project to inherit from | The project to inherit metadata (e.g. connections) and variables from | Yes | No | default |
Parent project folders to synchronize | Zero or more folders to copy from the parent project home into this project. See below. | Yes | No |
Each row in Parent project folders to synchronize copies that folder (or . for the parent root) into the same relative path in the child project. All files are copied, not only pipelines and workflows.
| Column | Description |
|---|---|
Folder | Path relative to the parent project home. |
Copy once | Copy when the destination folder is missing or empty (a newly created project home that only contains |
Copy on enable | Copy every time this project is enabled (Hop Gui, |
Overwrite | Replace files that already exist in the child project. When unchecked, existing files are kept. |
Exclusion (regular expression) | Java regular expression matched against the file base name and the path relative to the copied folder. Example: |
The child’s project-config.json and any .git directory are never copied or overwritten, even with overwrite enabled. If both Copy once and Copy on enable are checked, copy-on-enable wins. If neither is checked, the row is skipped.

| Property | Description | Variables Supported | Mandatory | Default |
|---|---|---|---|---|
Project variables to set | A list of variable names, values and variable descriptions to use with this project | No | No |
After creating a project the user interface will switch to it and ask if you want to create an environment.
Create an environment
The active environment is shown next to the project in the bottom left of the Hop Gui status bar (cube icon). Click it to open the environment menu, then choose Add environment….

This opens the environment properties dialog. The fields are grouped on tabs: General, Configuration files, and when the matching plugins are installed Marketplace plugins and System resources.

| Property | Description | Variables Supported | Mandatory | Default |
|---|---|---|---|---|
Name | The environment name | No | No | Suggested from the project name and purpose |
Purpose | The purpose of this environment. A purpose is an indication of the environment type. You can add your own purposes in addition to the predefined ones:
| No | No | |
Project | The project to which this environment belongs | No | No | The last created project |
Canvas text | Large text drawn in the top-right of pipeline and workflow canvases when this environment is active | Yes | No |

| Property | Description | Variables Supported | Mandatory | Default |
|---|---|---|---|---|
Configuration files | One or more files that define environment-specific variables | Yes | No | |
Import variables | Scan the project for | No | No | |
Select… | Add an existing configuration file | No | No | |
New… | Create a new configuration file and add it to the environment | No | No | |
Edit… | Open the selected configuration file to set variable names, values and descriptions | No | No |
Each environment contains one or more configuration files where you manage environment-specific variables.

Edit… opens the described variables dialog for the selected file:
When you browse for a file or directory in Hop Gui with a project active, paths under a matching path-like variable are rewritten automatically. For example, ${PROJECT_HOME} is used for files under the project home, and an environment variable such as SOURCE_FILES=/data/incoming rewrites a selection under that folder to ${SOURCE_FILES}/…. If more than one variable matches, the longest (most specific) path wins. The same applies to path variables defined on the project itself.
After creating an environment the user interface will switch to it.
Marketplace plugins
When the Marketplace plugin is installed, the environment properties dialog includes a Marketplace plugins tab. These options control whether Hop checks a Hop install spec (hop-env.yaml) when this lifecycle environment is enabled.

Typical options:
-
Install spec file — path to a
hop-env.yaml(variables allowed, for example under the project home). This is not a lifecycle environment config file. -
On enable —
off(no check),warn(log or dialog on drift), orenforce(fail enabling the environment if the install does not match) -
Strict — treat extra marketplace plugins as drift
-
Auto-apply missing plugins on enable — optional; off by default
See Hop Marketplace for the full description of lifecycle environment plugin checks.
System resource requirements
Lifecycle environments can declare system resource requirements for the host where Hop runs. Open the environment properties dialog and select the System resources tab.

When the environment is enabled (Hop Gui, hop-run -e, hop-server -e, and other tools that call project enablement), Hop can check:
-
Min JVM max memory (MiB) — the JVM max heap (
Runtime.maxMemory(), i.e. configured-Xmxcapacity), not the currently allocated heap. -
Min CPU cores —
Runtime.availableProcessors(). -
Local folders (min free space) — one or more local paths and a minimum free space in MiB (
File.getUsableSpace()). Both the path and the min-free value support Hop variables and expanded number forms (viaConst.toLongExpanded). Paths must resolve to local folders.
Leave a field empty to skip that check.
| Value | Behavior |
|---|---|
off | Do not check (default for Development / CI / CB and when purpose is unset). |
warn | Log a failure report; in Hop Gui show a warning dialog. Environment enable continues. |
enforce | Fail enabling the environment with a fatal error. Default for Production. |
If On enable is left unset, Hop derives a default from the environment Purpose: Production → enforce; Testing / Acceptance → warn; otherwise off.
These checks run on the JVM that enables the environment. They do not validate remote Beam workers or other remote runtimes.
Switch between projects and environments
Click the project indicator at the bottom left and choose a recent project from the menu, or More projects… to pick from a list.

After switching to a project, click the environment indicator (cube icon) next to the project name and choose an environment from the menu. All open files will be restored, including their zoom level and other UI settings.

Edit and delete projects
Click the project indicator at the bottom left, then choose Edit project… to re-open the project properties dialog described above.
Choose Delete project… from the same menu to remove the project from the Hop configuration.
Edit, duplicate and delete environments
Click the environment indicator at the bottom left to open the environment menu.

-
Edit environment… re-opens the environment properties dialog described above.
-
Duplicate environment… creates a copy of the selected environment.
-
Delete environment… removes the environment from the Hop configuration.