graphql-engine/cli
Jeff Sieu 2ee7f7d76e cli(metadata): add diff command and dry-run flag (#3157)
### Description
Adds a `metadata diff` command to show comparisons between two different sets of Hasura metadata.
```
# Show changes between server metadata and the exported metadata file:
hasura metadata diff

# Show changes between server metadata and that in local_metadata.yaml:
hasura metadata diff local_metadata.yaml

# Show changes between metadata from metadata.yaml and metadata_old.yaml:
hasura metadata diff metadata.yaml metadata_old.yaml
```

Also adds a `--dry-run` flag to `metadata apply` command which will print the diff and exit rather than actually applying the metadata.

### Affected components 
- CLI
- Docs

### Related Issues
Close #3126, Close #3127

### Solution and Design
- Added `metadata_diff.go` and `metadata_diff_test.go`


### Steps to test and verify
```
hasura metadata export
# Make changes to migrations/metadata.yaml
hasura metadata diff
```

### Limitations, known bugs & workarounds
This is just a general-purpose diff. 

A more contextual diff with the understanding of metadata can be added once #3072  is merged.
2019-10-30 19:24:22 +05:30
..
assets add server version to console html (close #2444) (#2452) 2019-07-02 12:44:29 +00:00
build [cli] add docs and build tools (#3) 2018-06-28 11:10:18 +05:30
cmd/hasura fix typos is multiple files (#728) 2018-10-15 12:29:51 +05:30
commands cli(metadata): add diff command and dry-run flag (#3157) 2019-10-30 19:24:22 +05:30
migrate optimise migrate api for console on cli (#2895) 2019-09-18 11:06:16 +05:30
telemetry infer topic based on version set in telemetry struct (#1511) 2019-01-29 10:37:22 +05:30
update add update-cli command to cli (close #1239) (#1251) 2019-02-04 16:21:29 +05:30
util rename access-key to admin-secret (close #1347) (#1540) 2019-02-14 15:07:47 +05:30
version bundle console assets into server (close #516, close #521, close #2130) (#2192) 2019-05-16 13:15:29 +05:30
.gitignore [cli] commit realize, update docs 2018-06-28 11:35:34 +05:30
.realize.yaml cli: updates to support console versioning etc (#30) 2018-07-03 14:54:46 +05:30
cli_test.go rename access-key to admin-secret (close #1347) (#1540) 2019-02-14 15:07:47 +05:30
cli.go cli(metadata): add diff command and dry-run flag (#3157) 2019-10-30 19:24:22 +05:30
CONTRIBUTING.md fix cli contrib instructions (#1958) 2019-04-11 09:15:18 +05:30
directory.go rename access-key to admin-secret (close #1347) (#1540) 2019-02-14 15:07:47 +05:30
get.sh cli: add new install script, commands (#1556) 2019-02-05 18:21:21 +05:30
global_config.go rename access-key to admin-secret (close #1347) (#1540) 2019-02-14 15:07:47 +05:30
Gopkg.lock cli(metadata): add diff command and dry-run flag (#3157) 2019-10-30 19:24:22 +05:30
Gopkg.toml add update-cli command to cli (close #1239) (#1251) 2019-02-04 16:21:29 +05:30
Makefile add update-cli command to cli (close #1239) (#1251) 2019-02-04 16:21:29 +05:30
README.md rename access-key to admin-secret (close #1347) (#1540) 2019-02-14 15:07:47 +05:30

Hasura GraphQL Engine CLI

GoDoc

Installation

Download GraphQL Engine CLI bundled with Hasura CLI

  • Linux/macOS
curl -L https://cli.hasura.io/install.sh | bash

Download using go get

go get github.com/hasura/graphql-engine/cli/cmd/hasura

Build from source

git clone https://github.com/hasura/graphql-engine
cd graphql-engine/cli
make deps
make build
# binaries will be in _output directory

Usage

hasura init --directory <my-project> --endpoint <graphql-endpoint> --admin-secret <admin-secret>
cd <my-project>
hasura console

Contributing

Checkout the contributing guide.