This is the GUI for managing the Feldera deployment.
# Install Node on Ubuntu (optional)
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y
# If you don't run Ubuntu: [other binary distributions for node.js](https://github.com/nodesource/distributions)
# Install Bun
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg unzip
sudo curl -fsSL https://bun.sh/install | bash -s "bun-v1.3.3"
# Install OpenAPI typings generator
sudo bun install --global @hey-api/openapi-tsInstall dependencies (needs to be done whenever package.json depencies change):
bun installStart the development server:
bun run devBuild & export static website:
bun buildFormat the code & linting:
bun run format
bun run lintCheck that there are no type or syntax errors:
bun run checkIf you experience unexpected build issues, run bun run clean from the repository root and make sure you have the supported Node.js (v20) and Bun.js (1.3.3) versions installed:
bun run clean
node --version && bun --versionThe bindings for OpenAPI (under $lib/services/manager) are generated using openapi typescript codegen.
If you change the API, execute the following steps to update the bindings:
bun run build-openapi # If you need to generate a new openapi.json
bun run generate-openapiIf you get an error like this:
error: failed to run custom build command for `feldera-rest-api v0.252.0 (/__w/feldera/feldera/crates/rest-api)`
Caused by:
process didn't exit successfully: `/__w/feldera/feldera/target/debug/build/feldera-rest-api-a075935d8e5b212d/build-script-build` (exit status: 101)
--- stdout
cargo:rerun-if-changed=../../openapi.json
--- stderr
thread 'main' (297854) panicked at /home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typify-impl-0.1.0/src/convert.rs:1183:32:
$ref #/components/schemas/CommitProgressSummary is missing
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
then generate a new openapi.json with:
bun run build-openapiIf you get an error like this:
🔥 Unexpected error occurred. Token "<SomeNewType>" does not exist.
then:
-
If the new type is a
structorenum, add it tocrates/pipeline-manager/src/api/main.rs. -
If the new type is a
typetype alias, then you will have to manually annotate each occurrence with what its expansion, like this:#[schema(value_type = Option<u64>)] pub step: Option<Step>,
Afterward, rerun both commands above. If there is more than one new type, you may want to add all of them at once, because this will only report one each time.
src/assets/: Static assets referenced in UI components, but not served as-issrc/hooks.server.ts: Point of injection of HTTP request and page load middlewaresrc/lib/: Imported modulessrc/lib/components/: Reusable Svelte componentssrc/lib/compositions/: Stateful functions that app state managementsrc/lib/functions/: Pure functions, or functions that perform side effects through dependency injectionsrc/lib/functions/common: Utility functions that are not specific to this projectsrc/lib/services/: Functions that describe side effects (persistent storage, networking etc.)src/lib/types/: Types used throughout the appsrc/routes/: Web app pages used in file-based routingstatic/: Static assets served as-is