Advanced project and environment management
Configuration files
Global Project Configuration
The 2 main things that define a project are its name and its home folder. Projects and environments as such are defined in the central Hop configuration file hop-config.json. By default this file lives in the config/ folder of your Hop client distribution. You can change that folder by setting the HOP_CONFIG_FOLDER environment variable on your system.
projectsConfig
In hop-config.json, you’ll find a "projectsConfig" section. By default it contains the following:
{
"projectsConfig" : {
"enabled" : true,
"projectMandatory" : true,
"environmentMandatory" : false,
"defaultProject" : "default",
"defaultEnvironment" : null,
"standardParentProject" : "default",
"standardProjectsFolder" : null,
"projectConfigurations" : [ {
"projectName" : "default",
"projectHome" : "config/projects/default",
"configFilename" : "project-config.json"
}, {
"projectName" : "samples",
"projectHome" : "config/projects/samples",
"configFilename" : "project-config.json"
} ],
"lifecycleEnvironments" : [ ],
"projectLifecycles" : [ ]
}
}As you can see the standard Hop client distribution defines 2 projects: default and samples.
Project Configuration
Every project has extra metadata and settings stored in a project configuration file called project-config.json. For the samples project this would be config/projects/samples/project-config.json.
project-config.json
Let’s take a look at it:
{
"metadataBaseFolder" : "${PROJECT_HOME}/metadata",
"unitTestsBasePath" : "${PROJECT_HOME}",
"dataSetsCsvFolder" : "${PROJECT_HOME}/datasets",
"enforcingExecutionInHome" : true,
"parentProjectName" : "default",
"config" : {
"variables" : [ ]
}
}Variables
You can define variables on a project level as well. This makes it handy to reference things like input and output folders which are not sensitive to being checked into version control.
Parent projects
As you can see from the project configuration file (parentProjectName), a project can have a parent from which it will inherit all the metadata objects as well as all the variables that are defined in it.
Environment configuration
Hop enviroments and their home folders are stored in the hop configuration file 'hop-config.json'. That file lives by default in the config folder of the Hop installation. System property HOP_CONFIG_FOLDER can also be used to point to a different folder
environmentConfig
{
"environmentConfig" : {
"enabled" : true,
"openingLastEnvironmentAtStartup" : true,
"environmentConfigFilename" : "environment.json",
"environmentFolders" : {
"Project 1 - DEV" : "/projects/one/dev/",
"Project 1 - UAT" : "/projects/one/uat/",
"Project 1 - PRD" : "/projects/one/prd/",
"Project 2 - DEV" : "/projects/two/dev/",
"Project 2 - UAT" : "/projects/two/uat/",
"Project 2 - PRD" : "/projects/two/prd/",
}
}Command Line Project Configuration
In addition to the Hop Gui and configuration files, all aspects of and operations on projects and environments can be managed through the Hop Conf command line tool.
Last updated