Skip to content

Commit

Permalink
README: Change instructions to use yarn instead of npm
Browse files Browse the repository at this point in the history
  • Loading branch information
remko committed Aug 3, 2023
1 parent dd2c36e commit 9be0334
Showing 1 changed file with 44 additions and 36 deletions.
80 changes: 44 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,48 +4,50 @@

[![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

<div align="center">
<img src="https://raw.githubusercontent.com/remko/dsadmin/master/doc/screenshot-entity.png" width=250 alt="Entity editor"/></a>&nbsp;<img src="https://raw.githubusercontent.com/remko/dsadmin/master/doc/screenshot-kind.png" alt="Kinds" width=250/>&nbsp;<img src="https://raw.githubusercontent.com/remko/dsadmin/master/doc/screenshot-create.png" alt="Entity creator" width=250/>
</div>


## ❓ 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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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.

<div align="center">
<a href="https://react-query.tanstack.com"><img src="https://raw.githubusercontent.com/tannerlinsley/react-query/master/docs/src/images/logo.svg" height=70 alt="React Query"/></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://react-table.tanstack.com"><img src="https://raw.githubusercontent.com/tannerlinsley/react-table/master/docs/src/images/logo-light.svg" height=75 alt="React Table"/></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://github.com/google/ko"><img src="https://github.com/google/ko/raw/main/logo/ko.png" height=75 alt="ko"/></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://esbuild.github.io"><img src="https://raw.githubusercontent.com/evanw/esbuild/master/images/logo.png" height=75 alt="ESBuild"/></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://github.com/molefrog/wouter"><img src="https://raw.githubusercontent.com/molefrog/wouter/master/assets/logo.svg" height=75 alt="Wouter"/></a>
Expand Down

0 comments on commit 9be0334

Please sign in to comment.