Commit Graph

371 Commits

Author SHA1 Message Date
Shraddha Agrawal
d5ae48c14e update help text and docs for init command 2020-04-27 10:03:10 +05:30
Shraddha Agrawal
38529b3960
cli: remove irrelevant flags from init command (close #4508) (#4549) 2020-04-25 11:33:13 +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
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
Avi Moondra
a9051b3e59
fix typo in jsonb query filters to match operator api (#4505)
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-04-22 11:53:25 +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
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
Rishichandra Wawhal
3603af19d0
docs: update sample action handler URLs (#4450) 2020-04-20 11:48:00 +05:30
Marion Schleifer
6b2d525dd6
docs: fix bug in query actions docs (#4434) 2020-04-16 19:30:03 +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
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
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
Tirumarai Selvan
24c072939b
docs: add json path example in query docs (#4087) 2020-04-07 12:46:10 +05:30
Shahidh K Muhammed
b2461c5899
server: add more info about server to config api (#3412)
Co-authored-by: Toan Nguyen <hgiasac@gmail.com>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-04-06 10:23:58 +05:30
Karthikeyan Chinnakonda
a07a87066e
make the arguments field optional in ActionDefinition (#4285) 2020-04-03 19:21:52 -05:00
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
Anurag Goel
d7b94f467b
docs: add One-Click Render deployment guides (close #3683) (#4209) 2020-04-01 15:25:28 +05:30
Tirumarai Selvan
df0e8b619c
docs: add statement to grant hasura permissions for PG functions (#4238) 2020-03-30 13:48:13 +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
Tirumarai Selvan
f0d0547900
add docs for redeliver_event api (fix #4176) (#4177) 2020-03-24 18:45:25 +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
Phil Freeman
979dedccc2
docs: update permission.rst for check constraint api (#4124)
* Update permission.rst for check constraint API

* Apply suggestions from code review

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

* update UpdatePermission

Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Tirumarai Selvan <tiru@hasura.io>
2020-03-17 14:52:37 +05:30
Rikin Kachhia
28e2b2d51d
docs: bump MarkupSafe version (#4102) 2020-03-13 13:58:54 +05:30
Marion Schleifer
e031e99d73
docs: replace doc with ref (close #4054) (#4068) 2020-03-12 01:12:36 +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
Tirumarai Selvan
308482c529
docs: remove spaces from action handler templated url (#4081) 2020-03-11 14:24:12 +05:30
Tim Whitbeck
1f51dbbe2d
docs: fix typo in action example (#4064)
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
2020-03-11 12:16:28 +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
Marion Schleifer
1436f310d5
docs: add latest prerelease build info (close #4041) (#4048) 2020-03-09 22:26:59 +05:30
Dmitry Minkovsky
b6780e8a15
cli: fix typo in cli example for squash (fix #4047) (#4049) 2020-03-09 15:19:00 +05:30
Marion Schleifer
ab54e47335
docs: add note on pg versions for actions (#4034) 2020-03-09 14:27:29 +05:30
Praveen Durairaju
55ea3ea4a7
docs: avoid redirect, update title tag suffix (#4030) 2020-03-06 12:47:20 +05:30
Rikin Kachhia
8bbdbb037b
docs: correct version info for config v2 section (close #4019) (#4026) 2020-03-05 15:58:35 +05:30
Praveen Durairaju
2c13ba5a28
docs: fix broken link (#4005) 2020-03-03 23:18:45 +05:30
Rikin Kachhia
80a239c735
docs: update connecting actions page title (#4008) 2020-03-03 17:44:28 +05:30
Rikin Kachhia
08bc778bf1
update actions docs (#4007) 2020-03-03 17:32:40 +05:30
Sean Grove
90f46c0e23
docs: add AuthGuardian JWT guide (#3958) 2020-03-02 18:19:56 +05:30
Praveen Durairaju
5387ba0c44
revert auth heading changes in docs (#3992) 2020-03-02 16:54:19 +05:30
Praveen Durairaju
f01c19d580
fix docs 404 (#3979) 2020-02-28 12:47:50 +05:30
Praveen Durairaju
865b150c82
noop: replace subdomain links with subpath (#3869)
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
2020-02-27 15:43:07 +05:30
Luis Fernando
85dae9be9f
docs: add reference to QualifiedTable to table args (#3880) 2020-02-27 15:32:46 +05:30
Rikin Kachhia
87706158b1
update actions docs (#3953) 2020-02-25 21:00:00 +05:30
Rikin Kachhia
bea1de28f3
update docs (#3947)
* update catalogue downgrade docs
* update CLI doownload link for actions
2020-02-25 14:59:14 +05:30
Rikin Kachhia
048c1de414
docs: add actions docs (#3907) 2020-02-24 21:49:14 +05:30
Rikin Kachhia
0805719523
docs: remove wip actions docs (#3909)
* revert actions docs
2020-02-19 17:49:35 +05:30
Rikin Kachhia
b0d180efa2
docs: use install manifests from stable branch (#3906)
* update docs install manifests to use stable branch

* change the link to master at some more places

Co-authored-by: Shahidh K Muhammed <muhammedshahid.k@gmail.com>
2020-02-19 17:13:08 +05:30
Vamshi Surabhi
b84db36ebb
allow custom mutations through actions (#3042)
* basic doc for actions

* custom_types, sync and async actions

* switch to graphql-parser-hs on github

* update docs

* metadata import/export

* webhook calls are now supported

* relationships in sync actions

* initialise.sql is now in sync with the migration file

* fix metadata tests

* allow specifying arguments of actions

* fix blacklist check on check_build_worthiness job

* track custom_types and actions related tables

* handlers are now triggered on async actions

* default to pgjson unless a field is involved in relationships, for generating definition list

* use 'true' for action filter for non admin role

* fix create_action_permission sql query

* drop permissions when dropping an action

* add a hdb_role view (and relationships) to fetch all roles in the system

* rename 'webhook' key in action definition to 'handler'

* allow templating actions wehook URLs with env vars

* add 'update_action' /v1/query type

* allow forwarding client headers by setting `forward_client_headers` in action definition

* add 'headers' configuration in action definition

* handle webhook error response based on status codes

* support array relationships for custom types

* implement single row mutation, see https://github.com/hasura/graphql-engine/issues/3731

* single row mutation: rename 'pk_columns' -> 'columns' and no-op refactor

* use top level primary key inputs for delete_by_pk & account select permissions for single row mutations

* use only REST semantics to resolve the webhook response

* use 'pk_columns' instead of 'columns' for update_by_pk input

* add python basic tests for single row mutations

* add action context (name) in webhook payload

* Async action response is accessible for non admin roles only if
  the request session vars equals to action's

* clean nulls, empty arrays for actions, custom types in export metadata

* async action mutation returns only the UUID of the action

* unit tests for URL template parser

* Basic sync actions python tests

* fix output in async query & add async tests

* add admin secret header in async actions python test

* document async action architecture in Resolve/Action.hs file

* support actions returning array of objects

* tests for list type response actions

* update docs with actions and custom types metadata API reference

* update actions python tests as per #f8e1330

Co-authored-by: Tirumarai Selvan <tirumarai.selvan@gmail.com>
Co-authored-by: Aravind Shankar <face11301@gmail.com>
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
2020-02-13 23:08:23 +05:30