Quick Start
Create and run your first pipeline in 5 minutes.
Create and run your first pipeline in 5 minutes.
1. Start the server
broked serveOpen http://localhost:8080 in your browser.
On first launch, Brokoli runs in open mode -- no authentication is required. This happens when no users exist in the database and no --api-key flag is set. All API endpoints are accessible without credentials so you can complete the initial setup.
2. Create your admin account
Create your first user account. The first user is always promoted to the admin role, regardless of what role you specify:
Via the UI:
- Click Settings in the sidebar
- Go to Users and create your first user with the
adminrole - Log in with your new credentials
Via the API:
curl -X POST http://localhost:8080/api/users \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "Str0ngPasswd!", "role": "admin"}'The password must be at least 10 characters and contain an uppercase letter, a lowercase letter, and a digit.
Once the first user exists, open mode is disabled and all subsequent API requests require a valid JWT token. To create additional users, you must authenticate as an admin first:
# Log in to get a JWT token
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "Str0ngPasswd!"}'
# Use the token to create another user
curl -X POST http://localhost:8080/api/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token-from-login>" \
-d '{"username": "alice", "password": "AlicePass123", "role": "editor"}'Available roles: admin, editor, viewer.
3. Create a pipeline
Click Pipelines in the sidebar, then New Pipeline.
You'll see the visual DAG editor. Let's build a simple pipeline that fetches user data from a public API:
-
Drag a Source API node onto the canvas
- Name:
Fetch Users - URL:
https://jsonplaceholder.typicode.com/users - Method: GET
- Name:
-
Drag a Transform node onto the canvas
- Name:
Select Fields - Add a rule:
drop_columnswith columnsaddress,company
- Name:
-
Drag a Sink File node onto the canvas
- Name:
Save CSV - Path:
/tmp/users.csv - Format:
csv
- Name:
-
Connect the nodes by dragging from one node's output port to the next node's input port
-
Click Save
4. Run the pipeline
Click the Run button (play icon) in the toolbar. You'll see real-time progress:
- Each node turns green as it completes
- Row counts appear on the edges
- Logs stream in the bottom panel
5. View results
Go to the Runs page to see your pipeline's execution history. Click a run to see:
- Per-node status and duration
- Row counts at each stage
- Data preview for each node's output
- Full execution logs
Check your output file:
head -5 /tmp/users.csvYou should see 10 rows of user data from jsonplaceholder.typicode.com with the address and company columns removed.
What's next
- Your First Pipeline -- build a real-world pipeline step by step
- Node Types -- all 15 node types explained
- Python SDK -- define pipelines as code