What is this? | A data dictionary application for searching for available data |
---|---|
Status | Under development |
This application is designed to be as simple as possible. It is svelte on the front end and flask on the back end, along with elasticsearch for searching and persisting metadata. It currently allows for connecting to Redshift or Postgres databases.
- Clone the repo
- Install docker and docker-compose
- Run
docker-compose up
At this point you're up and running!
If you want to import some sample data to get started, run:
docker-compose exec web python example_indexer.py
If instead you have a postgres database to explore:
Add a config.yml
at the root of the project with the single entry pointing to the target data warehouse in the following format:
host: localhost
port: 5432
user: ...
password: ...
database: ...
docker-compose exec web python lib/es_index.py
If you do not wish to develop in docker (maybe you don't have enough spare memory on your laptop?) run the following (assuming you've installed elasticsearch)
npm run dev
Which runs the following in parallel:
NETWORK=localhost FLASK_ENV=dev python app.py
rollup -c -w
elasticsearch
Then follow the above directions for importing data.
This application uses cypress for integration testing. To run the tests in a headless docker container, run:
docker-compose -f docker-compose-test.yml up --exit-code-from test
It will be faster when writing new tests to iterate by running cypress locally.
- Run the development server in one terminal (
npm run dev
) - Open cypress with
node_modules/.bin/cypress open
and follow the getting started docs for running individual tests.
Not yet determined.