diff --git a/README.md b/README.md index 7278132..6ec312b 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,25 @@ [![Build](https://github.com/remko/dsadmin/actions/workflows/build.yml/badge.svg)](https://github.com/remko/dsadmin/actions/workflows/build.yml) - Administration GUI for the Google Cloud Datastore Emulator. -- Supports browsing, editing, creating, deleting, querying (using GQL), import, export, ... +- Supports browsing, editing, creating, deleting, querying (using GQL), + import, export, ... - Supports formatted display of JSON properties & compressed properties - Supports large databases -- Does not have problematic dependencies (such as gRPC, which are not available - on all platforms) -- Portable: Implemented entirely in the frontend as an SPA. - Uses the [Datastore REST API](https://cloud.google.com/datastore/docs/reference/data/rest) directly from - the frontend. The only thing a server is used for is for proxying to the datastore emulator - (to avoid CORS problems), and to serve the HTML and JS files. - The NPM package uses a small Node.js server. A small [self-contained binary server](https://github.com/remko/dsadmin/releases) - is also provided, avoiding the need for any system dependencies. - If for some reason you need this to be available in a specific environment (Java, Python, ...), it should - be easy to create a similar server to run this in. +- Does not have problematic dependencies (such as gRPC, which are not + available on all platforms) +- Portable: Implemented entirely in the frontend as an SPA. Uses the + [Datastore REST + API](https://cloud.google.com/datastore/docs/reference/data/rest) + directly from the frontend. The only thing a server is used for is for + proxying to the datastore emulator (to avoid CORS problems), and to + serve the HTML and JS files. The NPM package uses a small Node.js + server. A small [self-contained binary + server](https://github.com/remko/dsadmin/releases) is also provided, + avoiding the need for any system dependencies. If for some reason you + need this to be available in a specific environment (Java, Python, + ...), it should be easy to create a similar server to run this in. ## 📷 Screenshots @@ -27,25 +30,24 @@ Administration GUI for the Google Cloud Datastore Emulator. Entity editor Kinds Entity creator - ## ❓ Why? -Since Google stopped shipping an admin interface for their Datastore Emulator, -there have been some external projects trying to fill the gap. However, all of -the ones I tried were either partially or completely broken, lacked in core -features, had performance issues, were painful to set up, or had dependencies -that prevented them from e.g. being installed in a non-x86 Docker image. - -This project tries to fix all of the issues with the other Datastore admin -interfaces, and bring improvements on the original Google interface. +Since Google stopped shipping an admin interface for their Datastore +Emulator, there have been some external projects trying to fill the gap. +However, all of the ones I tried were either partially or completely +broken, lacked in core features, had performance issues, were painful to +set up, or had dependencies that prevented them from e.g. being +installed in a non-x86 Docker image. +This project tries to fix all of the issues with the other Datastore +admin interfaces, and bring improvements on the original Google +interface. ## 🚧 Not yet implemented - Editing nested entities - UI for filtering & projecting - ## 📖 Usage ### Using NPM @@ -61,14 +63,14 @@ Using command-line arguments: ### Using a pre-built binary -Download the correct binary for your OS -from the [Releases page](https://github.com/remko/dsadmin/releases). +Download the correct binary for your OS from the [Releases +page](https://github.com/remko/dsadmin/releases). Start using the environment from the emulator: eval $(gcloud beta emulators datastore env-init --data-dir=DATA-DIR) ./dsadmin - + Start using command-line arguments: ./dsadmin --project=my-datastore-project --datastore-emulator-host=localhost:8081 @@ -80,10 +82,10 @@ Start using command-line arguments: ### Using Docker Compose -Create a `docker-compose.yml` that starts the Datastore Emulator and the Datastore Admin -container: +Create a `docker-compose.yml` that starts the Datastore Emulator and the +Datastore Admin container: -```yaml +``` yaml version: "3.9" services: # DSAdmin container @@ -117,25 +119,31 @@ volumes: ## 💻 Development -Start all development servers (datastore emulator, proxy, and frontend build): +Install all dependencies + + yarn + +Start all development servers (datastore emulator, proxy, and frontend +build): + + yarn start - npm start +If you want to run against your own running instance of the Datastore +emulator, start the backend server and the build server separately: -If you want to run against your own running instance of the Datastore emulator, -start the backend server and the build server separately: - eval $(gcloud beta emulators datastore env-init --data-dir=DATA-DIR) ./bin/dsadmin.js - npm run start-build + yarn run start-build or using command-line arguments: ./bin/dsadmin.js --project=my-datastore-project --datastore-emulator-host=localhost:8081 - npm run start-build + yarn run start-build ## 🔋 Powered by ... -This project uses some great open source projects. Check them out if you don't know them. +This project uses some great open source projects. Check them out if you +don't know them.
React Query    React Table    ko    ESBuild    Wouter