Commit Graph

98 Commits

Author SHA1 Message Date
Mohd Bilal
081b9163c4 cli: port internal/hausra/sourceops/postgres to use internal/errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6374
GitOrigin-RevId: 8b52f7409799d7ac3b43937cc66837ab3861cd03
2022-10-17 17:56:02 +00:00
Mohd Bilal
7044bf194d cli: port internal/hasura/v1graphql package to use internal/errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6322
GitOrigin-RevId: 1f1c8f13bd688881c48f3381dc9e3e7bacf5fc0c
2022-10-17 17:02:00 +00:00
Mohd Bilal
06138634bc cli: use github.com/stretchr/testify/require assertions in internal/hasura/catalogstate tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6360
GitOrigin-RevId: 1c0f1666fb0ca70d7cf00e6584c549f1bf044c69
2022-10-17 09:57:59 +00:00
Aravind K P
2e0cd9267b cli: port v1query package to use internal/errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6334
GitOrigin-RevId: 094745ed3c8e6aaab5f7f01236ddbebba0f043ba
2022-10-13 15:06:56 +00:00
Mohd Bilal
7b5d61d04f CLI: port catalogstate package to use new errors package
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6259
GitOrigin-RevId: be90386154d7906a41c2334db5cc24fe5febf774
2022-10-12 09:45:51 +00:00
Mohd Bilal
0bd013653a cli: port pgdump package to use new errors package
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6263
GitOrigin-RevId: e410548ecba70e556e41a0377952555c3b40c8ef
2022-10-12 08:47:21 +00:00
Mohd Bilal
56a26a74ee CLI: Add utility Match and print function for the new errors package
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6258
GitOrigin-RevId: fa3148c467b527fbe62cebca3177a39f9b02b38c
2022-10-11 16:41:57 +00:00
Aravind K P
a949af5e14 cli: refactor httpc package to use error framework
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6227
GitOrigin-RevId: fcf9ee64345309ddcba95e4369a6564defa54fc0
2022-10-11 13:40:46 +00:00
Mohd Bilal
c28ed6cc6c cli: Fix query collection export missing definition object and queries array in yaml
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5954
GitOrigin-RevId: b7b29c43ca9c3b2934ea12e71bca2dadecc4c34b
2022-09-27 13:46:42 +00:00
Mohd Bilal
8d18a55212 cli: move AddDatabaseToHasura to testutil package
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6069
GitOrigin-RevId: f7a3b98685c16fec613719eaa05024cd3c9cd3d4
2022-09-27 11:16:22 +00:00
Aravind K P
451f252c0f cli: [rfc] improve error handling
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4817
GitOrigin-RevId: 340f8d0cb3df496c1c0df1cc60fe3752dd58c75c
2022-09-21 08:29:37 +00:00
hasura-bot
df5e887098 cli: fix bug when exporting metadata to remote_schemas.yaml
GITHUB_PR_NUMBER: 8921
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/8921

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5744
Co-authored-by: Ryohei KOMATSUYAMA <54347899+kmtym1998@users.noreply.github.com>
GitOrigin-RevId: cc0948b62c3caccfb2c814433bb1a84508e3c37e
2022-09-19 12:20:26 +00:00
Mohd Bilal
6a90332ab1 cli: Add --disallow-inconsistent-metadata flag to hasura metadata apply command
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5045
GitOrigin-RevId: 1e8da16285705e3e439f1e3e3e4c495c715a902b
2022-08-16 09:59:03 +00:00
Mohd Bilal
48a0a34a92 cli: add support for health_check metadata object in sources
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5287
GitOrigin-RevId: be7e1d19b9875cf05a52a9894cf2bda58b209733
2022-08-03 13:17:36 +00:00
hasura-bot
92f601587c cli: use 2-spaces indent for graphql query in metadata (fix #8469)
GITHUB_PR_NUMBER: 8519
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/8519

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4544
Co-authored-by: Yudai Shinnoki <2777896+shinnoki@users.noreply.github.com>
Co-authored-by: Divi <32202683+imperfect-fourth@users.noreply.github.com>
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 3d9f9d1bf940e528a1ad9fab67b6ae818927ffac
2022-06-27 05:27:19 +00:00
Divi
c668aa1158 cli: improve error reporting in metadata apply command
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4454
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: ae66bdfdc140c1a2a7747fb0ff2acd6f7b577d3f
2022-06-15 15:45:38 +00:00
Divi
b50aecdae4 cli: fix perfomance regression with large metadata in metadata apply
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4661
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 48050e899592878c47c382281605a0c8666ddc8b
2022-06-15 12:39:43 +00:00
Divi
b7c414a875 ci: add action to release cli-ext binaries
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4342
Co-authored-by: Vishnu Bharathi <4211715+scriptnull@users.noreply.github.com>
GitOrigin-RevId: 2b7686bda333d977aa20a1ff10f7b3179509eac3
2022-06-07 22:25:41 +00:00
Aravind K P
23f32c3db4 cli: fix performance regression in v2.5.0
closes https://github.com/hasura/graphql-engine/issues/8398

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4313
GitOrigin-RevId: 3f24434b8256ec30838ce0014a04f8dfdca7f0d5
2022-04-21 11:55:12 +00:00
Aravind K P
ff255bd065 cli: support remote relationships metadata
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4274
GitOrigin-RevId: 5a839a39cc47268e8da52d039b91fbc35fec8b13
2022-04-18 11:07:46 +00:00
Aravind K P
e46777b7ea cli: fix formatting errors in query collection metadata
closes https://github.com/hasura/graphql-engine/issues/7616
closes https://github.com/hasura/graphql-engine/issues/8205

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3955
GitOrigin-RevId: dc97e23e78d522cb7ac4d57ad825526eaa90a4de
2022-03-31 14:02:49 +00:00
Aravind K P
649ef41e3c cli: fix remote schema formatting errors in metadata
closes https://github.com/hasura/graphql-engine/issues/7608
closes https://github.com/hasura/graphql-engine/issues/7459

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3951
GitOrigin-RevId: bad3505c79fab10453580a6a43ad7e71bc2d3753
2022-03-31 08:28:30 +00:00
Vishnu Bharathi
2e04bd5ac2 cli: add support for customization field in sources metadata
closes https://github.com/hasura/graphql-engine/issues/8292

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3954
GitOrigin-RevId: cc27dcffbb71579136a3cae7d99ecd239eb37ed2
2022-03-10 16:47:03 +00:00
Aravind K P
2ff0f25e08 cli: refactor metadataobject package
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3943
GitOrigin-RevId: 4cc8f67dd8b6ba0e78f1c35d415f89bd1b901705
2022-03-10 08:13:50 +00:00
paritosh-08
a0c83b8e99 server: add inconsistency information in reload_metadata API call
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3860
GitOrigin-RevId: 02d1963946d69fdf6886aa61806eb71db60f8931
2022-03-03 13:34:44 +00:00
Divi
d87b961378 cli: fix metadata version being set to 3 for v2 project
closes https://github.com/hasura/graphql-engine/issues/8148

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3619
GitOrigin-RevId: d10b715fc71dcc89bb0874f1c115ad9e562cfd6c
2022-02-23 10:53:22 +00:00
Kali Vara Purushotham Santhati
780d942fad cli: skip tls verfication for all API requests when insecure-skip-tls-verify flag is set
closes: https://github.com/hasura/graphql-engine/issues/4926

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3307
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 90222fc2e5b176fbf5721fea3f5b2af929ca93f4
2022-02-04 11:11:37 +00:00
Antoine Leblanc
d66d2d81fd server: use placeholder to prevent empty query roots
### Description

The GraphQL spec has to conflicting requirements:
1. an object must contain at least one field: the schema may not contain empty objects
2. the _query_root_ must always be present

Given _1_, the schema generation code removes from the schema all fields that would result in empty objects, such as a table for which a user does not have select permissions. But, as a result, our code also potentially removes _query_root_ if it is empty, breaking _2_.

This PR introduces a dummy "placeholder" field in the query root if it's empty, to ensure we never remove it from the schema.

### Remaining work

- [x] changelog entry
- [x] tests

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/148
GitOrigin-RevId: bfd6bfcc2f3de92900b6ba566012f093399ca037
2022-01-27 18:08:11 +00:00
Kali Vara Purushotham Santhati
695164b176 cli: misc changes
- Hasura CLI shows metadata diff in YAML for type `json` in directory mode. The expected behaviour is to show the diff in JSON
- The unified-json shows diff in YAML, not in JSON.
- Add new diff type unified-yaml which shows the diff in YAML unified format.
- Check the flag value of type in `hasura metadata diff --type`
- The help text of `seed apply`( `hasura seed apply --file seeds/1234_add_some_seed_data.sql`) should be updated to `hasura seed apply --file 1234_add_some_seed_data.sql --database-name default` and similarly in docs.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3246
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 1d16ad9ea4dd366af32498ce878ae132bd239be9
2022-01-12 13:25:22 +00:00
Kali Vara Purushotham Santhati
f0bef2b482 cli: add All option for migrate sub-commands (apply, delete and status) and seed apply command
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2509
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 03ee878072b58c6dc7f43af9d26d30a5594d9a50
2021-12-23 15:59:56 +00:00
Aravind K P
96cfacb58b cli: wrap errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3146
GitOrigin-RevId: 5dd78bf9145d3bfc9ff4281239d849e796a36246
2021-12-15 17:55:44 +00:00
Aravind K P
0c7e233125 cli: revert split remote schema permissions metadata into seperate files
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3123
GitOrigin-RevId: f327c7324edd66e1f57fafe7703c3318e1362049
2021-12-14 05:08:08 +00:00
Kali Vara Purushotham Santhati
8c41ff539a cli: enhance metadata diff command
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2581
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 327c26868102ea1c277b795b9f508847faa2ae8b
2021-12-09 17:26:53 +00:00
Aravind K P
bea2855b88 cli: support request_transforms in actions metadata
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2738
GitOrigin-RevId: b125043dbb9321aa8319a6dcd6e1cd6a21f4dfe1
2021-11-03 06:38:48 +00:00
Kali Vara Purushotham Santhati
1e5a48286f cli: split remote schema permissions metadata into seperate files
closes https://github.com/hasura/graphql-engine/issues/7033

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/1877
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 3764db9102d41f67a43f76aa79d28eb5485579ca
2021-10-14 06:52:57 +00:00
Kali Vara Purushotham Santhati
94a3be3e6e cli: fix lint errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/1749
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 4515f7f2c58b7f28645b2c5a5d9842aa7a844eae
2021-10-13 14:39:15 +00:00
Vishnu Bharathi
5e77973ecd cli: use docker auth config to avoid docker rate limiting in CI
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2580
GitOrigin-RevId: 4365a93d14558e858d04794fd2affc88ffe6e821
2021-10-13 01:57:38 +00:00
Kali Vara Purushotham Santhati
e3fa6bee0a cli: improve error/log messages
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2513
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: bff6e5f6d3553904914eabda02d3406c4b779f3c
2021-10-08 16:10:31 +00:00
hasura-bot
20f7c85382 cli: add deploy command (close #7349)
GITHUB_PR_NUMBER: 7426
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/7426

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2173
Co-authored-by: Ajay Tripathi <24985760+atb00ker@users.noreply.github.com>
Co-authored-by: Kali Vara Purushotham Santhati <72007599+purush7@users.noreply.github.com>
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 1030d24c9e6c7d0c7062b6f0e98f8464950529d3
2021-09-29 06:15:17 +00:00
Aravind K P
5011955f73 cli: support query_tags in metadata
closes https://github.com/hasura/graphql-engine-mono/issues/2261

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2347
GitOrigin-RevId: 30d461c0b70f4a4924496d9c3f53cb73a658093a
2021-09-28 17:05:48 +00:00
Kali Vara Purushotham Santhati
d87f7abd02 cli: throw user friendly errors when server is unreachable
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2369
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: af635612948822ae7ea9eb7b7b79d7d4f147e0e6
2021-09-27 14:53:44 +00:00
Kali Vara Purushotham Santhati
4cf13762e2 cli: add support for network metadata object
Issue: https://github.com/hasura/graphql-engine/issues/7520

Problem: add support for network metadata object

Solution: add new network.yaml which consists of network metadata and in code add new network metadata object

Metadata.json
```
{
  "resource_version": 6,
  "metadata": {
    "version": 3,
    "sources": [
      {
        "name": "default",
        "kind": "postgres",
        "tables": [],
        "configuration": {
          "connection_info": {
            "use_prepared_statements": true,
            "database_url": {
              "from_env": "HASURA_GRAPHQL_DATABASE_URL"
            },
            "isolation_level": "read-committed",
            "pool_settings": {
              "connection_lifetime": 600,
              "retries": 1,
              "idle_timeout": 180,
              "max_connections": 50
            }
          }
        }
      }
    ],
    "network": {
      "tls_allowlist": [
        {
          "suffix": null,
          "permissions": [
            "self-signed"
          ],
          "host": "www.google.com"
        },
        {
          "suffix": null,
          "permissions": [
            "self-signed"
          ],
          "host": "play.golang.com"
        },
        {
          "suffix": null,
          "permissions": [
            "self-signed"
          ],
          "host": "hasura.io"
        }
      ]
    }
  }
}
```
network.yaml
```
tls_allowlist:
- suffix: null
  permissions:
  - self-signed
  host: www.google.com
- suffix: null
  permissions:
  - self-signed
  host: play.golang.com
- suffix: null
  permissions:
  - self-signed
  host: hasura.io

```

https://github.com/hasura/graphql-engine-mono/pull/2343

GitOrigin-RevId: ef508ae946dc5c7c5bcb4a9a3ccb982394ae8639
2021-09-22 08:12:46 +00:00
Antoine Leblanc
e2ce1972f6 Prevent empty subscription roots (fix hasura/graphql-engine#6898)
### Description

We always build a subscription root, even when there was no possible fields. This breaks some third party clients, as the spec does not allow empty types in the schema. This PR fixes this by changing the `buildSubscriptionParser` helper to return a `Maybe` value, and harmonizes / cleans places where we build the subscription root.

https://github.com/hasura/graphql-engine-mono/pull/2357

GitOrigin-RevId: 1aeae25e321eee957e7645c436d17e69207309fd
2021-09-16 07:42:46 +00:00
Kali Vara Purushotham Santhati
b75ab7233e cli: fix data-race warnings
#### Issue: https://github.com/hasura/graphql-engine-mono/issues/2179

### Problem:

1. There are few warnings when tests are executed with cli if it is built with `race` flag
It is because of a race condition between stdin in migrate_delete for the prompt and stdout for other commands.

2. The integration test of the console used to behave as follows:
    ```
     - Initially there won't be any wg.adds in wait-group so the second go-routine created in console-test (integration-test)
     - It will send the interrupt signal to the channel before the server has been started
     - So practically the server won't start
    ```
3. The read and write for consoleopts.WG has been happening in different go-routines without control or lock system(reading and writing into same memory location without lock system). So there is a chance of data-race(warning for data-race while integration tests are executed)
4. Data-race errors from `promptui` package

### Solution:

1. Use `--force` flag to avoid getting the input from the prompt in `migrate_delete_test.go`
2. Introduced two fields in server and console opts to let know other go-routines whether the server has been started or not
3. To avoid data-race above which are shared b/w go-routines to know the status of servers has been operated atomically.
4. using new package https://github.com/AlecAivazis/survey

https://github.com/hasura/graphql-engine-mono/pull/2231

GitOrigin-RevId: 387eb1be74f24dda34bb3588314b5a909adac227
2021-09-07 13:34:54 +00:00
Vishnu Bharathi
2329c16ce9 cli: embed cli-ext as exe in case of windows
https://github.com/hasura/graphql-engine-mono/pull/2295

Co-authored-by: Kali Vara Purushotham Santhati <72007599+purush7@users.noreply.github.com>
GitOrigin-RevId: 16a03d33d5bf4d45a71ba79b3b775fba3176a1e8
2021-09-07 06:01:00 +00:00
Aravind K P
39f5d04ba8 cli: optimize state copy
https://github.com/hasura/graphql-engine-mono/pull/2176

GitOrigin-RevId: 71f72704c3097ee05f3adca954b4c283701cf5e9
2021-08-26 06:09:55 +00:00
Aravind K P
f2e74da5aa cli: improve cli package error propogation in migrate operations
https://github.com/hasura/graphql-engine-mono/pull/1887

GitOrigin-RevId: 40c7e1a16e8dd25a46e0c58afc7cbc9169af8f0b
2021-08-16 06:44:05 +00:00
Divi
80846d36b7 cli: add support for query_tags metadata object
- add support for query_tags metadata object
- fix filename for cron_triggers metadata object

https://github.com/hasura/graphql-engine-mono/pull/1901

Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: d9266d723f06d11d92f156f70660e0122412e41a
2021-07-29 07:22:25 +00:00
Kali Vara Purushotham Santhati
ca567bf8cb cli: enhance e2e tests
- actions use-codegen
    - Assert if starter kit files are created
- metadata apply
    - Assert server metadata after apply
    - assert that --dry-run flag will not modify metadata on server
- metadata clear
    - Assert with server metadata that operation was successful.
- metadata inconsistency drop
    - Assert with server metadata that operation was successful.
- metadata inconsistency status
    - Assert for all possible states
- metadata reload
    - Assert effect of operation with server
- migrate and seed subcommands
    - Add tests for MSSQL sources
    - Structure tests in such a way that it’s easy to add tests for new sources

https://github.com/hasura/graphql-engine-mono/pull/1693

Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: fcdbb806d105978a07487a40f7fa6e16b3ab8816
2021-07-28 06:45:03 +00:00
Aravind K P
33d6025a20 cli: refactor metadata object interface
https://github.com/hasura/graphql-engine-mono/pull/1618

GitOrigin-RevId: f4559de4852f247de35604be3808f05fe5ed341a
2021-07-23 09:50:36 +00:00