Flow includes a devcontainer, which provides a nice development experience using a self-contained Docker-based environment. This is an easy way to get a great development experience using Flow, with auto-completion and an ideal setup for your catalog. There are currently two ways to set this up: virtually, using GitHub Codespaces, and locally, using VS Code and Docker on your machine.
Using GitHub Codespaces
GitHub codespaces provides VM-backed, portable development environments that are ideal for getting started with Flow in minutes. Currently, Codespaces is available to GitHub Teams and Enterprise customers, as well as individuals enrolled in the beta. If you have access, this is the preferred method — setting up a devcontainer in Codespaces is much quicker than doing so locally.
Visit the Flow Template repository, click Code, and choose New Codespace.
The VM spins up within a minute or two, and you can immediately begin developing and testing. The template includes a PostgreSQL database for this purpose.
Using Visual Studio Code locally
If you don't have access to Codespaces, or prefer local development, use this method to create a local environment.
Download and install the following prerequisites:
Create a Git repository from the Flow Template
Visit the Flow Template repository on GitHub, click on Use this template, and proceed to create your repository.
Open in VS Code
Clone your repository locally and open it in VS Code. You'll see a popup in the lower right corner asking if you'd like to re-open the repository in a container. Click Re-open in container. It may take several minutes to download components and build the container.
Test your environment
Regardless of the method you used, first test everything is working as expected. The repository contains a sample project, which includes a test. (It also serves as a quick tutorial, which we recommend as a next step).
In a terminal window, run:
flowctl test --source word-counts.flow.yaml
Verify that it returns:
Ran 1 tests, 1 passed, 0 failed
You're now ready to start using Flow!