Hydra ETL
Build your first job
Lesson 1 of 14 · Create a project

Create a project and its first workflow

Create the cumulative workspace, add first-workflow to it, choose how that workflow is triggered, and open it on an empty canvas.

Overviewabout 15 minutesAPI and Studio running

1. Objective

Goal

Create studio-course from the real New project dialog, add a workflow named first-workflow to it, and open that workflow in the editor. Read the project name, disk path and workflow count without confusing those summaries with validation.

Why this matters

A project is a folder on disk; a workflow is a file inside it. Studio never runs a project — it runs a workflow. Creating both in the same sitting makes that hierarchy concrete, and the trigger you pick here is the one written into workflow.yaml.

Course project

Keep one cumulative Studio project named studio-course, one manual workflow named first-workflow, and one job named first-job. Each lesson builds on the state saved by the previous one.

Prerequisites

  • Hydra API started with hdrctl serve.
  • Studio started from Hydra/studio with npm run dev.
  • Nothing from an earlier lesson — this one opens the course.

2. Steps

01Open the start page

Objective

Reach the page that lists projects and exposes the supported workspace actions.

Actions

  1. Open http://localhost:5173.
  2. Select Overview in the sidebar if another page is active.
  3. Find the Get started card on the right.
Studio → Overview
What you should see

The page identifies Hydra Studio and shows the three start actions. Clone a repository is dimmed: it is announced, not implemented.

Hydra Studio
Get started
Clone a repository
Open a project
Create a project
Hydra Studio Overview page, with the project search field, the Get started card listing three actions, and the Statistics panel.
The Statistics panel counts projects and runs across the whole workspace, not inside one project.

02Create the cumulative project

Objective

Generate a Studio project with the standard data, output, jobs and workflows structure.

Actions

  1. Select Create a project.
  2. Enter studio-course in Project name.
  3. Leave Parent folder empty to use the default workspace, then select Create project.
Create a project → Project name: studio-course → Create project
What you should see

Only the name is required. An empty parent folder puts the project under the default workspace.

New project
Project name *
Description
Parent folder (optional)
Create project
The New project dialog with studio-course typed in the Project name field, an empty description, an empty parent folder and the Create project button.
The Create project button stays disabled while the name is blank.

03Find the project in the list

Objective

Use the indexed project row instead of creating a second workspace.

Actions

  1. Look under All projects on the Overview.
  2. Read the disk path printed under the project name.
  3. Select the studio-course row.
Overview → All projects → studio-course
What you should see

The project is listed with its path on disk, and the Projects statistic has gone up by one.

ALL PROJECTS
studio-course
<workspace>\studio-course
Projects  2
The Overview after creation, showing studio-course under All projects with its path, and the Projects statistic now reading 2.
The star pins a project to the top; the bin deletes it. Recently opened and All projects are two views of the same index.

04Read the empty project

Objective

Recognize what a project holds before anything has been designed in it.

Actions

  1. Read the breadcrumb, the project name and its path.
  2. Read the workflow count under the path.
  3. Note the two ways in: Import workflow and New workflow.
Overview / studio-course
What you should see

A project with no workflow is not an error state — it is the normal starting point. Nothing here can be run yet.

Overview / studio-course
<project path>
0 workflow
No workflows
The studio-course project page showing zero workflows, the empty-state message and the New workflow button repeated in the header and in the centre.
Import workflow reads an existing workflow.yaml; New workflow writes a fresh one.

05Create the first workflow

Objective

Add a workflow to the project and choose what will start it.

Actions

  1. Select New workflow.
  2. Enter first-workflow in Workflow name.
  3. Open the Trigger list, keep Manual, then confirm.
New workflow → Workflow name: first-workflow → Trigger: Manual

The Trigger list holds three modes, and the one you pick becomes trigger.type in workflow.yaml. The choice is not final — the workflow card lets you change it later.

TriggerWhat starts the runWhen to use it
ManualYou do, from Studio or with hdrctl workflow run.While designing. The only mode that needs no extra configuration, and the right one for this course.
Schedule (cron)A cron expression, evaluated by the scheduler.Recurring loads — a nightly extract, a quarter-hourly sync. Requires a cron value; without it the workflow will not validate.
WebhookAn incoming HTTP call to the API.Runs driven by an external system: a file landing, a job finishing elsewhere. Requires the API to be reachable by that caller.
What you should see

The name is required; the trigger defaults to Manual.

New Workflow
Workflow name *
Trigger
Manual
Schedule (cron)
Webhook
The New Workflow dialog with first-workflow typed in the name field and the Trigger list open, showing Manual, Schedule (cron) and Webhook.
Three modes, no more. Anything else is expressed inside the workflow, not by its trigger.

06Read the workflow card

Objective

Separate what the card states about the file from what it states about execution.

Actions

  1. Read the workflow name and the trigger printed under it.
  2. Read the Draft badge and the run history beside it.
  3. Open the Trigger selector on the card to confirm the mode can still be changed.
studio-course → first-workflow
What you should see

The count moves to 1 workflow. Draft describes the file — it has no nodes yet — while never run describes its history. Neither means the workflow is invalid.

1 workflow
first-workflow
Manual
Draft   never run
Open in editor
The studio-course project page with one workflow card named first-workflow, marked Manual and Draft, never run, carrying a Trigger selector and an Open in editor link.
Changing the trigger here rewrites trigger.type in the file — no need to reopen the editor.

07Open the workflow in the editor

Objective

Reach the canvas where the following lessons will place nodes.

Actions

  1. Select Open in editor on the card.
  2. Read the node and edge counters beside the workflow name.
  3. Look at the Node palette and the two configuration tabs.
first-workflow → Open in editor
What you should see

An empty canvas, and a palette whose Jobs group is empty because no job exists yet. The URL carries both the workflow and the project it belongs to.

first-workflow   0 nodes · 0 edges
Jobs configuration   Workflow configuration
NODE PALETTE
Actions (9)   Control Flow (2)   Containers (3)   Jobs (0)
The workflow card with the browser status bar showing the editor URL, which carries both a workflow identifier and a project identifier.
The link carries projectId: a workflow is always opened in the context of its project.
The Hydra Studio editor on an empty canvas for first-workflow, with the node palette on the left listing Actions, Control Flow, Containers and an empty Jobs group.
The palette says it plainly: no jobs defined — create one in the Jobs configuration tab.
Tips and traps

Sources and transformations live in Jobs configuration. Jobs and actions live in Workflow configuration.

A container never runs. Five nodes on screen can mean four steps in the YAML.

An edge leaves a right handle and enters a left handle. Direction is never ambiguous.

The Valid badge means the manifest parses. Only a run proves the job works.

A policy reaches only what sits inside the container. A node beside it gets nothing.

Studio can be ahead of the disk. Open the file to be sure.

Counts and durations are live values. Never quote them as thresholds.

An animation is not an outcome. Wait for a terminal state on the Runs page.

3. Checklist

VerificationExpected result
Project listContains studio-course
Project detailShows its disk path
Workflow countReads 1 workflow
Workflow cardfirst-workflow, trigger Manual, badge Draft
EditorOpens on 0 nodes · 0 edges
Overview statisticsRead as live workspace values, not constants

4. Troubleshooting

SymptomCauseFix
Create button stays disabledThe required name is emptyEnter a non-blank project or workflow name
Project path is unexpectedNo parent directory was selectedUse Browse when a specific parent is required
Opening an arbitrary folder failsOpen a project requires Hydra structureCreate the project in Studio or open a folder already containing jobs/workflows
New workflow does nothingThe API is unreachable, so nothing can be written to diskCheck the top-bar indicator reads API online, and see the next lesson
The palette shows Jobs (0)No job exists in the project yetExpected at this point — jobs arrive in lesson 5

5. Next lesson

The workspace exists, holds a workflow and opens on a canvas. Before designing anything on it, the next lesson verifies the top-bar connection indicator and the backend health route that supplies every value you have just read.

Close by

0 / 0 on this page