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
# Install OpenAPI typings generator
sudo bun install --global @hey-api/openapi-ts
# Clone the repo for the UI
git clone https://github.com/feldera/feldera.git
cd dbsp/web-consoleInstall 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 lint
bun run checkThe 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-openapisrc/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