Skip to main content

Create a Project

What is an Alto Project?

All an alto project is, at its core, is just a configuration file. Minimally, 1 file named alto.{toml,yaml,json}. Optionally, 1 more file named alto.local.{toml,yaml,json}. Alto will look for these files in the current directory when you run a command. If you are using alto as a library, you can specify the path to the configuration files.

Generate a new project

The easiest way to create a new project is to use the alto init command:

alto init

This command will create a new project in the current directory.

Basic Repo Structure

Without doing anything beyond running alto init, you will have a project with the following repository structure:

.
├── .env
├── .gitignore
├── alto.local.toml
└── alto.toml

Configuration Files

We are going to refer to the configuration file as alto.toml in examples moving forward, but it is interchangeable with yaml or json.

The alto.toml file is the main configuration file for your project. It is what makes an alto project an alto project. It contains the configuration for all the taps, targets, and utilities you want to use. It is not a requirement to generate this file via alto init, you can create it manually if you prefer.

The structure is ultimately the same whether represented in toml, yaml, or json. We are not going to go into detail about each of the fields in this section, but we have provided the general structure for you to reference if you are interested in creating your own alto.{toml,yaml,json} file.

Adding New Taps, Targets, and Utilities

alto emphasizes simplicity. Users looking to add new taps, targets, and utilities should do so by adding the appropriate configuration to the alto.toml file. There are no commands to add new taps, targets, or utilities. Configuration is something that can be done manually, and we believe that it is a better experience to do so. The amount of time it takes to add a new tap, target, or utility to your alto.toml file when we have resources such as the Meltano Hub and author documentation is not significantly different vs imperatively going through a CLI. It is more transparent, you can see exactly what is happening in your configuration file, we are not exposed to stale metadata that may be used in a CLI, and it is a one-time expense. Once you have added a tap, target, or utility to your alto.toml file, you can run it as many times as you want.

The next section will show you exactly what a configuration file looks like.