Install uv
and npm
.
Install the required packages:
npm install
uv sync
We have a docker compose file, but make sure to build the JS/CSS first:
$ npm run build
...
$ docker compose build && docker compose up
We only have a few unit tests right now - no frontend testing or anything.
$ uv run pytest
- run
make gcp-latest
to push the image up to GCP. - If necessary, run the Cloud Run job that runs a db migration.
- re-deploy the service on Cloud Run.
We have a standard client-server-database situation going on.
For search:
- The client sends search query to the server
- The server queries against an in-memory search index. See the
/search
endpoint and thesearch.py
file. - The server sends a list of matches back to the client
Via the magic of htmx
, if the search wasn't triggered by a whole page load, we only send back an HTML fragment.
For preview:
- Client sends the filters that the user's applied to the server, and gets a DuckDB query back. See the
/api/duckdb
endpoint andduckdb_query.py
files. - Client queries DuckDB (using duckdb-wasm), which can read data from remote Parquet files.
- The data comes back as Apache Arrow tables, which we put into the Perspective viewer.
The database is only used for storing users right now.