Commit Graph

949 Commits

Author SHA1 Message Date
Karthikeyan Chinnakonda
c63801b573
server: fix bug when renaming table with manual relationships (#5806)
https://github.com/hasura/graphql-engine/pull/5806
2020-10-28 10:21:53 +00:00
Alexis King
bf466e3b63
server: Fix fine-grained incremental cache invalidation (fix #3759) (#6027)
This issue was very tricky to track down, but fortunately easy to fix.
The interaction here is subtle enough that it’s difficult to put into
English what would go wrong in what circumstances, but the new unit test
captures precisely that interaction to ensure it remains fixed.
2020-10-27 14:52:19 -05:00
Sameer Kolhar
b72fc6922a
server: fix issue with tracking custom functions that return SETOF materialized view (close #5294) (#5945)
https://github.com/hasura/graphql-engine/pull/5945
2020-10-22 13:26:42 +00:00
Sooraj
6299d1c278
console: down migrations improvements (close #3503, #4988) (#4790) 2020-10-14 13:27:32 +05:30
Marion Schleifer
ca3ebddc33
docs: console / cli / api workflows (close #3593) (#4948)
https://github.com/hasura/graphql-engine/pull/4948
2020-10-13 11:07:46 +00:00
Karthikeyan Chinnakonda
3ea611f9fd
Server: Validate remote schema queries (#5938)
* [skip ci] use the args while making the fieldParser

* modify the execution part of the remote queries

* parse union queries deeply

* add test for remote schema field validation

* add tests for validating remote query arguments


Co-authored-by: Auke Booij <auke@hasura.io>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-10-13 14:03:11 +05:30
gahag
19b4f55ca1
server: implement websocket compression setting (fixes #3292) (#5928)
https://github.com/hasura/graphql-engine/pull/5928
2020-10-12 09:14:23 +00:00
Auke Booij
84a129c8e4
server: heterogeneous execution of GraphQL queries (#5869)
https://github.com/hasura/graphql-engine/pull/5869
2020-10-07 10:23:17 +00:00
Ahmed Kamal
d3abb474e5
cli: change 'hasura seeds' to 'hasura seed' with 'seeds' as alias (#5693)
https://github.com/hasura/graphql-engine/pull/5693
2020-10-07 09:26:30 +00:00
Marion Schleifer
048daf81d1
docs: add postgres reference section to docs (close #4440) (#4471)
https://github.com/hasura/graphql-engine/pull/4471
2020-10-06 16:04:58 +00:00
Sameer Kolhar
af32ccff36
server: limit length of event trigger names (close #5786) (#5826)
https://github.com/hasura/graphql-engine/pull/5826
2020-10-06 15:22:09 +00:00
Sameer Kolhar
9cb44fa61e
console: add notifications (#5070) 2020-10-05 14:31:10 +05:30
Sameer Kolhar
18e4c103ad
console: add option to flag an insertion as a migration (close #1766) (#4993)
https://github.com/hasura/graphql-engine/pull/4993
2020-09-29 17:15:39 +00:00
jasvithaM
92b3342ba9
console: remove ONLY as default for ALTER TABLE in column alter operations (close #5512) (#5706)
https://github.com/hasura/graphql-engine/pull/5706
2020-09-28 19:54:39 +00:00
Sameer Kolhar
10f41e7559
server: accept only non-negative integers for batch size and refetch interval (close #5653) (#5759)
https://github.com/hasura/graphql-engine/pull/5759
2020-09-17 10:56:41 +00:00
Karthikeyan Chinnakonda
9d047d1726
server: add custom timeouts to actions (#5762)
https://github.com/hasura/graphql-engine/pull/5762
2020-09-16 09:53:17 +00:00
Karthikeyan Chinnakonda
6eb7a7dd8a Merge branch 'master' into scheduled-triggers-created-at-bug-5272 2020-09-16 03:33:41 +05:30
Karthikeyan Chinnakonda
92ef504c9e
Server: add URL templating for event triggers and remote schemas (#5760)
* add url templating for event triggers


Co-authored-by: Brandon Simmons <brandon.m.simmons@gmail.com>
2020-09-10 15:00:34 +05:30
Karthikeyan Chinnakonda
557aeabacc
Merge branch 'master' into scheduled-triggers-created-at-bug-5272 2020-09-09 13:20:32 +05:30
Tirumarai Selvan
bbc27437d8
v1.3.2 assets (#5752) 2020-09-09 13:19:32 +05:30
Karthikeyan Chinnakonda
c9a519c16d update changelog 2020-09-08 12:26:41 +05:30
Karthikeyan Chinnakonda
6f1bfee21b update changelog 2020-09-08 12:18:00 +05:30
Karthikeyan Chinnakonda
8e5f78b1ee add CHANGELOG 2020-09-07 13:54:25 +05:30
Rakesh Emmadi
4ce6002af2
support customizing JWT claims (close #3485) (#3575)
* improve jsonpath parser to accept special characters and property tests for the same

* make the JWTClaimsMapValueG parametrizable

* add documentation in the JWT file

* modify processAuthZHeader

Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io>
Co-authored-by: Marion Schleifer <marion@hasura.io>
2020-08-31 22:10:01 +05:30
Karthikeyan Chinnakonda
95b08086a8 Merge branch 'master' into remote-relationship-validation-bug-5133 2020-08-26 13:19:04 +05:30
Sameer Kolhar
ad3cfb4681
console: mark inconsistent schemas in the UI (close #5093) (#5181) 2020-08-24 13:31:45 +02:00
Sooraj
41f35c684e
console: allow user to cascade Postgres dependencies when dropping Postgres objects (close #5109) (#5248) 2020-08-22 14:07:02 +02:00
Alexis King
7e970177c1
Rewrite GraphQL schema generation and query parsing (close #2801) (#4111)
Aka “the PDV refactor.” History is preserved on the branch 2801-graphql-schema-parser-refactor.

* [skip ci] remove stale benchmark commit from commit_diff

* [skip ci] Check for root field name conflicts between remotes

* [skip ci] Additionally check for conflicts between remotes and DB

* [skip ci] Check for conflicts in schema when tracking a table

* [skip ci] Fix equality checking in GraphQL AST

* server: fix mishandling of GeoJSON inputs in subscriptions (fix #3239) (#4551)

* Add support for multiple top-level fields in a subscription to improve testability of subscriptions

* Add an internal flag to enable multiple subscriptions

* Add missing call to withConstructorFn in live queries (fix #3239)

Co-authored-by: Alexis King <lexi.lambda@gmail.com>

* Scheduled triggers (close #1914) (#3553)

server: add scheduled triggers

Co-authored-by: Alexis King <lexi.lambda@gmail.com>
Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io>
Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>

* dev.sh: bump version due to addition of croniter python dependency

* server: fix an introspection query caching issue (fix #4547) (#4661)

Introspection queries accept variables, but we need to make sure to
also touch the variables that we ignore, so that an introspection
query is marked not reusable if we are not able to build a correct
query plan for it.

A better solution here would be to deal with such unused variables
correctly, so that more introspection queries become reusable.

An even better solution would be to type-safely track *how* to reuse
which variables, rather than to split the reusage marking from the
planning.

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>

* flush log buffer on exception in mkWaiApp ( fix #4772 ) (#4801)

* flush log buffer on exception in mkWaiApp

* add comment to explain the introduced change

* add changelog

* allow logging details of a live query polling thread (#4959)

* changes for poller-log

add various multiplexed query info in poller-log

* minor cleanup, also fixes a bug which will return duplicate data

* Live query poller stats can now be logged

This also removes in-memory stats that are collected about batched
query execution as the log lines when piped into an monitoring tool
will give us better insights.

* allow poller-log to be configurable

* log minimal information in the livequery-poller-log

Other information can be retrieved from /dev/subscriptions/extended

* fix few review comments

* avoid marshalling and unmarshalling from ByteString to EncJSON

* separate out SubscriberId and SubscriberMetadata

Co-authored-by: Anon Ray <rayanon004@gmail.com>

* Don't compile in developer APIs by default

* Tighten up handling of admin secret, more docs

Store the admin secret only as a hash to prevent leaking the secret
inadvertently, and to prevent timing attacks on the secret.

NOTE: best practice for stored user passwords is a function with a
tunable cost like bcrypt, but our threat model is quite different (even
if we thought we could reasonably protect the secret from an attacker
who could read arbitrary regions of memory), and bcrypt is far too slow
(by design) to perform on each request. We'd have to rely on our
(technically savvy) users to choose high entropy passwords in any case.

Referencing #4736

* server/docs: add instructions to fix loss of float precision in PostgreSQL <= 11 (#5187)

This adds a server flag, --pg-connection-options, that can be used to set a PostgreSQL connection parameter, extra_float_digits, that needs to be used to avoid loss of data on older versions of PostgreSQL, which have odd default behavior when returning float values. (fixes #5092)

* [skip ci] Add new commits from master to the commit diff

* [skip ci] serve default directives (skip & include) over introspection

* [skip ci] Update non-Haskell assets with the version on master

* server: refactor GQL execution check and config API (#5094)

Co-authored-by: Vamshi Surabhi <vamshi@hasura.io>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* [skip ci] fix js issues in tests by pinning dependencies version

* [skip ci] bump graphql version

* [skip ci] Add note about memory usage

* generalize query execution logic on Postgres (#5110)

* generalize PGExecCtx to support specialized functions for various operations

* fix tests compilation

* allow customising PGExecCtx when starting the web server

* server: changes catalog initialization and logging for pro customization (#5139)

* new typeclass to abstract the logic of QueryLog-ing

* abstract the logic of logging websocket-server logs

  introduce a MonadWSLog typeclass

* move catalog initialization to init step

  expose a helper function to migrate catalog
  create schema cache in initialiseCtx

* expose various modules and functions for pro

* [skip ci] cosmetic change

* [skip ci] fix test calling a mutation that does not exist

* [skip ci] minor text change

* [skip ci] refactored input values

* [skip ci] remove VString Origin

* server: fix updating of headers behaviour in the update cron trigger API and create future events immediately (#5151)

* server: fix bug to update headers in an existing cron trigger and create future events

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>

* Lower stack chunk size in RTS to reduce thread STACK memory (closes #5190)

This reduces memory consumption for new idle subscriptions significantly
(see linked ticket).

The hypothesis is: we fork a lot of threads per websocket, and some of
these use slightly more than the initial 1K stack size, so the first
overflow balloons to 32K, when significantly less is required.

However: running with `+RTS -K1K -xc` did not seem to show evidence of
any overflows! So it's a mystery why this improves things.

GHC should probably also be doubling the stack buffer at each overflow
or doing something even smarter; the knobs we have aren't so helpful.

* [skip ci] fix todo and schema generation for aggregate fields

* 5087 libpq pool leak (#5089)

Shrink libpq buffers to 1MB before returning connection to pool. Closes #5087

See: https://github.com/hasura/pg-client-hs/pull/19

Also related: #3388 #4077

* bump pg-client-hs version (fixes a build issue on some environments) (#5267)

* do not use prepared statements for mutations

* server: unlock scheduled events on graceful shutdown (#4928)

* Fix buggy parsing of new --conn-lifetime flag in 2b0e3774

* [skip ci] remove cherry-picked commit from commit_diff.txt

* server: include additional fields in scheduled trigger webhook payload (#5262)

* include scheduled triggers metadata in the webhook body

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>

* server: call the webhook asynchronously in event triggers (#5352)

* server: call the webhook asynchronosly in event triggers

* Expose all modules in Cabal file (#5371)

* [skip ci] update commit_diff.txt

* [skip ci] fix cast exp parser & few TODOs

* [skip ci] fix remote fields arguments

* [skip ci] fix few more TODO, no-op refactor, move resolve/action.hs to execute/action.hs

* Pass environment variables around as a data structure, via @sordina (#5374)

* Pass environment variables around as a data structure, via @sordina

* Resolving build error

* Adding Environment passing note to changelog

* Removing references to ILTPollerLog as this seems to have been reintroduced from a bad merge

* removing commented-out imports

* Language pragmas already set by project

* Linking async thread

* Apply suggestions from code review

Use `runQueryTx` instead of `runLazyTx` for queries.

* remove the non-user facing entry in the changelog

Co-authored-by: Phil Freeman <paf31@cantab.net>
Co-authored-by: Phil Freeman <phil@hasura.io>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* [skip ci] fix: restrict remote relationship field generation for hasura queries

* [skip ci] no-op refactor; move insert execution code from schema parser module

* server: call the webhook asynchronously in event triggers (#5352)

* server: call the webhook asynchronosly in event triggers

* Expose all modules in Cabal file (#5371)

* [skip ci] update commit_diff.txt

* Pass environment variables around as a data structure, via @sordina (#5374)

* Pass environment variables around as a data structure, via @sordina

* Resolving build error

* Adding Environment passing note to changelog

* Removing references to ILTPollerLog as this seems to have been reintroduced from a bad merge

* removing commented-out imports

* Language pragmas already set by project

* Linking async thread

* Apply suggestions from code review

Use `runQueryTx` instead of `runLazyTx` for queries.

* remove the non-user facing entry in the changelog

Co-authored-by: Phil Freeman <paf31@cantab.net>
Co-authored-by: Phil Freeman <phil@hasura.io>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* [skip ci] implement header checking

Probably closes #14 and #3659.

* server: refactor 'pollQuery' to have a hook to process 'PollDetails' (#5391)

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* update pg-client (#5421)

* [skip ci] update commit_diff

* Fix latency buckets for telemetry data

These must have gotten messed up during a refactor. As a consequence
almost all samples received so far fall into the single erroneous 0 to
1K seconds (originally supposed to be 1ms?) bucket.

I also re-thought what the numbers should be, but these are still
arbitrary and might want adjusting in the future.

* [skip ci] include the latest commit compared against master in commit_diff

* [skip ci] include new commits from master in commit_diff

* [skip ci] improve description generation

* [skip ci] sort all introspect arrays

* [skip ci] allow parsers to specify error codes

* [skip ci] fix integer and float parsing error code

* [skip ci] scalar from json errors are now parse errors

* [skip ci] fixed negative integer error message and code

* [skip ci] Re-fix nullability in relationships

* [skip ci] no-op refactor and removed couple of FIXMEs

* [skip ci] uncomment code in 'deleteMetadataObject'

* [skip ci] Fix re-fix of nullability for relationships

* [skip ci] fix default arguments error code

* [skip ci] updated test error message

!!! WARNING !!!
Since all fields accept `null`, they all are technically optional in
the new schema. Meaning there's no such thing as a missing mandatory
field anymore: a field that doesn't have a default value, and which
therefore isn't labelled as "optional" in the schema, will be assumed
to be null if it's missing, meaning it isn't possible anymore to have
an error for a missing mandatory field. The only possible error is now
when a optional positional argument is omitted but is not the last
positional argument.

* [skip ci] cleanup of int scalar parser

* [skip ci] retro-compatibility of offset as string

* [skip ci] Remove commit from commit_diff.txt

Although strictly speaking we don't know if this will work correctly in PDV
if we would implement query plan caching, the fact is that in the theoretical
case that we would have the same issue in PDV, it would probably apply not just
to introspection, and the fix would be written completely differently.  So this
old commit is of no value to us other than the heads-up "make sure query plan
caching works correctly even in the presence of unused variables", which is
already part of the test suite.

* Add MonadTrace and MonadExecuteQuery abstractions (#5383)

* [skip ci] Fix accumulation of input object types

Just like object types, interface types, and union types, we have to avoid
circularities when collecting input types from the GraphQL AST.

Additionally, this fixes equality checks for input object types (whose fields
are unordered, and hence should be compared as sets) and enum types (ditto).

* [skip ci] fix fragment error path

* [skip ci] fix node error code

* [skip ci] fix paths in insert queries

* [skip ci] fix path in objects

* [skip ci] manually alter node id path for consistency

* [skip ci] more node error fixups

* [skip ci] one last relay error message fix

* [skip ci] update commit_diff

* Propagate the trace context to event triggers (#5409)

* Propagate the trace context to event triggers

* Handle missing trace and span IDs

* Store trace context as one LOCAL

* Add migrations

* Documentation

* changelog

* Fix warnings

* Respond to code review suggestions

* Respond to code review

* Undo changelog

* Update CHANGELOG.md

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* server: log request/response sizes for event triggers (#5463)

* server: log request/response sizes for event triggers

  event triggers (and scheduled triggers) now have request/response size
  in their logs.

* add changelog entry

* Tracing: Simplify HTTP traced request (#5451)

Remove the Inversion of Control (SuspendRequest) and simplify
the tracing of HTTP Requests.

Co-authored-by: Phil Freeman <phil@hasura.io>

* Attach request ID as tracing metadata (#5456)

* Propagate the trace context to event triggers

* Handle missing trace and span IDs

* Store trace context as one LOCAL

* Add migrations

* Documentation

* Include the request ID as trace metadata

* changelog

* Fix warnings

* Respond to code review suggestions

* Respond to code review

* Undo changelog

* Update CHANGELOG.md

* Typo

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* server: add logging for action handlers (#5471)

* server: add logging for action handlers

* add changelog entry

* change action-handler log type from internal to non-internal

* fix action-handler-log name

* server: pass http and websocket request to logging context (#5470)

* pass request body to logging context in all cases

* add message size logging on the websocket API

  this is required by graphql-engine-pro/#416

* message size logging on websocket API

  As we need to log all messages recieved/sent by the websocket server,
  it makes sense to log them as part of the websocket server event logs.
  Previously message recieved were logged inside the onMessage handler,
  and messages sent were logged only for "data" messages (as a server event log)

* fix review comments

Co-authored-by: Phil Freeman <phil@hasura.io>

* server: stop eventing subsystem threads when shutting down (#5479)

* server: stop eventing subsystem threads when shutting down

* Apply suggestions from code review

Co-authored-by: Karthikeyan Chinnakonda <chkarthikeyan95@gmail.com>

Co-authored-by: Phil Freeman <phil@hasura.io>
Co-authored-by: Phil Freeman <paf31@cantab.net>
Co-authored-by: Karthikeyan Chinnakonda <chkarthikeyan95@gmail.com>

* [skip ci] update commit_diff with new commits added in master

* Bugfix to support 0-size HASURA_GRAPHQL_QUERY_PLAN_CACHE_SIZE

Also some minor refactoring of bounded cache module:
 - the maxBound check in `trim` was confusing and unnecessary
 - consequently trim was unnecessary for lookupPure

Also add some basic tests

* Support only the bounded cache, with default HASURA_GRAPHQL_QUERY_PLAN_CACHE_SIZE of 4000. Closes #5363

* [skip ci] remove merge commit from commit_diff

* server: Fix compiler warning caused by GHC upgrade (#5489)

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* [skip ci] update all non server code from master

* [skip ci] aligned object field error message with master

* [skip ci] fix remaining undefined?

* [skip ci] remove unused import

* [skip ci] revert to previous error message, fix tests

* Move nullableType/nonNullableType to Schema.hs

These are functions on Types, not on Parsers.

* [skip ci] fix setup to fix backend only test

the order in which permission checks are performed on the branch is
slightly different than on master, resulting in a slightly different
error if there are no other mutations the user has access to. By
adding update permissions, we go back to the expected case.

* [skip ci] fix insert geojson tests to reflect new paths

* [skip ci] fix enum test for better error message

* [skip ci] fix header test for better error message

* [skip ci] fix fragment cycle test for better error message

* [skip ci] fix error message for type mismatch

* [skip ci] fix variable path in test

* [skip ci] adjust tests after bug fix

* [skip ci] more tests fixing

* Add hdb_catalog.current_setting abstraction for reading Hasura settings

As the comment in the function’s definition explains, this is needed to
work around an awkward Postgres behavior.

* [skip ci] Update CONTRIBUTING.md to mention Node setup for Python tests

* [skip ci] Add missing Python tests env var to CONTRIBUTING.md

* [skip ci] fix order of result when subscription is run with multiple nodes

* [skip ci] no-op refactor: fix a warning in Internal/Parser.hs

* [skip ci] throw error when a subscription contains remote joins

* [skip ci] Enable easier profiling by hiding AssertNF behind a flag

In order to compile a profiling build, run:

$ cabal new-build -f profiling --enable-profiling

* [skip ci] Fix two warnings

We used to lookup the objects that implement a given interface by filtering all
objects in the schema document.  However, one of the tests expects us to
generate a warning if the provided `implements` field of an introspection query
specifies an object not implementing some interface.  So we use that field
instead.

* [skip ci] Fix warnings by commenting out query plan caching

* [skip ci] improve masking/commenting query caching related code & few warning fixes

* [skip ci] Fixed compiler warnings in graphql-parser-hs

* Sync non-Haskell assets with master

* [skip ci] add a test inserting invalid GraphQL but valid JSON value in a jsonb column

* [skip ci] Avoid converting to/from Map

* [skip ci] Apply some hlint suggestions

* [skip ci] remove redundant constraints from buildLiveQueryPlan and explainGQLQuery

* [skip ci] add NOTEs about missing Tracing constraints in PDV from master

* Remove -fdefer-typed-holes, fix warnings

* Update cabal.project.freeze

* Limit GHC’s heap size to 8GB in CI to avoid the OOM killer

* Commit package-lock.json for Python tests’ remote schema server

* restrict env variables start with HASURA_GRAPHQL_ for headers configuration in actions, event triggers & remote schemas (#5519)

* restrict env variables start with HASURA_GRAPHQL_ for headers definition in actions & event triggers

* update CHANGELOG.md

* Apply suggestions from code review

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* add test for table_by_pk node when roles doesn't have permission to PK

* [skip ci] fix introspection query if any enum column present in primary key (fix #5200) (#5522)

* [skip ci] test case fix for a6450e126b

* [skip ci] add tests to agg queries when role doesn't have access to any cols

* fix backend test

* Simplify subscription execution

* [skip ci] add test to check if required headers are present while querying

* Suppose, table B is related to table A and to query B certain headers are
  necessary, then the test checks that we are throwing error when the header
  is not set when B is queried through A

* fix mutations not checking for view mutability

* [skip ci] add variable type checking and corresponding tests

* [skip ci] add test to check if update headers are present while doing an upsert

* [skip ci] add positive counterparts to some of the negative permission tests

* fix args missing their description in introspect

* [skip ci] Remove unused function; insert missing markNotReusable call

* [skip ci] Add a Note about InputValue

* [skip ci] Delete LegacySchema/ 🎉

* [skip ci] Delete GraphQL/{Resolve,Validate}/ 🎉

* [skip ci] Delete top-level Resolve/Validate modules; tidy .cabal file

* [skip ci] Delete LegacySchema top-level module

Somehow I missed this one.

* fix input value to json

* [skip ci] elaborate on JSON objects in GraphQL

* [skip ci] add missing file

* [skip ci] add a test with subscription containing remote joins

* add a test with remote joins in mutation output

* [skip ci] Add some comments to Schema/Mutation.hs

* [skip ci] Remove no longer needed code from RemoteServer.hs

* [skip ci] Use a helper function to generate conflict clause parsers

* [skip ci] fix type checker error in fields with default value

* capitalize the header keys in select_articles_without_required_headers

* Somehow, this was the reason the tests were failing. I have no idea, why!

* [skip ci] Add a long Note about optional fields and nullability

* Improve comments a bit; simplify Schema/Common.hs a bit

* [skip ci] full implementation of 5.8.5 type checking.

* [skip ci] fix validation test teardown

* [skip ci] fix schema stitching test

* fix remote schema ignoring enum nullability

* [skip ci] fix fieldOptional to not discard nullability

* revert nullability of use_spheroid

* fix comment

* add required remote fields with arguments for tests

* [skip ci] add missing docstrings

* [skip ci] fixed description of remote fields

* [skip ci] change docstring for consistency

* fix several schema inconsistencies

* revert behaviour change in function arguments parsing

* fix remaining nullability issues in new schema

* minor no-op refactor; use isListType from graphql-parser-hs

* use nullability of remote schema node, while creating a Remote reln

* fix 'ID' input coercing & action 'ID' type relationship mapping

* include ASTs in MonadExecuteQuery

* needed for PRO code-base

* Delete code for "interfaces implementing ifaces" (draft GraphQL spec)

Previously I started writing some code that adds support for a future GraphQL
feature where interfaces may themselves be sub-types of other interfaces.
However, this code was incomplete, and partially incorrect.  So this commit
deletes support for that entirely.

* Ignore a remote schema test during the upgrade/downgrade test

The PDV refactor does a better job at exposing a minimal set of types through
introspection.  In particular, not every type that is present in a remote schema
is re-exposed by Hasura.  The test
test_schema_stitching.py::TestRemoteSchemaBasic::test_introspection assumed that
all types were re-exposed, which is not required for GraphQL compatibility, in
order to test some aspect of our support for remote schemas.

So while this particular test has been updated on PDV, the PDV branch now does
not pass the old test, which we argue to be incorrect.  Hence this test is
disabled while we await a release, after which we can re-enable it.

This also re-enables a test that was previously disabled for similar, though
unrelated, reasons.

* add haddock documentation to the action's field parsers

* Deslecting some tests in server-upgrade

Some tests with current build are failing on server upgrade
which it should not. The response is more accurate than
what it was.

Also the upgrade tests were not throwing errors when the test is
expected to return an error, but succeeds. The test framework is
patched to catch this case.

* [skip ci] Add a long Note about interfaces and object types

* send the response headers back to client after running a query

* Deselect a few more tests during upgrade/downgrade test

* Update commit_diff.txt

* change log kind from db_migrate to catalog_migrate (#5531)

* Show method and complete URI in traced HTTP calls (#5525)

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* restrict env variables start with HASURA_GRAPHQL_ for headers configuration in actions, event triggers & remote schemas (#5519)

* restrict env variables start with HASURA_GRAPHQL_ for headers definition in actions & event triggers

* update CHANGELOG.md

* Apply suggestions from code review

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>

* fix introspection query if any enum column present in primary key (fix #5200) (#5522)

* Fix telemetry reporting of transport (websocket was reported as http)

* add log kinds in cli-migrations image (#5529)

* add log kinds in cli-migrations image

* give hint to resolve timeout error

* minor changes and CHANGELOG

* server: set hasura.tracecontext in RQL mutations [#5542] (#5555)

* server: set hasura.tracecontext in RQL mutations [#5542]

* Update test suite

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>

* Add bulldozer auto-merge and -update configuration

We still need to add the github app (as of time of opening this PR)

Afterwards devs should be able to allow bulldozer to automatically
"update" the branch, merging in parent when it changes, as well as
automatically merge when all checks pass.

This is opt-in by adding the `auto-update-auto-merge` label to the PR.

* Remove 'bulldozer' config, try 'kodiak' for auto-merge

see: https://github.com/chdsbd/kodiak

The main issue that bit us was not being able to auto update forked
branches, also:
https://github.com/palantir/bulldozer/issues/66
https://github.com/palantir/bulldozer/issues/145

* Cherry-picked all commits

* [skip ci] Slightly improve formatting

* Revert "fix introspection query if any enum column present in primary key (fix #5200) (#5522)"

This reverts commit 0f9a5afa59.

This undoes a cherry-pick of 34288e1eb5 that was
already done previously in a6450e126b, and
subsequently fixed for PDV in 70e89dc250

* Do a small bit of tidying in Hasura.GraphQL.Parser.Collect

* Fix cherry-picking work

Some previous cherry-picks ended up modifying code that is commented out

* [skip ci] clarified comment regarding insert representation

* [skip ci] removed obsolete todos

* cosmetic change

* fix action error message

* [skip ci] remove obsolete comment

* [skip ci] synchronize stylish haskell extensions list

* use previously defined scalar names in parsers rather than ad-hoc literals

* Apply most syntax hlint hints.

* Clarify comment on update mutation.

* [skip ci] Clarify what fields should be specified for objects

* Update "_inc" description.

* Use record types rather than tuples fo IntrospectionResult and ParsedIntrospection

* Get rid of checkFieldNamesUnique (use Data.List.Extended.duplicates)

* Throw more errors when collecting query root names

* [skip ci] clean column parser comment

* Remove dead code inserted in ab65b39

* avoid converting to non-empty list where not needed

* add note and TODO about the disabled checks in PDV

* minor refactor in remoteField' function

* Unify two getObject methods

* Nitpicks in Remote.hs

* Update CHANGELOG.md

* Revert "Unify two getObject methods"

This reverts commit bd6bb40355.

We do need two different getObject functions as the corresponding error message is different

* Fix error message in Remote.hs

* Update CHANGELOG.md

Co-authored-by: Auke Booij <auke@tulcod.com>

* Apply suggested Changelog fix.

Co-authored-by: Auke Booij <auke@tulcod.com>

* Fix typo in Changelog.

* [skip ci] Update changelog.

* reuse type names to avoid duplication

* Fix Hashable instance for Definition

The presence of `Maybe Unique`, and an optional description, as part of
`Definition`s, means that `Definition`s that are considered `Eq`ual may get
different hashes.  This can happen, for instance, when one object is memoized
but another is not.

* [skip ci] Update commit_diff.txt

* Bump parser version.

* Bump freeze file after changes in parser.

* [skip ci] Incorporate commits from master

* Fix developer flag in server/cabal.project.freeze

Co-authored-by: Auke Booij <auke@tulcod.com>

* Deselect a changed ENUM test for upgrade/downgrade CI

* Deselect test here as well

* [skip ci] remove dead code

* Disable more tests for upgrade/downgrade

* Fix which test gets deselected

* Revert "Add hdb_catalog.current_setting abstraction for reading Hasura settings"

This reverts commit 66e85ab9fb.

* Remove circular reference in cabal.project.freeze

Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io>
Co-authored-by: Auke Booij <auke@hasura.io>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>
Co-authored-by: Brandon Simmons <brandon.m.simmons@gmail.com>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
Co-authored-by: Anon Ray <rayanon004@gmail.com>
Co-authored-by: rakeshkky <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Anon Ray <ecthiender@users.noreply.github.com>
Co-authored-by: Vamshi Surabhi <vamshi@hasura.io>
Co-authored-by: Antoine Leblanc <antoine@hasura.io>
Co-authored-by: Brandon Simmons <brandon@hasura.io>
Co-authored-by: Phil Freeman <phil@hasura.io>
Co-authored-by: Lyndon Maydwell <lyndon@sordina.net>
Co-authored-by: Phil Freeman <paf31@cantab.net>
Co-authored-by: Naveen Naidu <naveennaidu479@gmail.com>
Co-authored-by: Karthikeyan Chinnakonda <chkarthikeyan95@gmail.com>
Co-authored-by: Nizar Malangadan <nizar-m@users.noreply.github.com>
Co-authored-by: Antoine Leblanc <crucuny@gmail.com>
Co-authored-by: Auke Booij <auke@tulcod.com>
2020-08-21 12:27:01 -05:00
Tirumarai Selvan
bcda0cc927
tag release v1.3.1 (#5639) 2020-08-21 18:51:36 +05:30
Karthikeyan Chinnakonda
d4e2955ece
Merge branch 'master' into remote-relationship-validation-bug-5133 2020-08-21 13:53:13 +05:30
Karthikeyan Chinnakonda
a34913f24d update changelog 2020-08-21 13:39:16 +05:30
Karthikeyan Chinnakonda
a3704b4cff
Update CHANGELOG.md
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-08-21 12:51:35 +05:30
Marion Schleifer
2358f6bbae
cli/docs: add missing global flags for seeds command and add new cli commands to docs (#5565) 2020-08-18 17:59:58 +05:30
Marion Schleifer
5c54501f36
docs: add docker networking guide (close #4346) (#4811) 2020-08-18 17:15:37 +05:30
Tirumarai Selvan
e56515934a
tag release v1.3.1-beta.1 (#5604)
backport from beta branch
2020-08-17 17:10:27 +05:30
Karthikeyan Chinnakonda
22b4b285aa add changelog 2020-08-17 16:01:54 +05:30
Rikin Kachhia
37fe910101
Merge branch 'master' into feature/add-identity-frequent-column 2020-08-11 18:45:14 +05:30
Sameer Kolhar
963e1106dc
cli: fix error while creating seed file from table names having upper case alphabets (#5549) 2020-08-10 11:28:03 +05:30
Aravind
2592236858
cli: improve error messages for metadata apply (close #5513) (#5548) 2020-08-10 10:54:00 +05:30
Tirumarai Selvan
f0e1195e42
add log kinds in cli-migrations image (#5529)
* add log kinds in cli-migrations image

* give hint to resolve timeout error

* minor changes and CHANGELOG
2020-08-06 21:18:55 +05:30
Aleksandra Sikora
bf5a416f3e
Merge branch 'master' into feature/add-identity-frequent-column 2020-08-06 12:11:46 +02:00
Rakesh Emmadi
34288e1eb5
fix introspection query if any enum column present in primary key (fix #5200) (#5522) 2020-08-05 19:38:36 +05:30
Rakesh Emmadi
cfd7944849
restrict env variables start with HASURA_GRAPHQL_ for headers configuration in actions, event triggers & remote schemas (#5519)
* restrict env variables start with HASURA_GRAPHQL_ for headers definition in actions & event triggers

* update CHANGELOG.md

* Apply suggestions from code review

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-08-05 18:44:53 +05:30
Tirumarai Selvan
eb80d97b0a
change log kind from db_migrate to catalog_migrate (#5531) 2020-08-05 15:53:14 +05:30
Aleksandra Sikora
b82514d26f Update changelog 2020-08-03 18:45:14 +02:00
Anuj Shah
65e568e6dd
console: handle nested fragments in allowed queries (close #5137) (#5252) 2020-07-31 12:17:52 +02:00
Rikin Kachhia
d1032b2414
console: make add column UX consistent with others (#5486) 2020-07-30 22:54:20 +02:00
Brandon Simmons
b973479631
Merge branch 'master' into 5363-default-bounded-plan-cache 2020-07-29 12:09:21 -04:00
Anon Ray
6c7e63791f
server: add logging for action handlers (#5471)
* server: add logging for action handlers

* add changelog entry

* change action-handler log type from internal to non-internal

* fix action-handler-log name
2020-07-29 19:00:29 +05:30
Brandon Simmons
2a0768d7ad
Merge branch 'master' into 5363-default-bounded-plan-cache 2020-07-28 20:23:26 -04:00
Brandon Simmons
1d4ec4eafb Support only the bounded cache, with default HASURA_GRAPHQL_QUERY_PLAN_CACHE_SIZE of 4000. Closes #5363 2020-07-28 19:02:44 -04:00
Anon Ray
434c78267c
server: log request/response sizes for event triggers (#5463)
* server: log request/response sizes for event triggers

  event triggers (and scheduled triggers) now have request/response size
  in their logs.

* add changelog entry
2020-07-28 10:52:44 -07:00
Brandon Simmons
3a6b2ec744 Bugfix to support 0-size HASURA_GRAPHQL_QUERY_PLAN_CACHE_SIZE
Also some minor refactoring of bounded cache module:
 - the maxBound check in `trim` was confusing and unnecessary
 - consequently trim was unnecessary for lookupPure

Also add some basic tests
2020-07-27 18:40:17 -04:00
Rikin Kachhia
03305bb788
console: update sidebar icons for different action and trigger types (#5445) 2020-07-22 17:10:17 +05:30
Aravind
d8481c3a1c
tag release v1.3.0 (#5423) 2020-07-20 20:38:00 +05:30
Lyndon Maydwell
24592a516b
Pass environment variables around as a data structure, via @sordina (#5374)
* Pass environment variables around as a data structure, via @sordina

* Resolving build error

* Adding Environment passing note to changelog

* Removing references to ILTPollerLog as this seems to have been reintroduced from a bad merge

* removing commented-out imports

* Language pragmas already set by project

* Linking async thread

* Apply suggestions from code review

Use `runQueryTx` instead of `runLazyTx` for queries.

* remove the non-user facing entry in the changelog

Co-authored-by: Phil Freeman <paf31@cantab.net>
Co-authored-by: Phil Freeman <phil@hasura.io>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-07-14 12:00:58 -07:00
Marion Schleifer
28984500fb
docs: add page on created_at / updated_at timestamps (close #2880) (#5223) 2020-07-14 10:03:17 +02:00
Brandon Simmons
66551acac4 Replace idle GC with a custom GC thread
The current idle GC settings seem never to cause idle GC to trigger.
The changes here at least help memory usage to look more reasonable when
running certain benchmarks, and speculatively could partially fix some
memory leaks users have reported.

See ourIdleGC for details.

Referencing canonical memory issue #3388
2020-07-14 11:54:24 +05:30
Karthikeyan Chinnakonda
0ef52292b5
server: call the webhook asynchronously in event triggers (#5352)
* server: call the webhook asynchronosly in event triggers
2020-07-10 22:17:05 +05:30
Tanvi Bhakta
51174ceb0e
console: display line number that error originated from in GraphQL editor (close #4849) (#4942) 2020-07-09 13:58:25 +02:00
sezgi
b26e023483
docs: docs for remote joins (close #4911) (#5132) 2020-07-07 14:47:42 -07:00
Brandon Simmons
6d235be29c Add --disable-delayed-os-memory-return to default rtsopts
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html#rts-flag---disable-delayed-os-memory-return

Referencing canonical memory issue #3388

This is a bit of a mystery. It didn't seem to have any effect in early
repros we had. But now, running an introspection query benchmark I see:

  Running 400 concurrent connections:
    before this change: max residency ~450M
    after: ~140M
    No difference in latency was observed.

  ...BUT: if I give graphql-engine a warmup of 10 requests with 1
  connection (i.e. no concurrency): I see both have a max residency of
  ~140M (i.e. the flag doesn't help)

  ...also interestingly: a single warmup request doesn't seem to have
  any effect (ending RES is still high), 2 requests gets max RES down to
  ~180M.

I suspect many concurrent connections are spraying pinned data over a
bunch of blocks which are then not released to the OS barring memory
pressure. Whatever this is is maybe thread-local or "per-capability" in
some sense...
2020-07-06 11:54:18 -04:00
Aravind
7ae3e55a88
tag release v1.3.0-beta.4 (#5281) 2020-07-04 10:15:37 +05:30
Rakesh Emmadi
2fe353a294
allow array relation connection fields regardless of aggregation permission & change relay endpoint to '/v1beta1/relay' (fix #5218) (#5257)
* fix error when array relation connections are queried, fix #5218

* change relay endpoint to '/v1beta1/relay'

* Update CHANGELOG.md

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-07-03 12:00:35 +05:30
Aravind
cd0e2ec8e8
cli: fix permission issues when creating symlinks on windows, misc fix (close #5111, close #4879) (#5164) 2020-07-03 09:49:09 +05:30
Karthikeyan Chinnakonda
9ef6de5113
server: include additional fields in scheduled trigger webhook payload (#5262)
* include scheduled triggers metadata in the webhook body

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-07-03 06:25:07 +05:30
Karthikeyan Chinnakonda
97b1155bf8
server: unlock scheduled events on graceful shutdown (#4928) 2020-07-02 17:27:09 +05:30
Aleksandra Sikora
53a40bc2be
console: handle generated and identity columns in console data section (close #4552, #4863) (#4761) 2020-07-02 14:32:34 +05:30
Sameer Kolhar
6cd9eb282a
console: add button to cancel one-off scheduled events and cron-trigger events (close #5161) (#5236) 2020-07-02 13:57:53 +05:30
Aleksandra Sikora
af452de754
console: support tracking partitioned tables (close #5071) (#5258) 2020-07-02 13:14:27 +05:30
Vamshi Surabhi
cfffade115 do not use prepared statements for mutations 2020-07-02 10:48:35 +05:30
Anuj Shah
a78f17b79c
console: add code exporter to graphiql (close #4531) (#4652) 2020-07-01 23:16:09 +02:00
Gokul
b9918e0eac
console: allow configuring statement timeout on console RawSQL page (close #4998) (#5045) 2020-07-01 22:06:24 +02:00
sezgi
c4da0a70c5
docs: docs for scheduled triggers (close #4913) (#5141)
Co-authored-by: Marion Schleifer <marion@hasura.io>
2020-07-01 08:44:21 -07:00
Nuno Pato
2daa2c8d57
docs: add Nhost one-click deployment to deployment guides (#5180) 2020-07-01 15:23:40 +02:00
Marion Schleifer
53ef491b6d
docs: update getting started with hasura cloud (close #5206) (#5208) 2020-07-01 14:23:29 +02:00
Brandon Simmons
2b0e3774a3
5087 libpq pool leak (#5089)
Shrink libpq buffers to 1MB before returning connection to pool. Closes #5087

See: https://github.com/hasura/pg-client-hs/pull/19

Also related: #3388 #4077
2020-07-01 09:23:10 +05:30
Auke Booij
bc3d735bf3
server/docs: add instructions to fix loss of float precision in PostgreSQL <= 11 (#5187)
This adds a server flag, --pg-connection-options, that can be used to set a PostgreSQL connection parameter, extra_float_digits, that needs to be used to avoid loss of data on older versions of PostgreSQL, which have odd default behavior when returning float values. (fixes #5092)
2020-06-30 10:39:25 +02:00
Tirumarai Selvan
4de8f912bb
docs: add section for managed databases and related perms (close #1677, close #3783) (#5228) 2020-06-29 18:58:03 +05:30
Brandon Simmons
f9b5b8382c Lower stack chunk size in RTS to reduce thread STACK memory (closes #5190)
This reduces memory consumption for new idle subscriptions significantly
(see linked ticket).

The hypothesis is: we fork a lot of threads per websocket, and some of
these use slightly more than the initial 1K stack size, so the first
overflow balloons to 32K, when significantly less is required.

However: running with `+RTS -K1K -xc` did not seem to show evidence of
any overflows! So it's a mystery why this improves things.

GHC should probably also be doubling the stack buffer at each overflow
or doing something even smarter; the knobs we have aren't so helpful.
2020-06-25 14:42:51 -04:00
Sameer Kolhar
f8b58ea698
console: fix styling of table row content on relationship page (close #4974) (#4979) 2020-06-25 10:13:37 +02:00
Aravind
6486a4f0ec
cli: when applying metadata, assume empty metadata plugin files if they don't exist (close #5163) (#5170) 2020-06-24 16:08:48 +05:30
sezgi
0c34a92cb9
docs: content for Relay docs and example repo (close #4912) (#5150) 2020-06-23 13:08:41 -07:00
Rakesh Emmadi
ea23571049
fix introspection faling when multiple actions defined with PG scalar types (fix #5166) (#5173)
Introspection query is failing with `type info not found for xxxx` error message if multiple actions are defined with reused PG scalars. The fix for the same.
2020-06-23 15:35:54 +05:30
Sameer Kolhar
4293714519
console: add the ability to delete a role in permissions summary page (close #3353) (#4987) 2020-06-19 14:36:40 +05:30
Aleksandra Sikora
f2428e3984
console: allow manual edit of column types and handle array data types (close #2544, #3335, #2583) (#4546) 2020-06-18 12:43:19 +02:00
Tirumarai Selvan
4fb0303f5b
correct entries in changelog (#5124) 2020-06-17 19:25:51 +05:30
Karthikeyan Chinnakonda
d064959ac3
server: drop catalog dependencies when parent column/table is dropped containing a remote relationship (#5119) 2020-06-17 13:18:31 +05:30
Aravind
1f2037947d
cli: manage seed migrations as sql files (close #2431) (#3763) 2020-06-16 17:45:04 +05:30
Sameer Kolhar
13e4edbdf8
cli: add flags --up-sql and --down-sql to migrate create command (close #5026) (#5039) 2020-06-16 11:30:20 +05:30
Brandon Simmons
d862afb4f8
Merge branch 'master' into 4736-security-testing 2020-06-11 13:21:48 -04:00
soorajshankar
cb3252cf07
console: allow configuring session_argument for custom functions (close #4499) (#4922) 2020-06-11 14:38:32 +02:00
Marion Schleifer
2f791366b2
docs: add migration setup guide for v2 migrations (close #4746) (#4898) 2020-06-11 15:44:04 +05:30
Rishichandra Wawhal
63eb311169
console: fix listen update column config selection for event trigger (close #5042) (#5043) 2020-06-10 14:05:43 +02:00
soorajshankar
c8d242dd13
console: provide option to cascade metadata on dependency conflicts (close #1593) (#4846) 2020-06-09 18:26:44 +02:00
soorajshankar
2861beaa20
console: fix enum tables reload data button UI (close #4647) (#4877) 2020-06-09 17:10:26 +02:00
Brandon Simmons
cf8cf4f5aa
Merge branch 'master' into 4736-security-testing 2020-06-09 10:50:35 -04:00
soorajshankar
0df38f0a95
console: respect read-only mode in actions pages (close #4656) (#4764) 2020-06-09 14:23:02 +02:00
Brandon Simmons
5e37350561 Refactor and unit test authentication code paths (closes #4736)
The bulk of changes here is some shifting of code around and a little
parameterizing of functions for easier testing.

Also: comments, some renaming for clarity/less-chance-for-misue.
2020-06-08 13:10:58 -04:00
Aleksandra Sikora
e800e32bdf
console: fix "Cannot read property 'foldable'" runtime error in Browse Rows page (fix #4907) (#5016) 2020-06-08 20:10:39 +05:30
Vamshi Surabhi
2a9bc2354f
add relay modern support (#4458)
* validation support for unions and interfaces

* refactor SQL generation logic for improved readability

* '/v1/relay' endpoint for relay schema

* implement 'Node' interface and top level 'node' field resolver

* add relay toggle on graphiql

* fix explain api response & index plan id with query type

* add hasura mutations to relay

* add relay pytests

* update CHANGELOG.md

Co-authored-by: rakeshkky <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Rishichandra Wawhal <rishi@hasura.io>
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
2020-06-08 17:43:01 +05:30
Xetera
2ada31292f
console: add new sidebar icon that separates enums from tables (fix #4984) (#4992) 2020-06-06 17:17:40 +05:30
surendran82
6572dfcd62
docs: make header common with other hasura.io/ pages (#4957) 2020-06-06 15:42:14 +05:30
Sameer Kolhar
d67757c23a
console: update QueryAnalyzer to support subscriptions (close #2541) (#4965) 2020-06-06 15:23:37 +05:30
Sameer Kolhar
e4e4856085
console: improve error handling for prerelease notification opt-out (#4983) 2020-06-05 15:38:01 +05:30
soorajshankar
1b3f5b8fcf
console: fix regression in editing permissions manually (fix #4683) (#4826) 2020-06-04 20:51:01 +05:30
Ashish Rao
d9cc676790
cli: add --dry-run flag to migrate apply command (close #3128) (#3499) 2020-06-03 16:49:36 +05:30
Rikin Kachhia
a69f47ccf4
install manifests: update all install manifests to enable dev mode by default (close #4599) (#4716) 2020-06-03 15:25:47 +05:30
Aravind
daf098886b
cli: fix bug with squashing event triggers (close #4883) (#4949) 2020-06-03 12:13:05 +05:30
Aravind
edbd9c4f48
cli: load assets from server if cdn is disabled (close #3382) (#3851) 2020-06-03 09:36:23 +05:30
Phil Freeman
cd468761ce
Refactor the WAI shutdownHandler to use an MVar (#4667) 2020-06-02 16:27:14 -05:00
Aravind Shankar
16d01bc908
cli: add support for skipping execution while generating migrations through the migrate REST API (#4475) 2020-06-02 10:41:47 +05:30
soorajshankar
d2aac3732a
console: allow entering big int values (close #3667) (#4775) 2020-05-29 14:40:02 +05:30
soorajshankar
b2fd57a8e2
console: fix visiting view modify page overwriting raw sql content (close #4798) (#4810) 2020-05-29 14:11:02 +05:30
Rikin Kachhia
594b387263
console: add Help button and move About page to settings (#4848) 2020-05-27 21:43:04 +05:30
Tirumarai Selvan
c0d2bc6653
Remote Joins: Create relationships across database and remote schemas (#2392)
add remote joins: Create relationships across database and remote schemas (#2392)

Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>

Co-authored-by: Chris Done <chrisdone@gmail.com>
Co-authored-by: Chris Done <github@chrisdone.com>
Co-authored-by: wawhal <rishichandra.wawhal@gmail.com>
Co-authored-by: Aravind Shankar <aravind@hasura.io>
Co-authored-by: Brandon Simmons <brandon.m.simmons@gmail.com>
Co-authored-by: Rishichandra Wawhal <rishi@hasura.io>
Co-authored-by: Brandon Simmons <brandon@hasura.io>
Co-authored-by: nizar-m <19857260+nizar-m@users.noreply.github.com>
Co-authored-by: Praveen Durairaju <praveend.web@gmail.com>
Co-authored-by: rakeshkky <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Anon Ray <rayanon004@gmail.com>
Co-authored-by: Shahidh K Muhammed <shahidh@hasura.io>
Co-authored-by: soorajshankar <soorajshankar@users.noreply.github.com>
Co-authored-by: Sooraj Sanker <sooraj@Soorajs-MacBook-Pro.local>
Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io>
Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>
2020-05-27 20:32:58 +05:30
rakeshkky
e347ef3e45 fix explain queries with role permissions, fix #4816 2020-05-22 14:40:57 +05:30
gautambt
7ef710974c
docs: fix errors in cognito docs (#4843) 2020-05-22 13:34:41 +05:30
Marion Schleifer
ef78875be6
docs: improve actions documentation (#4743) 2020-05-21 22:57:11 +05:30
gautambt
642c421cc4
docs: add integration guide for AWS Cognito (#4822) 2020-05-21 19:18:46 +05:30
Marion Schleifer
93bb34290e
docs: update troubleshooting section with reference on debugging errors (close #4052) (#4825) 2020-05-21 15:08:38 +05:30
Tirumarai Selvan
9c55940b6d
flush log buffer on exception in mkWaiApp ( fix #4772 ) (#4801)
* flush log buffer on exception in mkWaiApp

* add comment to explain the introduced change

* add changelog
2020-05-21 13:43:44 +05:30
dsandip
a8699bb442
docs: add page for procuring custom docker images and binaries (#4828) 2020-05-21 12:52:18 +05:30
Karthikeyan Chinnakonda
ac3076796c
Allowlist metadata Import bug (#4762)
fix bug which was not allowing the allowlist to be imported
2020-05-20 11:46:26 +05:30
Rikin Kachhia
fb175f21e8
docs: add disabling dev mode to production checklist (#4715) 2020-05-19 13:25:59 +05:30
Tirumarai Selvan
6597e986f2
flush logger on shutdown (#4800)
* flush logger on shutdown

* use rmLoggerSet instead of flushLogStr

* add changelog
2020-05-19 13:19:30 +05:30
Auke Booij
20cbe9cfd3
server: fix an introspection query caching issue (fix #4547) (#4661)
Introspection queries accept variables, but we need to make sure to
also touch the variables that we ignore, so that an introspection
query is marked not reusable if we are not able to build a correct
query plan for it.

A better solution here would be to deal with such unused variables
correctly, so that more introspection queries become reusable.

An even better solution would be to type-safely track *how* to reuse
which variables, rather than to split the reusage marking from the
planning.

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-05-18 14:27:56 +02:00
Rakesh Emmadi
6069cc95e3
docs: add single object mutations docs (close #4622) (#4625) 2020-05-18 16:43:57 +05:30
Dien Vu
6b5a61cff6
docs: a sample Caddyfile for Caddy 2 to enable https section (#4710) 2020-05-18 13:56:02 +05:30
Rikin Kachhia
7a7ff29e08
console: fix undercores not being displayed in raw sql (close #4754) (#4799) 2020-05-18 13:46:08 +05:30
Aleksandra Sikora
78aa346d72
console: fix displaying boolean values in Edit Row tab (#4682) 2020-05-15 14:36:45 +05:30
Aleksandra Sikora
8a2d90cfb1
console: fix bulk selected rows state in data browser (close #4654) (#4673) 2020-05-14 18:55:57 +05:30
Aleksandra Sikora
1cbb765acd
console: fix rows limit display in permissions editor if set to zero (fix #4559) (#4750) 2020-05-14 15:35:00 +05:30
Brandon Simmons
ff62d5e0bf Migrate to GHC 8.10, upgrade dependencies. Closes #4517
This also seems to squash a stubborn space leak we see with
subscriptions (linking to canonical #3388 for reference).

This may also fix some of the "Unexpected exception" websockets
exceptions we are now surfacing (see e.g. #4344)

Also: dev.sh: fix hpc reporting

Initial work on this done by Vamshi.
2020-05-13 19:13:02 -04:00
Tirumarai Selvan
cc8e2ccc78
Scheduled triggers (close #1914) (#3553)
server: add scheduled triggers 

Co-authored-by: Alexis King <lexi.lambda@gmail.com>
Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io>
Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>
2020-05-13 18:03:16 +05:30
Auke Booij
2735d284c1
server: use a new version of graphql-parser-hs to avoid loss of precision (#4741)
Fixes #4733.  See also hasura/graphql-parser-hs#29.
2020-05-13 12:10:46 +02:00
Auke Booij
4d10a610f4
server: fix mishandling of GeoJSON inputs in subscriptions (fix #3239) (#4551)
* Add support for multiple top-level fields in a subscription to improve testability of subscriptions

* Add an internal flag to enable multiple subscriptions

* Add missing call to withConstructorFn in live queries (fix #3239)

Co-authored-by: Alexis King <lexi.lambda@gmail.com>
2020-05-13 10:09:44 +02:00
Marion Schleifer
9a16e25769
docs: add page on query performance (close #2316) (#3693) 2020-05-12 21:20:35 +05:30
Antoine Leblanc
201dcca59a
console: restore partial support for foreign tables (fix #4714) (#4742) 2020-05-12 17:18:35 +05:30
Jigyasu Arya
f993a6c907
console: fix checkbox for forwarding client headers in actions (close #4595) (#4669) 2020-05-12 15:22:23 +05:30
Fadi Khadra
cd1c562073
console: allow modifying default value for PK (close #4075) (#4679) 2020-05-12 11:46:48 +05:30
Anon Ray
3dd72bf66c
docs: fix info on excluding scheme in CORS config (#4685) 2020-05-11 18:56:08 +05:30
Marion Schleifer
d335743e4b
docs: add section on actions vs remote schemas (close #4093) (#4284)
* add section on actions vs remote schemas

* fix language

* add changelog

* update actionvs vs remote schemas

Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-05-11 18:42:58 +05:30
Rikin Kachhia
c2fdcd0471
console: optimise count fetch in data browser (#4692)
* in table-browse-rows, make intelligent count

* update changelog

* simplify getting estimatedCount

* prevent doubled requests

* hide estimated count

* update changelog

* Update CHANGELOG.md

Co-authored-by: Rishichandra Wawhal <rishi@hasura.io>
Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>
2020-05-06 23:37:56 +05:30
Can Taşpınar
9d815598cc
cli: include new commands in help text (fix #4623) (#4626) 2020-05-05 09:21:20 +05:30
surendran82
5998d22231
console: add read replica support section to pro popup (#4118) 2020-05-02 14:41:40 +05:30
Rikin Kachhia
c2df714e5d
docs: update migrations docs (#3403) 2020-04-29 13:30:26 +05:30
Rikin Kachhia
35a50bb28b
docs: update actions documentation (#4586) 2020-04-29 13:16:02 +05:30
Tirumarai Selvan
7f0e47c44e
ready changelog for v1.2 (#4591) 2020-04-29 11:56:19 +05:30
Shraddha Agrawal
88685736c7
Merge branch 'master' into init-current-directory 2020-04-28 18:35:00 +05:30
Shraddha Agrawal
d95d6378e8
cli: add support for servers with self-signed certs (fix #4564) (#4582)
Co-Authored-By: Marion Schleifer <marion@hasura.io>
2020-04-28 17:29:57 +05:30
Shraddha Agrawal
1002d20a0a
Merge branch 'master' into init-current-directory 2020-04-28 02:27:23 +05:30
Marion Schleifer
3ba344befb
docs: data validations (close #4085) (#4260) 2020-04-28 00:32:15 +05:30
Auke Booij
ee7c7b1672
server: allow computed fields to have access to Hasura's session variables (fix #3846) (#4486)
* Allow computed fields to have access to Hasura's session variables

* Inform about session args for computed fields in changelog and docs

* Add tests for session arguments for computed fields (and the respective errors)

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
2020-04-27 17:07:03 +02:00
Aravind
98906e6c5f
Merge branch 'master' into init-current-directory 2020-04-27 16:51:16 +05:30
Rishichandra Wawhal
74563402d4
console: update and freeze graphiql explorer to support operation transforms (#4567) 2020-04-27 16:46:09 +05:30
Aleksandra Sikora
4746be2018
console: fix table columns type comparision during column edit (close #4125) (#4393) 2020-04-27 16:13:22 +05:30
Aleksandra Sikora
79a3b6131d
console: make graphiql panel use whole height (#4553) 2020-04-27 14:32:39 +05:30
Shraddha Agrawal
9c06c2998a update CHANGELOG.md 2020-04-26 22:35:39 +05:30
Shraddha Agrawal
38529b3960
cli: remove irrelevant flags from init command (close #4508) (#4549) 2020-04-25 11:33:13 +05:30
Shahidh K Muhammed
41d3595aab
tag release v1.2.0-beta.5 (#4555) 2020-04-24 19:56:51 +05:30
Antoine Leblanc
66e18b7dee
console: support materialized views (close #91) (#4270) 2020-04-24 15:13:42 +05:30
Rakesh Emmadi
d52bfcda4e
backend only insert permissions (rfc #4120) (#4224)
* move user info related code to Hasura.User module

* the RFC #4120 implementation; insert permissions with admin secret

* revert back to old RoleName based schema maps

An attempt made to avoid duplication of schema contexts in types
if any role doesn't possess any admin secret specific schema

* fix compile errors in haskell test

* keep 'user_vars' for session variables in http-logs

* no-op refacto

* tests for admin only inserts

* update docs for admin only inserts

* updated CHANGELOG.md

* default behaviour when admin secret is not set

* fix x-hasura-role to X-Hasura-Role in pytests

* introduce effective timeout in actions async tests

* update docs for admin-secret not configured case

* Update docs/graphql/manual/api-reference/schema-metadata-api/permission.rst

Co-Authored-By: Marion Schleifer <marion@hasura.io>

* Apply suggestions from code review

Co-Authored-By: Marion Schleifer <marion@hasura.io>

* a complete iteration

backend insert permissions accessable via 'x-hasura-backend-privilege'
session variable

* console changes for backend-only permissions

* provide tooltip id; update labels and tooltips;

* requested changes

* requested changes

- remove className from Toggle component
- use appropriate function name (capitalizeFirstChar -> capitalize)

* use toggle props from definitelyTyped

* fix accidental commit

* Revert "introduce effective timeout in actions async tests"

This reverts commit b7a59c19d6.

* generate complete schema for both 'default' and 'backend' sessions

* Apply suggestions from code review

Co-Authored-By: Marion Schleifer <marion@hasura.io>

* remove unnecessary import, export Toggle as is

* update session variable in tooltip

* 'x-hasura-use-backend-only-permissions' variable to switch

* update help texts

* update docs

* update docs

* update console help text

* regenerate package-lock

* serve no backend schema when backend_only: false and header set to true

- Few type name refactor as suggested by @0x777

* update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* fix a merge bug where a certain entity didn't get removed

Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Rishichandra Wawhal <rishi@hasura.io>
Co-authored-by: rikinsk <rikin.kachhia@gmail.com>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-04-24 14:40:53 +05:30
Rakesh Emmadi
6f100e0009
improve debug information in actions errors response (close #4031) (#4432)
* config options for internal errors for non-admin role, close #4031

More detailed action debug info is added in response 'internal' field

* add docs

* update CHANGELOG.md

* set admin graphql errors option in ci tests, minor changes to docs

* fix tests

Don't use any auth for sync actions error tests. The request body
changes based on auth type in session_variables (x-hasura-auth-mode)

* Apply suggestions from code review

Co-Authored-By: Marion Schleifer <marion@hasura.io>

* use a new sum type to represent the inclusion of internal errors

As suggested in review by @0x777
-> Move around few modules in to specific API folder
-> Saperate types from Init.hs

* fix tests

Don't use any auth for sync actions error tests. The request body
changes based on auth type in session_variables (x-hasura-auth-mode)

* move 'HttpResponse' to 'Hasura.HTTP' module

* update change log with breaking change warning

* Update CHANGELOG.md

Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-04-24 13:25:51 +05:30
Rakesh Emmadi
b51a8ece4d
fix creating relationships for custom object types with fields reusing Postgres scalars (fix #4447) (#4455)
* fix creating relationships for custom object types with fields reusing Postgres scalars, close #4447

* fix changelog entry

* rearrange entries

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-04-24 10:58:42 +05:30
Rishichandra Wawhal
2e7e54fc2e
console: preserve the returning field set in a derived action (#4530) 2020-04-23 18:27:42 +05:30
Marion Schleifer
b3d814e56f
docs: add mapping of hasura operators - pg operators (close #4056) (#4502) 2020-04-23 17:36:54 +05:30
Shraddha Agrawal
eb7acdbd71
docs: add reference docs for cli (fix #4327) (#4408)
Co-Authored-By: Marion Schleifer <marion@hasura.io>
2020-04-23 11:27:45 +05:30
Shraddha Agrawal
75d35ac2f6
cli: add suport for .env file (fix #4129) (#4454) 2020-04-23 08:17:51 +05:30
Aleksandra Sikora
447aac3692
console: allow adding post-update checks in update permissions (close #4142) (#4313) 2020-04-22 17:55:10 +05:30
Rakesh Emmadi
e983b1596e
fix recreating action's permission, fix #4377 (#4495)
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-04-22 11:29:14 +05:30
Rikin Kachhia
20c3beeea0
console: prevent trailing spaces while creating new role (close #3871) (#4497) 2020-04-21 21:36:21 +05:30
Auke Booij
b2ad3ee2ee
server: avoid integer overflows (fix #576) (fix #4368) (#4435)
* Update graphql-parser-hs and hence use `Scientific` directly

The new version of graphql-parser-hs returns Scientific and Integer
rather than Double and Int32, respectively.  So we now need to do less
work in graphql-engine, and we can process larger numbers.

In practice, this means that when inserting a bigint, we no longer
need to specify the inserted integer as text.  This is also
represented in the updated tests.

* Generate int overflow error on insert

* Document bigint insertion support in changelog
2020-04-21 15:56:15 +02:00
Rikin Kachhia
a9bca2383f
console miscellaneous fixes (#4433)
* format row count in data browser for readablity
* move pre-release notification tooltip msg to top
* remove extra localPresets key from migrations (close #3976)
* make nullable and unique labels for columns clickable in insert and modify
* fix row delete for relationships in data browser
2020-04-21 18:41:44 +05:30
Auke Booij
cd2e09c6ad
server: add support for timestamps without timezone to graphql-engine (fix #1217) (#4452)
* Add support for timestamps without timezone to graphql-engine

* Add tests for aggregations on timestamps without timezones
2020-04-21 14:30:48 +02:00
Aleksandra Sikora
386786f57c
console: fix columns reordering for relationship tables in data browser (#4483) 2020-04-21 16:46:24 +05:30
Marco Pegoraro
dc88d1727b
Add API docs for webhook_from_env (#4462)
* Add API docs for `webhook_from_env`

fixes #4419

* add changelog

* Fixes PR required change

* Improve create_trigger api doc

* Update docs/graphql/manual/api-reference/schema-metadata-api/event-triggers.rst

Co-Authored-By: Marion Schleifer <marion@hasura.io>

* Update docs/graphql/manual/api-reference/schema-metadata-api/event-triggers.rst

Co-Authored-By: Marion Schleifer <marion@hasura.io>

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
Co-authored-by: Marion Schleifer <marion@hasura.io>
2020-04-21 14:04:39 +05:30
Toan Nguyen
5f84669568
server: support single $ as root json path (#4482)
* support single $ json path

* support sql query with root json path

* update changelog

* update changelog

Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-04-21 13:36:11 +05:30
Auke Booij
be28a3b95c
Move changelog entry to the right section (#4493) 2020-04-21 12:06:30 +05:30
Jigyasu Arya
e991180f43
console: change react ace editor theme to eclipse (close #4437) (#4443) 2020-04-20 18:12:45 +05:30
Toan Nguyen
15c0ebf1ef
allow special characters in json path's property name (close #3890) (#3892)
* allow underscore prefix and special characters in json path

* server: Rewrite/refactor JSONPath parser

The JSONPath parser is also rewritten, the previous implementation
was written in a very explicitly “recursive descent” style, but the whole
point of using attoparsec is to be able to backtrack! Taking advantage
of the combinators makes for a much simpler parser.

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
Co-authored-by: Alexis King <lexi.lambda@gmail.com>
Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>
Co-authored-by: Shahidh K Muhammed <shahidh@hasura.io>
2020-04-20 14:25:09 +05:30
ShahAnuj2610
bf719cbf34
console: surround string type column default value with quotes (close #4371) (#4423) 2020-04-17 21:32:13 +05:30
Auke Booij
b2d65d16d3
server: _inc for non-integer numeric types (fix #3573) (#4429)
* Allow `_inc` to update other numeric types in addition to integers

* Add support for PostgreSQL's `money` field type

* Add support for _inc on money types

* Add note of generalized `_inc` support to changelog
2020-04-17 11:32:09 +02:00
Aleksandra Sikora
550de3e8a0
console: add possible undefined check (#4445) 2020-04-17 11:58:47 +05:30
Tirumarai Selvan
c0a51d5d05
small fixes (#4430) 2020-04-16 16:39:01 +05:30
Karthikeyan Chinnakonda
5116e16e18
server(actions): add support for queries (close #4032) (#4309)
* add support for action queries

* a new parameter `type` is added in the ArgumentDefinition, its value
  can be either `query` or `mutation` and it defaults to the latter

* throw 400 when a query action is tried to explain

* update the actions docs to include query actions

* refactor the ToJSON and ToOrdJSON of ActionDefinition

Co-authored-by: Rishichandra Wawhal <rishi@hasura.io>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-04-16 12:55:19 +05:30
Karthikeyan Chinnakonda
a26bc80496
accept a new argument claims_namespace_path in JWT config (#4365)
* add new optional field `claims_namespace_path` in JWT config

* return value when empty array is found in executeJSONPath

* update the docs related to claims_namespace_path

* improve encodeJSONPath, add property tests for parseJSONPath

* throw error if both claims_namespace_path and claims_namespace are set

* refactor the Data.Parser.JsonPath to Data.Parser.JSONPathSpec

* update the JWT docs

Co-Authored-By: Marion Schleifer <marion@hasura.io>

Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: rakeshkky <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Tirumarai Selvan <tirumarai.selvan@gmail.com>
2020-04-16 12:15:21 +05:30
Aleksandra Sikora
72b2301bc0
console: persist page size in data browser (#4323) 2020-04-15 20:38:37 +05:30
Rakesh Emmadi
dc31b835e1
allow reusing Postgres scalars in custom types & actions (close #4125) (#4333)
* allow re-using Postgres scalars in custom types, close #4125

* add pytest tests

* update CHANGELOG.md

* add a doc pointer for reusable postgres scalars

* document the code, improve the CHANGELOG entry

As suggested by @lexi-lambda

* a bit more source code documentation, use WriterT to collect reused scalars

* Apply suggestions from code review

Co-Authored-By: Marion Schleifer <marion@hasura.io>

* improve doc for Postgres scalars in custom graphql types

* Add some more references to Note; fix Haddock syntax

Also a few very minor tweaks:
  * Use HashSet instead of [] more pervasively
  * Export execWriterT from Hasura.Prelude
  * Use pattern guards in multi-way if
  * Tweak a few names/comments

* Pull buildActions out of buildAndCollectInfo, use buildInfoMap

* Tweak wording in documentation

* incorporate changes in console code

* account Postgres scalars for action input arguments

-> Avoid unnecessary 'throw500' in making action schema

* Review changes

Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Alexis King <lexi.lambda@gmail.com>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>
2020-04-15 17:33:13 +05:30
Aravind Shankar
21a4dff993
cli(squash): add set_table_is_enum metadata type (close #4394) (#4395) 2020-04-14 16:39:41 +05:30
Karthikeyan Chinnakonda
a23c633bd7
unlock inflight events when gracefully shutdown (close #3548) (#4214)
* unlock the locked-events during graceful shutdown

* Some events can still be delivered multiple times due to
  ungraceful shutdown

* modify the preparevents documentation

* modify the prepareEvents doc

* update changelog

Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-04-14 11:31:50 +05:30
ShahAnuj2610
cba85cd4a8
console: redirect to /:table/browse from /:table (close #4330) (#4374) 2020-04-13 19:52:32 +05:30
Rishichandra Wawhal
61d58906e7
console: recover from SDL parse in actions type definition editor (fix #4385) (#4389) 2020-04-13 18:22:07 +05:30
Rishichandra Wawhal
9b66724b41
console, cli, cli-ext: query support for actions (close #4032) (#4318)
Co-authored-by: Aravind Shankar <aravind@hasura.io>
2020-04-13 15:51:53 +05:30
Tirumarai Selvan
76fbe90b60
type is not required for jwk_url in JWT config (#4334)
* type is not required for jwk_url

* remove type from JWTConfig

* Omit type field in JWTConfig serialization if jwk_url is provided

* remove type from jwk_url test suite

* add changelog

* fix docs with new format

Co-authored-by: Alexis King <lexi.lambda@gmail.com>
2020-04-10 19:25:59 +05:30
Brandon Simmons
8b85c86ebe Fix erroneous error logging in WebSocket.onStop 2020-04-10 12:55:43 +05:30
Aravind Shankar
53e4f994d2
cli: event trigger retry_conf support to squash (close #4296) (#4324) 2020-04-10 08:22:41 +05:30
nizar-m
0e666a9203
Fix catalog version for v1.1.1 (close #4354) (#4355)
* Fix catalog version for v1.1.1

* Remove entries of removed tables from hdb_catalog

While downgrading catalog version from 32 -> 31, not removing entries
in hdb_table and hdb_relationship for the tables that are removed in
the downgrade, results in incosistent schema, when the server with
downgraded version is started. This should probably be handled in
a better fashion.

With the change in this commit, the server is able to successfully
start with downgraded catalog version 31.

* Test downgrade command along with upgrade tests
2020-04-09 19:57:59 -05:00
Rikin Kachhia
c08171ac89
console: set coookie policy for API calls to same-origin (#4336) 2020-04-09 16:03:29 +05:30
Tirumarai Selvan
ebb3bb3910
unlock event if event trigger info is not found in cache (#4213)
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-04-09 12:03:33 +05:30
Aravind Shankar
21b61af109
cli: allow customization of server api paths (close #4016) (#4174) 2020-04-08 16:29:21 +05:30
Francisco Sales
b02cd336d0
server: Don’t expose DB implementation in error message (#4294) 2020-04-08 02:36:56 -05:00
Aravind Shankar
325771e406
cli: remove migration files if api returns error (close #4312) (#4319)
When using console from CLI and a migration is created, the files are written first and an API call is made to Hasura to execute that migration. There was a bug which caused this file to remain when the API call to Hasura failed. This commit fixes the bug by deleting the files if Hasura API call fails and propagates the error to console.
2020-04-08 10:54:47 +05:30
Aravind Shankar
d5e61716f8
cli: add support for multiple versions of plugin (close #4105) (#4135) 2020-04-07 19:42:14 +05:30
Aleksandra Sikora
f615efd37d
console: decouple row fetch and count queries in data browser (close #3793) (#4269) 2020-04-07 16:47:13 +05:30
Aleksandra Sikora
ec56b0160b
console: persist columns order / collapsed state in data browser (close #3390) (#3753) 2020-04-06 16:03:45 +05:30
Rikin Kachhia
7060997660
console: fix clone permission migrations (close #3985) (#4277) 2020-04-03 14:39:03 +05:30
Rishichandra Wawhal
f75e4e6ad0
cli: add assetsPath in unversioned console html (close #4274) (#4275) 2020-04-03 09:04:49 +05:30
Antoine Leblanc
5b54f9d766
server: add support for webhook connection expiration (#4196)
* add expiry time to webhook user info

This also adds an optional message to webhook errors: if we fail to
parse an expiry time, we will log a warning with the parse error.

* refactored Auth

This change had one main goal: put in common all expiry time
extraction code between the JWT and WebHook parts of the
code. Furthermore, this change also moves all WebHook specific code to
its own module, similarly to what is done for JWT.

* Remove dependency on string-conversions in favor of text-conversions

string-conversions silently uses UTF8 instead of being explicit about
it, and it uses lenientDecode when decoding ByteStrings when it’s
usually better to reject invalid UTF8 input outright. text-conversions
solves both those problems.

Co-authored-by: Alexis King <lexi.lambda@gmail.com>
2020-04-02 19:00:13 -05:00
Rishichandra Wawhal
8bcff193d9
console: allow customising graphql field names for columns of views (close #3689) (#4255) 2020-04-02 13:51:56 +05:30
Lyndon Maydwell
85b7c552af
Allow field names to start with reserved keywords (fix #3597) (#3927) 2020-04-02 00:27:43 -05:00
Anurag Goel
d7b94f467b
docs: add One-Click Render deployment guides (close #3683) (#4209) 2020-04-01 15:25:28 +05:30
Brandon Simmons
58ba01f31c
Improve performance of replace_metadata on tracking tables. Closes #3802 (#4182)
* Improve performance of replace_metadata on tracking tables. Closes #3802

On the 1000 table track case this went from >20min to 8 seconds, the
bottleneck being all the former calls (for each table) to
buildSchemaCache.

* refactor replace metadata

Only save metadata in hdb_catalog schema and build schema cache (strictly)

* remove `withBuildSchemaCache` function

Co-authored-by: rakeshkky <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-03-31 19:30:12 +05:30
Vamshi Surabhi
e33f3a8468
split current 1.2 changelog across all 1.2 beta releases (#4253)
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
2020-03-31 19:14:09 +05:30
Shahidh K Muhammed
5bc95d2b7a
add workflow automations, update changelog (#4079)
Co-authored-by: Aravind Shankar <aravind@hasura.io>
2020-03-29 12:01:30 +05:30
Vamshi Surabhi
114268910a
Merge branch 'master' into issue-4035-check-computed-field 2020-03-27 14:12:59 +05:30
Gabriel Sobrinho
b53533c381
console: disable selecting roles without permissions for bulk actions (close #4178) (#4195) 2020-03-26 21:13:34 +05:30
Rikin Kachhia
84c6b00c84
console: show remote shema / event trigger intro sections always (#4044) 2020-03-26 18:45:37 +05:30
Rakesh Emmadi
fd6535b861
option to reload remote schemas in 'reload metadata' (fix #3792, #4117) (#4141)
* option to reload remote schemas in 'reload_metadata' API, fix #3792, #4117

* add tests

* update changelog

* update docs api reference for 'reload_metadata'

* send reload_remote_schemas: true with the reload_metadata query

* add reload remote schemas checkbox; minor refactor

* Add a Note about cache invalidation and inconsistent metadata objects

* Small pluralization agreement tweak in docs

* Remove duplicated line in CHANGELOG

* no-op refactor

Suggested by Alexis @lexi-lambda

* Update server/src-lib/Hasura/RQL/DDL/RemoteSchema.hs

As suggested by @lexi-lambda

Co-Authored-By: Alexis King <lexi.lambda@gmail.com>

* fix tests

* requested changes

* comment 'replaceMetadataToOrdJson' unit tests

Co-authored-by: Rishichandra Wawhal <rishi@hasura.io>
Co-authored-by: Alexis King <lexi.lambda@gmail.com>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-03-26 17:22:20 +05:30
Shahidh K Muhammed
4ee67bf7a1 Merge branch 'master' into issue-3969 2020-03-26 11:13:03 +05:30
Shahidh K Muhammed
89a49f001b add changelog 2020-03-26 11:08:24 +05:30
Aravind Shankar
09e0e2f2a5
cli: fix init command to generate correct config (fix #4036) (#4038) 2020-03-26 08:54:05 +05:30
Aravind Shankar
13e8a3c010
cli: send command path in telemetry data (#4095) 2020-03-26 08:38:54 +05:30
Aravind Shankar
c0902a57d3 fix merge conflict 2020-03-25 18:32:48 +05:30
Aravind Shankar
0a0dfd4768
ci: fix deploy script to upload github release assets (#4103) 2020-03-25 16:20:59 +05:30
Aravind Shankar
41757b5f7f
cli: fix parse error returned on console api (close #4126) (#4152) 2020-03-25 16:12:39 +05:30
Aravind Shankar
8a81891aef update CHANGELOG.md 2020-03-25 15:58:14 +05:30
Rishichandra Wawhal
ac9e1b90d4
console shared modules: fix parsing of wrapped types in SDL (close #4099) (#4167) 2020-03-25 15:17:29 +05:30
Tirumarai Selvan
f0d0547900
add docs for redeliver_event api (fix #4176) (#4177) 2020-03-24 18:45:25 +05:30
Rakesh Emmadi
c12dd1bae1
Merge branch 'master' into issue-4035-check-computed-field 2020-03-23 10:44:48 +05:30
Rakesh Emmadi
f80b69e931
few actions' fixes and improvements (fix #3977, #4061 & close #4021) (#4109)
* add 'ID' to default scalars for custom types, fix #4061

* preserve cookie headers from sync action webhook, close #4021

* validate action webhook response to conform to output type, fix #3977

* fix tests, don't run actions' tests on PG version < 10

* update CHANGELOG.md

* no-op refactor, use types from http-network more

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-03-20 12:16:45 +05:30
Rishichandra Wawhal
1155807b7a
console: action relationship page improvements (fix #4062, #4130) (#4133) 2020-03-19 18:32:52 +05:30
Rikin Kachhia
3c6e1a39e8
console: unique filenames for exported metadata (close #1772) (#4106)
Generate metadata filenames such as: hasura_metadata_2020_03_13_18_10_31_711.json
2020-03-18 20:27:18 +05:30
Jigyasu Arya
e93179fae0
console: add design system base ui components (#3866) 2020-03-18 17:52:29 +05:30
Brandon Simmons
4d2dbe68fa
Use AssertNF for leak prophylaxis when doing mutable writes. Closes #3937 (#4097)
Writing to a mutable var is a particularly potent source of leaks since
it mostly defeats GHC's analysis. Here we add assertions to all mutable
writes, and fix a couple spots where we wrote some thunks to a mutable
var (compiled with -O2).

Some of these thunks were probably benign, but others looked liked they
might be retaining big args. Didn't do much analysis, just fixed.

Actually pretty happy with how easy this was to use and as a diagnostic,
once I sorted out some issues. We should consider using it elsewhere,
and maybe extending so that we can use it with tests, enable when
`-fenable-assertsions` etc.

Relates #3388

Also simplified codepaths that use `AcceptWith`, which has unnecessary
`Maybe` fields.
2020-03-17 20:31:22 -05:00
Rikin Kachhia
28e2b2d51d
docs: bump MarkupSafe version (#4102) 2020-03-13 13:58:54 +05:30
Rikin Kachhia
4064cd2db6
console: track runtime errors (#4083) 2020-03-13 13:22:06 +05:30
rakeshkky
889f375ae2 Merge branch 'master' into issue-4035-check-computed-field
Resolve Conflicts:
	CHANGELOG.md
2020-03-12 10:21:43 +05:30
Aleksandra Sikora
315c399ba3
console: add dropdown for enum fields in insert/edit row pages (close #3748) (#3810) 2020-03-12 00:02:26 +05:30
Rishichandra Wawhal
029bda1bd3
console: disable renaming action relationships (#4072) 2020-03-11 22:10:46 +05:30
Aleksandra Sikora
36c92db991
console: add multi select in browse rows to allow bulk delete (close #1739) (#3735) 2020-03-11 18:55:36 +05:30
Aleksandra Sikora
71240f310d
console: manage postgres check constraints (#3881)
* Add check constraints to create table view

* Add input field for check in new column row

* Minor changes

* Remove check input field

* Add tooltip

* Move tooltips to Common/

* Refactor tooltips

* Move expandedContent to separate component

* Add quotation marks for constraint name

* update changelog

* Revert "update changelog"

This reverts commit 6e6e4835d9.

* update changelog

* Update CHANGELOG.md

Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
Co-authored-by: rikinsk <rikin.kachhia@gmail.com>
2020-03-11 17:50:52 +05:30
Rakesh Emmadi
996ce928d4
auto-include __typename field in custom types' objects (fix #4063) (#4074)
* include `__typename` field in custom types' objects, fix #4063

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-03-11 17:09:00 +05:30
Marion Schleifer
f97937c912
docs: add metadata descriptions to actions docs (#4082)
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
2020-03-11 15:39:25 +05:30
rakeshkky
bb2b631fae Merge branch 'master' into issue-4035-check-computed-field
Resolve Conflicts:
	CHANGELOG.md
2020-03-11 12:09:19 +05:30
Brandon Simmons
c425b554b8
server(events): utilize proper backpressure scheme (close #3839) (#4013)
* Test working through a backlog of change events

* Use a slightly more performant threaded http server in eventing pytests

This helped locally but not on CI it seems...

* Rework event processing for backpressure. Closes #3839

With loo low `HASURA_GRAPHQL_EVENTS_FETCH_INTERVAL` and/or slow webhooks
and/or too small `HASURA_GRAPHQL_EVENTS_HTTP_POOL_SIZE` we might
previously check out events from the DB faster than we can service them,
leading to space leaks, weirdness, etc.

Other changes:
- avoid fetch interval sleep latency when we previously did a non-empty
  fetch
- prefetch event batch while http pool is working
- warn when it appears we can't keep up with events being generated
- make some effort to process events in creation order so we don't
  starve older ones.

ALSO NOTE: HASURA_GRAPHQL_EVENTS_FETCH_INTERVAL changes semantics
slightly, since it only comes into play after an empty fetch. The old
semantics weren't documented in detail, so I think this is fine.
2020-03-11 11:57:31 +05:30
rakeshkky
27d1401ee6 update CHANGELOG.md 2020-03-11 11:02:58 +05:30
Shahidh K Muhammed
36fbf0a634
update changelog to include all commits for 1.2 (#4066) 2020-03-09 16:03:02 +05:30
Shahidh K Muhammed
da54244115
add changelog file to the repo and update pr template (#3946)
* add changelog file to the repo and update pr template

* update codeowner for changelog file

* Update PULL_REQUEST_TEMPLATE.md

* Update CHANGELOG.md

Co-authored-by: Tirumarai Selvan <tirumarai.selvan@gmail.com>
2020-03-02 16:09:56 +05:30