Eozilla App is a Vite + React + TypeScript frontend for OGC API - Processes services.
It lets you connect to a OGC API - Processes service, browse processes, inspect jobs, and review inputs, outputs, and results in a split-panel interface.
- Purpose: interact with OGC API - Processes services from a browser UI
- UI library: Mantine
- State management: Zustand
- Data flow: service registry and provider adapters in
src/service - Persistence: local app state in
src/state - Testing: Vitest
- Select and load a service provider
- Browse available processes
- Inspect process descriptions, inputs, and outputs
- View the job list and job details
- Open job results and error tracebacks
- Persist selected service and UI state locally
src/
components/ UI building blocks, dialogs, and panels
service/ OGC API - Processes models, providers, registry, and helpers
state/ Persisted app state and related types
store/ Zustand store, actions, and hooks
utils/ General helpers, field utilities, and JSON/schema logic
main.tsx Application entry point
Useful entry points when exploring the code:
src/main.tsxinitializes providers, notifications, and the app root.src/components/Main.tsxdefines the main split-panel layout.src/service/index.tsre-exports service-related modules.src/store/store.tssets up application state.
- Node.js and npm
- Optional: Pixi and a checkout of
eozillafor team development and the local Eozilla Dev-Service backend, see below.
Eozilla App is maintained as a separate Git repository, checked out inside the Eozilla repository. This is the standard team workspace layout:
eozilla/
eozilla-app/
Create the workspace with:
git clone https://github.com/eo-tools/eozilla.git
cd eozilla
pixi install
git clone https://github.com/eo-tools/eozilla-app.git eozilla-app
cd eozilla-app
npm installnpm installnpm run devThe eozilla:dev script expects the standard nested checkout described above.
From eozilla/eozilla-app/, run:
npm run eozilla:devIn a second terminal in the same directory, run:
npm run devIn the app, select the Dev Service provider.
npm run dev # Start the Vite dev server
npm run eozilla:dev # Start the local wraptile API server for testing
npm run build # Type-check and build production assets
npm run eozilla:build # Type-check and build production assets into eozilla cuiman
npm run tests # Run the Vitest suite
npm run checks # Run TypeScript type checking and ESLint
npm run format # Format source files with Prettier
npm run preview # Preview the production build locallyThe footer displays the package version plus a release-relative build number:
v0.1.0-dev.0 build 12
The package version comes from package.json. The build number is resolved in
this order:
VITE_BUILD_NUMBERBUILD_NUMBER- The number of commits since the latest reachable public release tag
0
Public release tags are expected to use the vX.Y.Z format, for example
v0.1.0. Development or prerelease tags such as v0.1.0-rc.1 are ignored for
the reset point.
To manually override the build number for local testing or deployment, set an environment variable before building:
$env:VITE_BUILD_NUMBER="12"
npm run buildVITE_BUILD_NUMBER=12 npm run build- UI work usually belongs in
src/components. - Process and service integration work usually belongs in
src/service. - Shared app state and actions belong in
src/store. - Persisted app state belongs in
src/state. - Tests live next to the implementation as
*.test.tsfiles. - Substantial code changes must update the relevant canonical app documentation
in
../docs/eozilla-app/(overview, service providers, schema forms, or dynamic expressions).
- Start with
src/components/Main.tsxto understand the app layout. - Read
src/service/*before changing request/response models or provider behavior. - Read
src/store/*before changing cross-component state. - Keep OGC API - Processes terminology intact:
- A
Processdescribes a capability exposed by the service. - A
Jobis an execution instance of a process.
- A
- Prefer small, local changes over broad rewrites.
- If you change behavior, run
npm run checksandnpm run testsbefore finishing.
MIT. See LICENSE.
