Skip to content

Latest commit

 

History

History
118 lines (80 loc) · 2.55 KB

File metadata and controls

118 lines (80 loc) · 2.55 KB

Contributing to Control Layer

Workflow

If you encounter an issue, or have a feature request, please open an issue on github. If you'd like to contribute, try to see first if there's an open issue for what you'd like to work on. If not, please open one to discuss it before starting work!

Some issues will be tagged as "good first issue" for newcomers.

When submitting a pull request, please ensure that all lints & tests pass. To run linting locally, run

just lint rust
just lint ts

All tests for code in a certain language can be run with:

just test rust
just test ts
just test docker --build

Developing

1. Install Prerequisites

# Install CLI tools (macOS)
brew install just hurl

# Or install manually:
# just: https://github.com/casey/just
# hurl: https://hurl.dev/docs/installation.html

You'll need rust installed to develop the backend, and npm for the frontend. We use sqlx for rust development, so

Important: Rust version 1.88 or higher is required for SQLx compatibility. If you encounter SQLx prepare issues, verify your Rust version with rustc --version.

Run

just check

to make sure you have all prerequisites installed.

2. Initial Setup

  1. Update the admin_email in config.yaml to your own email address instead of the default. This email will be used as the admin account for testing.
  2. Setup a postgres database. There are just targets to help with this:
# starts a dockerized postgres instance
just db-start

# Creates two databases (dwctl, and fusillade), and writes connection strings
# into dwctl/.env and fusillade/.env. sqlx will read these files when compiling.
# The config.yaml file by default points to the dwctl database.
just db-setup

3. Start Development Environment

Run:

cargo run

in one terminal, and

npm run dev 

from the dashboard/ folder, in another terminal, to start the frontend.

Project Overview

This system has two components:

control-layer/
├── dwctl/             # Rust API server (user/group/model management)
├── dashboard/         # React/TypeScript web frontend

Service Documentation:

  • dwctl - API server setup and development
  • dashboard - Frontend development

CI Metrics

View real-time build and performance metrics for this project

FAQ