mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-09-11 10:46:25 +03:00
docs: add spellchecking
[DOCS-256]: https://hasurahq.atlassian.net/browse/DOCS-256?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7520 GitOrigin-RevId: 41ae163de3747164ef4b01cfcd155ecb941510bb
This commit is contained in:
parent
9052208b6c
commit
03cf883a46
2
docs/.gitignore
vendored
2
docs/.gitignore
vendored
@ -28,3 +28,5 @@ yarn-error.log*
|
|||||||
!.yarn/versions
|
!.yarn/versions
|
||||||
|
|
||||||
.tool-versions
|
.tool-versions
|
||||||
|
|
||||||
|
spell_check_results.txt
|
523
docs/cspell.config.yaml
Normal file
523
docs/cspell.config.yaml
Normal file
@ -0,0 +1,523 @@
|
|||||||
|
language: en
|
||||||
|
dictionaries:
|
||||||
|
- lorem-ipsum
|
||||||
|
words:
|
||||||
|
- Hasura
|
||||||
|
- Hasura's
|
||||||
|
- hasura
|
||||||
|
- GraphiQLIDE
|
||||||
|
- graphiql
|
||||||
|
- GraphiQL
|
||||||
|
- RESTified
|
||||||
|
- Postgres
|
||||||
|
- PostgreSQL
|
||||||
|
- collab
|
||||||
|
- secretpassword
|
||||||
|
- GCNDG
|
||||||
|
- templating
|
||||||
|
- jondoe
|
||||||
|
- mysecretpassword
|
||||||
|
- Codegen
|
||||||
|
- codegen
|
||||||
|
- openapi
|
||||||
|
- prepopulate
|
||||||
|
- Kriti
|
||||||
|
- kriti
|
||||||
|
- requesttransformation
|
||||||
|
- urlencode
|
||||||
|
- bodytransform
|
||||||
|
- applicationjson
|
||||||
|
- xurl
|
||||||
|
- formencoded
|
||||||
|
- responsetransformation
|
||||||
|
- Signup
|
||||||
|
- signup
|
||||||
|
- cffi
|
||||||
|
- pyjwt
|
||||||
|
- hasher
|
||||||
|
- Hasher
|
||||||
|
- dataclass
|
||||||
|
- Werkzeug
|
||||||
|
- GRTD
|
||||||
|
- getenv
|
||||||
|
- cffi’s
|
||||||
|
- XVCJ
|
||||||
|
- Iiwibm
|
||||||
|
- Ikpva
|
||||||
|
- Iiwia
|
||||||
|
- Ijox
|
||||||
|
- Qbpa
|
||||||
|
- Tgfkj
|
||||||
|
- jsonify
|
||||||
|
- dataclasses
|
||||||
|
- asdict
|
||||||
|
- classmethod
|
||||||
|
- Dataclass
|
||||||
|
- payg
|
||||||
|
- multistep
|
||||||
|
- nvarchar
|
||||||
|
- UNNEST
|
||||||
|
- Subquery
|
||||||
|
- OPENJSON
|
||||||
|
- NCHAR
|
||||||
|
- UNIQUEIDENTIFIER
|
||||||
|
- NVARCHAR
|
||||||
|
- healthz
|
||||||
|
- pgdump
|
||||||
|
- Templating
|
||||||
|
- Kriti's
|
||||||
|
- fdsa
|
||||||
|
- MINVALUE
|
||||||
|
- MAXVALUE
|
||||||
|
- nextval
|
||||||
|
- regclass
|
||||||
|
- myquery
|
||||||
|
- mybool
|
||||||
|
- tablename
|
||||||
|
- qualifiedtable
|
||||||
|
- bigquerytablename
|
||||||
|
- sourcename
|
||||||
|
- functionname
|
||||||
|
- qualifiedfunction
|
||||||
|
- bigqueryfunctionname
|
||||||
|
- rolename
|
||||||
|
- computedfieldname
|
||||||
|
- pgconfiguration
|
||||||
|
- pgsourceconnectioninfo
|
||||||
|
- mssqlconfiguration
|
||||||
|
- mssqlsourceconnectioninfo
|
||||||
|
- bigqueryconfiguration
|
||||||
|
- fromenv
|
||||||
|
- pgconnectionparameters
|
||||||
|
- pgpoolsettings
|
||||||
|
- pgcertsettings
|
||||||
|
- mssqlpoolsettings
|
||||||
|
- sslmode
|
||||||
|
- libpq
|
||||||
|
- sslrootcert
|
||||||
|
- sslcert
|
||||||
|
- sslkey
|
||||||
|
- sslpassword
|
||||||
|
- pgcolumntype
|
||||||
|
- autoincrementing
|
||||||
|
- bigserial
|
||||||
|
- smallint
|
||||||
|
- varchar
|
||||||
|
- timestamptz
|
||||||
|
- timetz
|
||||||
|
- pgcolumn
|
||||||
|
- relationshipname
|
||||||
|
- columnconfig
|
||||||
|
- customcolumnnames
|
||||||
|
- customrootfield
|
||||||
|
- columnconfigvalue
|
||||||
|
- insertpermission
|
||||||
|
- boolexp
|
||||||
|
- columnpresetexp
|
||||||
|
- selectpermission
|
||||||
|
- updatepermission
|
||||||
|
- Postcondition
|
||||||
|
- deletepermission
|
||||||
|
- objrelusing
|
||||||
|
- objrelusingchoice
|
||||||
|
- objrelusingmanualmapping
|
||||||
|
- sametable
|
||||||
|
- remotetable
|
||||||
|
- insertorder
|
||||||
|
- arrrelusing
|
||||||
|
- arrrelusingfkeyon
|
||||||
|
- arrrelusingmanualmapping
|
||||||
|
- andexp
|
||||||
|
- orexp
|
||||||
|
- notexp
|
||||||
|
- existsexp
|
||||||
|
- trueexp
|
||||||
|
- columnexp
|
||||||
|
- taboolexpblename
|
||||||
|
- metadataoperator
|
||||||
|
- nlike
|
||||||
|
- ilike
|
||||||
|
- ILIKE
|
||||||
|
- nilike
|
||||||
|
- nsimilar
|
||||||
|
- iregex
|
||||||
|
- nregex
|
||||||
|
- niregex
|
||||||
|
- cgte
|
||||||
|
- clte
|
||||||
|
- remoteschemaname
|
||||||
|
- remoteschemadef
|
||||||
|
- remoteschemacustomization
|
||||||
|
- remotetypecustomization
|
||||||
|
- remotefieldcustomization
|
||||||
|
- sourcecustomization
|
||||||
|
- rootfieldscustomization
|
||||||
|
- sourcetypecustomization
|
||||||
|
- Uppercased
|
||||||
|
- collectionname
|
||||||
|
- queryname
|
||||||
|
- collectionquery
|
||||||
|
- allowlistscope
|
||||||
|
- endpointurl
|
||||||
|
- endpointmethods
|
||||||
|
- endpointdef
|
||||||
|
- actionname
|
||||||
|
- webhookurl
|
||||||
|
- headerfromvalue
|
||||||
|
- headerfromenv
|
||||||
|
- graphqltype
|
||||||
|
- graphqlname
|
||||||
|
- actiondefinition
|
||||||
|
- inputargument
|
||||||
|
- computedfielddefinition
|
||||||
|
- bigquerycomputedfielddefinition
|
||||||
|
- SETOF
|
||||||
|
- inputobjecttype
|
||||||
|
- inputobjectfield
|
||||||
|
- objecttype
|
||||||
|
- objectfield
|
||||||
|
- objectrelationship
|
||||||
|
- scalartype
|
||||||
|
- enumvalue
|
||||||
|
- triggername
|
||||||
|
- operationspec
|
||||||
|
- eventtriggercolumns
|
||||||
|
- transformheaders
|
||||||
|
- templateengine
|
||||||
|
- Ffoo
|
||||||
|
- Dbar
|
||||||
|
- Fbaz
|
||||||
|
- headerkey
|
||||||
|
- headervalue
|
||||||
|
- transfomation
|
||||||
|
- retryconf
|
||||||
|
- remoterelationshipname
|
||||||
|
- remoterelationshipdefinition
|
||||||
|
- tosourcerelationshipdefinition
|
||||||
|
- toschemarelationshipdefinition
|
||||||
|
- remotefield
|
||||||
|
- inputarguments
|
||||||
|
- remoteschemapermission
|
||||||
|
- urlfromenv
|
||||||
|
- retryconfst
|
||||||
|
- apollofederationconfig
|
||||||
|
- autoeventtriggercleanupconfig
|
||||||
|
- triggerlogcleanupsources
|
||||||
|
- eventtriggerqualifier
|
||||||
|
- apilimitoption
|
||||||
|
- ratelimitoption
|
||||||
|
- ratelimitperroleoption
|
||||||
|
- reqs
|
||||||
|
- myrole
|
||||||
|
- myvalue
|
||||||
|
- citus
|
||||||
|
- psql
|
||||||
|
- Citus
|
||||||
|
- refetches
|
||||||
|
- typenames
|
||||||
|
- Ymxp
|
||||||
|
- Yywg
|
||||||
|
- urschris
|
||||||
|
- Iiwg
|
||||||
|
- connectionobject
|
||||||
|
- pageinfo
|
||||||
|
- paginationexp
|
||||||
|
- relaydistinctonexp
|
||||||
|
- relaywhereexp
|
||||||
|
- relayorderbyexp
|
||||||
|
- relaypaginationexp
|
||||||
|
- distinctonexp
|
||||||
|
- whereexp
|
||||||
|
- orderbyexp
|
||||||
|
- upsert
|
||||||
|
- atleast
|
||||||
|
- fkey
|
||||||
|
- hasuradb
|
||||||
|
- Beltran
|
||||||
|
- inputobjects
|
||||||
|
- mutationresponse
|
||||||
|
- conflictclause
|
||||||
|
- Upsert
|
||||||
|
- inputobject
|
||||||
|
- simpleobject
|
||||||
|
- pkcolumnsargexp
|
||||||
|
- setargexp
|
||||||
|
- incargexp
|
||||||
|
- appendargexp
|
||||||
|
- prependargexp
|
||||||
|
- deletekeyargexp
|
||||||
|
- deleteelemargexp
|
||||||
|
- deleteatpathargexp
|
||||||
|
- whereargexp
|
||||||
|
- aggregateobject
|
||||||
|
- tableselectcolumnenum
|
||||||
|
- aggregationexp
|
||||||
|
- castexp
|
||||||
|
- rast
|
||||||
|
- nband
|
||||||
|
- geommin
|
||||||
|
- ltree
|
||||||
|
- fulltext
|
||||||
|
- postgis
|
||||||
|
- tableorderby
|
||||||
|
- orderbyenum
|
||||||
|
- aggregateorderby
|
||||||
|
- tableaggoporderby
|
||||||
|
- multirole
|
||||||
|
- outputed
|
||||||
|
- unioned
|
||||||
|
- Paulo
|
||||||
|
- Coelho
|
||||||
|
- aggr
|
||||||
|
- Koramangala
|
||||||
|
- ABAC
|
||||||
|
- jwks
|
||||||
|
- maxage
|
||||||
|
- myapp
|
||||||
|
- ujdh
|
||||||
|
- Vfjp
|
||||||
|
- ARAA
|
||||||
|
- Hwrd
|
||||||
|
- MIIB
|
||||||
|
- CQYDVQQG
|
||||||
|
- JERTEYMBYGA
|
||||||
|
- BQYDK
|
||||||
|
- Inaj
|
||||||
|
- ICXV
|
||||||
|
- TGKD
|
||||||
|
- Bgkqhki
|
||||||
|
- TTBLMAs
|
||||||
|
- IEMDAT
|
||||||
|
- NVHSUEDDAK
|
||||||
|
- Bggr
|
||||||
|
- NVHREEID
|
||||||
|
- Aegg
|
||||||
|
- Xhhb
|
||||||
|
- MAUG
|
||||||
|
- Aytlc
|
||||||
|
- ANBA
|
||||||
|
- Vgyo
|
||||||
|
- nljy
|
||||||
|
- Ddtdtgb
|
||||||
|
- dbname
|
||||||
|
- myadminsecretkey
|
||||||
|
- Barebones
|
||||||
|
- websockets
|
||||||
|
- OIDC
|
||||||
|
- pkey
|
||||||
|
- JWTs
|
||||||
|
- Shortcodes
|
||||||
|
- JWKS
|
||||||
|
- nextjs
|
||||||
|
- Hyperscale
|
||||||
|
- hyperscale
|
||||||
|
- cockroachdb
|
||||||
|
- livequery
|
||||||
|
- roadmap
|
||||||
|
- toctree
|
||||||
|
- maxdepth
|
||||||
|
- titlesonly
|
||||||
|
- ODBC
|
||||||
|
- tempdb
|
||||||
|
- olap
|
||||||
|
- oltp
|
||||||
|
- JDBC
|
||||||
|
- jdbc
|
||||||
|
- myorganization
|
||||||
|
- myaccount
|
||||||
|
- snowflakecomputing
|
||||||
|
- mywh
|
||||||
|
- mydb
|
||||||
|
- quickstart
|
||||||
|
- Yugabyte
|
||||||
|
- plpgsql
|
||||||
|
- Citus’s
|
||||||
|
- rels
|
||||||
|
- sslverify
|
||||||
|
- Paperform
|
||||||
|
- Aiven
|
||||||
|
- aiven
|
||||||
|
- alloydb
|
||||||
|
- Datacenter
|
||||||
|
- elephantsql
|
||||||
|
- enterprisedb
|
||||||
|
- Dbname
|
||||||
|
- ROOTCERT
|
||||||
|
- Supabase
|
||||||
|
- supabase
|
||||||
|
- timescaledb
|
||||||
|
- yugabyte
|
||||||
|
- Postrge
|
||||||
|
- Traefik
|
||||||
|
- Caddyfile
|
||||||
|
- traefik
|
||||||
|
- redirections
|
||||||
|
- loadbalancer
|
||||||
|
- myusername
|
||||||
|
- usernamex
|
||||||
|
- namex
|
||||||
|
- Pooler
|
||||||
|
- Postgis
|
||||||
|
- pgcrypto
|
||||||
|
- hasurauser
|
||||||
|
- averylongpasswordstring
|
||||||
|
- westus
|
||||||
|
- azurecontainer
|
||||||
|
- postgrespassword
|
||||||
|
- gcloud
|
||||||
|
- cloudsql
|
||||||
|
- Nhost
|
||||||
|
- nhost
|
||||||
|
- Koyeb
|
||||||
|
- koyeb
|
||||||
|
- mysecretkey
|
||||||
|
- peerings
|
||||||
|
- Peerings
|
||||||
|
- Healthz
|
||||||
|
- XGET
|
||||||
|
- TXISO
|
||||||
|
- permessage
|
||||||
|
- CREATEROLE
|
||||||
|
- graphqurl
|
||||||
|
- Websockets
|
||||||
|
- pganalyze
|
||||||
|
- apihasura
|
||||||
|
- slowloris
|
||||||
|
- Imperva
|
||||||
|
- redishostname
|
||||||
|
- Gett
|
||||||
|
- Quickstart
|
||||||
|
- Fargate
|
||||||
|
- fargate
|
||||||
|
- FARGATE
|
||||||
|
- awsvpc
|
||||||
|
- subnetabcd
|
||||||
|
- Memorystore
|
||||||
|
- Dockerhub
|
||||||
|
- commmand
|
||||||
|
- adminsecret
|
||||||
|
- opname
|
||||||
|
- SENDGRID
|
||||||
|
- sendgrid
|
||||||
|
- Sengrid
|
||||||
|
- replyto
|
||||||
|
- Boilerplates
|
||||||
|
- boilerplates
|
||||||
|
- envfile
|
||||||
|
- CODEGEN
|
||||||
|
- Gjxot
|
||||||
|
- mydomain
|
||||||
|
- testsuite
|
||||||
|
- adminsecretkey
|
||||||
|
- rollbacked
|
||||||
|
- myschema
|
||||||
|
- dont
|
||||||
|
- Byauthor
|
||||||
|
- Aviv
|
||||||
|
- DBCOMPATIBILITY
|
||||||
|
- upsertable
|
||||||
|
- Bengaluru
|
||||||
|
- Karnataka
|
||||||
|
- pincode
|
||||||
|
- autocompleting
|
||||||
|
- upserts
|
||||||
|
- upserting
|
||||||
|
- sqlcommenter
|
||||||
|
- herokou
|
||||||
|
- tracecontext
|
||||||
|
- opentelemetry
|
||||||
|
- newrerlic
|
||||||
|
- Opentelemetry
|
||||||
|
- Tfsdfds
|
||||||
|
- exploitability
|
||||||
|
- Clickjacking
|
||||||
|
- MITM
|
||||||
|
- bruteforce
|
||||||
|
- DMARC
|
||||||
|
- Tabnabbing
|
||||||
|
- SSRF
|
||||||
|
- optout
|
||||||
|
- datasource
|
||||||
|
- Anjela
|
||||||
|
- Amii
|
||||||
|
- Berti
|
||||||
|
- Ninnetta
|
||||||
|
- Lyndsay
|
||||||
|
- plsql
|
||||||
|
- pede
|
||||||
|
- Kamila
|
||||||
|
- Rickard
|
||||||
|
- Robben
|
||||||
|
- cremet
|
||||||
|
- ametist
|
||||||
|
- EPSG
|
||||||
|
- lquery
|
||||||
|
- ltxtquery
|
||||||
|
- sastisfy
|
||||||
|
- covar
|
||||||
|
- Flore
|
||||||
|
- bengaluru
|
||||||
|
- Blogposts
|
||||||
|
- Contenful
|
||||||
|
- Gridsome
|
||||||
|
- Nuxt
|
||||||
|
- Vuetify
|
||||||
|
- Vuex
|
||||||
|
- apollographql
|
||||||
|
- noninteractive
|
||||||
|
- hadr
|
||||||
|
- hadrenabled
|
||||||
|
- sqlagent
|
||||||
|
- sqlservr
|
||||||
|
- sqlag
|
||||||
|
- domainname
|
||||||
|
- labl
|
||||||
|
- ipam
|
||||||
|
- inet
|
||||||
|
- prefixlen
|
||||||
|
- txqueuelen
|
||||||
|
- sqlcmd
|
||||||
|
- sysdatabases
|
||||||
|
- Hadr
|
||||||
|
- N'tcp
|
||||||
|
- agtestdb
|
||||||
|
- sqlnode
|
||||||
|
- Zuckerberg
|
||||||
|
- overridable
|
||||||
|
- Raichael
|
||||||
|
- trgm
|
||||||
|
- userid
|
||||||
|
- tokai
|
||||||
|
- Blyton
|
||||||
|
- isactive
|
||||||
|
- Thanos
|
||||||
|
- unnest
|
||||||
|
- varbit
|
||||||
|
- bytea
|
||||||
|
- lseg
|
||||||
|
- macaddr
|
||||||
|
- smallserial
|
||||||
|
- Timetz
|
||||||
|
- Timestamptz
|
||||||
|
- tsquery
|
||||||
|
- tsvector
|
||||||
|
- txid
|
||||||
|
- Colocation
|
||||||
|
- colocated
|
||||||
|
- VARCHAR
|
||||||
|
- sarahlewis
|
||||||
|
- Hodor
|
||||||
|
- hodor
|
||||||
|
- uppercased
|
||||||
|
- yabba
|
||||||
|
- dabba
|
||||||
|
- YABBA
|
||||||
|
- DABBA
|
||||||
|
- todos
|
||||||
|
- apilimits
|
||||||
|
- lifecycles
|
||||||
|
- inmemory
|
||||||
|
- Todos
|
||||||
|
- Heyyy
|
||||||
|
- Heyy
|
||||||
|
- optimise
|
@ -15,7 +15,7 @@ slug: types/index
|
|||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
You can add custom GraphQL types in Hasura that you can utilise for defining your actions.
|
You can add custom GraphQL types in Hasura that you can utilize for defining your actions.
|
||||||
|
|
||||||
:::caution Limitations
|
:::caution Limitations
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ import Thumbnail from '@site/src/components/Thumbnail';
|
|||||||
|
|
||||||
# Hasura Cloud API Reference
|
# Hasura Cloud API Reference
|
||||||
|
|
||||||
<div className='badge badge--primary heading-badge'>Available on: Cloud</div>
|
<div className="badge badge--primary heading-badge">Available on: Cloud</div>
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ mutation createGitHubPreviewApp {
|
|||||||
| Argument | Description |
|
| Argument | Description |
|
||||||
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `githubPersonalAccessToken` | GitHub personal access token for Hasura Cloud to access the Migrations and Metadata from your repository. Refer to GitHub docs on how to create a [GitHub personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). The token should have read access to the repository. |
|
| `githubPersonalAccessToken` | GitHub personal access token for Hasura Cloud to access the Migrations and Metadata from your repository. Refer to GitHub docs on how to create a [GitHub personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). The token should have read access to the repository. |
|
||||||
| under `githubRepoDetails`: `owner` | GitHub repository owner (user or organisation) |
|
| under `githubRepoDetails`: `owner` | GitHub repository owner (user or organization) |
|
||||||
| under `githubRepoDetails`: `repo` | GitHub repository name. |
|
| under `githubRepoDetails`: `repo` | GitHub repository name. |
|
||||||
| under `githubRepoDetails`: `branch` | Name of the branch from which to create a Preview App. |
|
| under `githubRepoDetails`: `branch` | Name of the branch from which to create a Preview App. |
|
||||||
| under `githubRepoDetails`: `directory` | Path to the Hasura Project directory (typically created by the Hasura CLI) containing Migrations and Metadata. The path should be relative to the project's root directory. |
|
| under `githubRepoDetails`: `directory` | Path to the Hasura Project directory (typically created by the Hasura CLI) containing Migrations and Metadata. The path should be relative to the project's root directory. |
|
||||||
|
@ -13,7 +13,7 @@ keywords:
|
|||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
The Explain API is an admin-only endpoint for analysing queries and
|
The Explain API is an admin-only endpoint for analyzing queries and
|
||||||
subscriptions. Given a query and authorization role, it returns
|
subscriptions. Given a query and authorization role, it returns
|
||||||
backend-specific execution plans.
|
backend-specific execution plans.
|
||||||
|
|
||||||
@ -26,7 +26,8 @@ All requests are `POST` requests to the `/v1/graphql/explain` endpoint.
|
|||||||
### Request
|
### Request
|
||||||
|
|
||||||
The request expects a JSON object with the following keys:
|
The request expects a JSON object with the following keys:
|
||||||
- `query`: the GraphQL query to be analysed
|
|
||||||
|
- `query`: the GraphQL query to be analyzed
|
||||||
- `user` (optional): the `x-hasura-role` along with session variables
|
- `user` (optional): the `x-hasura-role` along with session variables
|
||||||
|
|
||||||
```http
|
```http
|
||||||
|
@ -26,7 +26,7 @@ All requests are `POST` requests to the `/v1/graphql` (or
|
|||||||
|
|
||||||
The `/v1/graphql` endpoint returns HTTP 200 status codes for all
|
The `/v1/graphql` endpoint returns HTTP 200 status codes for all
|
||||||
responses. This is a **breaking** change from the `/v1alpha1/graphql`
|
responses. This is a **breaking** change from the `/v1alpha1/graphql`
|
||||||
behaviour, where request errors and internal errors were responded with
|
behavior, where request errors and internal errors were responded with
|
||||||
4xx and 5xx status codes.
|
4xx and 5xx status codes.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
@ -35,10 +35,9 @@ behaviour, where request errors and internal errors were responded with
|
|||||||
|
|
||||||
The following types of requests can be made using the GraphQL API:
|
The following types of requests can be made using the GraphQL API:
|
||||||
|
|
||||||
- [Query / Subscription](/api-reference/graphql-api/query.mdx )
|
- [Query / Subscription](/api-reference/graphql-api/query.mdx)
|
||||||
- [Mutation](/api-reference/graphql-api/mutation.mdx)
|
- [Mutation](/api-reference/graphql-api/mutation.mdx)
|
||||||
|
|
||||||
|
|
||||||
## Batching requests
|
## Batching requests
|
||||||
|
|
||||||
The GraphQL API provides support for batched requests (which can be a
|
The GraphQL API provides support for batched requests (which can be a
|
||||||
@ -62,7 +61,7 @@ query second {
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`[
|
response={`[
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"author": [
|
"author": [
|
||||||
|
@ -104,9 +104,9 @@ subscription {
|
|||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
<a href='#simpleobject'>SimpleObject</a>
|
<a href="#simpleobject">SimpleObject</a>
|
||||||
{' | '}
|
{' | '}
|
||||||
<a href='#aggregateobject'>AggregateObject</a>
|
<a href="#aggregateobject">AggregateObject</a>
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
@ -287,13 +287,13 @@ author_aggregate {
|
|||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
<a href='#distinctonexp'>DistinctOnExp</a>
|
<a href="#distinctonexp">DistinctOnExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#whereexp'>WhereExp</a>
|
<a href="#whereexp">WhereExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#orderbyexp'>OrderByExp</a>
|
<a href="#orderbyexp">OrderByExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#paginationexp'>PaginationExp</a>
|
<a href="#paginationexp">PaginationExp</a>
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
@ -306,7 +306,7 @@ author_aggregate {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`distinct_on: [`}
|
{`distinct_on: [`}
|
||||||
<a href='#tableselectcolumnenum'>TableSelectColumnEnum</a>
|
<a href="#tableselectcolumnenum">TableSelectColumnEnum</a>
|
||||||
{`]`}
|
{`]`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -344,7 +344,7 @@ enum article_select_column {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`where: `}
|
{`where: `}
|
||||||
<a href='#boolexp'>BoolExp</a>
|
<a href="#boolexp">BoolExp</a>
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
@ -369,17 +369,17 @@ query {
|
|||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
<a href='#andexp'>AndExp</a>
|
<a href="#andexp">AndExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#orexp'>OrExp</a>
|
<a href="#orexp">OrExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#notexp'>NotExp</a>
|
<a href="#notexp">NotExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#trueexp'>TrueExp</a>
|
<a href="#trueexp">TrueExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#columnexp'>ColumnExp</a>
|
<a href="#columnexp">ColumnExp</a>
|
||||||
{` | `}
|
{` | `}
|
||||||
<a href='#aggregationexp'>AggregationExp</a>
|
<a href="#aggregationexp">AggregationExp</a>
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
@ -393,7 +393,7 @@ query {
|
|||||||
<code>
|
<code>
|
||||||
{`{
|
{`{
|
||||||
_and: [`}
|
_and: [`}
|
||||||
<a href='#boolexp'>BoolExp</a>
|
<a href="#boolexp">BoolExp</a>
|
||||||
{`]
|
{`]
|
||||||
}`}
|
}`}
|
||||||
</code>
|
</code>
|
||||||
@ -468,7 +468,7 @@ rating: {
|
|||||||
<code>
|
<code>
|
||||||
{`{
|
{`{
|
||||||
_or: [`}
|
_or: [`}
|
||||||
<a href='#boolexp'>BoolExp</a>
|
<a href="#boolexp">BoolExp</a>
|
||||||
{`]
|
{`]
|
||||||
}`}
|
}`}
|
||||||
</code>
|
</code>
|
||||||
@ -489,7 +489,7 @@ query {
|
|||||||
|
|
||||||
:::info Note
|
:::info Note
|
||||||
|
|
||||||
The `_or` operator expects an array of expressions as input. Passing an object to it will result in the behaviour of the
|
The `_or` operator expects an array of expressions as input. Passing an object to it will result in the behavior of the
|
||||||
`_and` operator due to the way
|
`_and` operator due to the way
|
||||||
[GraphQL list input coercion](https://graphql.github.io/graphql-spec/June2018/#sec-Type-System.List) behaves.
|
[GraphQL list input coercion](https://graphql.github.io/graphql-spec/June2018/#sec-Type-System.List) behaves.
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ _Example:_
|
|||||||
<code>
|
<code>
|
||||||
{`{
|
{`{
|
||||||
_not: `}
|
_not: `}
|
||||||
<a href='#boolexp'>BoolExp</a>
|
<a href="#boolexp">BoolExp</a>
|
||||||
{`
|
{`
|
||||||
}`}
|
}`}
|
||||||
</code>
|
</code>
|
||||||
@ -585,7 +585,7 @@ query {
|
|||||||
<code>
|
<code>
|
||||||
{`{
|
{`{
|
||||||
field-name: { `}
|
field-name: { `}
|
||||||
<a href='#operator'>Operator</a>
|
<a href="#operator">Operator</a>
|
||||||
{`: Value }
|
{`: Value }
|
||||||
}`}
|
}`}
|
||||||
</code>
|
</code>
|
||||||
@ -606,7 +606,7 @@ query {
|
|||||||
|
|
||||||
###### Operator {#operator}
|
###### Operator {#operator}
|
||||||
|
|
||||||
<div id='generic-operators' />
|
<div id="generic-operators" />
|
||||||
|
|
||||||
**Generic operators (all column types except json, jsonb):**
|
**Generic operators (all column types except json, jsonb):**
|
||||||
|
|
||||||
@ -625,7 +625,7 @@ query {
|
|||||||
[comparison operators](https://www.postgresql.org/docs/current/functions-comparison.html) and
|
[comparison operators](https://www.postgresql.org/docs/current/functions-comparison.html) and
|
||||||
[list based search operators](https://www.postgresql.org/docs/current/functions-comparisons.html).)
|
[list based search operators](https://www.postgresql.org/docs/current/functions-comparisons.html).)
|
||||||
|
|
||||||
<div id='text-operators' />
|
<div id="text-operators" />
|
||||||
|
|
||||||
**Text related operators:**
|
**Text related operators:**
|
||||||
|
|
||||||
@ -645,7 +645,7 @@ query {
|
|||||||
(For more details on text related operators, refer to the
|
(For more details on text related operators, refer to the
|
||||||
[Postgres docs](https://www.postgresql.org/docs/current/functions-matching.html).)
|
[Postgres docs](https://www.postgresql.org/docs/current/functions-matching.html).)
|
||||||
|
|
||||||
<div id='null-expression' />
|
<div id="null-expression" />
|
||||||
|
|
||||||
**Checking for NULL values:**
|
**Checking for NULL values:**
|
||||||
|
|
||||||
@ -656,7 +656,7 @@ query {
|
|||||||
(For more details on the `IS NULL` expression, refer to the
|
(For more details on the `IS NULL` expression, refer to the
|
||||||
[Postgres docs](https://www.postgresql.org/docs/current/functions-comparison.html).)
|
[Postgres docs](https://www.postgresql.org/docs/current/functions-comparison.html).)
|
||||||
|
|
||||||
<div id='type-casting' />
|
<div id="type-casting" />
|
||||||
|
|
||||||
**Type casting:**
|
**Type casting:**
|
||||||
|
|
||||||
@ -667,7 +667,7 @@ query {
|
|||||||
(For more details on type casting, refer to the
|
(For more details on type casting, refer to the
|
||||||
[Postgres docs](https://www.postgresql.org/docs/current/sql-createcast.html).)
|
[Postgres docs](https://www.postgresql.org/docs/current/sql-createcast.html).)
|
||||||
|
|
||||||
<div id='jsonb-operators' />
|
<div id="jsonb-operators" />
|
||||||
|
|
||||||
**JSONB operators:**
|
**JSONB operators:**
|
||||||
|
|
||||||
@ -682,7 +682,7 @@ query {
|
|||||||
(For more details on JSONB operators, refer to the
|
(For more details on JSONB operators, refer to the
|
||||||
[Postgres docs](https://www.postgresql.org/docs/current/static/functions-json.html#FUNCTIONS-JSONB-OP-TABLE).)
|
[Postgres docs](https://www.postgresql.org/docs/current/static/functions-json.html#FUNCTIONS-JSONB-OP-TABLE).)
|
||||||
|
|
||||||
<div id='geometry-operators' />
|
<div id="geometry-operators" />
|
||||||
|
|
||||||
**PostGIS related operators on GEOMETRY columns:**
|
**PostGIS related operators on GEOMETRY columns:**
|
||||||
|
|
||||||
@ -713,7 +713,7 @@ query {
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
<div id='intersect-operators' />
|
<div id="intersect-operators" />
|
||||||
|
|
||||||
**Intersect Operators on RASTER columns:**
|
**Intersect Operators on RASTER columns:**
|
||||||
|
|
||||||
@ -726,7 +726,7 @@ query {
|
|||||||
(For more details on intersect operators on `raster` columns refer to the
|
(For more details on intersect operators on `raster` columns refer to the
|
||||||
[PostGIS docs](https://postgis.net/docs/RT_ST_Intersects.html).)
|
[PostGIS docs](https://postgis.net/docs/RT_ST_Intersects.html).)
|
||||||
|
|
||||||
<div id='ltree-operators' />
|
<div id="ltree-operators" />
|
||||||
|
|
||||||
**ltree operators:**
|
**ltree operators:**
|
||||||
|
|
||||||
@ -750,7 +750,7 @@ query {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ type-name: {`}
|
{`{ type-name: {`}
|
||||||
<a href='#operator'>Operator</a>
|
<a href="#operator">Operator</a>
|
||||||
{`: Value} }`}
|
{`: Value} }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -794,14 +794,13 @@ Currently, only the following type casts are supported:
|
|||||||
|
|
||||||
###### AggregationExp
|
###### AggregationExp
|
||||||
|
|
||||||
|
|
||||||
<div className="parsed-literal">
|
<div className="parsed-literal">
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{
|
{`{
|
||||||
field-name_aggregate: { `}
|
field-name_aggregate: { `}
|
||||||
<a href='#aggregationPredicate'>AggregationPredicate</a>
|
<a href="#aggregationPredicate">AggregationPredicate</a>
|
||||||
{` }
|
{` }
|
||||||
}`}
|
}`}
|
||||||
</code>
|
</code>
|
||||||
@ -835,11 +834,16 @@ query {
|
|||||||
<div className="parsed-literal">
|
<div className="parsed-literal">
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>{`function-name: {
|
<code>
|
||||||
|
{`function-name: {
|
||||||
arguments: (column-name | [column-name] | { argument-name: column-name })
|
arguments: (column-name | [column-name] | { argument-name: column-name })
|
||||||
distinct: true | false
|
distinct: true | false
|
||||||
filter: `} <a href='#boolexp'>BoolExp</a> {`
|
filter: `}{' '}
|
||||||
predicate: `} <a href='#operator'>Operator</a> {`
|
<a href="#boolexp">BoolExp</a>{' '}
|
||||||
|
{`
|
||||||
|
predicate: `}{' '}
|
||||||
|
<a href="#operator">Operator</a>{' '}
|
||||||
|
{`
|
||||||
}`}
|
}`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -889,9 +893,9 @@ _Examples_
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`order_by: (`}
|
{`order_by: (`}
|
||||||
<a href='#tableorderby'>TableOrderBy</a>
|
<a href="#tableorderby">TableOrderBy</a>
|
||||||
{` | [`}
|
{` | [`}
|
||||||
<a href='#tableorderby'>TableOrderBy</a>
|
<a href="#tableorderby">TableOrderBy</a>
|
||||||
{`])`}
|
{`])`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -940,7 +944,7 @@ query {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ column: `}
|
{`{ column: `}
|
||||||
<a href='#orderbyenum'>OrderByEnum</a>
|
<a href="#orderbyenum">OrderByEnum</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -965,7 +969,7 @@ query {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ relation-name: `}
|
{`{ relation-name: `}
|
||||||
<a href='#tableorderby'>TableOrderBy</a>
|
<a href="#tableorderby">TableOrderBy</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -990,7 +994,7 @@ query {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ relation-name_aggregate: `}
|
{`{ relation-name_aggregate: `}
|
||||||
<a href='#aggregateorderby'>AggregateOrderBy</a>
|
<a href="#aggregateorderby">AggregateOrderBy</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1016,7 +1020,7 @@ Returning scalar values:
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ computed-field-name: `}
|
{`{ computed-field-name: `}
|
||||||
<a href='#orderbyenum'>OrderByEnum</a>
|
<a href="#orderbyenum">OrderByEnum</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1030,7 +1034,7 @@ Returning set of table rows:
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ computed-field-name: `}
|
{`{ computed-field-name: `}
|
||||||
<a href='#tableorderby'>TableOrderBy</a>
|
<a href="#tableorderby">TableOrderBy</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1042,7 +1046,7 @@ Returning set of table rows:
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ computed-field-name_aggregate: `}
|
{`{ computed-field-name_aggregate: `}
|
||||||
<a href='#aggregateorderby'>AggregateOrderBy</a>
|
<a href="#aggregateorderby">AggregateOrderBy</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1071,7 +1075,7 @@ input article_order_by {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ computed-field-name: `}
|
{`{ computed-field-name: `}
|
||||||
<a href='#orderbyenum'>OrderByEnum</a>
|
<a href="#orderbyenum">OrderByEnum</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1102,7 +1106,7 @@ Computed fields returning set of table rows can be used to sort the query by the
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ computed-field-name_aggregate: `}
|
{`{ computed-field-name_aggregate: `}
|
||||||
<a href='#aggregateorderby'>AggregateOrderBy</a>
|
<a href="#aggregateorderby">AggregateOrderBy</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1157,7 +1161,7 @@ enum order_by {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ count: `}
|
{`{ count: `}
|
||||||
<a href='#orderbyenum'>OrderByEnum</a>
|
<a href="#orderbyenum">OrderByEnum</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1181,7 +1185,7 @@ query {
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ op_name: `}
|
{`{ op_name: `}
|
||||||
<a href='#tableaggoporderby'>TableAggOpOrderBy</a>
|
<a href="#tableaggoporderby">TableAggOpOrderBy</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
@ -1208,7 +1212,7 @@ Available operations are `sum`, `avg`, `max`, `min`, `stddev`, `stddev_samp`, `s
|
|||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
{`{ column: `}
|
{`{ column: `}
|
||||||
<a href='#orderbyenum'>OrderByEnum</a>
|
<a href="#orderbyenum">OrderByEnum</a>
|
||||||
{` }`}
|
{` }`}
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
@ -71,7 +71,7 @@ See details at [Schema / Metadata API Reference (Deprecated)](/api-reference/sch
|
|||||||
|
|
||||||
### RESTified GraphQL API {#restified-graphql-api}
|
### RESTified GraphQL API {#restified-graphql-api}
|
||||||
|
|
||||||
Hasura allows saved GraphQL queries and mutations to be accesed through a REST interface.
|
Hasura allows saved GraphQL queries and mutations to be accessed through a REST interface.
|
||||||
|
|
||||||
See details at [RESTified GraphQL Endpoints API Reference](/api-reference/restified.mdx).
|
See details at [RESTified GraphQL Endpoints API Reference](/api-reference/restified.mdx).
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ keywords:
|
|||||||
|
|
||||||
**computed field** is an extra field added to a table, its value is
|
**computed field** is an extra field added to a table, its value is
|
||||||
computed via an SQL function which has the table row type as an input
|
computed via an SQL function which has the table row type as an input
|
||||||
argument. Currenty, the Hasura GraphQL Engine supports custom functions
|
argument. Currently, the Hasura GraphQL Engine supports custom functions
|
||||||
returning [base types](https://www.postgresql.org/docs/current/extend-type-system.mdx#id-1.8.3.5.9)
|
returning [base types](https://www.postgresql.org/docs/current/extend-type-system.mdx#id-1.8.3.5.9)
|
||||||
or [table row types](https://www.postgresql.org/docs/current/rowtypes.mdx#ROWTYPES-DECLARING) as computed fields.
|
or [table row types](https://www.postgresql.org/docs/current/rowtypes.mdx#ROWTYPES-DECLARING) as computed fields.
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ X-Hasura-Role: admin
|
|||||||
| table | true | [TableName](/api-reference/syntax-defs.mdx#tablename) | Name of the table |
|
| table | true | [TableName](/api-reference/syntax-defs.mdx#tablename) | Name of the table |
|
||||||
| name | true | [ComputedFieldName](/api-reference/syntax-defs.mdx#computedfieldname) | Name of the new computed field |
|
| name | true | [ComputedFieldName](/api-reference/syntax-defs.mdx#computedfieldname) | Name of the new computed field |
|
||||||
| definition | true | [ComputedFieldDefinition](/api-reference/syntax-defs.mdx#computedfielddefinition) | The computed field definition |
|
| definition | true | [ComputedFieldDefinition](/api-reference/syntax-defs.mdx#computedfielddefinition) | The computed field definition |
|
||||||
| comment | false | `String` | Customise the description shown in GraphQL introspection. If null or omitted then if a comment exists on the database function, it is used as the description, and if not, an autogenerated description is used instead. |
|
| comment | false | `String` | Customize the description shown in GraphQL introspection. If null or omitted then if a comment exists on the database function, it is used as the description, and if not, an autogenerated description is used instead. |
|
||||||
| source | false | [SourceName](/api-reference/syntax-defs.mdx#sourcename) | Name of the source database of the table (default: `default`) |
|
| source | false | [SourceName](/api-reference/syntax-defs.mdx#sourcename) | Name of the source database of the table (default: `default`) |
|
||||||
|
|
||||||
## pg_drop_computed_field {#metadata-pg-drop-computed-field}
|
## pg_drop_computed_field {#metadata-pg-drop-computed-field}
|
||||||
@ -157,7 +157,7 @@ X-Hasura-Role: admin
|
|||||||
| source | true | [SourceName](/api-reference/syntax-defs.mdx#sourcename) | Name of the source database of the table |
|
| source | true | [SourceName](/api-reference/syntax-defs.mdx#sourcename) | Name of the source database of the table |
|
||||||
| name | true | [ComputedFieldName](/api-reference/syntax-defs.mdx#computedfieldname) | Name of the computed field |
|
| name | true | [ComputedFieldName](/api-reference/syntax-defs.mdx#computedfieldname) | Name of the computed field |
|
||||||
| definition | true | [ComputedFieldDefinition](/api-reference/syntax-defs.mdx#bigquerycomputedfielddefinition) | The computed field definition |
|
| definition | true | [ComputedFieldDefinition](/api-reference/syntax-defs.mdx#bigquerycomputedfielddefinition) | The computed field definition |
|
||||||
| comment | false | `String` | Customise the description shown in GraphQL introspection. If null or omitted then if a comment exists on the database function, it is used as the description, and if not, an autogenerated description is used instead. |
|
| comment | false | `String` | Customize the description shown in GraphQL introspection. If null or omitted then if a comment exists on the database function, it is used as the description, and if not, an autogenerated description is used instead. |
|
||||||
|
|
||||||
## bigquery_drop_computed_field {#metadata-bigquery-drop-computed-field}
|
## bigquery_drop_computed_field {#metadata-bigquery-drop-computed-field}
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ The structure of args depends on the type and version.
|
|||||||
The various types of queries are listed in the following table:
|
The various types of queries are listed in the following table:
|
||||||
|
|
||||||
| `type` | `args` | `version` | Synopsis |
|
| `type` | `args` | `version` | Synopsis |
|
||||||
| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ----------------------------------------------------------------------- |
|
| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------ |
|
||||||
| **bulk** | [Query](#metadata-query) array | 1 | Execute multiple operations in a single query |
|
| **bulk** | [Query](#metadata-query) array | 1 | Execute multiple operations in a single query |
|
||||||
| [pg_add_source](/api-reference/metadata-api/source.mdx#metadata-pg-add-source) | [pg_add_source_args](/api-reference/metadata-api/source.mdx#metadata-pg-add-source-syntax) | 1 | Add a Postgres database |
|
| [pg_add_source](/api-reference/metadata-api/source.mdx#metadata-pg-add-source) | [pg_add_source_args](/api-reference/metadata-api/source.mdx#metadata-pg-add-source-syntax) | 1 | Add a Postgres database |
|
||||||
| [pg_drop_source](/api-reference/metadata-api/source.mdx#metadata-pg-drop-source) | [pg_drop_source_args](/api-reference/metadata-api/source.mdx#metadata-pg-drop-source-syntax) | 1 | Remove a Postgres database |
|
| [pg_drop_source](/api-reference/metadata-api/source.mdx#metadata-pg-drop-source) | [pg_drop_source_args](/api-reference/metadata-api/source.mdx#metadata-pg-drop-source-syntax) | 1 | Remove a Postgres database |
|
||||||
@ -101,13 +101,13 @@ The various types of queries are listed in the following table:
|
|||||||
| [pg_delete_event_trigger](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-delete-event-trigger) | [pg_delete_event_trigger_args](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-delete-event-trigger-syntax) | 1 | Delete an existing Event Trigger on a Postgres table |
|
| [pg_delete_event_trigger](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-delete-event-trigger) | [pg_delete_event_trigger_args](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-delete-event-trigger-syntax) | 1 | Delete an existing Event Trigger on a Postgres table |
|
||||||
| [pg_redeliver_event](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-redeliver-event) | [pg_redeliver_event_args](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-redeliver-event-syntax) | 1 | Redeliver an existing event on a Postgres table |
|
| [pg_redeliver_event](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-redeliver-event) | [pg_redeliver_event_args](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-redeliver-event-syntax) | 1 | Redeliver an existing event on a Postgres table |
|
||||||
| [pg_invoke_event_trigger](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-invoke-event-trigger) | [pg_invoke_event_trigger_args](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-invoke-event-trigger-syntax) | 1 | Invoke a trigger with custom payload on a Postgres table |
|
| [pg_invoke_event_trigger](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-invoke-event-trigger) | [pg_invoke_event_trigger_args](/api-reference/metadata-api/event-triggers.mdx#metadata-pg-invoke-event-trigger-syntax) | 1 | Invoke a trigger with custom payload on a Postgres table |
|
||||||
| [pg_set_apollo_federation_config](/api-reference/metadata-api/table-view.mdx#metadata-pg-set-apollo-federation-config) | [pg_set_apollo_federation_config_args](/api-reference/metadata-api/table-view.mdx#metadata-pg-set-apollo-federation-config-syntax) | 1 | Set Apollo Federaion configuration of an already tracked postgres table |
|
| [pg_set_apollo_federation_config](/api-reference/metadata-api/table-view.mdx#metadata-pg-set-apollo-federation-config) | [pg_set_apollo_federation_config_args](/api-reference/metadata-api/table-view.mdx#metadata-pg-set-apollo-federation-config-syntax) | 1 | Set Apollo Federation configuration of an already tracked postgres table |
|
||||||
| [bigquery_track_table](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-track-table) | [bigquery_track_table_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-track-table-syntax) | 1 | Add a BigQuery table/view with configuration |
|
| [bigquery_track_table](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-track-table) | [bigquery_track_table_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-track-table-syntax) | 1 | Add a BigQuery table/view with configuration |
|
||||||
| [bigquery_untrack_table](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-untrack-table) | [bigquery_untrack_table_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-untrack-table-syntax) | 1 | Remove a BigQuery table/view |
|
| [bigquery_untrack_table](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-untrack-table) | [bigquery_untrack_table_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-untrack-table-syntax) | 1 | Remove a BigQuery table/view |
|
||||||
| [bigquery_set_table_customization](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-table-customization) | [bigquery_set_table_customization_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-table-customization-syntax) | 1 | Set table customization of an already tracked BigQuery table |
|
| [bigquery_set_table_customization](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-table-customization) | [bigquery_set_table_customization_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-table-customization-syntax) | 1 | Set table customization of an already tracked BigQuery table |
|
||||||
| [bigquery_add_computed_field](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-add-computed-field) | [bigquery_add_computed_field_args](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-add-computed-field-syntax) | 1 | Add a computed field to a BigQuery table |
|
| [bigquery_add_computed_field](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-add-computed-field) | [bigquery_add_computed_field_args](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-add-computed-field-syntax) | 1 | Add a computed field to a BigQuery table |
|
||||||
| [bigquery_drop_computed_field](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-drop-computed-field) | [bigquery_drop_computed_field_args](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-drop-computed-field-syntax) | 1 | Drop a BigQuery computed field |
|
| [bigquery_drop_computed_field](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-drop-computed-field) | [bigquery_drop_computed_field_args](/api-reference/metadata-api/computed-field.mdx#metadata-bigquery-drop-computed-field-syntax) | 1 | Drop a BigQuery computed field |
|
||||||
| [bigquery_set_apollo_federation_config](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-apollo-federation-config) | [bigquery_set_apollo_federation_config_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-apollo-federation-config-syntax) | 1 | Set Apollo Federaion configuration of an already tracked bigquery table |
|
| [bigquery_set_apollo_federation_config](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-apollo-federation-config) | [bigquery_set_apollo_federation_config_args](/api-reference/metadata-api/table-view.mdx#metadata-bigquery-set-apollo-federation-config-syntax) | 1 | Set Apollo Federation configuration of an already tracked bigquery table |
|
||||||
| [mssql_add_source](/api-reference/metadata-api/source.mdx#mssql-add-source) | [mssql_add_source_args](/api-reference/metadata-api/source.mdx#mssql-add-source-syntax) | 1 | Add an MS SQL Server database |
|
| [mssql_add_source](/api-reference/metadata-api/source.mdx#mssql-add-source) | [mssql_add_source_args](/api-reference/metadata-api/source.mdx#mssql-add-source-syntax) | 1 | Add an MS SQL Server database |
|
||||||
| [mssql_drop_source](/api-reference/metadata-api/source.mdx#mssql-drop-source) | [mssql_drop_source_args](/api-reference/metadata-api/source.mdx#mssql-drop-source-syntax) | 1 | Remove an MS SQL Server database |
|
| [mssql_drop_source](/api-reference/metadata-api/source.mdx#mssql-drop-source) | [mssql_drop_source_args](/api-reference/metadata-api/source.mdx#mssql-drop-source-syntax) | 1 | Remove an MS SQL Server database |
|
||||||
| [mssql_track_table](/api-reference/metadata-api/table-view.mdx#mssql-track-table) | [mssql_track_table_args](/api-reference/metadata-api/table-view.mdx#mssql-track-table-syntax) | 1 | Add an MS SQL Server table/view with configuration |
|
| [mssql_track_table](/api-reference/metadata-api/table-view.mdx#mssql-track-table) | [mssql_track_table_args](/api-reference/metadata-api/table-view.mdx#mssql-track-table-syntax) | 1 | Add an MS SQL Server table/view with configuration |
|
||||||
@ -128,7 +128,7 @@ The various types of queries are listed in the following table:
|
|||||||
| [mssql_create_delete_permission](/api-reference/metadata-api/permission.mdx#mssql-create-delete-permission) | [mssql_create_delete_permission_args](/api-reference/metadata-api/permission.mdx#mssql-create-delete-permission-syntax) | 1 | Specify delete permission for an MS SQL Server table/view |
|
| [mssql_create_delete_permission](/api-reference/metadata-api/permission.mdx#mssql-create-delete-permission) | [mssql_create_delete_permission_args](/api-reference/metadata-api/permission.mdx#mssql-create-delete-permission-syntax) | 1 | Specify delete permission for an MS SQL Server table/view |
|
||||||
| [mssql_drop_delete_permission](/api-reference/metadata-api/permission.mdx#mssql-drop-delete-permission) | [mssql_drop_delete_permission_args](/api-reference/metadata-api/permission.mdx#mssql-drop-delete-permission-syntax) | 1 | Remove existing delete permission for an MS SQL Server table/view |
|
| [mssql_drop_delete_permission](/api-reference/metadata-api/permission.mdx#mssql-drop-delete-permission) | [mssql_drop_delete_permission_args](/api-reference/metadata-api/permission.mdx#mssql-drop-delete-permission-syntax) | 1 | Remove existing delete permission for an MS SQL Server table/view |
|
||||||
| [mssql_set_permission_comment](/api-reference/metadata-api/permission.mdx#mssql-set-permission-comment) | [mssql_set_permission_comment_args](/api-reference/metadata-api/permission.mdx#mssql-set-permission-comment-syntax) | 1 | Set comment on an existing permission for an MS SQL Server table/view |
|
| [mssql_set_permission_comment](/api-reference/metadata-api/permission.mdx#mssql-set-permission-comment) | [mssql_set_permission_comment_args](/api-reference/metadata-api/permission.mdx#mssql-set-permission-comment-syntax) | 1 | Set comment on an existing permission for an MS SQL Server table/view |
|
||||||
| [mssql_set_apollo_federation_config](/api-reference/metadata-api/table-view.mdx#metadata-mssql-set-apollo-federation-config) | [mssql_set_apollo_federation_config_args](/api-reference/metadata-api/table-view.mdx#metadata-mssql-set-apollo-federation-config-syntax) | 1 | Set Apollo Federaion configuration of an already tracked mssql table |
|
| [mssql_set_apollo_federation_config](/api-reference/metadata-api/table-view.mdx#metadata-mssql-set-apollo-federation-config) | [mssql_set_apollo_federation_config_args](/api-reference/metadata-api/table-view.mdx#metadata-mssql-set-apollo-federation-config-syntax) | 1 | Set Apollo Federation configuration of an already tracked mssql table |
|
||||||
| [create_cron_trigger](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-create-cron-trigger) | [create_cron_trigger_args](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-create-cron-trigger-syntax) | 1 | Create a cron trigger |
|
| [create_cron_trigger](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-create-cron-trigger) | [create_cron_trigger_args](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-create-cron-trigger-syntax) | 1 | Create a cron trigger |
|
||||||
| [delete_cron_trigger](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-delete-cron-trigger) | [delete_cron_trigger_args](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-delete-cron-trigger-syntax) | 1 | Delete an existing cron trigger |
|
| [delete_cron_trigger](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-delete-cron-trigger) | [delete_cron_trigger_args](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-delete-cron-trigger-syntax) | 1 | Delete an existing cron trigger |
|
||||||
| [get_cron_triggers](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-get-cron-triggers) | [Empty Object](/api-reference/syntax-defs.mdx#empty-object) | 1 | Returns all the cron triggers |
|
| [get_cron_triggers](/api-reference/metadata-api/scheduled-triggers.mdx#metadata-get-cron-triggers) | [Empty Object](/api-reference/syntax-defs.mdx#empty-object) | 1 | Returns all the cron triggers |
|
||||||
|
@ -9,7 +9,7 @@ keywords:
|
|||||||
- API reference
|
- API reference
|
||||||
- network options
|
- network options
|
||||||
- TLS
|
- TLS
|
||||||
- allowlis
|
- allowlist
|
||||||
---
|
---
|
||||||
|
|
||||||
# Metadata API Reference: Network Options (v2.0 and above)
|
# Metadata API Reference: Network Options (v2.0 and above)
|
||||||
|
@ -45,7 +45,7 @@ type User {
|
|||||||
user_id: Int
|
user_id: Int
|
||||||
name: String
|
name: String
|
||||||
phone: String
|
phone: String
|
||||||
userMessages(whered: MessageWhereInpObj, includes: IncludeInpObj): [Message]
|
userMessages(where: MessageWhereInpObj, includes: IncludeInpObj): [Message]
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Communication {
|
interface Communication {
|
||||||
@ -290,7 +290,7 @@ The remote relationship is defined to join the `id` field from the
|
|||||||
`customer` table to the `customer_id` argument of the `transactions`
|
`customer` table to the `customer_id` argument of the `transactions`
|
||||||
field.
|
field.
|
||||||
|
|
||||||
We only allow the `user` role to access the `amount` and `time` fiels of
|
We only allow the `user` role to access the `amount` and `time` fields of
|
||||||
the `Transaction` object, and introduce a preset for the `limit`
|
the `Transaction` object, and introduce a preset for the `limit`
|
||||||
argument of the `transaction` field, resulting in the following schema
|
argument of the `transaction` field, resulting in the following schema
|
||||||
being presented.
|
being presented.
|
||||||
|
@ -44,7 +44,7 @@ X-Hasura-Role: admin
|
|||||||
"key2": "value2"
|
"key2": "value2"
|
||||||
},
|
},
|
||||||
"include_in_metadata":false,
|
"include_in_metadata":false,
|
||||||
"comment":"sample_cron commment"
|
"comment":"sample_cron comment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -28,7 +28,7 @@ The Metadata API is supported for versions `v2.0.0` and above and replaces the o
|
|||||||
|
|
||||||
## pg_track_table {#metadata-pg-track-table}
|
## pg_track_table {#metadata-pg-track-table}
|
||||||
|
|
||||||
`pg_track_table` is used to add a table/view to the GraphQL schema with configuration. You can customise the root field
|
`pg_track_table` is used to add a table/view to the GraphQL schema with configuration. You can customize the root field
|
||||||
names.
|
names.
|
||||||
|
|
||||||
Add a table/view `author`:
|
Add a table/view `author`:
|
||||||
@ -274,7 +274,7 @@ Setting `apollo_federation_config` to `null` will disable Apollo Federation supp
|
|||||||
|
|
||||||
## mssql_track_table {#mssql-track-table}
|
## mssql_track_table {#mssql-track-table}
|
||||||
|
|
||||||
`mssql_track_table` is used to add a table/view to the GraphQL schema with configuration. You can customise the root
|
`mssql_track_table` is used to add a table/view to the GraphQL schema with configuration. You can customize the root
|
||||||
field names.
|
field names.
|
||||||
|
|
||||||
Add a table/view `author`:
|
Add a table/view `author`:
|
||||||
@ -463,7 +463,7 @@ Setting `apollo_federation_config` to `null` will disable Apollo Federation supp
|
|||||||
|
|
||||||
## bigquery_track_table {#metadata-bigquery-track-table}
|
## bigquery_track_table {#metadata-bigquery-track-table}
|
||||||
|
|
||||||
`bigquery_track_table` is used to add a table/view to the GraphQL schema with configuration. You can customise the root
|
`bigquery_track_table` is used to add a table/view to the GraphQL schema with configuration. You can customize the root
|
||||||
field names.
|
field names.
|
||||||
|
|
||||||
Add a table/view `author`:
|
Add a table/view `author`:
|
||||||
|
@ -17,7 +17,7 @@ The PG Dump API is an admin-only endpoint that can be used to execute
|
|||||||
`pg_dump` on the Postgres instance that Hasura is configured with.
|
`pg_dump` on the Postgres instance that Hasura is configured with.
|
||||||
|
|
||||||
The primary motive of this API is to provide convenience methods to
|
The primary motive of this API is to provide convenience methods to
|
||||||
initialise Migrations from an existing Hasura instance. But the
|
initialize Migrations from an existing Hasura instance. But the
|
||||||
functionality can be later expanded to do other things such as taking a
|
functionality can be later expanded to do other things such as taking a
|
||||||
data dump etc.
|
data dump etc.
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ Variables can be supplied via route patterns, url query variables, and
|
|||||||
request body JSON object keys.
|
request body JSON object keys.
|
||||||
|
|
||||||
- JSON Body Object values are passed directly to the associated query
|
- JSON Body Object values are passed directly to the associated query
|
||||||
with no additional validation or type-coersion.
|
with no additional validation or type-coercion.
|
||||||
- Route variables and Query parameters are interpreted as scalars
|
- Route variables and Query parameters are interpreted as scalars
|
||||||
according to the variables types in the associated query and passed
|
according to the variables types in the associated query and passed
|
||||||
as JSON data through the query variables:
|
as JSON data through the query variables:
|
||||||
|
@ -27,7 +27,7 @@ continue to function.
|
|||||||
|
|
||||||
**computed field** is an extra field added to a table, its value is
|
**computed field** is an extra field added to a table, its value is
|
||||||
computed via an SQL function which has the table row type as an input
|
computed via an SQL function which has the table row type as an input
|
||||||
argument. Currenty, the Hasura GraphQL Engine supports functions
|
argument. Currently, the Hasura GraphQL Engine supports functions
|
||||||
returning [base types](https://www.postgresql.org/docs/current/extend-type-system.html#id-1.8.3.5.9)
|
returning [base types](https://www.postgresql.org/docs/current/extend-type-system.html#id-1.8.3.5.9)
|
||||||
or [table row types](https://www.postgresql.org/docs/current/rowtypes.html#ROWTYPES-DECLARING)
|
or [table row types](https://www.postgresql.org/docs/current/rowtypes.html#ROWTYPES-DECLARING)
|
||||||
as computed fields.
|
as computed fields.
|
||||||
|
@ -186,11 +186,11 @@ The various types of queries are listed in the following table:
|
|||||||
| 400 | dependency-error | cannot drop due to the following dependent objects: `<dependencies>` |
|
| 400 | dependency-error | cannot drop due to the following dependent objects: `<dependencies>` |
|
||||||
| 400 | access-denied | You have to be admin to access this endpoint |
|
| 400 | access-denied | You have to be admin to access this endpoint |
|
||||||
| 400 | parse-failed | parsing dotted table failed: `<table-name>` |
|
| 400 | parse-failed | parsing dotted table failed: `<table-name>` |
|
||||||
| 400 | access-denied | not authorised to access this tx |
|
| 400 | access-denied | not authorized to access this tx |
|
||||||
| 400 | already-exists | multiple declarations exist for the following `<table-name>`: `<duplicates>` |
|
| 400 | already-exists | multiple declarations exist for the following `<table-name>`: `<duplicates>` |
|
||||||
| 400 | not-exists | tx does not exists |
|
| 400 | not-exists | tx does not exists |
|
||||||
| 400 | already-exists | column/relationship of table `<table-name>` already exists |
|
| 400 | already-exists | column/relationship of table `<table-name>` already exists |
|
||||||
| 400 | already-initialised | the state seems to be initialised already. \ \ you may need to migrate from this version: `<catalog-version>` |
|
| 400 | already-initialized | the state seems to be initialized already. \ \ you may need to migrate from this version: `<catalog-version>` |
|
||||||
| 400 | constraint-error | no foreign constraint exists on the given column |
|
| 400 | constraint-error | no foreign constraint exists on the given column |
|
||||||
| 400 | not-supported | unsupported version: `<catalog-version>` |
|
| 400 | not-supported | unsupported version: `<catalog-version>` |
|
||||||
| 400 | constraint-error | more than one foreign key constraint exists on the given column |
|
| 400 | constraint-error | more than one foreign key constraint exists on the given column |
|
||||||
|
@ -49,7 +49,7 @@ type User {
|
|||||||
user_id: Int
|
user_id: Int
|
||||||
name: String
|
name: String
|
||||||
phone: String
|
phone: String
|
||||||
userMessages(whered: MessageWhereInpObj, includes: IncludeInpObj): [Message]
|
userMessages(where: MessageWhereInpObj, includes: IncludeInpObj): [Message]
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Communication {
|
interface Communication {
|
||||||
@ -294,7 +294,7 @@ The remote relationship is defined to join the `id` field from the
|
|||||||
`customer` table to the `customer_id` argument of the `transactions`
|
`customer` table to the `customer_id` argument of the `transactions`
|
||||||
field.
|
field.
|
||||||
|
|
||||||
We only allow the `user` role to access the `amount` and `time` fiels of
|
We only allow the `user` role to access the `amount` and `time` fields of
|
||||||
the `Transaction` object, and introduce a preset for the `limit`
|
the `Transaction` object, and introduce a preset for the `limit`
|
||||||
argument of the `transaction` field, resulting in the following schema
|
argument of the `transaction` field, resulting in the following schema
|
||||||
being presented.
|
being presented.
|
||||||
|
@ -48,7 +48,7 @@ X-Hasura-Role: admin
|
|||||||
"key2": "value2"
|
"key2": "value2"
|
||||||
},
|
},
|
||||||
"include_in_metadata":false,
|
"include_in_metadata":false,
|
||||||
"comment":"sample_cron commment"
|
"comment":"sample_cron comment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -89,7 +89,7 @@ X-Hasura-Role: admin
|
|||||||
|
|
||||||
## track_table v2 {#schema-metadata-track-table-v2}
|
## track_table v2 {#schema-metadata-track-table-v2}
|
||||||
|
|
||||||
Version 2 of `track_table` is used to add a table/view to the GraphQL schema with configuration. You can customise the
|
Version 2 of `track_table` is used to add a table/view to the GraphQL schema with configuration. You can customize the
|
||||||
root field names.
|
root field names.
|
||||||
|
|
||||||
Add a table/view `author`:
|
Add a table/view `author`:
|
||||||
@ -216,8 +216,8 @@ X-Hasura-Role: admin
|
|||||||
| Key | Required | Schema | Description |
|
| Key | Required | Schema | Description |
|
||||||
| ------------------- | -------- | ----------------------------------------------------------------------- | --------------------------- |
|
| ------------------- | -------- | ----------------------------------------------------------------------- | --------------------------- |
|
||||||
| table | true | [TableName](/api-reference/syntax-defs.mdx#tablename) | Name of the table |
|
| table | true | [TableName](/api-reference/syntax-defs.mdx#tablename) | Name of the table |
|
||||||
| custom_root_fields | false | [Custom Root Fields](/api-reference/syntax-defs.mdx#custom-root-fields) | Customise the root fields |
|
| custom_root_fields | false | [Custom Root Fields](/api-reference/syntax-defs.mdx#custom-root-fields) | Customize the root fields |
|
||||||
| custom_column_names | false | [CustomColumnNames](/api-reference/syntax-defs.mdx#customcolumnnames) | Customise the column fields |
|
| custom_column_names | false | [CustomColumnNames](/api-reference/syntax-defs.mdx#customcolumnnames) | Customize the column fields |
|
||||||
|
|
||||||
## set_table_customization {#schema-metadata-set-table-customization}
|
## set_table_customization {#schema-metadata-set-table-customization}
|
||||||
|
|
||||||
|
@ -245,33 +245,33 @@ keywords:
|
|||||||
|
|
||||||
| Key | Required | Schema | Description |
|
| Key | Required | Schema | Description |
|
||||||
| -------------------------------- | -------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| -------------------------------- | -------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| custom_name | false | `String` | Customise the `<table-name>` with the provided custom name value. The GraphQL nodes for the table will be generated according to the custom name. |
|
| custom_name | false | `String` | Customize the `<table-name>` with the provided custom name value. The GraphQL nodes for the table will be generated according to the custom name. |
|
||||||
| custom_root_fields | false | [Custom Root Fields](#custom-root-fields) | Customise the root fields |
|
| custom_root_fields | false | [Custom Root Fields](#custom-root-fields) | Customize the root fields |
|
||||||
| column_config | false | [ColumnConfig](#columnconfig) | Customise the columns |
|
| column_config | false | [ColumnConfig](#columnconfig) | Customize the columns |
|
||||||
| custom_column_names (deprecated) | false | [CustomColumnNames](#customcolumnnames) | Customise the column fields (deprecated in favour of custom_name on [ColumnConfig](#columnconfig)) |
|
| custom_column_names (deprecated) | false | [CustomColumnNames](#customcolumnnames) | Customize the column fields (deprecated in favour of custom_name on [ColumnConfig](#columnconfig)) |
|
||||||
| comment | false | `String` | Customise the description shown in GraphQL introspection. If null or omitted then if a comment exists on the database table, it is used as the description (Postgres-only), and if not, an autogenerated description is used instead. |
|
| comment | false | `String` | Customize the description shown in GraphQL introspection. If null or omitted then if a comment exists on the database table, it is used as the description (Postgres-only), and if not, an autogenerated description is used instead. |
|
||||||
|
|
||||||
## Custom Root Fields {#custom-root-fields}
|
## Custom Root Fields {#custom-root-fields}
|
||||||
|
|
||||||
| Key | Required | Schema | Description |
|
| Key | Required | Schema | Description |
|
||||||
| ---------------- | -------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
| ---------------- | -------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
||||||
| select | false | `String` \| [CustomRootField](#customrootfield) | Customise the `<table-name>` root field. Using a `String` customises the field name. |
|
| select | false | `String` \| [CustomRootField](#customrootfield) | Customize the `<table-name>` root field. Using a `String` customizes the field name. |
|
||||||
| select_by_pk | false | `String` \| [CustomRootField](#customrootfield) | Customise the `<table-name>_by_pk` root field. Using a `String` customises the field name. |
|
| select_by_pk | false | `String` \| [CustomRootField](#customrootfield) | Customize the `<table-name>_by_pk` root field. Using a `String` customizes the field name. |
|
||||||
| select_aggregate | false | `String` \| [CustomRootField](#customrootfield) | Customise the `<table-name>_aggregate` root field. Using a `String` customises the field name. |
|
| select_aggregate | false | `String` \| [CustomRootField](#customrootfield) | Customize the `<table-name>_aggregate` root field. Using a `String` customizes the field name. |
|
||||||
| select_stream | false | `String` \| [CustomRootField](#customrootfield) | Customise the `<table-name>_stream` root field. Using a `String` customises the field name. |
|
| select_stream | false | `String` \| [CustomRootField](#customrootfield) | Customize the `<table-name>_stream` root field. Using a `String` customizes the field name. |
|
||||||
| insert | false | `String` \| [CustomRootField](#customrootfield) | Customise the `insert_<table-name>` root field. Using a `String` customises the field name. |
|
| insert | false | `String` \| [CustomRootField](#customrootfield) | Customize the `insert_<table-name>` root field. Using a `String` customizes the field name. |
|
||||||
| insert_one | false | `String` \| [CustomRootField](#customrootfield) | Customise the `insert_<table-name>_one` root field. Using a `String` customises the field name. |
|
| insert_one | false | `String` \| [CustomRootField](#customrootfield) | Customize the `insert_<table-name>_one` root field. Using a `String` customizes the field name. |
|
||||||
| update | false | `String` \| [CustomRootField](#customrootfield) | Customise the `update_<table-name>` root field. Using a `String` customises the field name. |
|
| update | false | `String` \| [CustomRootField](#customrootfield) | Customize the `update_<table-name>` root field. Using a `String` customizes the field name. |
|
||||||
| update_by_pk | false | `String` \| [CustomRootField](#customrootfield) | Customise the `update_<table-name>_by_pk` root field. Using a `String` customises the field name. |
|
| update_by_pk | false | `String` \| [CustomRootField](#customrootfield) | Customize the `update_<table-name>_by_pk` root field. Using a `String` customizes the field name. |
|
||||||
| delete | false | `String` \| [CustomRootField](#customrootfield) | Customise the `delete_<table-name>` root field. Using a `String` customises the field name. |
|
| delete | false | `String` \| [CustomRootField](#customrootfield) | Customize the `delete_<table-name>` root field. Using a `String` customizes the field name. |
|
||||||
| delete_by_pk | false | `String` \| [CustomRootField](#customrootfield) | Customise the `delete_<table-name>_by_pk` root field. Using a `String` customises the field name. |
|
| delete_by_pk | false | `String` \| [CustomRootField](#customrootfield) | Customize the `delete_<table-name>_by_pk` root field. Using a `String` customizes the field name. |
|
||||||
|
|
||||||
## CustomRootField {#customrootfield}
|
## CustomRootField {#customrootfield}
|
||||||
|
|
||||||
| Key | Required | Schema | Description |
|
| Key | Required | Schema | Description |
|
||||||
| ------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| name | false | `String` | The custom root field name |
|
| name | false | `String` | The custom root field name |
|
||||||
| comment | false | `String` | Customise the description shown for the root field in GraphQL introspection. If null or omitted then an autogenerated description is used instead. |
|
| comment | false | `String` | Customize the description shown for the root field in GraphQL introspection. If null or omitted then an autogenerated description is used instead. |
|
||||||
|
|
||||||
## ColumnConfig {#columnconfig}
|
## ColumnConfig {#columnconfig}
|
||||||
|
|
||||||
@ -301,15 +301,15 @@ Configuration properties for particular column, as specified on [ColumnConfig](#
|
|||||||
|
|
||||||
| Key | Required | Schema | Description |
|
| Key | Required | Schema | Description |
|
||||||
| ----------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ----------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| custom_name | false | `String` | Customise the name of the field in the GraphQL schema |
|
| custom_name | false | `String` | Customize the name of the field in the GraphQL schema |
|
||||||
| comment | false | `String` | Customise the description shown for the field in GraphQL introspection. If null or omitted then an autogenerated description is used instead. |
|
| comment | false | `String` | Customize the description shown for the field in GraphQL introspection. If null or omitted then an autogenerated description is used instead. |
|
||||||
|
|
||||||
## Custom Function Root Fields {#custom-function-root-fields}
|
## Custom Function Root Fields {#custom-function-root-fields}
|
||||||
|
|
||||||
| Key | Required | Schema | Description |
|
| Key | Required | Schema | Description |
|
||||||
| ------------------ | -------- | -------- | ---------------------------------------------------- |
|
| ------------------ | -------- | -------- | ---------------------------------------------------- |
|
||||||
| function | false | `String` | Customise the `<function-name>` root field |
|
| function | false | `String` | Customize the `<function-name>` root field |
|
||||||
| function_aggregate | false | `String` | Customise the `<function-name>_aggregete` root field |
|
| function_aggregate | false | `String` | Customize the `<function-name>_aggregate` root field |
|
||||||
|
|
||||||
## InsertPermission {#insertpermission}
|
## InsertPermission {#insertpermission}
|
||||||
|
|
||||||
@ -1240,8 +1240,8 @@ via [Custom Types](/api-reference/metadata-api/custom-types.mdx)
|
|||||||
|
|
||||||
| Key | Required | Schema | Description |
|
| Key | Required | Schema | Description |
|
||||||
| ------------------ | -------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------------------ | -------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| custom_name | false | `String` | Customise the `<function-name>` with the provided custom name value. The GraphQL nodes for the function will be generated according to the custom name. |
|
| custom_name | false | `String` | Customize the `<function-name>` with the provided custom name value. The GraphQL nodes for the function will be generated according to the custom name. |
|
||||||
| custom_root_fields | false | [Custom Function Root Fields](#custom-function-root-fields) | Customise the root fields |
|
| custom_root_fields | false | [Custom Function Root Fields](#custom-function-root-fields) | Customize the root fields |
|
||||||
| session_argument | false | <em>String</em> | Function argument which accepts session info JSON |
|
| session_argument | false | <em>String</em> | Function argument which accepts session info JSON |
|
||||||
| exposed_as | false | <em>String</em> | In which part of the schema should we expose this function? Either "mutation" or "query". |
|
| exposed_as | false | <em>String</em> | In which part of the schema should we expose this function? Either "mutation" or "query". |
|
||||||
|
|
||||||
@ -1253,7 +1253,7 @@ Currently, only functions which satisfy the following constraints can be
|
|||||||
exposed over the GraphQL API (_terminology from_ [Postgres
|
exposed over the GraphQL API (_terminology from_ [Postgres
|
||||||
docs](https://www.postgresql.org/docs/current/sql-createfunction.html)):
|
docs](https://www.postgresql.org/docs/current/sql-createfunction.html)):
|
||||||
|
|
||||||
- **Function behaviour**: `STABLE` or `IMMUTABLE` functions may _only_
|
- **Function behavior**: `STABLE` or `IMMUTABLE` functions may _only_
|
||||||
be exposed as queries (i.e. with `exposed_as: query`) `VOLATILE`
|
be exposed as queries (i.e. with `exposed_as: query`) `VOLATILE`
|
||||||
functions may be exposed as mutations or queries.
|
functions may be exposed as mutations or queries.
|
||||||
- **Return type**: MUST be `SETOF <table-name>` OR `<table_name>`
|
- **Return type**: MUST be `SETOF <table-name>` OR `<table_name>`
|
||||||
@ -1631,22 +1631,20 @@ Table columns can be referred by prefixing `$` e.g `$id`.
|
|||||||
## APILimitOption {#apilimitoption}
|
## APILimitOption {#apilimitoption}
|
||||||
|
|
||||||
| Key | required | Schema | Description |
|
| Key | required | Schema | Description |
|
||||||
|-----------|----------|-------------------------------|----------------------------------------------------------------------|
|
| -------- | -------- | -------------------------- | ------------------------------------------------------------------ |
|
||||||
| global | true | Integer | Mandatory limit to be set at the global level |
|
| global | true | Integer | Mandatory limit to be set at the global level |
|
||||||
| per_role | false | Object (`String`: Integer) | Map of role name to limit value. This defines limits for each role |
|
| per_role | false | Object (`String`: Integer) | Map of role name to limit value. This defines limits for each role |
|
||||||
|
|
||||||
## RateLimitOption {#ratelimitoption}
|
## RateLimitOption {#ratelimitoption}
|
||||||
|
|
||||||
| Key | required | Schema | Description |
|
| Key | required | Schema | Description |
|
||||||
|-----------|----------|-----------------------------------------------------------------------|----------------------------------------------------------------------------|
|
| -------- | -------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------ |
|
||||||
| global | true | [RateLimitPerRoleOption](#ratelimitperroleoption) | Mandatory rate limit to be set at the global level |
|
| global | true | [RateLimitPerRoleOption](#ratelimitperroleoption) | Mandatory rate limit to be set at the global level |
|
||||||
| per_role | false | Object (`String`: [RateLimitPerRoleOption](#ratelimitperroleoption)) | Map of role name to rate limit config. This defines limits for each role |
|
| per_role | false | Object (`String`: [RateLimitPerRoleOption](#ratelimitperroleoption)) | Map of role name to rate limit config. This defines limits for each role |
|
||||||
|
|
||||||
|
|
||||||
## RateLimitPerRoleOption {#ratelimitperroleoption}
|
## RateLimitPerRoleOption {#ratelimitperroleoption}
|
||||||
|
|
||||||
| Key | required | Schema | Description |
|
| Key | required | Schema | Description |
|
||||||
|------------------|----------|-------------------------------|----------------------------------------------------------------------|
|
| ---------------- | -------- | ---------------------- | -------------------------------------------------------------------- |
|
||||||
| unique_params | false | `String` \| [`String`] | This would be either fixed value `IP` or a list of Session variables |
|
| unique_params | false | `String` \| [`String`] | This would be either fixed value `IP` or a list of Session variables |
|
||||||
| max_reqs_per_min | true | Integer | Maximum requests per minute to be allowed |
|
| max_reqs_per_min | true | Integer | Maximum requests per minute to be allowed |
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ CLERK_API_KEY=<YOUR_CLERK_API_KEY>
|
|||||||
|
|
||||||
:::info Note
|
:::info Note
|
||||||
|
|
||||||
The `NEXT_PUBLIC_` prefix is specific to Next.js applications, but there are similiar conventions for other frameworks
|
The `NEXT_PUBLIC_` prefix is specific to Next.js applications, but there are similar conventions for other frameworks
|
||||||
to pass build-time values to the client.
|
to pass build-time values to the client.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
@ -218,7 +218,7 @@ export default function Home() {
|
|||||||
Upon clicking the button, a request is made with our Hasura JWT as the Bearer token in the `Authorization` header. The
|
Upon clicking the button, a request is made with our Hasura JWT as the Bearer token in the `Authorization` header. The
|
||||||
response is converted to JSON and logged to the browser Console.
|
response is converted to JSON and logged to the browser Console.
|
||||||
|
|
||||||
If all has been successful, you should see something similiar as below in your browser Console:
|
If all has been successful, you should see something similar as below in your browser Console:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
description: Use authenticaton with JWT in Hasura
|
description: Use authentication with JWT in Hasura
|
||||||
keywords:
|
keywords:
|
||||||
- hasura
|
- hasura
|
||||||
- docs
|
- docs
|
||||||
@ -168,7 +168,7 @@ Some providers rotate their JWKs (e.g. Firebase). If the provider sends
|
|||||||
with the response of JWK, then the GraphQL Engine will refresh the JWKs automatically. If the provider does not send the
|
with the response of JWK, then the GraphQL Engine will refresh the JWKs automatically. If the provider does not send the
|
||||||
above, the JWKs are not refreshed.
|
above, the JWKs are not refreshed.
|
||||||
|
|
||||||
Following is the behaviour in detail:
|
Following is the behavior in detail:
|
||||||
|
|
||||||
**On startup**:
|
**On startup**:
|
||||||
|
|
||||||
|
@ -66,11 +66,11 @@ include the `X-Hasura-Admin-Secret` header. You can
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## Managers of an organisation in a multi-tenant app
|
## Managers of an organization in a multi-tenant app
|
||||||
|
|
||||||
Suppose you have a multi-tenant application where managers of a particular organisation can see all of the data that
|
Suppose you have a multi-tenant application where managers of a particular organization can see all of the data that
|
||||||
belongs to the organisation. In this case, your data models will probably have an `org_id` column that denotes the
|
belongs to the organization. In this case, your data models will probably have an `org_id` column that denotes the
|
||||||
organisation either in the same table or via a related table.
|
organization either in the same table or via a related table.
|
||||||
|
|
||||||
- Create a role called `manager`.
|
- Create a role called `manager`.
|
||||||
- Create a permission for select, which has the condition: `org_id: {_eq: "X-Hasura-Org-Id"}`.
|
- Create a permission for select, which has the condition: `org_id: {_eq: "X-Hasura-Org-Id"}`.
|
||||||
@ -79,7 +79,7 @@ organisation either in the same table or via a related table.
|
|||||||
|
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
src="/img/auth/org-manager-graphiql.png"
|
src="/img/auth/org-manager-graphiql.png"
|
||||||
alt="Access control for a manager of an organisation"
|
alt="Access control for a manager of an organization"
|
||||||
width="1300px"
|
width="1300px"
|
||||||
className="no-shadow"
|
className="no-shadow"
|
||||||
/>
|
/>
|
||||||
|
@ -35,7 +35,7 @@ any.
|
|||||||
:::tip Supported from
|
:::tip Supported from
|
||||||
|
|
||||||
Inherited roles are supported for versions `v2.0.0-alpha.4` and above. The inherited roles feature is an experimental
|
Inherited roles are supported for versions `v2.0.0-alpha.4` and above. The inherited roles feature is an experimental
|
||||||
feature from verions `v2.0.0-alpha.4` till `v2.1.0-beta.1`, i.e it must be explicitly toggled in order to be enabled.
|
feature from versions `v2.0.0-alpha.4` till `v2.1.0-beta.1`, i.e it must be explicitly toggled in order to be enabled.
|
||||||
This can be done either by setting the env var `HASURA_GRAPHQL_EXPERIMENTAL_FEATURES` or the server flag
|
This can be done either by setting the env var `HASURA_GRAPHQL_EXPERIMENTAL_FEATURES` or the server flag
|
||||||
`--experimental-features` to `inherited_roles`.
|
`--experimental-features` to `inherited_roles`.
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Flat, non-hierarchical roles
|
|||||||
|
|
||||||
Roles can be typically be modeled in two ways:
|
Roles can be typically be modeled in two ways:
|
||||||
|
|
||||||
1. **Hierarchical roles**: Access scopes are nested depending on available roles. `Roles in GitHub for organisations <https://help.github.com/en/articles/managing-peoples-access-to-your-organization-with-roles>`_
|
1. **Hierarchical roles**: Access scopes are nested depending on available roles. `Roles in GitHub for organizations <https://help.github.com/en/articles/managing-peoples-access-to-your-organization-with-roles>`_
|
||||||
is a great example of such modeling where access scopes are inherited by deeper roles:
|
is a great example of such modeling where access scopes are inherited by deeper roles:
|
||||||
|
|
||||||
.. thumbnail:: /img/auth/github-org-hierarchical-roles.png
|
.. thumbnail:: /img/auth/github-org-hierarchical-roles.png
|
||||||
@ -48,7 +48,7 @@ partially captured by the table below (*showing access permissions for the* ``us
|
|||||||
}
|
}
|
||||||
|
|
||||||
* - org-member
|
* - org-member
|
||||||
- Allow access to personally created repositories and the organisation's repositories.
|
- Allow access to personally created repositories and the organization's repositories.
|
||||||
-
|
-
|
||||||
.. code-block:: json
|
.. code-block:: json
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ Relationship information is available in the same database
|
|||||||
|
|
||||||
Let's take a closer look at the permission rule for the ``org-member`` rule in the example from the previous
|
Let's take a closer look at the permission rule for the ``org-member`` rule in the example from the previous
|
||||||
section. The rule reads as "*allow access to this repository if it was created by this user or if this user is
|
section. The rule reads as "*allow access to this repository if it was created by this user or if this user is
|
||||||
a member of the organisation that this repository belongs to*".
|
a member of the organization that this repository belongs to*".
|
||||||
|
|
||||||
The crucial piece of user information, that is presumed to be available in the same database, that makes this an
|
The crucial piece of user information, that is presumed to be available in the same database, that makes this an
|
||||||
effective rule is the mapping of users (*members*) to organizations.
|
effective rule is the mapping of users (*members*) to organizations.
|
||||||
@ -107,7 +107,7 @@ When this user information is not available in the database that Hasura is confi
|
|||||||
are the only avenue to pass this information to a permission rule. In our example, the mapping of users (members)
|
are the only avenue to pass this information to a permission rule. In our example, the mapping of users (members)
|
||||||
to organizations may not have been in available in the same database.
|
to organizations may not have been in available in the same database.
|
||||||
|
|
||||||
To convey this information, a session variable, say ``X-Hasura-Allowed-Organisations`` can be used by the
|
To convey this information, a session variable, say ``X-Hasura-Allowed-Organizations`` can be used by the
|
||||||
configured authentication to relay this information. We can then check for the following condition to emulate
|
configured authentication to relay this information. We can then check for the following condition to emulate
|
||||||
the same rule - *is the organization that this repository belongs to part of the list of the organizations the
|
the same rule - *is the organization that this repository belongs to part of the list of the organizations the
|
||||||
user is a member of*.
|
user is a member of*.
|
||||||
|
@ -133,7 +133,7 @@ General guidelines for modeling roles in Hasura.
|
|||||||
Roles are typically modelled in two ways:
|
Roles are typically modelled in two ways:
|
||||||
|
|
||||||
1. **Hierarchical roles**: Access scopes are nested depending on available roles.
|
1. **Hierarchical roles**: Access scopes are nested depending on available roles.
|
||||||
[Roles in GitHub for organisations](https://help.github.com/en/articles/managing-peoples-access-to-your-organization-with-roles)
|
[Roles in GitHub for organizations](https://help.github.com/en/articles/managing-peoples-access-to-your-organization-with-roles)
|
||||||
is a great example of such modeling where access scopes are inherited by deeper roles:
|
is a great example of such modeling where access scopes are inherited by deeper roles:
|
||||||
|
|
||||||
<Thumbnail src="/img/auth/github-org-hierarchical-roles.png" alt="Hierarchical roles" />
|
<Thumbnail src="/img/auth/github-org-hierarchical-roles.png" alt="Hierarchical roles" />
|
||||||
@ -172,7 +172,7 @@ and_ `select` _operation_):
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>org-member</td>
|
<td>org-member</td>
|
||||||
<td><p>Allow access to personally created repositories and the organisation's repositories</p></td>
|
<td><p>Allow access to personally created repositories and the organization's repositories</p></td>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
```json
|
```json
|
||||||
@ -218,7 +218,7 @@ database or not.
|
|||||||
|
|
||||||
Let's take a closer look at the permission rule for the `org-member` rule in the example from the previous section. The
|
Let's take a closer look at the permission rule for the `org-member` rule in the example from the previous section. The
|
||||||
rule reads as "_allow access to this repository if it was created by this user or if this user is a member of the
|
rule reads as "_allow access to this repository if it was created by this user or if this user is a member of the
|
||||||
organisation that this repository belongs to_".
|
organization that this repository belongs to_".
|
||||||
|
|
||||||
The crucial piece of user information that is presumed to be available in the same database and that makes this an
|
The crucial piece of user information that is presumed to be available in the same database and that makes this an
|
||||||
effective rule, is the mapping of users (_members_) to organizations.
|
effective rule, is the mapping of users (_members_) to organizations.
|
||||||
@ -233,7 +233,7 @@ When this user information is not available in the database that Hasura is confi
|
|||||||
only avenue to pass this information to a permission rule. In our example, the mapping of users (members) to
|
only avenue to pass this information to a permission rule. In our example, the mapping of users (members) to
|
||||||
organizations may not have been available in the same database.
|
organizations may not have been available in the same database.
|
||||||
|
|
||||||
To convey this information, a session variable, say `X-Hasura-Allowed-Organisations` can be used by the configured
|
To convey this information, a session variable, say `X-Hasura-Allowed-Organizations` can be used by the configured
|
||||||
authentication to relay this information. We can then check for the following condition to emulate the same rule: _is
|
authentication to relay this information. We can then check for the following condition to emulate the same rule: _is
|
||||||
the organization that this repository belongs to part of the list of the organizations the user is a member of_.
|
the organization that this repository belongs to part of the list of the organizations the user is a member of_.
|
||||||
|
|
||||||
@ -249,7 +249,7 @@ The permission for `org-member` role changes to this:
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"organization_id": {
|
"organization_id": {
|
||||||
"_in": "X-Hasura-Allowed-Organisations"
|
"_in": "X-Hasura-Allowed-Organizations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -272,10 +272,10 @@ suggestion to remove the brackets and set your session variable in its place.
|
|||||||
Session variables are currently expected to be Strings and should be encoded as Postgres's literals for the relevant
|
Session variables are currently expected to be Strings and should be encoded as Postgres's literals for the relevant
|
||||||
type.
|
type.
|
||||||
|
|
||||||
For example, in the above example, let's say `creator_id` and `organisation_id` columns are of type `integer`, then the
|
For example, in the above example, let's say `creator_id` and `organization_id` columns are of type `integer`, then the
|
||||||
values of `X-Hasura-User-Id` and `X-Hasura-Allowed-Organisations` should be of type `integer` and `integer[]` (an
|
values of `X-Hasura-User-Id` and `X-Hasura-Allowed-Organizations` should be of type `integer` and `integer[]` (an
|
||||||
integer array) respectively. To pass say a value `1` for `X-Hasura-User-Id`, it'll be "`1`" and if the allowed
|
integer array) respectively. To pass say a value `1` for `X-Hasura-User-Id`, it'll be "`1`" and if the allowed
|
||||||
organisations are `1`, `2` and `3`, then `X-Hasura-Allowed-Organisations` will be "`{1,2,3}`". `{}` is the syntax for
|
organizations are `1`, `2` and `3`, then `X-Hasura-Allowed-Organizations` will be "`{1,2,3}`". `{}` is the syntax for
|
||||||
specifying [arrays in Postgres](https://www.postgresql.org/docs/current/arrays.html#ARRAYS-INPUT).
|
specifying [arrays in Postgres](https://www.postgresql.org/docs/current/arrays.html#ARRAYS-INPUT).
|
||||||
|
|
||||||
The types and their formats are detailed [here](https://www.postgresql.org/docs/current/datatype.html). When in doubt
|
The types and their formats are detailed [here](https://www.postgresql.org/docs/current/datatype.html). When in doubt
|
||||||
|
@ -35,7 +35,7 @@ Connection pooling is only available for [PostgreSQL](/api-reference/syntax-defs
|
|||||||
:::
|
:::
|
||||||
|
|
||||||
In Hasura Cloud, the connection pool is elastic i.e. shrinks and grows based on usage and also respects a configured max
|
In Hasura Cloud, the connection pool is elastic i.e. shrinks and grows based on usage and also respects a configured max
|
||||||
limit. There are many other tunable parameters for the pool settings which can help you change the behaviour of the pool
|
limit. There are many other tunable parameters for the pool settings which can help you change the behavior of the pool
|
||||||
as required. Read more about these in the [How connection pooling works](#how-connection-pooling-works) section below.
|
as required. Read more about these in the [How connection pooling works](#how-connection-pooling-works) section below.
|
||||||
|
|
||||||
### Get started
|
### Get started
|
||||||
|
@ -123,7 +123,7 @@ postgresql://<user-name>:<password>@<public-ip>:<postgres-port>/
|
|||||||
default user name is `postgres`.
|
default user name is `postgres`.
|
||||||
- `password`: If you have a separate database user, use their password. Otherwise, use the password that you chose when
|
- `password`: If you have a separate database user, use their password. Otherwise, use the password that you chose when
|
||||||
creating the database.
|
creating the database.
|
||||||
- `public-ip`: The public IP can be optained by clicking on `Overview` on the left-side navigation and then scrolling
|
- `public-ip`: The public IP can be obtained by clicking on `Overview` on the left-side navigation and then scrolling
|
||||||
down to `Connect to this instance`:
|
down to `Connect to this instance`:
|
||||||
|
|
||||||
<Thumbnail src="/img/cloud-dbs/gcp/public-ip.png" alt="Find the public IP for a GCP Postgres database" width="700px" />
|
<Thumbnail src="/img/cloud-dbs/gcp/public-ip.png" alt="Find the public IP for a GCP Postgres database" width="700px" />
|
||||||
|
@ -105,7 +105,7 @@ service.
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
On Azure, under `Firewell rules` in networking settings, click on `Add a firewall rule`. Name the firewall rule and
|
On Azure, under `Firewall rules` in networking settings, click on `Add a firewall rule`. Name the firewall rule and
|
||||||
paste the Hasura instance's IP address on both the `Start IP` and `End IP` input boxes:
|
paste the Hasura instance's IP address on both the `Start IP` and `End IP` input boxes:
|
||||||
|
|
||||||
<Thumbnail src="/img/cloud-dbs/mssql/add-ip-and-save.png" alt="Add IP to firewall" width="1000px" />
|
<Thumbnail src="/img/cloud-dbs/mssql/add-ip-and-save.png" alt="Add IP to firewall" width="1000px" />
|
||||||
|
@ -40,12 +40,12 @@ On the Hasura Console, navigate to `Data -> Manage -> Connect Database -> Create
|
|||||||
|
|
||||||
Click on `Connect Neon Database` to create and connect a new Postgres database to your Hasura Project.
|
Click on `Connect Neon Database` to create and connect a new Postgres database to your Hasura Project.
|
||||||
|
|
||||||
<Thumbnail src="/img/cloud-dbs/neon/connect_neon_database.png" alt="Connect Neon database" widht="700px" />
|
<Thumbnail src="/img/cloud-dbs/neon/connect_neon_database.png" alt="Connect Neon database" width="700px" />
|
||||||
|
|
||||||
On the next step, you'll be prompted to Login/Sign up for Neon. We recommend `Continue with Hasura` for a seamless
|
On the next step, you'll be prompted to Login/Sign up for Neon. We recommend `Continue with Hasura` for a seamless
|
||||||
experience.
|
experience.
|
||||||
|
|
||||||
<Thumbnail src="/img/cloud-dbs/neon/neon_authentication.png" alt="Neon Authentication" widht="700px" />
|
<Thumbnail src="/img/cloud-dbs/neon/neon_authentication.png" alt="Neon Authentication" width="700px" />
|
||||||
|
|
||||||
After successful authorization, a new Neon Postgres database will be created and connected to your Hasura Project with
|
After successful authorization, a new Neon Postgres database will be created and connected to your Hasura Project with
|
||||||
the connection string associated with the environment variable `PG_DATABASE_URL`.
|
the connection string associated with the environment variable `PG_DATABASE_URL`.
|
||||||
@ -57,7 +57,7 @@ the template gallery instantly.
|
|||||||
|
|
||||||
For example: to get started, you could try the `Welcome to Hasura` template:
|
For example: to get started, you could try the `Welcome to Hasura` template:
|
||||||
|
|
||||||
<Thumbnail src="/img/cloud-dbs/neon/hasura_hello_world_template.png" alt="Hello World Template" widht="700px" />
|
<Thumbnail src="/img/cloud-dbs/neon/hasura_hello_world_template.png" alt="Hello World Template" width="700px" />
|
||||||
|
|
||||||
This installs a schema with data that you can now query using your Hasura GraphQL API from the `API` tab.
|
This installs a schema with data that you can now query using your Hasura GraphQL API from the `API` tab.
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ Voilà! You are ready to start developing.
|
|||||||
|
|
||||||
You can visit the Neon console from the `Data` tab to manage your created database.
|
You can visit the Neon console from the `Data` tab to manage your created database.
|
||||||
|
|
||||||
<Thumbnail src="/img/cloud-dbs/neon/neon_console_link_page.png" alt="Neon Console Link" widht="700px" />
|
<Thumbnail src="/img/cloud-dbs/neon/neon_console_link_page.png" alt="Neon Console Link" width="700px" />
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ If you've already reached the Neon free-tier project limit, please head to your
|
|||||||
[Neon console](https://console.neon.tech/) and delete an unused project to be able to create and connect a new one from
|
[Neon console](https://console.neon.tech/) and delete an unused project to be able to create and connect a new one from
|
||||||
the Hasura Console.
|
the Hasura Console.
|
||||||
|
|
||||||
<Thumbnail src="/img/cloud-dbs/neon/free_tier_exceeded_neon.png" alt="Neon Free Tier Warning" widht="700px" />
|
<Thumbnail src="/img/cloud-dbs/neon/free_tier_exceeded_neon.png" alt="Neon Free Tier Warning" width="700px" />
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ To get it, from the cluster's dashboard, click `Run your own application`:
|
|||||||
|
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
src="/img/cloud-dbs/yugabyte/yb-step-3g.png"
|
src="/img/cloud-dbs/yugabyte/yb-step-3g.png"
|
||||||
alt="Run your own application on clutser dashboard"
|
alt="Run your own application on cluster dashboard"
|
||||||
width="700px"
|
width="700px"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ information, see
|
|||||||
|
|
||||||
You can connect different Hasura instances (i.e. instances with different metadata) to the same database as long as
|
You can connect different Hasura instances (i.e. instances with different metadata) to the same database as long as
|
||||||
there are no Event Triggers in any of the metadata. Event Triggers store their data in the underlying database and hence
|
there are no Event Triggers in any of the metadata. Event Triggers store their data in the underlying database and hence
|
||||||
different instances acting on the same data can cause undefined behaviour during run-time. This should not be a problem
|
different instances acting on the same data can cause undefined behavior during run-time. This should not be a problem
|
||||||
if the Hasura instances have the same metadata.
|
if the Hasura instances have the same metadata.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
@ -19,7 +19,7 @@ sidebar_label: Using Google Cloud Platform & Kubernetes
|
|||||||
This is a guide on deploying the Hasura GraphQL Engine on the [Google
|
This is a guide on deploying the Hasura GraphQL Engine on the [Google
|
||||||
Cloud Platform](https://cloud.google.com/) using [Kubernetes
|
Cloud Platform](https://cloud.google.com/) using [Kubernetes
|
||||||
engine](https://cloud.google.com/kubernetes-engine/) to run Hasura and
|
engine](https://cloud.google.com/kubernetes-engine/) to run Hasura and
|
||||||
PosgreSQL backed by [Cloud SQL](https://cloud.google.com/sql/).
|
PostgreSQL backed by [Cloud SQL](https://cloud.google.com/sql/).
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
|
@ -1081,7 +1081,7 @@ _(Available for versions > v2.0.0)_
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
Used to set the connection initialisation timeout for `graphql-ws` clients. This is ignored for
|
Used to set the connection initialization timeout for `graphql-ws` clients. This is ignored for
|
||||||
`subscription-transport-ws` (Apollo) clients. (default: `3`)
|
`subscription-transport-ws` (Apollo) clients. (default: `3`)
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
@ -195,7 +195,7 @@ For creating the action's configuration file, we have created a
|
|||||||
|
|
||||||
| Field | YAML key | Description |
|
| Field | YAML key | Description |
|
||||||
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Repository Name | under `hasura/hasura-cloud-preview-apps` job: `name` | The GitHub repository to be configured with this action, without the author/organisation name. For example, if the repo is located at `https://github.com/JaneDoe/test-repo`, the input to the field will be `test-repo`. |
|
| Repository Name | under `hasura/hasura-cloud-preview-apps` job: `name` | The GitHub repository to be configured with this action, without the author/organization name. For example, if the repo is located at `https://github.com/JaneDoe/test-repo`, the input to the field will be `test-repo`. |
|
||||||
| Path to Hasura Project (in repo) | under `hasura/hasura-cloud-preview-apps` job: `hasuraProjectDirectoryPath` | Path to the Hasura Project directory (typically created by the Hasura CLI) containing Migrations and Metadata. The path should be relative to the project's root directory. |
|
| Path to Hasura Project (in repo) | under `hasura/hasura-cloud-preview-apps` job: `hasuraProjectDirectoryPath` | Path to the Hasura Project directory (typically created by the Hasura CLI) containing Migrations and Metadata. The path should be relative to the project's root directory. |
|
||||||
| Project Region | under `hasura/hasura-cloud-preview-apps` job: `region` and `tier` | Hasura Cloud project region to create projects in. The regions are available in two tiers: `Free` tier and `Standard` tier across various regions, and under two cloud providers: AWS and GCP. |
|
| Project Region | under `hasura/hasura-cloud-preview-apps` job: `region` and `tier` | Hasura Cloud project region to create projects in. The regions are available in two tiers: `Free` tier and `Standard` tier across various regions, and under two cloud providers: AWS and GCP. |
|
||||||
| Environment Variables | under `hasura/hasura-cloud-preview-apps` job: `hasuraEnv` | Env vars to be set in the Hasura Cloud project created. |
|
| Environment Variables | under `hasura/hasura-cloud-preview-apps` job: `hasuraEnv` | Env vars to be set in the Hasura Cloud project created. |
|
||||||
|
@ -489,7 +489,7 @@ The `detail` field value is an object contains the following members.
|
|||||||
| ------------------- | ------------------------------------------------------------------------------------ | --------- |
|
| ------------------- | ------------------------------------------------------------------------------------ | --------- |
|
||||||
| `OK` | Health Check succeeded with no errors. | `info` |
|
| `OK` | Health Check succeeded with no errors. | `info` |
|
||||||
| `FAILED` | Health Check is failed maybe due to bad connection config. | `warn` |
|
| `FAILED` | Health Check is failed maybe due to bad connection config. | `warn` |
|
||||||
| `TIMEOUT` | Health Check is timed out. The timeout value is specified in the healch check config | `warn` |
|
| `TIMEOUT` | Health Check is timed out. The timeout value is specified in the health check config | `warn` |
|
||||||
| `ERROR` | Health Check results in an exception. | `warn` |
|
| `ERROR` | Health Check results in an exception. | `warn` |
|
||||||
|
|
||||||
- **HealthCheckError** contains more information about the Health Check exception when the status is `ERROR`.
|
- **HealthCheckError** contains more information about the Health Check exception when the status is `ERROR`.
|
||||||
@ -501,7 +501,7 @@ The `detail` field value is an object contains the following members.
|
|||||||
- **Internal** is an object contains the following fields.
|
- **Internal** is an object contains the following fields.
|
||||||
- `interval`: _int_. Health Check interval in seconds.
|
- `interval`: _int_. Health Check interval in seconds.
|
||||||
- `max_retries`: _int_. Maximum # of retries configured.
|
- `max_retries`: _int_. Maximum # of retries configured.
|
||||||
- `retry_interation`: _int_. The iteration on which the Health Check has succeeded. In case of unsuccessful Health Check, the retry iteration is same as `max_retries`.
|
- `retry_iteration`: _int_. The iteration on which the Health Check has succeeded. In case of unsuccessful Health Check, the retry iteration is same as `max_retries`.
|
||||||
- `retry_interval`: _int_. The retry interval in seconds.
|
- `retry_interval`: _int_. The retry interval in seconds.
|
||||||
- `timeout`: _int_. Health Check time out value in seconds.
|
- `timeout`: _int_. Health Check time out value in seconds.
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|||||||
-- Be careful to use these in your production db. Consult the Postgres manual or
|
-- Be careful to use these in your production db. Consult the Postgres manual or
|
||||||
-- your DBA and give appropriate permissions.
|
-- your DBA and give appropriate permissions.
|
||||||
|
|
||||||
-- grant all privileges on all tables in the public schema. This can be customised:
|
-- grant all privileges on all tables in the public schema. This can be customized:
|
||||||
-- For example, if you only want to use GraphQL regular queries and not mutations,
|
-- For example, if you only want to use GraphQL regular queries and not mutations,
|
||||||
-- then you can set: GRANT SELECT ON ALL TABLES...
|
-- then you can set: GRANT SELECT ON ALL TABLES...
|
||||||
GRANT USAGE ON SCHEMA public TO hasurauser;
|
GRANT USAGE ON SCHEMA public TO hasurauser;
|
||||||
@ -154,7 +154,7 @@ GRANT SELECT ON ALL TABLES IN SCHEMA pg_catalog TO hasurauser;
|
|||||||
-- Be careful to use these in your production db. Consult the Postgres manual or
|
-- Be careful to use these in your production db. Consult the Postgres manual or
|
||||||
-- your DBA and give appropriate permissions.
|
-- your DBA and give appropriate permissions.
|
||||||
|
|
||||||
-- grant all privileges on all tables in the public schema. This can be customised:
|
-- grant all privileges on all tables in the public schema. This can be customized:
|
||||||
-- For example, if you only want to use GraphQL regular queries and not mutations,
|
-- For example, if you only want to use GraphQL regular queries and not mutations,
|
||||||
-- then you can set: GRANT SELECT ON ALL TABLES...
|
-- then you can set: GRANT SELECT ON ALL TABLES...
|
||||||
GRANT USAGE ON SCHEMA public TO hasurauser;
|
GRANT USAGE ON SCHEMA public TO hasurauser;
|
||||||
@ -169,7 +169,7 @@ GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO hasurauser;
|
|||||||
-- GRANT ALL ON ALL FUNCTIONS IN SCHEMA <schema-name> TO hasurauser;
|
-- GRANT ALL ON ALL FUNCTIONS IN SCHEMA <schema-name> TO hasurauser;
|
||||||
|
|
||||||
-- By defaults users won't have access to tables they have not created (and thus do not own).
|
-- By defaults users won't have access to tables they have not created (and thus do not own).
|
||||||
-- You can change these default prvileges to grant access to any object created in the future.
|
-- You can change these default privileges to grant access to any object created in the future.
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES;
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES;
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS;
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS;
|
||||||
|
@ -43,7 +43,7 @@ Events can be of the following types:
|
|||||||
:::caution Caveat on different Hasura instances connected to the same database
|
:::caution Caveat on different Hasura instances connected to the same database
|
||||||
|
|
||||||
Event Triggers store their data in the underlying database and hence different instances acting on the same data can
|
Event Triggers store their data in the underlying database and hence different instances acting on the same data can
|
||||||
cause undefined behaviour during run-time. This should not be a problem if the Hasura instances have the same metadata.
|
cause undefined behavior during run-time. This should not be a problem if the Hasura instances have the same metadata.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ webhook.
|
|||||||
|
|
||||||
## Hasura Cloud
|
## Hasura Cloud
|
||||||
|
|
||||||
[Hasura Cloud](https://cloud.hasura.io/) empowers you to create highly optimised, managed and massively scalable
|
[Hasura Cloud](https://cloud.hasura.io/) empowers you to create highly optimized, managed and massively scalable
|
||||||
Hasura instances in seconds and includes extra reliability, monitoring, caching, tracing, security and deployment
|
Hasura instances in seconds and includes extra reliability, monitoring, caching, tracing, security and deployment
|
||||||
features. You can also deploy Hasura manually using our Community Edition Docker image which includes all the core
|
features. You can also deploy Hasura manually using our Community Edition Docker image which includes all the core
|
||||||
features of GraphQL Engine.
|
features of GraphQL Engine.
|
||||||
|
@ -78,7 +78,7 @@ request in Hasura Pro metrics and monitoring tools.
|
|||||||
|
|
||||||
## Hasura Cloud
|
## Hasura Cloud
|
||||||
|
|
||||||
The cloud-managed, optimised and massively scalable version of Hasura with the option to add the Hasura Enterprise
|
The cloud-managed, optimized and massively scalable version of Hasura with the option to add the Hasura Enterprise
|
||||||
Edition package and runs as a managed service. Hasura Cloud includes extra reliability, monitoring, caching, tracing,
|
Edition package and runs as a managed service. Hasura Cloud includes extra reliability, monitoring, caching, tracing,
|
||||||
security and deployment features which aren't available in Hasura Community Edition.
|
security and deployment features which aren't available in Hasura Community Edition.
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ version (identified by its timestamp number) having been applied.
|
|||||||
|
|
||||||
For example to delete Migrations on the server only
|
For example to delete Migrations on the server only
|
||||||
|
|
||||||
:::info Best Practise
|
:::info Best Practice
|
||||||
|
|
||||||
It's a good idea to always copy or move your Migrations before deleting them in case there is an error or mistake and
|
It's a good idea to always copy or move your Migrations before deleting them in case there is an error or mistake and
|
||||||
you need them again. You can use the command `mv migrations migrations_backup` to quickly move your Migrations folder to
|
you need them again. You can use the command `mv migrations migrations_backup` to quickly move your Migrations folder to
|
||||||
|
@ -166,7 +166,7 @@ Our directory structure should now look something like this:
|
|||||||
└─ 📄 config.yaml
|
└─ 📄 config.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
If we had entered `No` at the prompt, the Hasura Migrations and Metadata would not have been initialised, and you would
|
If we had entered `No` at the prompt, the Hasura Migrations and Metadata would not have been initialized, and you would
|
||||||
be able to do it manually [using the CLI later](/hasura-cli/commands/hasura_init.mdx).
|
be able to do it manually [using the CLI later](/hasura-cli/commands/hasura_init.mdx).
|
||||||
|
|
||||||
As you can see from the structure, the `metadata` folder contains files used to describe the configuration of the Hasura
|
As you can see from the structure, the `metadata` folder contains files used to describe the configuration of the Hasura
|
||||||
|
@ -35,7 +35,7 @@ argument to specify:
|
|||||||
- the **columns to be updated** in the case of a match using the `update_columns` field.
|
- the **columns to be updated** in the case of a match using the `update_columns` field.
|
||||||
- a **condition** for updating the column using the `where` field, and
|
- a **condition** for updating the column using the `where` field, and
|
||||||
|
|
||||||
The value of the `update_columns` field determines the behaviour of the upsert request as shown via the use cases below.
|
The value of the `update_columns` field determines the behavior of the upsert request as shown via the use cases below.
|
||||||
|
|
||||||
## Upsert is not a substitute for update
|
## Upsert is not a substitute for update
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ argument to specify:
|
|||||||
- a **unique or primary key constraint** using the `constraint` field, and
|
- a **unique or primary key constraint** using the `constraint` field, and
|
||||||
- the **columns to be updated** in the case of a violation of that constraint using the `update_columns` field.
|
- the **columns to be updated** in the case of a violation of that constraint using the `update_columns` field.
|
||||||
|
|
||||||
The value of the `update_columns` field determines the behaviour of the upsert request as shown via the use cases below.
|
The value of the `update_columns` field determines the behavior of the upsert request as shown via the use cases below.
|
||||||
|
|
||||||
:::info Note
|
:::info Note
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ import HeadingIcon from '@site/src/components/HeadingIcon';
|
|||||||
|
|
||||||
# New Relic Integration
|
# New Relic Integration
|
||||||
|
|
||||||
<div className='badge badge--primary heading-badge'>Available on: Cloud Standard</div>
|
<div className="badge badge--primary heading-badge">Available on: Cloud Standard</div>
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ For Hasura Cloud projects, the New Relic Integration is only available on the `S
|
|||||||
|
|
||||||
Navigate to the integrations tab on project settings page to find New Relic integration.
|
Navigate to the integrations tab on project settings page to find New Relic integration.
|
||||||
|
|
||||||
<Thumbnail src='/img/observability/integrate-newrelic.png' alt='Configure New Relic Integration' width='1146px' />
|
<Thumbnail src="/img/observability/integrate-newrelic.png" alt="Configure New Relic Integration" width="1146px" />
|
||||||
|
|
||||||
Select the New Relic API region and enter the New Relic Insights Insert API key (follow
|
Select the New Relic API region and enter the New Relic Insights Insert API key (follow
|
||||||
[New Relic docs to retrieve the API key](https://docs.newrelic.com/docs/apis/get-started/intro-apis/new-relic-api-keys/#insights-insert-key)),
|
[New Relic docs to retrieve the API key](https://docs.newrelic.com/docs/apis/get-started/intro-apis/new-relic-api-keys/#insights-insert-key)),
|
||||||
@ -44,13 +44,13 @@ host, service name and custom attributes to associate with exported logs and met
|
|||||||
|
|
||||||
| Field | Description |
|
| Field | Description |
|
||||||
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Region | The region of the datacentre where your New Relic account stores its data. [Read more about regions on New Relic docs.](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers) |
|
| Region | The region of the datacenter where your New Relic account stores its data. [Read more about regions on New Relic docs.](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers) |
|
||||||
| API Key | API keys are unique to your organization. An API key is required by the New Relic API to submit metrics and events to New Relic. You can get the API key from [here](https://one.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you are in New Relic US region and [here](https://one.eu.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you're in New Relic EU region. |
|
| API Key | API keys are unique to your organization. An API key is required by the New Relic API to submit metrics and events to New Relic. You can get the API key from [here](https://one.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you are in New Relic US region and [here](https://one.eu.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you're in New Relic EU region. |
|
||||||
| Host | The name of the originating host of the log and metrics. |
|
| Host | The name of the originating host of the log and metrics. |
|
||||||
| Custom Attributes | Custom Attributes associated with your logs and metrics. A default source tag `hasura-cloud-metrics` is added to all exported logs and metrics. Attributes `project_id` and `project_name` are added to all exported metrics. |
|
| Custom Attributes | Custom Attributes associated with your logs and metrics. A default source tag `hasura-cloud-metrics` is added to all exported logs and metrics. Attributes `project_id` and `project_name` are added to all exported metrics. |
|
||||||
| Service Name | The name of the application or service generating the log events. |
|
| Service Name | The name of the application or service generating the log events. |
|
||||||
|
|
||||||
<Thumbnail src='/img/observability/configure-newrelic.png' alt='Configure New Relic Integration' />
|
<Thumbnail src="/img/observability/configure-newrelic.png" alt="Configure New Relic Integration" />
|
||||||
|
|
||||||
After adding appropriate values, click `Save`.
|
After adding appropriate values, click `Save`.
|
||||||
|
|
||||||
@ -61,18 +61,18 @@ When logs are successfully exported, `Last Exported` is continuously updated, in
|
|||||||
line successfully exported to your New Relic account.
|
line successfully exported to your New Relic account.
|
||||||
|
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
src='/img/observability/configure-newrelic-done.png'
|
src="/img/observability/configure-newrelic-done.png"
|
||||||
alt='New Relic Integration successfully configured'
|
alt="New Relic Integration successfully configured"
|
||||||
width='1146px'
|
width="1146px"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
In case there is an error while exporting logs to New Relic, the dot is red and the HTTP status code of the error is
|
In case there is an error while exporting logs to New Relic, the dot is red and the HTTP status code of the error is
|
||||||
displayed right below it.
|
displayed right below it.
|
||||||
|
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
src='/img/observability/configure-newrelic-fail.png'
|
src="/img/observability/configure-newrelic-fail.png"
|
||||||
alt='New Relic Integration successfully configured'
|
alt="New Relic Integration successfully configured"
|
||||||
width='1146px'
|
width="1146px"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
## View logs
|
## View logs
|
||||||
@ -82,12 +82,12 @@ The logs can be viewed in your New Relic dashboard, under the `Logs` tab
|
|||||||
To navigate to the same, click `View Logs`.
|
To navigate to the same, click `View Logs`.
|
||||||
|
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
src='/img/observability/newrelic-view-logs.png'
|
src="/img/observability/newrelic-view-logs.png"
|
||||||
alt='New Relic Integration successfully configured'
|
alt="New Relic Integration successfully configured"
|
||||||
width='1146px'
|
width="1146px"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Thumbnail src='/img/observability/newrelic-logs.png' alt='Logs successfully exported to New Relic' width='1146px' />
|
<Thumbnail src="/img/observability/newrelic-logs.png" alt="Logs successfully exported to New Relic" width="1146px" />
|
||||||
|
|
||||||
To view only logs exported by Hasura Cloud, filter your logs using `attributes` you configured with this integration.
|
To view only logs exported by Hasura Cloud, filter your logs using `attributes` you configured with this integration.
|
||||||
|
|
||||||
@ -110,15 +110,15 @@ Graphs for all the above metrics can be viewed in your New Relic account. Under
|
|||||||
choose the metrics name. To navigate to New Relic dashboard, click `View Metrics`.
|
choose the metrics name. To navigate to New Relic dashboard, click `View Metrics`.
|
||||||
|
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
src='/img/observability/newrelic-view-metrics.png'
|
src="/img/observability/newrelic-view-metrics.png"
|
||||||
alt='New Relic Integration successfully configured'
|
alt="New Relic Integration successfully configured"
|
||||||
width='1146px'
|
width="1146px"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
Select the graphs you want to view from the metrics explorer.
|
Select the graphs you want to view from the metrics explorer.
|
||||||
|
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
src='/img/observability/newrerlic-metrics.png'
|
src="/img/observability/newrerlic-metrics.png"
|
||||||
alt='Metrics successfully exported to New Relic'
|
alt="Metrics successfully exported to New Relic"
|
||||||
width='1146px'
|
width="1146px"
|
||||||
/>
|
/>
|
||||||
|
@ -18,13 +18,13 @@ import HeadingIcon from '@site/src/components/HeadingIcon';
|
|||||||
|
|
||||||
# Project Details
|
# Project Details
|
||||||
|
|
||||||
<div className='badge badge--primary heading-badge'>Available on: Cloud</div>
|
<div className="badge badge--primary heading-badge">Available on: Cloud</div>
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
You can view all the details about your project in the `General` tab.
|
You can view all the details about your project in the `General` tab.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/general-details.png' alt='General tab' width='900px' />
|
<Thumbnail src="/img/projects/general-details.png" alt="General tab" width="900px" />
|
||||||
|
|
||||||
## Name {#rename-project}
|
## Name {#rename-project}
|
||||||
|
|
||||||
@ -33,16 +33,16 @@ project name is `neat-alien-78`, the project assumes the default domain `neat-al
|
|||||||
|
|
||||||
If you are the project owner, you can rename the project by clicking the edit icon in the `Name` field.
|
If you are the project owner, you can rename the project by clicking the edit icon in the `Name` field.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-rename-before.png' alt='Project rename' width='900px' />
|
<Thumbnail src="/img/projects/project-rename-before.png" alt="Project rename" width="900px" />
|
||||||
|
|
||||||
Once you type a name, hit `Save`.
|
Once you type a name, hit `Save`.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-rename-in-progress.png' alt='Project renaming' width='900px' />
|
<Thumbnail src="/img/projects/project-rename-in-progress.png" alt="Project renaming" width="900px" />
|
||||||
|
|
||||||
If you have added custom domain(s) to your project, you must update the DNS settings of your custom domain(s) as per the
|
If you have added custom domain(s) to your project, you must update the DNS settings of your custom domain(s) as per the
|
||||||
project name change.
|
project name change.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-rename-dns-update.png' alt='Project rename DNS update' width='900px' />
|
<Thumbnail src="/img/projects/project-rename-dns-update.png" alt="Project rename DNS update" width="900px" />
|
||||||
|
|
||||||
:::info Note
|
:::info Note
|
||||||
|
|
||||||
@ -56,12 +56,16 @@ You may have multiple Hasura deployments for the same application running in dif
|
|||||||
`prod`). Environment Name is an optional field you can set to help distinguish the Console views of these different
|
`prod`). Environment Name is an optional field you can set to help distinguish the Console views of these different
|
||||||
environments.
|
environments.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-adding-environment-name.png' alt='Adding an environment name' width='900px' />
|
<Thumbnail src="/img/projects/project-adding-environment-name.png" alt="Adding an environment name" width="900px" />
|
||||||
|
|
||||||
When an Environment Name is set for a Hasura Cloud project, its value will be clearly displayed as a banner at the top of
|
When an Environment Name is set for a Hasura Cloud project, its value will be clearly displayed as a banner at the top of
|
||||||
the Console.
|
the Console.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-environment-name-console.png' alt='Hasura Console with environment name banner' width='900px' />
|
<Thumbnail
|
||||||
|
src="/img/projects/project-environment-name-console.png"
|
||||||
|
alt="Hasura Console with environment name banner"
|
||||||
|
width="900px"
|
||||||
|
/>
|
||||||
|
|
||||||
## Region
|
## Region
|
||||||
|
|
||||||
@ -83,7 +87,7 @@ from this IP address so that Hasura Cloud can connect to your database.
|
|||||||
You can create and assign one or more labels to your projects (`dev`, `staging`, `production` etc). Click on the `+`
|
You can create and assign one or more labels to your projects (`dev`, `staging`, `production` etc). Click on the `+`
|
||||||
button in the project labels pane to assign (or create and assign) a label.
|
button in the project labels pane to assign (or create and assign) a label.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-assing-label.png' alt='Project labels' width='900px' />
|
<Thumbnail src="/img/projects/project-assign-label.png" alt="Project labels" width="900px" />
|
||||||
|
|
||||||
As of now, you can create labels, assign them to projects and remove them from projects. A user can use only the labels
|
As of now, you can create labels, assign them to projects and remove them from projects. A user can use only the labels
|
||||||
that they have created and they can assign labels only to the projects that they own.
|
that they have created and they can assign labels only to the projects that they own.
|
||||||
|
@ -22,7 +22,7 @@ import HeadingIcon from '@site/src/components/HeadingIcon';
|
|||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
Hasura Cloud now creates new projects with Hasura `v2.0` by default. Due to some behaviour and underlying architectural
|
Hasura Cloud now creates new projects with Hasura `v2.0` by default. Due to some behavior and underlying architectural
|
||||||
changes in `v2.0`, existing projects have not been auto-updated to `v2.0`. You can update your older `v1.3` projects to
|
changes in `v2.0`, existing projects have not been auto-updated to `v2.0`. You can update your older `v1.3` projects to
|
||||||
`v2.0` by following this guide.
|
`v2.0` by following this guide.
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ You can take a dump of this data before cleaning up if you wish to keep the log
|
|||||||
## What has changed?
|
## What has changed?
|
||||||
|
|
||||||
Check the [core updating to v2.0 guide](/resources/upgrade-hasura-v2.mdx) and the
|
Check the [core updating to v2.0 guide](/resources/upgrade-hasura-v2.mdx) and the
|
||||||
[release notes](https://github.com/hasura/graphql-engine/releases) to see what new concepts, features and behaviour
|
[release notes](https://github.com/hasura/graphql-engine/releases) to see what new concepts, features and behavior
|
||||||
changes have been introduced in Hasura `v2.0`.
|
changes have been introduced in Hasura `v2.0`.
|
||||||
|
|
||||||
Note that Hasura v2 Cloud projects' Metadata is now stored in Metadata DBs managed by Hasura Cloud. Hence the new
|
Note that Hasura v2 Cloud projects' Metadata is now stored in Metadata DBs managed by Hasura Cloud. Hence the new
|
||||||
@ -79,8 +79,8 @@ function during this period.**
|
|||||||
working as expected post the update and the update did not cause any unexpected changes. Do get in touch with us in
|
working as expected post the update and the update did not cause any unexpected changes. Do get in touch with us in
|
||||||
case you notice anything unexpected.
|
case you notice anything unexpected.
|
||||||
- You can choose to unset the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var that was added to your project during
|
- You can choose to unset the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var that was added to your project during
|
||||||
the update to preserve a `v1.3` behaviour that was modified in `v2.0`.
|
the update to preserve a `v1.3` behavior that was modified in `v2.0`.
|
||||||
[See details](/resources/upgrade-hasura-v2.mdx#hasura-v2-null-where-change). We recommend moving to the new behaviour
|
[See details](/resources/upgrade-hasura-v2.mdx#hasura-v2-null-where-change). We recommend moving to the new behavior
|
||||||
by unsetting the env var after verifying your project is not impacted by the change.
|
by unsetting the env var after verifying your project is not impacted by the change.
|
||||||
- Check the [Post update steps](/resources/upgrade-hasura-v2.mdx#hasura-v1-to-v2-post-update-steps) section of the core
|
- Check the [Post update steps](/resources/upgrade-hasura-v2.mdx#hasura-v1-to-v2-post-update-steps) section of the core
|
||||||
updating to v2.0 guide for other changes you should make post your project update.
|
updating to v2.0 guide for other changes you should make post your project update.
|
||||||
@ -134,8 +134,8 @@ assistance.
|
|||||||
###### Sub-tasks:
|
###### Sub-tasks:
|
||||||
|
|
||||||
- Set `HASURA_GRAPHQL_ENABLE_MAINTENANCE_MODE` env var to enable server maintenance mode
|
- Set `HASURA_GRAPHQL_ENABLE_MAINTENANCE_MODE` env var to enable server maintenance mode
|
||||||
- Set `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var to `true` to maintain `v1.3` behaviour for `null` values in
|
- Set `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var to `true` to maintain `v1.3` behavior for `null` values in
|
||||||
`where` filters. [(Know more)](/resources/upgrade-hasura-v2.mdx#hasura-v2-behaviour-changes)
|
`where` filters. [(Know more)](/resources/upgrade-hasura-v2.mdx#hasura-v2-behavior-changes)
|
||||||
|
|
||||||
###### On Failure:
|
###### On Failure:
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
description: Transferr Project ownership on Hasura Cloud
|
description: Transfer Project ownership on Hasura Cloud
|
||||||
title: 'Cloud: Transfer Project ownership'
|
title: 'Cloud: Transfer Project ownership'
|
||||||
keywords:
|
keywords:
|
||||||
- hasura
|
- hasura
|
||||||
@ -16,7 +16,7 @@ import HeadingIcon from '@site/src/components/HeadingIcon';
|
|||||||
|
|
||||||
# Transfer Project Ownership
|
# Transfer Project Ownership
|
||||||
|
|
||||||
<div className='badge badge--primary heading-badge'>Available on: Cloud</div>
|
<div className="badge badge--primary heading-badge">Available on: Cloud</div>
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@ -35,25 +35,25 @@ in which the ownership is transferred.
|
|||||||
Go to the project settings page and scroll to the bottom. Enter the email of the user you want to transfer the project
|
Go to the project settings page and scroll to the bottom. Enter the email of the user you want to transfer the project
|
||||||
ownership to.
|
ownership to.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/transfer-ownership.png' alt='Transfer Project Ownership' width='1146px' />
|
<Thumbnail src="/img/projects/transfer-ownership.png" alt="Transfer Project Ownership" width="1146px" />
|
||||||
|
|
||||||
## Revoke an ownership transfer invitation
|
## Revoke an ownership transfer invitation
|
||||||
|
|
||||||
To revoke the ownership transfer invitation, click on the `Revoke` button right next to the email of the invitee.
|
To revoke the ownership transfer invitation, click on the `Revoke` button right next to the email of the invitee.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/remove-ownership.png' alt='Remove transfer ownership invite' width='1146px' />
|
<Thumbnail src="/img/projects/remove-ownership.png" alt="Remove transfer ownership invite" width="1146px" />
|
||||||
|
|
||||||
## Resend an ownership transfer invitation
|
## Resend an ownership transfer invitation
|
||||||
|
|
||||||
To resend the ownership transfer invitation, click on the resend symbol right next to the email of the invitee.
|
To resend the ownership transfer invitation, click on the resend symbol right next to the email of the invitee.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/resent-ownership.png' alt='Resend transfer ownership invite' width='1146px' />
|
<Thumbnail src="/img/projects/resent-ownership.png" alt="Resend transfer ownership invite" width="1146px" />
|
||||||
|
|
||||||
## Invitations
|
## Invitations
|
||||||
|
|
||||||
You can see the projects that you have been invited to become the owner of, on the project listing page.
|
You can see the projects that you have been invited to become the owner of, on the project listing page.
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-ownership-invitation.png' alt='Projects invited to own' width='1146px' />
|
<Thumbnail src="/img/projects/project-ownership-invitation.png" alt="Projects invited to own" width="1146px" />
|
||||||
|
|
||||||
You can accept an invitation by clicking on the `Accept` button.
|
You can accept an invitation by clicking on the `Accept` button.
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
description: Swith pricing plans
|
description: Switch pricing plans
|
||||||
title: 'Cloud: Switch pricing plans'
|
title: 'Cloud: Switch pricing plans'
|
||||||
keywords:
|
keywords:
|
||||||
- hasura
|
- hasura
|
||||||
@ -7,7 +7,7 @@ keywords:
|
|||||||
- cloud
|
- cloud
|
||||||
- pricing
|
- pricing
|
||||||
sidebar_position: 8
|
sidebar_position: 8
|
||||||
sidebar_label: Swith pricing plans
|
sidebar_label: Switch pricing plans
|
||||||
---
|
---
|
||||||
|
|
||||||
import Thumbnail from '@site/src/components/Thumbnail';
|
import Thumbnail from '@site/src/components/Thumbnail';
|
||||||
@ -15,7 +15,7 @@ import HeadingIcon from '@site/src/components/HeadingIcon';
|
|||||||
|
|
||||||
# Switch Pricing Plans
|
# Switch Pricing Plans
|
||||||
|
|
||||||
<div className='badge badge--primary heading-badge'>Available on: Cloud</div>
|
<div className="badge badge--primary heading-badge">Available on: Cloud</div>
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ For details and a full list of features for each of these plans, check out our
|
|||||||
|
|
||||||
By clicking on the `Projects` tab, you can see all your projects and what plan they are currently on:
|
By clicking on the `Projects` tab, you can see all your projects and what plan they are currently on:
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/project-pricing-plans.png' alt='Billing overview' width='1200px' />
|
<Thumbnail src="/img/projects/project-pricing-plans.png" alt="Billing overview" width="1200px" />
|
||||||
|
|
||||||
## Switching pricing plans
|
## Switching pricing plans
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ Go to `Projects` and click on the project you'd like to change.
|
|||||||
|
|
||||||
Now click on the `Usage tab`. To upgrade to the `Standard` plan, click on the `Upgrade` button:
|
Now click on the `Usage tab`. To upgrade to the `Standard` plan, click on the `Upgrade` button:
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/upgrade-to-paid-plan.png' alt='Upgrade to the Standard plan' width='1200px' />
|
<Thumbnail src="/img/projects/upgrade-to-paid-plan.png" alt="Upgrade to the Standard plan" width="1200px" />
|
||||||
|
|
||||||
Your project is now running on the `Standard` plan.
|
Your project is now running on the `Standard` plan.
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ Go to `Projects` and click on the project you'd like to change.
|
|||||||
|
|
||||||
Under the `General` tab, find the `Pricing tier` section and click on the edit icon on the right:
|
Under the `General` tab, find the `Pricing tier` section and click on the edit icon on the right:
|
||||||
|
|
||||||
<Thumbnail src='/img/projects/switch-to-free-plan.png' alt='Switch from Standard to Free tier' width='1200px' />
|
<Thumbnail src="/img/projects/switch-to-free-plan.png" alt="Switch from Standard to Free tier" width="1200px" />
|
||||||
|
|
||||||
You'll be charged as per the `Standard` plan until the end of the day. From the next day onwards, the project will be on
|
You'll be charged as per the `Standard` plan until the end of the day. From the next day onwards, the project will be on
|
||||||
the `Free` tier. If the `Free` tier limit is exhausted, the project might become inactive.
|
the `Free` tier. If the `Free` tier limit is exhausted, the project might become inactive.
|
||||||
|
@ -795,7 +795,7 @@ query {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The behaviour of the comparison operators depends on whether the nested objects are a single object related via an
|
The behavior of the comparison operators depends on whether the nested objects are a single object related via an
|
||||||
object relationship or an array of objects related via an array relationship.
|
object relationship or an array of objects related via an array relationship.
|
||||||
|
|
||||||
- In case of an **object relationship**, a row will be returned if the single nested object satisfies the defined
|
- In case of an **object relationship**, a row will be returned if the single nested object satisfies the defined
|
||||||
@ -806,7 +806,6 @@ object relationship or an array of objects related via an array relationship.
|
|||||||
:::caution Limitations
|
:::caution Limitations
|
||||||
|
|
||||||
**This is only supported for local relationships**, such as relationships between two local database tables.
|
**This is only supported for local relationships**, such as relationships between two local database tables.
|
||||||
|
|
||||||
**This is not supported for remote relationships**, such as remote database relationships or Remote Schema relationships.
|
**This is not supported for remote relationships**, such as remote database relationships or Remote Schema relationships.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
@ -1051,7 +1050,7 @@ Fetch all authors which have all of their articles published i.e. have `{is_publ
|
|||||||
|
|
||||||
By default a row is returned if any of the nested objects satisfy a condition. To achieve the above, we need to frame
|
By default a row is returned if any of the nested objects satisfy a condition. To achieve the above, we need to frame
|
||||||
the `where` expression as `{_not: {condition}}`. This reads as: fetch if not (any of the nested objects satisfy the
|
the `where` expression as `{_not: {condition}}`. This reads as: fetch if not (any of the nested objects satisfy the
|
||||||
condition) i.e. none of the nested objects satisy the condition.
|
condition) i.e. none of the nested objects satisfy the condition.
|
||||||
|
|
||||||
For example,
|
For example,
|
||||||
|
|
||||||
@ -1231,5 +1230,5 @@ to `{}`, the [TRUE expression](#bq-true-expression).
|
|||||||
For example, the expression `{ where: { id: {_eq: null }}}` will be reduced to `{ where: {id: {}} }` which will return
|
For example, the expression `{ where: { id: {_eq: null }}}` will be reduced to `{ where: {id: {}} }` which will return
|
||||||
all objects for which an `id` is set, i.e. all objects will be returned.
|
all objects for which an `id` is set, i.e. all objects will be returned.
|
||||||
|
|
||||||
This behaviour can be preserved in versions v2.0.0 and above by setting the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE`
|
This behavior can be preserved in versions v2.0.0 and above by setting the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE`
|
||||||
env var to `true`.
|
env var to `true`.
|
||||||
|
@ -22,9 +22,9 @@ import TabItem from '@theme/TabItem';
|
|||||||
Sometimes queries can become slow due to large data volumes or levels of nesting. This page explains how to identify the
|
Sometimes queries can become slow due to large data volumes or levels of nesting. This page explains how to identify the
|
||||||
query performance, and how queries can be optimized.
|
query performance, and how queries can be optimized.
|
||||||
|
|
||||||
## Analysing query performance {#ms-sql-server-analysing-query-performance}
|
## Analyzing query performance {#ms-sql-server-analyzing-query-performance}
|
||||||
|
|
||||||
Let's say we want to analyse the following query:
|
Let's say we want to analyze the following query:
|
||||||
|
|
||||||
```graphql
|
```graphql
|
||||||
query {
|
query {
|
||||||
@ -34,7 +34,7 @@ query {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
In order to analyse the performance of a query, you can click on the `Analyze` button on the Hasura Console:
|
In order to analyze the performance of a query, you can click on the `Analyze` button on the Hasura Console:
|
||||||
|
|
||||||
<Thumbnail src="/img/queries/analyze-query.png" alt="Query analyze button on Hasura Console" width="800px" />
|
<Thumbnail src="/img/queries/analyze-query.png" alt="Query analyze button on Hasura Console" width="800px" />
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ query {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
We've seen in the [above example](#ms-sql-server-analysing-query-performance) that by default MS SQL Server conducts a
|
We've seen in the [above example](#ms-sql-server-analyzing-query-performance) that by default MS SQL Server conducts a
|
||||||
sequential scan i.e. going through all the rows. Whenever there is a sequential scan, it can be optimized by adding an
|
sequential scan i.e. going through all the rows. Whenever there is a sequential scan, it can be optimized by adding an
|
||||||
index.
|
index.
|
||||||
|
|
||||||
@ -124,7 +124,7 @@ X-Hasura-Role: admin
|
|||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
Let's compare the performance analysis to [the one before adding the index](#ms-sql-server-analysing-query-performance).
|
Let's compare the performance analysis to [the one before adding the index](#ms-sql-server-analyzing-query-performance).
|
||||||
What was a `sequential scan` in the example earlier is now an `index scan`. `Index scans` are usually more performant
|
What was a `sequential scan` in the example earlier is now an `index scan`. `Index scans` are usually more performant
|
||||||
than `sequential scans`. We can also see that the `cost` of the query is now lower than the one before we added the
|
than `sequential scans`. We can also see that the `cost` of the query is now lower than the one before we added the
|
||||||
index.
|
index.
|
||||||
|
@ -11,7 +11,7 @@ keywords:
|
|||||||
- search
|
- search
|
||||||
---
|
---
|
||||||
|
|
||||||
import GraphiQLIDE from "@site/src/components/GraphiQLIDE";
|
import GraphiQLIDE from '@site/src/components/GraphiQLIDE';
|
||||||
|
|
||||||
# MS SQL Server: Filter Query Results / Search Queries
|
# MS SQL Server: Filter Query Results / Search Queries
|
||||||
|
|
||||||
@ -998,7 +998,7 @@ query {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The behaviour of the comparison operators depends on whether the nested
|
The behavior of the comparison operators depends on whether the nested
|
||||||
objects are a single object related via an object relationship or an
|
objects are a single object related via an object relationship or an
|
||||||
array of objects related via an array relationship.
|
array of objects related via an array relationship.
|
||||||
|
|
||||||
@ -1010,7 +1010,6 @@ array of objects related via an array relationship.
|
|||||||
:::caution Limitations
|
:::caution Limitations
|
||||||
|
|
||||||
**This is only supported for local relationships**, such as relationships between two local database tables.
|
**This is only supported for local relationships**, such as relationships between two local database tables.
|
||||||
|
|
||||||
**This is not supported for remote relationships**, such as remote database relationships or Remote Schema relationships.
|
**This is not supported for remote relationships**, such as remote database relationships or Remote Schema relationships.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
@ -1259,7 +1258,7 @@ Fetch all authors which have all of their articles published i.e. have
|
|||||||
By default a row is returned if any of the nested objects satisfy a
|
By default a row is returned if any of the nested objects satisfy a
|
||||||
condition. To achieve the above, we need to frame the `where` expression
|
condition. To achieve the above, we need to frame the `where` expression
|
||||||
as `{_not: {condition}}`. This reads as: fetch if not (any of the nested
|
as `{_not: {condition}}`. This reads as: fetch if not (any of the nested
|
||||||
objects satisfy the condition) i.e. none of the nested objects satisy
|
objects satisfy the condition) i.e. none of the nested objects satisfy
|
||||||
the condition.
|
the condition.
|
||||||
|
|
||||||
For example,
|
For example,
|
||||||
|
@ -22,9 +22,9 @@ import TabItem from '@theme/TabItem';
|
|||||||
Sometimes queries can become slow due to large data volumes or levels of nesting. This page explains how to identify the
|
Sometimes queries can become slow due to large data volumes or levels of nesting. This page explains how to identify the
|
||||||
query performance, and how queries can be optimized.
|
query performance, and how queries can be optimized.
|
||||||
|
|
||||||
## Analysing query performance {#pg-analysing-query-performance}
|
## Analyzing query performance {#pg-analyzing-query-performance}
|
||||||
|
|
||||||
Let's say we want to analyse the following query:
|
Let's say we want to analyze the following query:
|
||||||
|
|
||||||
```graphql
|
```graphql
|
||||||
query {
|
query {
|
||||||
@ -73,7 +73,7 @@ query {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
We've seen in the [above example](#pg-analysing-query-performance) that by default Postgres conducts a sequential scan
|
We've seen in the [above example](#pg-analyzing-query-performance) that by default Postgres conducts a sequential scan
|
||||||
i.e. going through all the rows. Whenever there is a sequential scan, it can be optimized by adding an index.
|
i.e. going through all the rows. Whenever there is a sequential scan, it can be optimized by adding an index.
|
||||||
|
|
||||||
The following statement sets an index on `name` in the `authors` table.
|
The following statement sets an index on `name` in the `authors` table.
|
||||||
@ -123,7 +123,7 @@ X-Hasura-Role: admin
|
|||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
Let's compare the performance analysis to [the one before adding the index](#pg-analysing-query-performance). What was a
|
Let's compare the performance analysis to [the one before adding the index](#pg-analyzing-query-performance). What was a
|
||||||
`sequential scan` in the example earlier is now an `index scan`. `Index scans` are usually more performant than
|
`sequential scan` in the example earlier is now an `index scan`. `Index scans` are usually more performant than
|
||||||
`sequential scans`. We can also see that the `cost` of the query is now lower than the one before we added the index.
|
`sequential scans`. We can also see that the `cost` of the query is now lower than the one before we added the index.
|
||||||
|
|
||||||
|
@ -26,9 +26,7 @@ For example, to fetch data for an author whose name is "Sidney":
|
|||||||
|
|
||||||
```graphql {3}
|
```graphql {3}
|
||||||
query {
|
query {
|
||||||
authors(
|
authors(where: { name: { _eq: "Sidney" } }) {
|
||||||
where: {name: {_eq: "Sidney"}}
|
|
||||||
) {
|
|
||||||
id
|
id
|
||||||
name
|
name
|
||||||
}
|
}
|
||||||
@ -43,10 +41,10 @@ greater than 4 along with those articles:
|
|||||||
|
|
||||||
```graphql {2,5}
|
```graphql {2,5}
|
||||||
query {
|
query {
|
||||||
authors (where: {articles: {rating: {_gt: 4}}}) {
|
authors(where: { articles: { rating: { _gt: 4 } } }) {
|
||||||
id
|
id
|
||||||
name
|
name
|
||||||
articles (where: {rating: {_gt: 4}}) {
|
articles(where: { rating: { _gt: 4 } }) {
|
||||||
id
|
id
|
||||||
title
|
title
|
||||||
rating
|
rating
|
||||||
@ -81,7 +79,7 @@ types.
|
|||||||
|
|
||||||
**Example: Integer (works with Double, Float, Numeric, etc.)**
|
**Example: Integer (works with Double, Float, Numeric, etc.)**
|
||||||
|
|
||||||
Fetch data about an author whose `id` *(an integer field)* is equal to
|
Fetch data about an author whose `id` _(an integer field)_ is equal to
|
||||||
3:
|
3:
|
||||||
|
|
||||||
<GraphiQLIDE
|
<GraphiQLIDE
|
||||||
@ -93,7 +91,7 @@ Fetch data about an author whose `id` *(an integer field)* is equal to
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -107,7 +105,7 @@ response={`{
|
|||||||
|
|
||||||
**Example: String or Text**
|
**Example: String or Text**
|
||||||
|
|
||||||
Fetch a list of authors with `name` *(a text field)* as "Sidney":
|
Fetch a list of authors with `name` _(a text field)_ as "Sidney":
|
||||||
|
|
||||||
<GraphiQLIDE
|
<GraphiQLIDE
|
||||||
query={`query {
|
query={`query {
|
||||||
@ -118,7 +116,7 @@ Fetch a list of authors with `name` *(a text field)* as "Sidney":
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -145,7 +143,7 @@ a boolean field):
|
|||||||
is_published
|
is_published
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -188,7 +186,7 @@ Fetch a list of articles that were published on a certain date
|
|||||||
published_on
|
published_on
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -228,7 +226,7 @@ is either `false` or `null`:
|
|||||||
is_published
|
is_published
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -279,7 +277,7 @@ Fetch a list of articles rated 4 or more (`rating` is an integer field):
|
|||||||
rating
|
rating
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -305,7 +303,7 @@ response={`{
|
|||||||
**Example: String or Text**
|
**Example: String or Text**
|
||||||
|
|
||||||
Fetch a list of authors whose names begin with M or any letter that
|
Fetch a list of authors whose names begin with M or any letter that
|
||||||
follows M *(essentially, a filter based on a dictionary sort)*:
|
follows M _(essentially, a filter based on a dictionary sort)_:
|
||||||
|
|
||||||
<GraphiQLIDE
|
<GraphiQLIDE
|
||||||
query={`query {
|
query={`query {
|
||||||
@ -316,7 +314,7 @@ follows M *(essentially, a filter based on a dictionary sort)*:
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -347,7 +345,7 @@ Fetch a list of articles that were published on or after date
|
|||||||
published_on
|
published_on
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -401,7 +399,7 @@ Fetch a list of articles rated 1, 3 or 5:
|
|||||||
rating
|
rating
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -442,7 +440,7 @@ Fetch a list of those authors whose names are NOT part of a list:
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -488,7 +486,7 @@ Fetch a list of articles whose titles contain the word “amet”:
|
|||||||
title
|
title
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -527,7 +525,7 @@ Fetch a list of authors whose names begin with A or C:
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -570,7 +568,7 @@ Fetch a list of articles whose titles match the regex “\[ae\]met”:
|
|||||||
title
|
title
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -626,7 +624,7 @@ Fetch all authors living within a particular pincode (present in `address` JSONB
|
|||||||
address
|
address
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -643,7 +641,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"jsonFilter": {
|
"jsonFilter": {
|
||||||
"pincode": 560095
|
"pincode": 560095
|
||||||
}
|
}
|
||||||
@ -667,7 +665,7 @@ column:
|
|||||||
address
|
address
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -716,7 +714,7 @@ value:
|
|||||||
geom_col
|
geom_col
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"geom_table": [
|
"geom_table": [
|
||||||
{
|
{
|
||||||
@ -732,7 +730,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"polygon": {
|
"polygon": {
|
||||||
"type": "Polygon",
|
"type": "Polygon",
|
||||||
"coordinates": [
|
"coordinates": [
|
||||||
@ -748,7 +746,7 @@ variables={`{
|
|||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
**Example: \_st_d\_within**
|
**Example: \_st_d_within**
|
||||||
|
|
||||||
Fetch a list of `geometry` values which are 3 units from a given `point`
|
Fetch a list of `geometry` values which are 3 units from a given `point`
|
||||||
value:
|
value:
|
||||||
@ -762,7 +760,7 @@ value:
|
|||||||
geom_col
|
geom_col
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"geom_table": [
|
"geom_table": [
|
||||||
{
|
{
|
||||||
@ -788,7 +786,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"point": {
|
"point": {
|
||||||
"type": "Point",
|
"type": "Point",
|
||||||
"coordinates": [ 0, 0 ]
|
"coordinates": [ 0, 0 ]
|
||||||
@ -796,7 +794,7 @@ variables={`{
|
|||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
**Example: \_st_3d_d\_within**
|
**Example: \_st_3d_d_within**
|
||||||
|
|
||||||
This is completely analogous to the `_st_d_within` example above, the
|
This is completely analogous to the `_st_d_within` example above, the
|
||||||
only difference being that our coordinates now have three components
|
only difference being that our coordinates now have three components
|
||||||
@ -811,7 +809,7 @@ instead of two.
|
|||||||
geom_col
|
geom_col
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"geom_table": [
|
"geom_table": [
|
||||||
{
|
{
|
||||||
@ -839,7 +837,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"point": {
|
"point": {
|
||||||
"type": "Point",
|
"type": "Point",
|
||||||
"coordinates": [ 0, 0, 0 ]
|
"coordinates": [ 0, 0, 0 ]
|
||||||
@ -861,7 +859,7 @@ value:
|
|||||||
geom_col
|
geom_col
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"geom_table": [
|
"geom_table": [
|
||||||
{
|
{
|
||||||
@ -878,7 +876,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"polygon": {
|
"polygon": {
|
||||||
"type": "Polygon",
|
"type": "Polygon",
|
||||||
"coordinates": [
|
"coordinates": [
|
||||||
@ -915,7 +913,7 @@ Fetch a list of articles that have a value in the `published_on` field:
|
|||||||
published_on
|
published_on
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -969,7 +967,7 @@ boolean ST_Intersects( raster <raster-col> , raster <raster-value> );
|
|||||||
rast
|
rast
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"dummy_rast": [
|
"dummy_rast": [
|
||||||
{
|
{
|
||||||
@ -983,7 +981,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"rast": "0100000100000000000000004000000000000000C00000000000000000000000000000084000000000000000000000000000000000E610000001000100440001"
|
"rast": "0100000100000000000000004000000000000000C00000000000000000000000000000084000000000000000000000000000000000E610000001000100440001"
|
||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
@ -1006,7 +1004,7 @@ boolean ST_Intersects( raster <raster-col> , geometry geommin , integer nband=NU
|
|||||||
rast
|
rast
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"dummy_rast": [
|
"dummy_rast": [
|
||||||
{
|
{
|
||||||
@ -1020,7 +1018,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"point": {
|
"point": {
|
||||||
"type": "Point",
|
"type": "Point",
|
||||||
"coordinates": [
|
"coordinates": [
|
||||||
@ -1055,7 +1053,7 @@ boolean ST_Intersects( raster <raster-col> , integer nband , geometry geommin );
|
|||||||
rast
|
rast
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"dummy_rast": [
|
"dummy_rast": [
|
||||||
{
|
{
|
||||||
@ -1069,7 +1067,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"point": {
|
"point": {
|
||||||
"type": "Point",
|
"type": "Point",
|
||||||
"coordinates": [
|
"coordinates": [
|
||||||
@ -1109,7 +1107,7 @@ Select ancestors of an <em>ltree</em> argument
|
|||||||
path
|
path
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"tree": [
|
"tree": [
|
||||||
{
|
{
|
||||||
@ -1144,7 +1142,7 @@ Select <em>ltree</em> paths matching any <em>lquery</em> regex in an array
|
|||||||
path
|
path
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"tree": [
|
"tree": [
|
||||||
{
|
{
|
||||||
@ -1199,7 +1197,7 @@ Fetch all authors who don't have any published articles:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1267,7 +1265,7 @@ example: in year 2017):
|
|||||||
published_on
|
published_on
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -1324,7 +1322,7 @@ Fetch a list of articles rated more than 4 or published after
|
|||||||
published_on
|
published_on
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -1385,7 +1383,7 @@ Fetch all authors with only their 5 rated articles:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1427,14 +1425,14 @@ For example:
|
|||||||
|
|
||||||
```graphql {2}
|
```graphql {2}
|
||||||
query {
|
query {
|
||||||
articles (where: {author: {name: {_eq: "Sidney"}}}) {
|
articles(where: { author: { name: { _eq: "Sidney" } } }) {
|
||||||
id
|
id
|
||||||
title
|
title
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The behaviour of the comparison operators depends on whether the nested
|
The behavior of the comparison operators depends on whether the nested
|
||||||
objects are a single object related via an object relationship or an
|
objects are a single object related via an object relationship or an
|
||||||
array of objects related via an array relationship.
|
array of objects related via an array relationship.
|
||||||
|
|
||||||
@ -1446,7 +1444,6 @@ array of objects related via an array relationship.
|
|||||||
:::caution Limitations
|
:::caution Limitations
|
||||||
|
|
||||||
**This is only supported for local relationships**, such as relationships between two local database tables.
|
**This is only supported for local relationships**, such as relationships between two local database tables.
|
||||||
|
|
||||||
**This is not supported for remote relationships**, such as remote database relationships or Remote Schema relationships.
|
**This is not supported for remote relationships**, such as remote database relationships or Remote Schema relationships.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
@ -1475,7 +1472,7 @@ Fetch all articles whose author's name starts with "A":
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
@ -1540,7 +1537,7 @@ Fetch all authors which have written at least one article which is rated
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1605,7 +1602,7 @@ nested objects satisfy the condition.
|
|||||||
For example:
|
For example:
|
||||||
|
|
||||||
| condition | where expression |
|
| condition | where expression |
|
||||||
|-------------------------------------|---------------------------------------------|
|
| ----------------------------------- | ------------------------------------------- |
|
||||||
| `{object: {field: {_eq: "value"}}}` | `{_not: {object: {field: {_neq: "value"}}}` |
|
| `{object: {field: {_eq: "value"}}}` | `{_not: {object: {field: {_neq: "value"}}}` |
|
||||||
| `{object: {field: {_gt: "value"}}}` | `{_not: {object: {field: {_lte: "value"}}}` |
|
| `{object: {field: {_gt: "value"}}}` | `{_not: {object: {field: {_lte: "value"}}}` |
|
||||||
|
|
||||||
@ -1631,7 +1628,7 @@ Fetch all authors which have all of their articles published i.e. have
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1696,13 +1693,13 @@ response={`{
|
|||||||
By default a row is returned if any of the nested objects satisfy a
|
By default a row is returned if any of the nested objects satisfy a
|
||||||
condition. To achieve the above, we need to frame the `where` expression
|
condition. To achieve the above, we need to frame the `where` expression
|
||||||
as `{_not: {condition}}`. This reads as: fetch if not (any of the nested
|
as `{_not: {condition}}`. This reads as: fetch if not (any of the nested
|
||||||
objects satisfy the condition) i.e. none of the nested objects satisy
|
objects satisfy the condition) i.e. none of the nested objects satisfy
|
||||||
the condition.
|
the condition.
|
||||||
|
|
||||||
For example,
|
For example,
|
||||||
|
|
||||||
| condition | where expression |
|
| condition | where expression |
|
||||||
|-------------------------------------|--------------------------------------------|
|
| ----------------------------------- | ------------------------------------------ |
|
||||||
| `{object: {field: {_eq: "value"}}}` | `{_not: {object: {field: {_eq: "value"}}}` |
|
| `{object: {field: {_eq: "value"}}}` | `{_not: {object: {field: {_eq: "value"}}}` |
|
||||||
| `{object: {field: {_gt: "value"}}}` | `{_not: {object: {field: {_gt: "value"}}}` |
|
| `{object: {field: {_gt: "value"}}}` | `{_not: {object: {field: {_gt: "value"}}}` |
|
||||||
|
|
||||||
@ -1728,7 +1725,7 @@ Fetch all authors which have none of their articles published i.e. have
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1782,7 +1779,7 @@ Fetch all authors which have at least one article written by them:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1830,7 +1827,7 @@ Fetch all authors which have not written any articles:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1864,7 +1861,7 @@ For example:
|
|||||||
|
|
||||||
```graphql {2}
|
```graphql {2}
|
||||||
query {
|
query {
|
||||||
author (where: {full_name: {_ilike: "%bob%"}}){
|
author(where: { full_name: { _ilike: "%bob%" } }) {
|
||||||
id
|
id
|
||||||
first_name
|
first_name
|
||||||
last_name
|
last_name
|
||||||
@ -1872,7 +1869,7 @@ query {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The behaviour of the comparison operators depends on whether the
|
The behavior of the comparison operators depends on whether the
|
||||||
computed fields return scalar type values or set of table rows.
|
computed fields return scalar type values or set of table rows.
|
||||||
|
|
||||||
- In case of scalar type, a row will be returned if the computed field
|
- In case of scalar type, a row will be returned if the computed field
|
||||||
@ -1897,7 +1894,7 @@ students whose total marks is above "80":
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"student": [
|
"student": [
|
||||||
{
|
{
|
||||||
@ -1928,7 +1925,7 @@ have atleast a published article in medicine field:
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"author": [
|
"author": [
|
||||||
{
|
{
|
||||||
@ -1959,7 +1956,7 @@ count of published articles is more than 10:
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"author": [
|
"author": [
|
||||||
{
|
{
|
||||||
@ -1981,23 +1978,22 @@ You can filter based on _aggregations_ over the elements of an array relationshi
|
|||||||
|
|
||||||
The aggregation functions supported are:
|
The aggregation functions supported are:
|
||||||
|
|
||||||
* `avg(number)`: Computes the average (arithmetic mean) of all the non-null input values.
|
- `avg(number)`: Computes the average (arithmetic mean) of all the non-null input values.
|
||||||
* `bool_and(bool)`: Returns true if **all** non-null input values are true, otherwise false.
|
- `bool_and(bool)`: Returns true if **all** non-null input values are true, otherwise false.
|
||||||
* `bool_or(bool)`: Returns true if **any** non-null input value is true, otherwise false.
|
- `bool_or(bool)`: Returns true if **any** non-null input value is true, otherwise false.
|
||||||
* `count(*)`, `count(col1, col2, ..)` : Computes the number of input rows in which the input value is not null.
|
- `count(*)`, `count(col1, col2, ..)` : Computes the number of input rows in which the input value is not null.
|
||||||
* `max(number)`: Computes the maximum of the non-null input values.
|
- `max(number)`: Computes the maximum of the non-null input values.
|
||||||
* `min(number)`: Computes the minimum of the non-null input values.
|
- `min(number)`: Computes the minimum of the non-null input values.
|
||||||
* `sum(number)`: Computes the sum of the non-null input values.
|
- `sum(number)`: Computes the sum of the non-null input values.
|
||||||
* `corr(Y number, X number)`: Computes the correlation coefficient.
|
- `corr(Y number, X number)`: Computes the correlation coefficient.
|
||||||
* `covar_samp(Y number, X number)`: Computes the sample covariance.
|
- `covar_samp(Y number, X number)`: Computes the sample covariance.
|
||||||
* `stddev_samp(number)`: Computes the sample standard deviation of the input values.
|
- `stddev_samp(number)`: Computes the sample standard deviation of the input values.
|
||||||
* `var_samp(number)`: Computes the sample variance of the input values (square of the sample standard deviation).
|
- `var_samp(number)`: Computes the sample variance of the input values (square of the sample standard deviation).
|
||||||
|
|
||||||
The semantics of the above functions is documented in the [PostgreSQL documentation](https://www.postgresql.org/docs/14/functions-aggregate.html).
|
The semantics of the above functions is documented in the [PostgreSQL documentation](https://www.postgresql.org/docs/14/functions-aggregate.html).
|
||||||
|
|
||||||
For the complete specification of the schema of aggregation predicates, see the [API reference: AggregationExp](/api-reference/graphql-api/query.mdx#aggregationexp).
|
For the complete specification of the schema of aggregation predicates, see the [API reference: AggregationExp](/api-reference/graphql-api/query.mdx#aggregationexp).
|
||||||
|
|
||||||
|
|
||||||
**Example:**
|
**Example:**
|
||||||
|
|
||||||
Assume we have a dataset of restaurants with user-submitted reviews that contain a rating.
|
Assume we have a dataset of restaurants with user-submitted reviews that contain a rating.
|
||||||
@ -2034,7 +2030,7 @@ Suppose we want to query only the best restaurants. In that case, we can filter
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"restaurant": [
|
"restaurant": [
|
||||||
{
|
{
|
||||||
@ -2051,7 +2047,6 @@ response={`{
|
|||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
## Cast a field to a different type before filtering (\_cast)
|
## Cast a field to a different type before filtering (\_cast)
|
||||||
|
|
||||||
The `_cast` operator can be used to cast a field to a different type, which allows type-specific
|
The `_cast` operator can be used to cast a field to a different type, which allows type-specific
|
||||||
@ -2064,14 +2059,13 @@ Currently, only the following type casts are supported:
|
|||||||
|
|
||||||
Casting using `_cast` corresponds directly to [SQL type casts](https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-TYPE-CASTS).
|
Casting using `_cast` corresponds directly to [SQL type casts](https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-TYPE-CASTS).
|
||||||
|
|
||||||
|
|
||||||
**Example: cast jsonb to string**
|
**Example: cast jsonb to string**
|
||||||
|
|
||||||
Columns of type `jsonb` can be cast to `String` to use [text operators](/api-reference/graphql-api/query.mdx#text-operators) on a
|
Columns of type `jsonb` can be cast to `String` to use [text operators](/api-reference/graphql-api/query.mdx#text-operators) on a
|
||||||
`jsonb` field:
|
`jsonb` field:
|
||||||
|
|
||||||
<GraphiQLIDE
|
<GraphiQLIDE
|
||||||
query={`query get_authors_in_bengaluru {
|
query={`query get_authors_in_bengaluru {
|
||||||
authors(
|
authors(
|
||||||
where: {
|
where: {
|
||||||
address: {_cast: {String: {_ilike: "%bengaluru%"}}}
|
address: {_cast: {String: {_ilike: "%bengaluru%"}}}
|
||||||
@ -2082,7 +2076,7 @@ query={`query get_authors_in_bengaluru {
|
|||||||
address
|
address
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -2119,7 +2113,7 @@ cast the field to `geography` before comparing:
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"cities": [
|
"cities": [
|
||||||
{
|
{
|
||||||
@ -2131,7 +2125,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"point": {
|
"point": {
|
||||||
"type": "Point",
|
"type": "Point",
|
||||||
"coordinates": [1, 50]
|
"coordinates": [1, 50]
|
||||||
@ -2158,7 +2152,7 @@ operations in a filter:
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
response={`{
|
response={`{
|
||||||
"data": {
|
"data": {
|
||||||
"cities": [
|
"cities": [
|
||||||
{
|
{
|
||||||
@ -2167,7 +2161,7 @@ response={`{
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}`}
|
}`}
|
||||||
variables={`{
|
variables={`{
|
||||||
"polygon": {
|
"polygon": {
|
||||||
"type": "Polygon",
|
"type": "Polygon",
|
||||||
"crs": {
|
"crs": {
|
||||||
@ -2229,5 +2223,5 @@ For example, the expression `{ where: { id: {_eq: null }}}` will be
|
|||||||
reduced to `{ where: {id: {}} }` which will return all objects for which
|
reduced to `{ where: {id: {}} }` which will return all objects for which
|
||||||
an `id` is set, i.e. all objects will be returned.
|
an `id` is set, i.e. all objects will be returned.
|
||||||
|
|
||||||
This behaviour can be preserved in versions v2.0.0 and above by setting
|
This behavior can be preserved in versions v2.0.0 and above by setting
|
||||||
the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var to `true`.
|
the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var to `true`.
|
||||||
|
@ -92,7 +92,7 @@ Metadata API.
|
|||||||
|
|
||||||
You can modify different [GraphQL Types](https://spec.graphql.org/June2018/#sec-Types) in the following manner:
|
You can modify different [GraphQL Types](https://spec.graphql.org/June2018/#sec-Types) in the following manner:
|
||||||
|
|
||||||
1. Scalar - A scalar definition cannot be modified differently from its correponding Remote Schema scalar definition.
|
1. Scalar - A scalar definition cannot be modified differently from its corresponding Remote Schema scalar definition.
|
||||||
2. Object - An object can omit some of the fields from its definition.
|
2. Object - An object can omit some of the fields from its definition.
|
||||||
3. Interface - An interface, like the object type, can omit some of the fields from its definition.
|
3. Interface - An interface, like the object type, can omit some of the fields from its definition.
|
||||||
4. Union - A union can be modified to only support a subset of the `possibleTypes` of its original union definition.
|
4. Union - A union can be modified to only support a subset of the `possibleTypes` of its original union definition.
|
||||||
@ -190,7 +190,7 @@ type Query {
|
|||||||
:::info Note
|
:::info Note
|
||||||
|
|
||||||
By default, any preset string value in the format of `x-hasura-*` is assumed to be a
|
By default, any preset string value in the format of `x-hasura-*` is assumed to be a
|
||||||
[session variable](/auth/authorization/roles-variables.mdx#dynamic-session-variables)`. To override this behaviour i.e. to treat the value literally, the `static`argument equal to`true`needs to be added in the`preset`directive. In the following example, the`x-hasura-user-id`
|
[session variable](/auth/authorization/roles-variables.mdx#dynamic-session-variables)`. To override this behavior i.e. to treat the value literally, the `static`argument equal to`true`needs to be added in the`preset`directive. In the following example, the`x-hasura-user-id`
|
||||||
will be treated literally.
|
will be treated literally.
|
||||||
|
|
||||||
```graphql
|
```graphql
|
||||||
|
@ -42,7 +42,7 @@ A detailed changelog with all the new features introduced in Hasura v2 is availa
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
### Breaking behaviour changes {#hasura-v2-behaviour-changes}
|
### Breaking behavior changes {#hasura-v2-behavior-changes}
|
||||||
|
|
||||||
<div id="hasura-v2-null-where-change" />
|
<div id="hasura-v2-null-where-change" />
|
||||||
|
|
||||||
@ -56,14 +56,14 @@ A detailed changelog with all the new features introduced in Hasura v2 is availa
|
|||||||
For example: The mutation `delete_users(where: {id: {_eq: $userId}}) { name }` will yield an error if `$userId` is
|
For example: The mutation `delete_users(where: {id: {_eq: $userId}}) { name }` will yield an error if `$userId` is
|
||||||
`null` instead of deleting all users.
|
`null` instead of deleting all users.
|
||||||
|
|
||||||
The older behaviour can be preserved by setting the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var to `true`.
|
The older behavior can be preserved by setting the `HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE` env var to `true`.
|
||||||
|
|
||||||
- **Semantics of "null" join values in Remote Schema relationships have changed**
|
- **Semantics of "null" join values in Remote Schema relationships have changed**
|
||||||
|
|
||||||
In a Remote Schema relationship query, the Remote Schema will be queried when all of the joining arguments are not
|
In a Remote Schema relationship query, the Remote Schema will be queried when all of the joining arguments are not
|
||||||
`null` values. When there are `null` value(s), the Remote Schema won't be queried and the response of the remote
|
`null` values. When there are `null` value(s), the Remote Schema won't be queried and the response of the remote
|
||||||
relationship field will be `null`. Earlier, the Remote Schema was queried with the `null` value arguments and the
|
relationship field will be `null`. Earlier, the Remote Schema was queried with the `null` value arguments and the
|
||||||
response depended upon how the Remote Schema handled the `null` arguments but as per user feedback, this behaviour was
|
response depended upon how the Remote Schema handled the `null` arguments but as per user feedback, this behavior was
|
||||||
clearly not expected.
|
clearly not expected.
|
||||||
|
|
||||||
- **Order of keys in objects passed as "order_by" operator inputs is not preserved**
|
- **Order of keys in objects passed as "order_by" operator inputs is not preserved**
|
||||||
@ -80,7 +80,7 @@ A detailed changelog with all the new features introduced in Hasura v2 is availa
|
|||||||
|
|
||||||
For example: The query `fetch_users(order_by: {age: desc, name: asc}) {id name age}` which is intended to fetch users
|
For example: The query `fetch_users(order_by: {age: desc, name: asc}) {id name age}` which is intended to fetch users
|
||||||
ordered by their age and then by their name is now not guaranteed to return results first ordered by age and then by
|
ordered by their age and then by their name is now not guaranteed to return results first ordered by age and then by
|
||||||
their name as the `order_by` input is passed as an object. To achieve the expected behaviour, the following query
|
their name as the `order_by` input is passed as an object. To achieve the expected behavior, the following query
|
||||||
`fetch_users(order_by: [{age: desc}, {name: asc}]) {id name age}` should be used which uses an array to define the
|
`fetch_users(order_by: [{age: desc}, {name: asc}]) {id name age}` should be used which uses an array to define the
|
||||||
order of fields to generate the appropriate `order by` clause.
|
order of fields to generate the appropriate `order by` clause.
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ X-Hasura-Role: admin
|
|||||||
"tolerance_seconds": 21675,
|
"tolerance_seconds": 21675,
|
||||||
"retry_interval_seconds": 12
|
"retry_interval_seconds": 12
|
||||||
},
|
},
|
||||||
"comment": "sample_cron commment"
|
"comment": "sample_cron comment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_label: Customise auto-generated fields
|
sidebar_label: Customize auto-generated fields
|
||||||
sidebar_position: 2
|
sidebar_position: 2
|
||||||
description: Use custom field names for BigQuery in Hasura
|
description: Use custom field names for BigQuery in Hasura
|
||||||
keywords:
|
keywords:
|
||||||
@ -14,7 +14,7 @@ keywords:
|
|||||||
import Tabs from '@theme/Tabs';
|
import Tabs from '@theme/Tabs';
|
||||||
import TabItem from '@theme/TabItem';
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
# BigQuery: Customise Auto-Generated Field Names
|
# BigQuery: Customize Auto-Generated Field Names
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ Console support coming soon
|
|||||||
Head to the `Data -> [table-name] -> Modify`. On the relevant field, click `Edit` and change the GraphQL field name to a name of your choice.
|
Head to the `Data -> [table-name] -> Modify`. On the relevant field, click `Edit` and change the GraphQL field name to a name of your choice.
|
||||||
|
|
||||||
.. thumbnail:: /img/schema/custom-field-name-column.png
|
.. thumbnail:: /img/schema/custom-field-name-column.png
|
||||||
:alt: Customise GraphQL field name
|
:alt: Customize GraphQL field name
|
||||||
-->
|
-->
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
@ -111,7 +111,7 @@ Console support coming soon
|
|||||||
Head to the ``Data -> [table-name] -> Modify``. Click the ``Edit`` button in the ``Custom GraphQL Root Fields`` section and define names over which you'd like to expose the table root fields.
|
Head to the ``Data -> [table-name] -> Modify``. Click the ``Edit`` button in the ``Custom GraphQL Root Fields`` section and define names over which you'd like to expose the table root fields.
|
||||||
|
|
||||||
.. thumbnail:: /img/schema/custom-field-name-root-fields.png
|
.. thumbnail:: /img/schema/custom-field-name-root-fields.png
|
||||||
:alt: Customise GraphQL root field
|
:alt: Customize GraphQL root field
|
||||||
-->
|
-->
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
@ -23,7 +23,7 @@ BigQuery constructs.
|
|||||||
**See:**
|
**See:**
|
||||||
|
|
||||||
- [Table relationships](/schema/bigquery/table-relationships/index.mdx)
|
- [Table relationships](/schema/bigquery/table-relationships/index.mdx)
|
||||||
- [Customise auto-generated fields](/schema/bigquery/custom-field-names.mdx)
|
- [Customize auto-generated fields](/schema/bigquery/custom-field-names.mdx)
|
||||||
- [Computed fields](/schema/bigquery/computed-fields.mdx)
|
- [Computed fields](/schema/bigquery/computed-fields.mdx)
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
@ -40,7 +40,7 @@ TODO: DB-COMPATIBILITY
|
|||||||
Default field values <default-values/index>
|
Default field values <default-values/index>
|
||||||
Enum type fields <enums>
|
Enum type fields <enums>
|
||||||
Computed fields <computed-fields>
|
Computed fields <computed-fields>
|
||||||
Customise auto-generated fields <custom-field-names>
|
Customize auto-generated fields <custom-field-names>
|
||||||
Data validations <data-validations>
|
Data validations <data-validations>
|
||||||
Using an existing database <using-existing-database>
|
Using an existing database <using-existing-database>
|
||||||
Relay schema <relay-schema>
|
Relay schema <relay-schema>
|
||||||
|
@ -50,7 +50,7 @@ If string-type columns in your database have an encoding other than UTF-8, unexp
|
|||||||
Extend with SQL functions <custom-functions>
|
Extend with SQL functions <custom-functions>
|
||||||
Enum type fields <enums>
|
Enum type fields <enums>
|
||||||
Computed fields <computed-fields>
|
Computed fields <computed-fields>
|
||||||
Customise auto-generated fields <custom-field-names>
|
Customize auto-generated fields <custom-field-names>
|
||||||
Data validations <data-validations>
|
Data validations <data-validations>
|
||||||
Using an existing database <using-existing-database>
|
Using an existing database <using-existing-database>
|
||||||
Relay schema <relay-schema> -->
|
Relay schema <relay-schema> -->
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_label: Customise auto-generated fields
|
sidebar_label: Customize auto-generated fields
|
||||||
sidebar_position: 5
|
sidebar_position: 5
|
||||||
description: Use custom field names for MS SQL Server in Hasura
|
description: Use custom field names for MS SQL Server in Hasura
|
||||||
keywords:
|
keywords:
|
||||||
@ -14,7 +14,7 @@ keywords:
|
|||||||
import Tabs from '@theme/Tabs';
|
import Tabs from '@theme/Tabs';
|
||||||
import TabItem from '@theme/TabItem';
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
# MS SQL Server: Customise Auto-Generated Field Names
|
# MS SQL Server: Customize Auto-Generated Field Names
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ Console support coming soon
|
|||||||
Head to the ``Data -> [table-name] -> Modify``. On the relevant field, click ``Edit`` and change the GraphQL field name to a name of your choice.
|
Head to the ``Data -> [table-name] -> Modify``. On the relevant field, click ``Edit`` and change the GraphQL field name to a name of your choice.
|
||||||
|
|
||||||
.. thumbnail:: /img/schema/custom-field-name-column.png
|
.. thumbnail:: /img/schema/custom-field-name-column.png
|
||||||
:alt: Customise GraphQL field name
|
:alt: Customize GraphQL field name
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ Console support coming soon
|
|||||||
Head to the ``Data -> [table-name] -> Modify``. Click the ``Edit`` button in the ``Custom GraphQL Root Fields`` section and define names over which you'd like to expose the table root fields.
|
Head to the ``Data -> [table-name] -> Modify``. Click the ``Edit`` button in the ``Custom GraphQL Root Fields`` section and define names over which you'd like to expose the table root fields.
|
||||||
|
|
||||||
.. thumbnail:: /img/schema/custom-field-name-root-fields.png
|
.. thumbnail:: /img/schema/custom-field-name-root-fields.png
|
||||||
:alt: Customise GraphQL root field
|
:alt: Customize GraphQL root field
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ Head to the GraphiQL interface in the Console and try making an insert mutation
|
|||||||
following headers (_to run through this example, don't forget to also grant the_ `user` _role sufficient permissions to
|
following headers (_to run through this example, don't forget to also grant the_ `user` _role sufficient permissions to
|
||||||
select from the_ `article` _table_):
|
select from the_ `article` _table_):
|
||||||
|
|
||||||
- `X-Hasura-Role` --> `user` (_to test the behaviour for the configured role_)
|
- `X-Hasura-Role` --> `user` (_to test the behavior for the configured role_)
|
||||||
- `X-Hasura-User-Id` --> `1` (_this is the value we should expect in the_ `user_id` _field_)
|
- `X-Hasura-User-Id` --> `1` (_this is the value we should expect in the_ `user_id` _field_)
|
||||||
|
|
||||||
As mentioned earlier, you'll notice when you add the `X-Hasura-Role` header that the field, `user_id`, is no longer
|
As mentioned earlier, you'll notice when you add the `X-Hasura-Role` header that the field, `user_id`, is no longer
|
||||||
|
@ -27,7 +27,7 @@ MS SQL Server constructs.
|
|||||||
- [Table relationships](/schema/ms-sql-server/table-relationships/index.mdx)
|
- [Table relationships](/schema/ms-sql-server/table-relationships/index.mdx)
|
||||||
- [Extend with views](/schema/ms-sql-server/views.mdx)
|
- [Extend with views](/schema/ms-sql-server/views.mdx)
|
||||||
- [Default field values](/schema/ms-sql-server/default-values/index.mdx)
|
- [Default field values](/schema/ms-sql-server/default-values/index.mdx)
|
||||||
- [Customise auto-generated fields](/schema/ms-sql-server/custom-field-names.mdx)
|
- [Customize auto-generated fields](/schema/ms-sql-server/custom-field-names.mdx)
|
||||||
- [Using an existing database](/schema/ms-sql-server/using-existing-database.mdx)
|
- [Using an existing database](/schema/ms-sql-server/using-existing-database.mdx)
|
||||||
|
|
||||||
<!-- .. TODO: DB-COMPATIBILITY
|
<!-- .. TODO: DB-COMPATIBILITY
|
||||||
@ -41,7 +41,7 @@ MS SQL Server constructs.
|
|||||||
Extend with SQL functions <custom-functions>
|
Extend with SQL functions <custom-functions>
|
||||||
Enum type fields <enums>
|
Enum type fields <enums>
|
||||||
Computed fields <computed-fields>
|
Computed fields <computed-fields>
|
||||||
Customise auto-generated fields <custom-field-names>
|
Customize auto-generated fields <custom-field-names>
|
||||||
Data validations <data-validations>
|
Data validations <data-validations>
|
||||||
Using an existing database <using-existing-database>
|
Using an existing database <using-existing-database>
|
||||||
Relay schema <relay-schema> -->
|
Relay schema <relay-schema> -->
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
sidebar_label: Extend with views
|
sidebar_label: Extend with views
|
||||||
sidebar_position: 3
|
sidebar_position: 3
|
||||||
description: Customise the Hasura GraphQL schema with views
|
description: Customize the Hasura GraphQL schema with views
|
||||||
keywords:
|
keywords:
|
||||||
- hasura
|
- hasura
|
||||||
- docs
|
- docs
|
||||||
|
@ -36,7 +36,7 @@ field.
|
|||||||
Only functions which satisfy the following constraints can be added as a computed field to a table/view. (_terminology
|
Only functions which satisfy the following constraints can be added as a computed field to a table/view. (_terminology
|
||||||
from_ [Postgres docs](https://www.postgresql.org/docs/current/sql-createfunction.html)):
|
from_ [Postgres docs](https://www.postgresql.org/docs/current/sql-createfunction.html)):
|
||||||
|
|
||||||
- **Function behaviour**: ONLY `STABLE` or `IMMUTABLE`
|
- **Function behavior**: ONLY `STABLE` or `IMMUTABLE`
|
||||||
- **Argument modes**: ONLY `IN`
|
- **Argument modes**: ONLY `IN`
|
||||||
- **Table Argument**: One input argument with a table row type
|
- **Table Argument**: One input argument with a table row type
|
||||||
- **Return type**: Either `SETOF <table-name>` or `BASE` type
|
- **Return type**: Either `SETOF <table-name>` or `BASE` type
|
||||||
@ -183,7 +183,7 @@ Query data from the `authors` table:
|
|||||||
|
|
||||||
Head to the `Modify` tab of the table/view and click on the `Add` button in the `Computed fields` section:
|
Head to the `Modify` tab of the table/view and click on the `Add` button in the `Computed fields` section:
|
||||||
|
|
||||||
<Thumbnail src='/img/schema/computed-field-create.png' alt='Add computed field' width='750px' />
|
<Thumbnail src="/img/schema/computed-field-create.png" alt="Add computed field" width="750px" />
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="cli" label="CLI">
|
<TabItem value="cli" label="CLI">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_label: Customise auto-generated fields
|
sidebar_label: Customize auto-generated fields
|
||||||
sidebar_position: 9
|
sidebar_position: 9
|
||||||
description: Use custom field names for Postgres in Hasura
|
description: Use custom field names for Postgres in Hasura
|
||||||
keywords:
|
keywords:
|
||||||
@ -15,7 +15,7 @@ import Thumbnail from '@site/src/components/Thumbnail';
|
|||||||
import Tabs from '@theme/Tabs';
|
import Tabs from '@theme/Tabs';
|
||||||
import TabItem from '@theme/TabItem';
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
# Postgres: Customise Auto-Generated Field Names
|
# Postgres: Customize Auto-Generated Field Names
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ This feature is supported in versions `v1.0.0-beta.8` and later.
|
|||||||
Head to the `Data -> [table-name] -> Modify`. On the relevant field, click `Edit` and change the GraphQL field name to a
|
Head to the `Data -> [table-name] -> Modify`. On the relevant field, click `Edit` and change the GraphQL field name to a
|
||||||
name of your choice.
|
name of your choice.
|
||||||
|
|
||||||
<Thumbnail src="/img/schema/custom-field-name-column.png" alt="Customise GraphQL field name" />
|
<Thumbnail src="/img/schema/custom-field-name-column.png" alt="Customize GraphQL field name" />
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="cli" label="CLI">
|
<TabItem value="cli" label="CLI">
|
||||||
@ -124,7 +124,7 @@ A custom field name can be set for a column via the following 2 methods:
|
|||||||
Head to the `Data -> [table-name] -> Modify`. Click the `Edit` button in the `Custom GraphQL Root Fields` section and
|
Head to the `Data -> [table-name] -> Modify`. Click the `Edit` button in the `Custom GraphQL Root Fields` section and
|
||||||
define names over which you'd like to expose the table root fields.
|
define names over which you'd like to expose the table root fields.
|
||||||
|
|
||||||
<Thumbnail src="/img/schema/custom-field-name-root-fields.png" alt="Customise GraphQL root field" />
|
<Thumbnail src="/img/schema/custom-field-name-root-fields.png" alt="Customize GraphQL root field" />
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="cli" label="CLI">
|
<TabItem value="cli" label="CLI">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
sidebar_label: Extend with SQL functions
|
sidebar_label: Extend with SQL functions
|
||||||
sidebar_position: 5
|
sidebar_position: 5
|
||||||
description: Customise the Hasura GraphQL schema with Postgres SQL functions
|
description: Customize the Hasura GraphQL schema with Postgres SQL functions
|
||||||
keywords:
|
keywords:
|
||||||
- hasura
|
- hasura
|
||||||
- docs
|
- docs
|
||||||
@ -38,7 +38,7 @@ Custom SQL functions can also be queried as [computed fields](/schema/postgres/c
|
|||||||
Currently, only functions which satisfy the following constraints can be exposed as top level fields in the GraphQL API
|
Currently, only functions which satisfy the following constraints can be exposed as top level fields in the GraphQL API
|
||||||
(_terminology from_ [Postgres docs](https://www.postgresql.org/docs/current/sql-createfunction.html)):
|
(_terminology from_ [Postgres docs](https://www.postgresql.org/docs/current/sql-createfunction.html)):
|
||||||
|
|
||||||
- **Function behaviour**: `STABLE` or `IMMUTABLE` functions may _only_ be exposed as queries. `VOLATILE` functions may
|
- **Function behavior**: `STABLE` or `IMMUTABLE` functions may _only_ be exposed as queries. `VOLATILE` functions may
|
||||||
be exposed as mutations or queries.
|
be exposed as mutations or queries.
|
||||||
- **Return type**: MUST be `SETOF <table-name>` OR `<table-name>` where `<table-name>` is already tracked
|
- **Return type**: MUST be `SETOF <table-name>` OR `<table-name>` where `<table-name>` is already tracked
|
||||||
- **Argument modes**: ONLY `IN`
|
- **Argument modes**: ONLY `IN`
|
||||||
|
@ -125,7 +125,7 @@ Head to the GraphiQL interface in the Console and try making an insert mutation
|
|||||||
following headers (_to run through this example, don't forget to also grant the_ `user` _role sufficient permissions to
|
following headers (_to run through this example, don't forget to also grant the_ `user` _role sufficient permissions to
|
||||||
select from the_ `article` _table_):
|
select from the_ `article` _table_):
|
||||||
|
|
||||||
- `X-Hasura-Role` --> `user` (_to test the behaviour for the configured role_)
|
- `X-Hasura-Role` --> `user` (_to test the behavior for the configured role_)
|
||||||
- `X-Hasura-User-Id` --> `1` (_this is the value we should expect in the_ `user_id` _field_)
|
- `X-Hasura-User-Id` --> `1` (_this is the value we should expect in the_ `user_id` _field_)
|
||||||
|
|
||||||
As mentioned earlier, you'll notice when you add the `X-Hasura-Role` header that the field, `user_id`, is no longer
|
As mentioned earlier, you'll notice when you add the `X-Hasura-Role` header that the field, `user_id`, is no longer
|
||||||
|
@ -37,7 +37,7 @@ Hasura works with most [Postgres compatible flavours](/databases/postgres/index.
|
|||||||
- [Default field values](/schema/postgres/default-values/index.mdx)
|
- [Default field values](/schema/postgres/default-values/index.mdx)
|
||||||
- [Enum type fields](/schema/postgres/enums.mdx)
|
- [Enum type fields](/schema/postgres/enums.mdx)
|
||||||
- [Computed fields](/schema/postgres/computed-fields.mdx)
|
- [Computed fields](/schema/postgres/computed-fields.mdx)
|
||||||
- [Customise auto-generated fields](/schema/postgres/custom-field-names.mdx)
|
- [Customize auto-generated fields](/schema/postgres/custom-field-names.mdx)
|
||||||
- [Data validations](/schema/postgres/data-validations.mdx)
|
- [Data validations](/schema/postgres/data-validations.mdx)
|
||||||
- [Using an existing database](/schema/postgres/using-existing-database.mdx)
|
- [Using an existing database](/schema/postgres/using-existing-database.mdx)
|
||||||
- [Relay schema](/schema/postgres/relay-schema.mdx)
|
- [Relay schema](/schema/postgres/relay-schema.mdx)
|
||||||
|
@ -22,7 +22,7 @@ import GraphiQLIDE from '@site/src/components/GraphiQLIDE';
|
|||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
The Hasura GraphQL Engine generates names for various schema objects (fields, types, arguments, etc.) and the naming
|
The Hasura GraphQL Engine generates names for various schema objects (fields, types, arguments, etc.) and the naming
|
||||||
convention for these autogenerated names can be customised to suit your needs.
|
convention for these autogenerated names can be customized to suit your needs.
|
||||||
|
|
||||||
:::tip Note
|
:::tip Note
|
||||||
|
|
||||||
@ -80,10 +80,10 @@ Currently, Hasura provides two naming conventions:
|
|||||||
|
|
||||||
Consider a schema named, `app_db`, with the following structure:
|
Consider a schema named, `app_db`, with the following structure:
|
||||||
|
|
||||||
1. **app_users**: A table with the columns **user_id**, **username**, **last_seen**, **favourite_day** and
|
1. **app_users**: A table with the columns **user_id**, **username**, **last_seen**, **favorite_day** and
|
||||||
**referred_by**.
|
**referred_by**.
|
||||||
2. **week_days**: An enum table with column **day_names** and rows **monday**, **tuesday** and so on.
|
2. **week_days**: An enum table with column **day_names** and rows **monday**, **tuesday** and so on.
|
||||||
3. We have a foreign key set up between `week_days.day_names` and `app_users.favourite_day`.
|
3. We have a foreign key set up between `week_days.day_names` and `app_users.favorite_day`.
|
||||||
|
|
||||||
For the above schema, a sample GraphQL query will look like the following with the different naming conventions:
|
For the above schema, a sample GraphQL query will look like the following with the different naming conventions:
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ For the above schema, a sample GraphQL query will look like the following with t
|
|||||||
query={`query get_user_aggregate {
|
query={`query get_user_aggregate {
|
||||||
app_db_app_users_aggregate(
|
app_db_app_users_aggregate(
|
||||||
distinct_on: referred_by,
|
distinct_on: referred_by,
|
||||||
where: {favourite_day: {_eq: sunday}}
|
where: {favorite_day: {_eq: sunday}}
|
||||||
) {
|
) {
|
||||||
aggregate {
|
aggregate {
|
||||||
count
|
count
|
||||||
@ -125,7 +125,7 @@ For the above schema, a sample GraphQL query will look like the following with t
|
|||||||
query={`query get_user_aggregate {
|
query={`query get_user_aggregate {
|
||||||
appDbAppUsersAggregate(
|
appDbAppUsersAggregate(
|
||||||
distinctOn: referredBy,
|
distinctOn: referredBy,
|
||||||
where: {favouriteDay: {_eq: SUNDAY}}
|
where: {favoriteDay: {_eq: SUNDAY}}
|
||||||
) {
|
) {
|
||||||
aggregate {
|
aggregate {
|
||||||
count
|
count
|
||||||
@ -151,7 +151,7 @@ For the above schema, a sample GraphQL query will look like the following with t
|
|||||||
`}
|
`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
:::tip Behaviour of custom table name
|
:::tip Behavior of custom table name
|
||||||
|
|
||||||
For the `graphql-default` naming convention and a [custom table name](/api-reference/syntax-defs.mdx#table-config) for a
|
For the `graphql-default` naming convention and a [custom table name](/api-reference/syntax-defs.mdx#table-config) for a
|
||||||
given table/view, the following rules are followed:
|
given table/view, the following rules are followed:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
sidebar_label: Extend with views
|
sidebar_label: Extend with views
|
||||||
sidebar_position: 4
|
sidebar_position: 4
|
||||||
description: Customise the Hasura GraphQL schema with views
|
description: Customize the Hasura GraphQL schema with views
|
||||||
keywords:
|
keywords:
|
||||||
- hasura
|
- hasura
|
||||||
- docs
|
- docs
|
||||||
|
@ -51,7 +51,7 @@ be used to rate-limit requests.
|
|||||||
Example:
|
Example:
|
||||||
|
|
||||||
If you rate-limit using the `role_name` and set the unique parameter for the rate-limit as `IP Address`, then rate-limit
|
If you rate-limit using the `role_name` and set the unique parameter for the rate-limit as `IP Address`, then rate-limit
|
||||||
will be applied depending on both those parameteres. i.e If the requests come from a different role but same IP address
|
will be applied depending on both those parameters. i.e If the requests come from a different role but same IP address
|
||||||
will **NOT** be rate limited
|
will **NOT** be rate limited
|
||||||
|
|
||||||
### Depth limits
|
### Depth limits
|
||||||
@ -189,8 +189,8 @@ query query3 {
|
|||||||
API limits can have a _global_ or _per role_ configuration. If an incoming request does not contain a valid role then
|
API limits can have a _global_ or _per role_ configuration. If an incoming request does not contain a valid role then
|
||||||
the global limit is applied.
|
the global limit is applied.
|
||||||
|
|
||||||
<Thumbnail src='/img/security/pro-tab-apilimits.png' alt='Hasura Cloud Console api limit tab' />
|
<Thumbnail src="/img/security/pro-tab-apilimits.png" alt="Hasura Cloud Console api limit tab" />
|
||||||
<Thumbnail src='/img/security/security-apilimits-details.png' alt='Hasura Cloud Console api limit tab details' />
|
<Thumbnail src="/img/security/security-apilimits-details.png" alt="Hasura Cloud Console api limit tab details" />
|
||||||
|
|
||||||
:::info Admin & IntrospectionQuery exemptions
|
:::info Admin & IntrospectionQuery exemptions
|
||||||
|
|
||||||
@ -201,4 +201,3 @@ All API limits are **not** applied for the admin role, and depth limits are **NO
|
|||||||
## Metadata specification
|
## Metadata specification
|
||||||
|
|
||||||
This [API Reference Documentation](/api-reference/metadata-api/api-limits.mdx) describes the metadata API structure to manage API limits.
|
This [API Reference Documentation](/api-reference/metadata-api/api-limits.mdx) describes the metadata API structure to manage API limits.
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ you want to enable subscriptions.
|
|||||||
npm install --save apollo-client apollo-link-ws apollo-link-http apollo-link apollo-utilities apollo-cache-inmemory subscriptions-transport-ws
|
npm install --save apollo-client apollo-link-ws apollo-link-http apollo-link apollo-utilities apollo-cache-inmemory subscriptions-transport-ws
|
||||||
```
|
```
|
||||||
|
|
||||||
Once these packages are installed, import them as follows in the file where you have currently initialised your client
|
Once these packages are installed, import them as follows in the file where you have currently initialized your client
|
||||||
(usually your `App.js` file).
|
(usually your `App.js` file).
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@ -39,7 +39,7 @@ import { getMainDefinition } from 'apollo-utilities';
|
|||||||
import { InMemoryCache } from 'apollo-cache-inmemory';
|
import { InMemoryCache } from 'apollo-cache-inmemory';
|
||||||
```
|
```
|
||||||
|
|
||||||
Below these imports initialise your client to fetch subscriptions along with query and mutation.
|
Below these imports initialize your client to fetch subscriptions along with query and mutation.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const httpLink = new HttpLink({
|
const httpLink = new HttpLink({
|
||||||
|
@ -97,8 +97,8 @@ It uses the provided CORS configuration (as per
|
|||||||
1. When it is `*`, the cookie is read and the CORS check is not enforced.
|
1. When it is `*`, the cookie is read and the CORS check is not enforced.
|
||||||
2. When there are explicit domains, the cookie will only be read if the request originates from one of the listed
|
2. When there are explicit domains, the cookie will only be read if the request originates from one of the listed
|
||||||
domains.
|
domains.
|
||||||
3. If CORS is disabled, the default behaviour is that the cookie won't be read (because of potential security issues).
|
3. If CORS is disabled, the default behavior is that the cookie won't be read (because of potential security issues).
|
||||||
To override the behaviour, you can use the flag `--ws-read-cookie` or the environment variable
|
To override the behavior, you can use the flag `--ws-read-cookie` or the environment variable
|
||||||
`HASURA_GRAPHQL_WS_READ_COOKIE`. See
|
`HASURA_GRAPHQL_WS_READ_COOKIE`. See
|
||||||
[GraphQL Engine server config reference](/deployment/graphql-engine-flags/reference.mdx) for the setting.
|
[GraphQL Engine server config reference](/deployment/graphql-engine-flags/reference.mdx) for the setting.
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ subscriptions. Let's see how they can be used and how they differ from each othe
|
|||||||
messages(where: { group_id: 1 }, order_by: { created_at: asc }) {
|
messages(where: { group_id: 1 }, order_by: { created_at: asc }) {
|
||||||
id
|
id
|
||||||
sender
|
sender
|
||||||
reciever
|
receiver
|
||||||
content
|
content
|
||||||
created_at
|
created_at
|
||||||
edited_at
|
edited_at
|
||||||
@ -82,7 +82,7 @@ subscriptions. Let's see how they can be used and how they differ from each othe
|
|||||||
messages_stream(where: { group_id: 1 }, cursor: { initial_value: { created_at: now } }, batch_size: 10) {
|
messages_stream(where: { group_id: 1 }, cursor: { initial_value: { created_at: now } }, batch_size: 10) {
|
||||||
id
|
id
|
||||||
sender
|
sender
|
||||||
reciever
|
receiver
|
||||||
content
|
content
|
||||||
created_at
|
created_at
|
||||||
edited_at
|
edited_at
|
||||||
@ -148,7 +148,7 @@ It uses the provided CORS configuration (as per
|
|||||||
1. When it is `*`, the cookie is read and the CORS check is not enforced.
|
1. When it is `*`, the cookie is read and the CORS check is not enforced.
|
||||||
2. When there are explicit domains, the cookie will only be read if the request originates from one of the listed
|
2. When there are explicit domains, the cookie will only be read if the request originates from one of the listed
|
||||||
domains.
|
domains.
|
||||||
3. If CORS is disabled, the default behaviour is that the cookie won't be read (because of potential security issues).
|
3. If CORS is disabled, the default behavior is that the cookie won't be read (because of potential security issues).
|
||||||
To override the behaviour, you can use the flag `--ws-read-cookie` or the environment variable
|
To override the behavior, you can use the flag `--ws-read-cookie` or the environment variable
|
||||||
`HASURA_GRAPHQL_WS_READ_COOKIE`. See
|
`HASURA_GRAPHQL_WS_READ_COOKIE`. See
|
||||||
[GraphQL Engine server config reference](/deployment/graphql-engine-flags/reference.mdx) for the setting.
|
[GraphQL Engine server config reference](/deployment/graphql-engine-flags/reference.mdx) for the setting.
|
||||||
|
@ -237,7 +237,7 @@ subscription getResult($pollId: Int!) {
|
|||||||
{
|
{
|
||||||
"poll_id": 1,
|
"poll_id": 1,
|
||||||
"poll":{
|
"poll":{
|
||||||
"question": "What's your favourite food?"
|
"question": "What's your favorite food?"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"texts": "Pizza"
|
"texts": "Pizza"
|
||||||
@ -247,7 +247,7 @@ subscription getResult($pollId: Int!) {
|
|||||||
{
|
{
|
||||||
"poll_id": 1,
|
"poll_id": 1,
|
||||||
"poll":{
|
"poll":{
|
||||||
"question": "What's your favourite food?"
|
"question": "What's your favorite food?"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"texts": "Salad"
|
"texts": "Salad"
|
||||||
@ -257,7 +257,7 @@ subscription getResult($pollId: Int!) {
|
|||||||
{
|
{
|
||||||
"poll_id": 1,
|
"poll_id": 1,
|
||||||
"poll":{
|
"poll":{
|
||||||
"question": "What's your favourite food?"
|
"question": "What's your favorite food?"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"texts": "Sandwich"
|
"texts": "Sandwich"
|
||||||
@ -267,7 +267,7 @@ subscription getResult($pollId: Int!) {
|
|||||||
{
|
{
|
||||||
"poll_id": 1,
|
"poll_id": 1,
|
||||||
"poll":{
|
"poll":{
|
||||||
"question": "What's your favourite food?"
|
"question": "What's your favorite food?"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"texts": "Burger"
|
"texts": "Burger"
|
||||||
@ -277,7 +277,7 @@ subscription getResult($pollId: Int!) {
|
|||||||
{
|
{
|
||||||
"poll_id": 1,
|
"poll_id": 1,
|
||||||
"poll":{
|
"poll":{
|
||||||
"question": "What's your favourite food?"
|
"question": "What's your favorite food?"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"texts": "Lasagna"
|
"texts": "Lasagna"
|
||||||
|
@ -18,7 +18,9 @@
|
|||||||
"serve": "docusaurus serve",
|
"serve": "docusaurus serve",
|
||||||
"write-translations": "docusaurus write-translations",
|
"write-translations": "docusaurus write-translations",
|
||||||
"write-heading-ids": "docusaurus write-heading-ids",
|
"write-heading-ids": "docusaurus write-heading-ids",
|
||||||
"typecheck": "tsc"
|
"typecheck": "tsc",
|
||||||
|
"spellcheck": "./spell_check.sh",
|
||||||
|
"spelladd": "./spell_add.sh"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "^2.2.0",
|
"@docusaurus/core": "^2.2.0",
|
||||||
@ -27,6 +29,7 @@
|
|||||||
"algoliasearch": "^4.14.2",
|
"algoliasearch": "^4.14.2",
|
||||||
"algoliasearch-helper": "^3.7.4",
|
"algoliasearch-helper": "^3.7.4",
|
||||||
"clsx": "^1.2.1",
|
"clsx": "^1.2.1",
|
||||||
|
"cspell": "^6.18.1",
|
||||||
"docusaurus-plugin-sass": "^0.2.2",
|
"docusaurus-plugin-sass": "^0.2.2",
|
||||||
"graphiql": "^1.5.1",
|
"graphiql": "^1.5.1",
|
||||||
"graphql": "^15.7.2",
|
"graphql": "^15.7.2",
|
||||||
|
4
docs/spell_add.sh
Executable file
4
docs/spell_add.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
for line in $(cat spell_check_results.txt); do
|
||||||
|
echo "Adding $line to cspell.config.yaml"
|
||||||
|
echo " - $line" >> cspell.config.yaml
|
||||||
|
done
|
26
docs/spell_check.sh
Executable file
26
docs/spell_check.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
# Using cspell, we'll loop over each subdirectory inside ./docs and check every mdx file for spelling errors.
|
||||||
|
# If there is an error, we'll write the word to an output file
|
||||||
|
|
||||||
|
# prep
|
||||||
|
if [ -f spell_check_results.txt ]; then
|
||||||
|
rm spell_check_results.txt
|
||||||
|
fi
|
||||||
|
cd docs
|
||||||
|
|
||||||
|
# first check, over the mdx files in the root directory
|
||||||
|
find . -maxdepth 1 -type f -name "*.mdx" -exec cspell --words-only {} \; >> ../output.txt
|
||||||
|
|
||||||
|
# loop over each subdirectory and any directories inside
|
||||||
|
for dir in */; do
|
||||||
|
find $dir -type d -exec cspell --words-only {}/*.mdx \; >> ../output.txt
|
||||||
|
done
|
||||||
|
|
||||||
|
# loop over each line in the output file and prune duplications
|
||||||
|
cd ../
|
||||||
|
awk '!a[$0]++' output.txt > spell_check_results.txt
|
||||||
|
rm output.txt
|
||||||
|
|
||||||
|
# check the number of lines in spell_check_results.txt
|
||||||
|
lines=$(wc -l < spell_check_results.txt)
|
||||||
|
|
||||||
|
echo "There are $lines spelling errors or unknown words."
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
@ -47,7 +47,6 @@ correct hierarchy.
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|
||||||
## Heading Ids {#heading-ids}
|
## Heading Ids {#heading-ids}
|
||||||
|
|
||||||
Docusaurus will by default generate an id for each heading to be able to link to individual sections.
|
Docusaurus will by default generate an id for each heading to be able to link to individual sections.
|
||||||
@ -60,6 +59,7 @@ Ex:
|
|||||||
## Heading H2 example
|
## Heading H2 example
|
||||||
|
|
||||||
<!-- will have a generated id as below -->
|
<!-- will have a generated id as below -->
|
||||||
|
|
||||||
heading-h2-example
|
heading-h2-example
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -83,14 +83,12 @@ section.
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|
||||||
## Handling custom ids
|
## Handling custom ids
|
||||||
|
|
||||||
Custom Heading Ids are added as `{#kebab-cased-id}`
|
Custom Heading Ids are added as `{#kebab-cased-id}`
|
||||||
|
|
||||||
Prefer `lowercased-kebab-case` for all the ids to maintain consistency.
|
Prefer `lowercased-kebab-case` for all the ids to maintain consistency.
|
||||||
|
|
||||||
|
|
||||||
```markdown {1}
|
```markdown {1}
|
||||||
## Step 1: Create a Hasura Cloud project {#create-hasura-project-aws-rds-aurora}
|
## Step 1: Create a Hasura Cloud project {#create-hasura-project-aws-rds-aurora}
|
||||||
|
|
||||||
@ -98,12 +96,11 @@ On the Hasura Cloud dashboard, create a new project:
|
|||||||
```
|
```
|
||||||
|
|
||||||
They can also be generated when required using the cli command
|
They can also be generated when required using the cli command
|
||||||
[write-heading-ids](https://docusaurus.io/docs/cli#docusaurus-write-heading-ids-sitedir) - Please *DO NOT OVERRIDE*
|
[write-heading-ids](https://docusaurus.io/docs/cli#docusaurus-write-heading-ids-sitedir) - Please _DO NOT OVERRIDE_
|
||||||
existing ones.
|
existing ones.
|
||||||
|
|
||||||
Skip for `h1 (#)` as the top level heading is beginining of file the direct link without `#hash-param` would work fine.
|
Skip for `h1 (#)` as the top level heading is beginining of file the direct link without `#hash-param` would work fine.
|
||||||
|
|
||||||
|
|
||||||
:::danger Please do not add id in frontmatter
|
:::danger Please do not add id in frontmatter
|
||||||
|
|
||||||
Docusaurus by default uses [file path (including folders) without the extension as the id](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs#id)
|
Docusaurus by default uses [file path (including folders) without the extension as the id](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs#id)
|
||||||
@ -113,7 +110,7 @@ If an `id` is added in frontmatter the slug will by default be the id thus break
|
|||||||
|
|
||||||
This will result in setting up bunch of redirects and will have a impact on SEO and indexed page rankings.
|
This will result in setting up bunch of redirects and will have a impact on SEO and indexed page rankings.
|
||||||
|
|
||||||
So, Please ignore the id in frontmatter, Let's leave this to docusaurus default behaviour which is great.
|
So, Please ignore the id in frontmatter, Let's leave this to docusaurus default behavior which is great.
|
||||||
|
|
||||||
In case, if you are not sure of what to do in a different situation. Please let us know, we will help figure out
|
In case, if you are not sure of what to do in a different situation. Please let us know, we will help figure out
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ If the table consists of simple text and no complex UI and no column width contr
|
|||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
| Field | Description |
|
| Field | Description |
|
||||||
|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Region | The region of the datacentre where your New Relic account stores its data. [Read more about regions on New Relic docs.](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers) |
|
| Region | The region of the datacenter where your New Relic account stores its data. [Read more about regions on New Relic docs.](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers) |
|
||||||
| API Key | API keys are unique to your organization. An API key is required by the New Relic API to submit metrics and events to New Relic. You can get the API key from [here](https://one.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you are in New Relic US region and [here](https://one.eu.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you're in New Relic EU region. |
|
| API Key | API keys are unique to your organization. An API key is required by the New Relic API to submit metrics and events to New Relic. You can get the API key from [here](https://one.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you are in New Relic US region and [here](https://one.eu.newrelic.com/launcher/api-keys-ui.api-keys-launcher) if you're in New Relic EU region. |
|
||||||
| Host | The name of the originating host of the log and metrics. |
|
| Host | The name of the originating host of the log and metrics. |
|
||||||
| Custom Attributes | Custom Attributes associated with your logs and metrics. A default source tag `hasura-cloud-metrics` is added to all exported logs and metrics. Attributes `project_id` and `project_name` are added to all exported metrics. |
|
| Custom Attributes | Custom Attributes associated with your logs and metrics. A default source tag `hasura-cloud-metrics` is added to all exported logs and metrics. Attributes `project_id` and `project_name` are added to all exported metrics. |
|
||||||
@ -38,7 +38,7 @@ Unfortunately, `markdown` doesn't have straightforward syntax to control the wid
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Region</td>
|
<td>Region</td>
|
||||||
<td>The region of the datacentre where your New Relic account stores its data. <Link to="https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers">Read more about regions on New Relic docs.</Link></td>
|
<td>The region of the datacenter where your New Relic account stores its data. <Link to="https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers">Read more about regions on New Relic docs.</Link></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>API Key</td>
|
<td>API Key</td>
|
||||||
@ -95,11 +95,22 @@ Which would render like this
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Region</td>
|
<td>Region</td>
|
||||||
<td>The region of the datacentre where your New Relic account stores its data. <Link to="https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers">Read more about regions on New Relic docs.</Link></td>
|
<td>
|
||||||
|
The region of the datacenter where your New Relic account stores its data.{' '}
|
||||||
|
<Link to="https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/our-eu-us-region-data-centers">
|
||||||
|
Read more about regions on New Relic docs.
|
||||||
|
</Link>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>API Key</td>
|
<td>API Key</td>
|
||||||
<td>API keys are unique to your organization. An API key is required by the New Relic API to submit metrics and events to New Relic. You can get the API key from <Link to="https://one.newrelic.com/launcher/api-keys-ui.api-keys-launcher">here</Link> if you are in New Relic US region and <Link to="https://one.eu.newrelic.com/launcher/api-keys-ui.api-keys-launcher">here</Link> if you're in New Relic EU region.</td>
|
<td>
|
||||||
|
API keys are unique to your organization. An API key is required by the New Relic API to submit metrics and
|
||||||
|
events to New Relic. You can get the API key from{' '}
|
||||||
|
<Link to="https://one.newrelic.com/launcher/api-keys-ui.api-keys-launcher">here</Link> if you are in New Relic
|
||||||
|
US region and <Link to="https://one.eu.newrelic.com/launcher/api-keys-ui.api-keys-launcher">here</Link> if
|
||||||
|
you're in New Relic EU region.
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Host</td>
|
<td>Host</td>
|
||||||
@ -107,7 +118,11 @@ Which would render like this
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Custom Attributes</td>
|
<td>Custom Attributes</td>
|
||||||
<td>Custom Attributes associated with your logs and metrics. A default source tag <code>hasura-cloud-metrics</code> is added to all exported logs and metrics. Attributes <code>project_id</code> and <code>project_name</code> are added to all exported metrics.</td>
|
<td>
|
||||||
|
Custom Attributes associated with your logs and metrics. A default source tag <code>hasura-cloud-metrics</code>{' '}
|
||||||
|
is added to all exported logs and metrics. Attributes <code>project_id</code> and <code>project_name</code> are
|
||||||
|
added to all exported metrics.
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Service Name</td>
|
<td>Service Name</td>
|
||||||
@ -121,8 +136,8 @@ Which would render like this
|
|||||||
When a table cell is just a codeblock, the normal triple tick syntax works fine. But, please do leave an intentional empty line before and after the code block.
|
When a table cell is just a codeblock, the normal triple tick syntax works fine. But, please do leave an intentional empty line before and after the code block.
|
||||||
Also, start the code block and respective cell (`td/th`) at the very beginning of line (no empty tabs/spaces at start).
|
Also, start the code block and respective cell (`td/th`) at the very beginning of line (no empty tabs/spaces at start).
|
||||||
|
|
||||||
```html
|
````html
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th width="20%">Field</th>
|
<th width="20%">Field</th>
|
||||||
@ -132,19 +147,11 @@ Also, start the code block and respective cell (`td/th`) at the very beginning o
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>query</code></td>
|
<td><code>query</code></td>
|
||||||
<td>
|
<td>```graphql query MyQuery { ... } ```</td>
|
||||||
|
|
||||||
```graphql
|
|
||||||
query MyQuery {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
```
|
````
|
||||||
|
|
||||||
Do one better and ignore the indentation altogether for all tags in table. This might be bit of not so eye-friendly to read, but works.
|
Do one better and ignore the indentation altogether for all tags in table. This might be bit of not so eye-friendly to read, but works.
|
||||||
Please do not that this is required only when there is a cell involving code block.
|
Please do not that this is required only when there is a cell involving code block.
|
||||||
@ -172,12 +179,11 @@ Please do not that this is required only when there is a cell involving code blo
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
The `:widths:` can be added as `width` attribute to `html` - `th`. And the `:header-rows:` determines the number of
|
The `:widths:` can be added as `width` attribute to `html` - `th`. And the `:header-rows:` determines the number of
|
||||||
header rows to be considered for `<thead>`.
|
header rows to be considered for `<thead>`.
|
||||||
|
|
||||||
```html {2-8}
|
````html {2-8}
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th width="10%">Status code</th>
|
<th width="10%">Status code</th>
|
||||||
@ -189,57 +195,26 @@ header rows to be considered for `<thead>`.
|
|||||||
<tr>
|
<tr>
|
||||||
<td><code>200</code></td>
|
<td><code>200</code></td>
|
||||||
<td>Success</td>
|
<td>Success</td>
|
||||||
<td>
|
<td>``` Request Specific ```</td>
|
||||||
|
|
||||||
```
|
|
||||||
Request Specific
|
|
||||||
```
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>400</code></td>
|
<td><code>400</code></td>
|
||||||
<td>Bad Request</td>
|
<td>Bad Request</td>
|
||||||
<td>
|
<td>```haskell { "path" : String, "error" : String } ```</td>
|
||||||
|
|
||||||
```haskell
|
|
||||||
{
|
|
||||||
"path" : String,
|
|
||||||
"error" : String
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>401</code></td>
|
<td><code>401</code></td>
|
||||||
<td>Unauthorized</td>
|
<td>Unauthorized</td>
|
||||||
<td>
|
<td>```haskell { "error" : String } ```</td>
|
||||||
|
|
||||||
```haskell
|
|
||||||
{
|
|
||||||
"error" : String
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>500</code></td>
|
<td><code>500</code></td>
|
||||||
<td>Internal server error</td>
|
<td>Internal server error</td>
|
||||||
<td>
|
<td>```haskell { "error" : String } ```</td>
|
||||||
|
|
||||||
```haskell
|
|
||||||
{
|
|
||||||
"error" : String
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
```
|
````
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
|
698
docs/yarn.lock
698
docs/yarn.lock
@ -1630,6 +1630,402 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/cspell-bundled-dicts@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "@cspell/cspell-bundled-dicts@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
"@cspell/dict-ada": ^4.0.1
|
||||||
|
"@cspell/dict-aws": ^3.0.0
|
||||||
|
"@cspell/dict-bash": ^4.1.1
|
||||||
|
"@cspell/dict-companies": ^3.0.5
|
||||||
|
"@cspell/dict-cpp": ^4.0.1
|
||||||
|
"@cspell/dict-cryptocurrencies": ^3.0.1
|
||||||
|
"@cspell/dict-csharp": ^4.0.2
|
||||||
|
"@cspell/dict-css": ^4.0.1
|
||||||
|
"@cspell/dict-dart": ^2.0.1
|
||||||
|
"@cspell/dict-django": ^4.0.1
|
||||||
|
"@cspell/dict-docker": ^1.1.4
|
||||||
|
"@cspell/dict-dotnet": ^4.0.1
|
||||||
|
"@cspell/dict-elixir": ^4.0.1
|
||||||
|
"@cspell/dict-en-gb": 1.1.33
|
||||||
|
"@cspell/dict-en_us": ^4.1.2
|
||||||
|
"@cspell/dict-filetypes": ^3.0.0
|
||||||
|
"@cspell/dict-fonts": ^3.0.0
|
||||||
|
"@cspell/dict-fullstack": ^3.0.0
|
||||||
|
"@cspell/dict-gaming-terms": ^1.0.3
|
||||||
|
"@cspell/dict-git": ^2.0.0
|
||||||
|
"@cspell/dict-golang": ^5.0.1
|
||||||
|
"@cspell/dict-haskell": ^4.0.1
|
||||||
|
"@cspell/dict-html": ^4.0.2
|
||||||
|
"@cspell/dict-html-symbol-entities": ^4.0.0
|
||||||
|
"@cspell/dict-java": ^5.0.3
|
||||||
|
"@cspell/dict-k8s": ^1.0.0
|
||||||
|
"@cspell/dict-latex": ^3.1.0
|
||||||
|
"@cspell/dict-lorem-ipsum": ^3.0.0
|
||||||
|
"@cspell/dict-lua": ^3.0.0
|
||||||
|
"@cspell/dict-node": ^4.0.2
|
||||||
|
"@cspell/dict-npm": ^5.0.2
|
||||||
|
"@cspell/dict-php": ^3.0.4
|
||||||
|
"@cspell/dict-powershell": ^3.0.0
|
||||||
|
"@cspell/dict-public-licenses": ^2.0.1
|
||||||
|
"@cspell/dict-python": ^4.0.1
|
||||||
|
"@cspell/dict-r": ^2.0.1
|
||||||
|
"@cspell/dict-ruby": ^3.0.0
|
||||||
|
"@cspell/dict-rust": ^3.0.0
|
||||||
|
"@cspell/dict-scala": ^3.0.0
|
||||||
|
"@cspell/dict-software-terms": ^3.0.7
|
||||||
|
"@cspell/dict-sql": ^2.0.1
|
||||||
|
"@cspell/dict-svelte": ^1.0.1
|
||||||
|
"@cspell/dict-swift": ^2.0.1
|
||||||
|
"@cspell/dict-typescript": ^3.1.0
|
||||||
|
"@cspell/dict-vue": ^3.0.0
|
||||||
|
checksum: 97346d8091df27ce4e0b0cd709f4d0442ed1fc4340c3cd0a7f5aca130f7c08b31be5ea7299411c89caf89ca784452144e91804e477770d5c49c7301f78b5d268
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/cspell-pipe@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "@cspell/cspell-pipe@npm:6.18.1"
|
||||||
|
checksum: 5df235dddf07468f5c0af2612401ff5157892b4b5b95500befbf08f2b729ae3d6b6dd12127d2af29278db7520aefbed375fdf32ff4f2b205a945a6a1e4d75a79
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/cspell-service-bus@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "@cspell/cspell-service-bus@npm:6.18.1"
|
||||||
|
checksum: 4128a57a259db57fdfd5e024446bce284e3ad936654b1f7fd4a356bfb8f644dbe3b722bbb70712b14be9f9aa96b7de78b756aadf64c5af8363bff68b65f1adf3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/cspell-types@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "@cspell/cspell-types@npm:6.18.1"
|
||||||
|
checksum: d4b0dfa0d749a630f31ec0a88be79bbba9587a3a97139b83d818f479f90e835ba4d78fb72b8a7812821cc7b9085837ebc279e5512aa22505ef040ad161485de4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-ada@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-ada@npm:4.0.1"
|
||||||
|
checksum: 3422487c8decf01d9dd14e666dcbe29557d730085f60fcd859d03fc5c177359d12df19171368cd105dad29f315d0decfa56f29eeb7c594a300d47c65805c4349
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-aws@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-aws@npm:3.0.0"
|
||||||
|
checksum: d06284d5cc438c18175c26e4f5d450f3235d603dbc989fa2d7515bb01d1c7a8b303ce054d532ca4f814fc6cd7c65ef9558d46bf5bacb06d35504b3c259ebe95c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-bash@npm:^4.1.1":
|
||||||
|
version: 4.1.1
|
||||||
|
resolution: "@cspell/dict-bash@npm:4.1.1"
|
||||||
|
checksum: 5b6fbb597c53fa6b9957213aa77688c6e0231f8d59eed02f0eecda456f3606855fc0f4c0c5121a909e9055c164de83e3f151b32a9abd1ccd4a161634ffee6691
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-companies@npm:^3.0.5":
|
||||||
|
version: 3.0.6
|
||||||
|
resolution: "@cspell/dict-companies@npm:3.0.6"
|
||||||
|
checksum: b56d20632f2e953c2b1a199701b4af4c1b5c5d6ea56c889b68bbac8f3e8f8645eb0386b3198274f14491fccf9608586ebdbe94c0835723934966682ffdc0c8f7
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-cpp@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-cpp@npm:4.0.1"
|
||||||
|
checksum: 53db5515d046bc1be80031f82be801edb9c349a5487f894db7fc54d45a86142f01476b35fe8453605a3402ba6dd850353bf628eba8223fbac8d6f9e7d002827e
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-cryptocurrencies@npm:^3.0.1":
|
||||||
|
version: 3.0.1
|
||||||
|
resolution: "@cspell/dict-cryptocurrencies@npm:3.0.1"
|
||||||
|
checksum: 5d646f569e8dc5998de8a508ff3de39db5f5a5db0a846ee4fc750ea3880080d922d5c28fdce38f93910eaacde2723e2fe4c305d50b3f9d53b817ce33a3bed66a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-csharp@npm:^4.0.2":
|
||||||
|
version: 4.0.2
|
||||||
|
resolution: "@cspell/dict-csharp@npm:4.0.2"
|
||||||
|
checksum: d2ecb2aada51c5f0d6d557fd4f0c6eddb5b299e0955e066c49cd2afe96a1c6fe0afde699fdb885dd3183603a1efbd1d793b6a490b8d039256445b4b154b7375b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-css@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-css@npm:4.0.1"
|
||||||
|
checksum: 8d072f1f6ba91c1549c745b7b4714e7bf3d133ce1886b9c040d989188db917890d5ae12067f09558f3a037586911ae9bced59c91b8daeef3d7c04fd1367d80d2
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-dart@npm:^2.0.1":
|
||||||
|
version: 2.0.1
|
||||||
|
resolution: "@cspell/dict-dart@npm:2.0.1"
|
||||||
|
checksum: 6536a47450ebcbaad90253802791e69567565ecab89d0eb00d8be8b8b2d94d3971fcd92c6e013e25e0f06e1994591fb5ae6b5674798d74e3f449ffa1ea556f3e
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-django@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-django@npm:4.0.1"
|
||||||
|
checksum: 1954c4b96c05bb2c6aad3a76dcd9963912ed177c49d2bcfb10992af83143c1d644f4306d79acb175eda7767a75444007c9c4d94ba10245aeb256613ae10f0306
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-docker@npm:^1.1.4":
|
||||||
|
version: 1.1.5
|
||||||
|
resolution: "@cspell/dict-docker@npm:1.1.5"
|
||||||
|
checksum: a983e3587cbe6f741dfbf40c509ca06d9489f1fb64f902128f9d738acb747b3a8651a73d256f2a7ef7750a54897eb76776403a47e4b55d84d785c7efa3a90e5e
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-dotnet@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-dotnet@npm:4.0.1"
|
||||||
|
checksum: 176b25bc36ea4407439852be685a421d0ea0be19d8c4eb48b897a1aa2bdde3f71731b94f33b6ae1260546260343d7ee1f2c1c1087848cd2ceac0c635c009e370
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-elixir@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-elixir@npm:4.0.1"
|
||||||
|
checksum: 080a71b4c3ffa98dafbad851aed31fe2f58c3cb1ca5f3cf7eee1f203168c2f9440076c2fe5970fd92a968af3f36255a3e633aa5962a32bba16c4b7095a0ef0bf
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-en-gb@npm:1.1.33":
|
||||||
|
version: 1.1.33
|
||||||
|
resolution: "@cspell/dict-en-gb@npm:1.1.33"
|
||||||
|
checksum: 09a9e7a3ee4cad75c87cc7adf6b5981b3ec52d4e3707e8de2e1a2a55cd5c8539057a7742d9c7035e23eb0aeff80a95b9599696c7192c9b3b9d8f14440fe01938
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-en_us@npm:^4.1.2":
|
||||||
|
version: 4.1.4
|
||||||
|
resolution: "@cspell/dict-en_us@npm:4.1.4"
|
||||||
|
checksum: ada32bcf6083e9f4d9a33f517fc7b8bf4fefd73f93f07acb430956be357fa35d79f3d5eee642de272a00d2b1ab76cec2db3aafd7a4108d1329f6324b5a2391fc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-filetypes@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-filetypes@npm:3.0.0"
|
||||||
|
checksum: 8afd0785583f913c8d6ad1a2b56a527600258b291fc6ed8e83f543ba70a5273095195495601aca7d80fdeb17cab6a10e8a8aa44bea3083962cd42af130260d8a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-fonts@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-fonts@npm:3.0.0"
|
||||||
|
checksum: 3cd3574c2f32d761775ddd1bb68360488f400cf310c0499e6fac53641596a51708719e57426c97e183b528ad142ee04c90af93bb38a016ceecb921d76a00e9d9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-fullstack@npm:^3.0.0":
|
||||||
|
version: 3.0.1
|
||||||
|
resolution: "@cspell/dict-fullstack@npm:3.0.1"
|
||||||
|
checksum: 05a50b9dc7d0634c78a49cc79cc3955f1d50ac982b0a24cd3af7093ad20c6b87866164a70c1cd3704a3111e260583bab7cfe9fea080f8f52e12c5a09323358ab
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-gaming-terms@npm:^1.0.3":
|
||||||
|
version: 1.0.4
|
||||||
|
resolution: "@cspell/dict-gaming-terms@npm:1.0.4"
|
||||||
|
checksum: 3e57f5567747a8598b3e4de4f63a3b8090cccf7688f3e91f0a9e005e916645db1224ea600afd5b497b7e8c6a1f9291dfd4cb932278dfd423657107203a2ace0b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-git@npm:^2.0.0":
|
||||||
|
version: 2.0.0
|
||||||
|
resolution: "@cspell/dict-git@npm:2.0.0"
|
||||||
|
checksum: eb3985f1f8717ad4e41e146f1b011e0476d7625ab1ebee55364575b727323300773a89a8dd5a20466c74c57b7d2678e0c92446453bd484a44203be737bc07964
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-golang@npm:^5.0.1":
|
||||||
|
version: 5.0.1
|
||||||
|
resolution: "@cspell/dict-golang@npm:5.0.1"
|
||||||
|
checksum: 5a82060a2cc87a129174c648e2b52db8af4b9de25d5c18d138299dba3c2783003c68883d5dc9623bca2eb7e35d95783d1af3f0fd5b577a965de934deb36e8578
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-haskell@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-haskell@npm:4.0.1"
|
||||||
|
checksum: cfb51e415b60c5eb266a5782d0a4b19a37f1389b9b018d1bbb2ff4358bd739af1f76f68f26a138d4b4bd0ab67146d6eb9032fc3d3c212695237c134e05339c79
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-html-symbol-entities@npm:^4.0.0":
|
||||||
|
version: 4.0.0
|
||||||
|
resolution: "@cspell/dict-html-symbol-entities@npm:4.0.0"
|
||||||
|
checksum: 79f05f9080f39dbde703980eb587ed6624b8fc2f5cedc297327bc1b9b7e6022a7c382e6013149b1afe00609b96003ab5c8d18d378979f76f336ab626317183f4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-html@npm:^4.0.2":
|
||||||
|
version: 4.0.2
|
||||||
|
resolution: "@cspell/dict-html@npm:4.0.2"
|
||||||
|
checksum: f4967d362a661408fcfc284292dd64280e4abda06ded0da95a5083473ea921043718b1694e9f0cec852d90e750d7d495fd639a57ce0d1dbd7097bb92c3b3e1b0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-java@npm:^5.0.3":
|
||||||
|
version: 5.0.4
|
||||||
|
resolution: "@cspell/dict-java@npm:5.0.4"
|
||||||
|
checksum: 1bbb0acc81a6af5a8e0e0e09768b1b52bfac7412e02292b6dd663949cdf33d7245e0a4018148a7d10aae8e5436714191809623a342e7cb1d42a8484dba85d8f7
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-k8s@npm:^1.0.0":
|
||||||
|
version: 1.0.0
|
||||||
|
resolution: "@cspell/dict-k8s@npm:1.0.0"
|
||||||
|
checksum: ef6d12cfd81b41c843773f61fc923a0a48b18d871ae0b8e9cd7e1bca28fba543c4bcd6964b34e2ac760336a86abdf7c8bc81a7b94bfdb274e39244a5c016fc3c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-latex@npm:^3.1.0":
|
||||||
|
version: 3.1.0
|
||||||
|
resolution: "@cspell/dict-latex@npm:3.1.0"
|
||||||
|
checksum: 90dafd4c1d0f9a9bd9e36734e624ca3d891023a5477ca9df62037a4297c8f751be5b33cbf4def9356d8bcec65a4e1ae89862d80ebe30675e91d10d69e0852de6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-lorem-ipsum@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-lorem-ipsum@npm:3.0.0"
|
||||||
|
checksum: 145a79ec536bee3ec515b189be3f4a5347a28c563060ac5da6f6783a288e63cb0662fc918be008e1a377bdeb48cfa7a2aa1f9e9f8aef6371109f95f4b049731d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-lua@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-lua@npm:3.0.0"
|
||||||
|
checksum: 42a09b245cf7e6d4e67f8e7ab644479fe58116056952d1b963c7f9263ae6e11d39b1a0ba4381947ea628622172a383cec4e24a8f78c0123d46fdc2bc3b32483d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-node@npm:^4.0.2":
|
||||||
|
version: 4.0.2
|
||||||
|
resolution: "@cspell/dict-node@npm:4.0.2"
|
||||||
|
checksum: 7a63ee44c4c493b429c821eb9e5fdcd1d0f549a2ada64d8ce3f7f0a88e2d26f82daada8801ee6f09a582502a1500d63985aa47204757b39014dff747211539d5
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-npm@npm:^5.0.2":
|
||||||
|
version: 5.0.3
|
||||||
|
resolution: "@cspell/dict-npm@npm:5.0.3"
|
||||||
|
checksum: f250a7d67436f23965c04028eb39395595574ef4a2250c0c30ee736b32fb583ad285d0dc383cb2ac1a9a941caaa329eeb4f2e04fe6e253e6196746d77a980880
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-php@npm:^3.0.4":
|
||||||
|
version: 3.0.4
|
||||||
|
resolution: "@cspell/dict-php@npm:3.0.4"
|
||||||
|
checksum: ba3dcb8afcf214e331d1ee26c61130efb6192aaf62d24655582edf23d543605d42818fb146a3b13ae203a1b70b362d3f9f5c0e793984dafb3156aff979aa6a35
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-powershell@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-powershell@npm:3.0.0"
|
||||||
|
checksum: 6ca16d5cb67bc8a26b1c9c52859218af5341cee68c8b5270ac79d9504ec529f24d33e4691fe0a14acb948f9910db7d8006f6c58321eab988c24f7cad6aeaebf9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-public-licenses@npm:^2.0.1":
|
||||||
|
version: 2.0.1
|
||||||
|
resolution: "@cspell/dict-public-licenses@npm:2.0.1"
|
||||||
|
checksum: ce563b482df6f931290c0ba752417aedc993a173ae896002a4a30de9cd68418fa6a01664fe61239423388de09f17d8f68430f3ff95979a7e6e2090987aa7d968
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-python@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "@cspell/dict-python@npm:4.0.1"
|
||||||
|
checksum: 83ceb2779c64fb8370dfb6070015cea6337905a7066d38e69508a20976236a5e691b9926f11f4a2391ad5676a9245b5bf981a9118db2ad483baab04741467956
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-r@npm:^2.0.1":
|
||||||
|
version: 2.0.1
|
||||||
|
resolution: "@cspell/dict-r@npm:2.0.1"
|
||||||
|
checksum: fe85939ad4c8ada34284a673918be711cca60b6d6f1c48ee98602c27905228dfbaea3462a350094633032c1d6b6bba9548df7019e0b21673cf1cf887c57ca228
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-ruby@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-ruby@npm:3.0.0"
|
||||||
|
checksum: 1fefcf6eb971065fb909bb64c3d73503285a1a2dace8121ca1e0659ed4e12cbb9b17bfa8a33e271e4fe85725bd4d6a0ffbde3adfef7bfa874dd017902a7cb2b8
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-rust@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-rust@npm:3.0.0"
|
||||||
|
checksum: 0402b073b2d123305437bd7f67d8648931b8aeeb3ce0198f7d1db6aadac466d53cb91b419ae0788fd464c21067b5e4ccc55550beed6803ef5711aa1abddb92a6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-scala@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-scala@npm:3.0.0"
|
||||||
|
checksum: 3a8794587cc16b95c2939927e980c9164c98fe2ea4709fa8e65ba98ea7632a2b21f2432da486843f13bd6d2ad1f67c81baa2b8226c48900fb19634b832ea3558
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-software-terms@npm:^3.0.7":
|
||||||
|
version: 3.1.0
|
||||||
|
resolution: "@cspell/dict-software-terms@npm:3.1.0"
|
||||||
|
checksum: ef2da1d416bbd7019ad648dbe3e34016a63ca29a342a1bd866e82cb6881ffd0a0f61c2711a78aa6dbc03033b79cc815abcc19b24f132284468df37d68c6ff54c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-sql@npm:^2.0.1":
|
||||||
|
version: 2.0.1
|
||||||
|
resolution: "@cspell/dict-sql@npm:2.0.1"
|
||||||
|
checksum: c92d2c9f3b22de02be5353dfe17e84ba3e562f463128fdcd46959ac9eacd9affb531a64ca374af159eeb8b1d3314a3a530d86ddaf35d972a76e0042614cb2d38
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-svelte@npm:^1.0.1":
|
||||||
|
version: 1.0.2
|
||||||
|
resolution: "@cspell/dict-svelte@npm:1.0.2"
|
||||||
|
checksum: 5b42989bc6743a26ca5172cc23ebc1449d930695b10c908376048ce1835bf57fef7a0004f02ec5e43219f24a97f154e125041df470441199a045ed0be9e654fc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-swift@npm:^2.0.1":
|
||||||
|
version: 2.0.1
|
||||||
|
resolution: "@cspell/dict-swift@npm:2.0.1"
|
||||||
|
checksum: 0bbb106266205c5f5e12886a73ebf0db2078bab1bdd2e1f304fe28445cd72d847a4c5072bf4fe8f9e8cdb4bc69d52fffec0806aea19ea9b64b7a87c67ee01175
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-typescript@npm:^3.1.0":
|
||||||
|
version: 3.1.0
|
||||||
|
resolution: "@cspell/dict-typescript@npm:3.1.0"
|
||||||
|
checksum: b34a9f394a9426d0ec7ff6ee378b973b7e5a4483add7a19686cf923dd7047c0195e8ac155529c4a38e0bda4f48e50f7efe8de8df6ad71f875a29d28e64c8c01c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/dict-vue@npm:^3.0.0":
|
||||||
|
version: 3.0.0
|
||||||
|
resolution: "@cspell/dict-vue@npm:3.0.0"
|
||||||
|
checksum: 4db58b1d6f9be1a523a35678877f2cca2bb04548b136ec5ec4e7186500978dbc32cc8747ced80ade3cad3acc3c80eb23afe980679165810f8f8f26802e952e2f
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@cspell/strong-weak-map@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "@cspell/strong-weak-map@npm:6.18.1"
|
||||||
|
checksum: bad1e5e1041797a2fa3bf74efadbfd0bee3b645f7adb98a4bf676cdc999531990754e948d0519cd3369bcdd0b3152760992bf9142acb3c7a0cb024c75142d9dd
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@docsearch/css@npm:3.3.0":
|
"@docsearch/css@npm:3.3.0":
|
||||||
version: 3.3.0
|
version: 3.3.0
|
||||||
resolution: "@docsearch/css@npm:3.3.0"
|
resolution: "@docsearch/css@npm:3.3.0"
|
||||||
@ -3581,6 +3977,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"array-timsort@npm:^1.0.3":
|
||||||
|
version: 1.0.3
|
||||||
|
resolution: "array-timsort@npm:1.0.3"
|
||||||
|
checksum: fd4b5b0911214bdc8b5699ed10d309685551b518b3819c611c967cff59b87aee01cf591a10e36a3f14dbff696984bd6682b845f6fdbf1217195e910f241a4f78
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"array-union@npm:^2.1.0":
|
"array-union@npm:^2.1.0":
|
||||||
version: 2.1.0
|
version: 2.1.0
|
||||||
resolution: "array-union@npm:2.1.0"
|
resolution: "array-union@npm:2.1.0"
|
||||||
@ -3937,7 +4340,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"callsites@npm:^3.0.0":
|
"callsites@npm:^3.0.0, callsites@npm:^3.1.0":
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
resolution: "callsites@npm:3.1.0"
|
resolution: "callsites@npm:3.1.0"
|
||||||
checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3
|
checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3
|
||||||
@ -4128,6 +4531,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"clear-module@npm:^4.1.2":
|
||||||
|
version: 4.1.2
|
||||||
|
resolution: "clear-module@npm:4.1.2"
|
||||||
|
dependencies:
|
||||||
|
parent-module: ^2.0.0
|
||||||
|
resolve-from: ^5.0.0
|
||||||
|
checksum: 4931f0c461f5d7b9b79f62c2d1bc31c37f7f1d33b4e95eef7080a83955c0374f4c180f5a96cc4d63bbefc64a9aa5d12b155641109e8e489dfa50fd5820e5101f
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"cli-boxes@npm:^2.2.1":
|
"cli-boxes@npm:^2.2.1":
|
||||||
version: 2.2.1
|
version: 2.2.1
|
||||||
resolution: "cli-boxes@npm:2.2.1"
|
resolution: "cli-boxes@npm:2.2.1"
|
||||||
@ -4306,6 +4719,26 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"commander@npm:^9.4.1":
|
||||||
|
version: 9.5.0
|
||||||
|
resolution: "commander@npm:9.5.0"
|
||||||
|
checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"comment-json@npm:^4.2.3":
|
||||||
|
version: 4.2.3
|
||||||
|
resolution: "comment-json@npm:4.2.3"
|
||||||
|
dependencies:
|
||||||
|
array-timsort: ^1.0.3
|
||||||
|
core-util-is: ^1.0.3
|
||||||
|
esprima: ^4.0.1
|
||||||
|
has-own-prop: ^2.0.0
|
||||||
|
repeat-string: ^1.6.1
|
||||||
|
checksum: 7f8d26266b0d49de9661f6365cbcc373fee4f4d0f422a203dfb17ad8f3d84c5be5ded444874935a197cd03cff297c53fe48910256cb4171cb2e52a3e6b9d317c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"commondir@npm:^1.0.1":
|
"commondir@npm:^1.0.1":
|
||||||
version: 1.0.1
|
version: 1.0.1
|
||||||
resolution: "commondir@npm:1.0.1"
|
resolution: "commondir@npm:1.0.1"
|
||||||
@ -4478,7 +4911,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"core-util-is@npm:~1.0.0":
|
"core-util-is@npm:^1.0.3, core-util-is@npm:~1.0.0":
|
||||||
version: 1.0.3
|
version: 1.0.3
|
||||||
resolution: "core-util-is@npm:1.0.3"
|
resolution: "core-util-is@npm:1.0.3"
|
||||||
checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99
|
checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99
|
||||||
@ -4511,6 +4944,18 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"cosmiconfig@npm:^8.0.0":
|
||||||
|
version: 8.0.0
|
||||||
|
resolution: "cosmiconfig@npm:8.0.0"
|
||||||
|
dependencies:
|
||||||
|
import-fresh: ^3.2.1
|
||||||
|
js-yaml: ^4.1.0
|
||||||
|
parse-json: ^5.0.0
|
||||||
|
path-type: ^4.0.0
|
||||||
|
checksum: ff4cdf89ac1ae52e7520816622c21a9e04380d04b82d653f5139ec581aa4f7f29e096d46770bc76c4a63c225367e88a1dfa233ea791669a35101f5f9b972c7d1
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"cross-fetch@npm:^3.1.5":
|
"cross-fetch@npm:^3.1.5":
|
||||||
version: 3.1.5
|
version: 3.1.5
|
||||||
resolution: "cross-fetch@npm:3.1.5"
|
resolution: "cross-fetch@npm:3.1.5"
|
||||||
@ -4538,6 +4983,129 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell-dictionary@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell-dictionary@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
"@cspell/cspell-pipe": 6.18.1
|
||||||
|
"@cspell/cspell-types": 6.18.1
|
||||||
|
cspell-trie-lib: 6.18.1
|
||||||
|
fast-equals: ^4.0.3
|
||||||
|
gensequence: ^4.0.3
|
||||||
|
checksum: f6c90ba9356fcf61361474126588988b5cd535b21751ced7b8af64e22eff33a53459b89ba7d54a80a7f8fe6babd59c6224e334bdf734c17a9ad85d09387908a1
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell-gitignore@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell-gitignore@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
cspell-glob: 6.18.1
|
||||||
|
find-up: ^5.0.0
|
||||||
|
bin:
|
||||||
|
cspell-gitignore: bin.js
|
||||||
|
checksum: f9b3141fbe435fdd7003bc3ba3586bfc40ac304d6cc44c19326660e678cc251379e7c2bd689a6ea985be743ca840bb56f58b41d9e3d3bf847bfe064b63ff883b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell-glob@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell-glob@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
micromatch: ^4.0.5
|
||||||
|
checksum: d2ffde4df6dc41b0ae728b96dab45db0b908deac143928ac5f028e0c02b2beae6c7dd6a105d79e05ad54cd2ff0d845dde27d17dbbaf4230ad9af185258b7f861
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell-grammar@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell-grammar@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
"@cspell/cspell-pipe": 6.18.1
|
||||||
|
"@cspell/cspell-types": 6.18.1
|
||||||
|
bin:
|
||||||
|
cspell-grammar: bin.js
|
||||||
|
checksum: fc7120d20ea5e04df9b35f28502d6d550a1a1b298ab1cda56a3bf302ea85fafeeb8aff19d3f4411ba950b9ff1ae26b23d6de9ceab39217dc04ea144cbcd33e5b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell-io@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell-io@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
"@cspell/cspell-service-bus": 6.18.1
|
||||||
|
node-fetch: ^2.6.7
|
||||||
|
checksum: 1374c78d8a091a14684b1c0fbf6fb84fdabe28430ad9282f0111d2de8c04d261bf809c9c8f8deaa4628f6db63ae93247a532b093ec13771a2ecd10d6fb696313
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell-lib@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell-lib@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
"@cspell/cspell-bundled-dicts": 6.18.1
|
||||||
|
"@cspell/cspell-pipe": 6.18.1
|
||||||
|
"@cspell/cspell-types": 6.18.1
|
||||||
|
"@cspell/strong-weak-map": 6.18.1
|
||||||
|
clear-module: ^4.1.2
|
||||||
|
comment-json: ^4.2.3
|
||||||
|
configstore: ^5.0.1
|
||||||
|
cosmiconfig: ^8.0.0
|
||||||
|
cspell-dictionary: 6.18.1
|
||||||
|
cspell-glob: 6.18.1
|
||||||
|
cspell-grammar: 6.18.1
|
||||||
|
cspell-io: 6.18.1
|
||||||
|
cspell-trie-lib: 6.18.1
|
||||||
|
fast-equals: ^4.0.3
|
||||||
|
find-up: ^5.0.0
|
||||||
|
fs-extra: ^11.1.0
|
||||||
|
gensequence: ^4.0.3
|
||||||
|
import-fresh: ^3.3.0
|
||||||
|
resolve-from: ^5.0.0
|
||||||
|
resolve-global: ^1.0.0
|
||||||
|
vscode-languageserver-textdocument: ^1.0.8
|
||||||
|
vscode-uri: ^3.0.7
|
||||||
|
checksum: 4927cb1f06af6046972e00a3178e10be1c53f519c49be2aaabd4d9339e0cb302420268022a4f0d7fd2781f45af67cb3e449355bc489f188026d5bebc43cbb78c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell-trie-lib@npm:6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell-trie-lib@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
"@cspell/cspell-pipe": 6.18.1
|
||||||
|
"@cspell/cspell-types": 6.18.1
|
||||||
|
fs-extra: ^11.1.0
|
||||||
|
gensequence: ^4.0.3
|
||||||
|
checksum: 11916cec6e23e971f18e84678b306fcb630cbd6b459d392cf888841b234ade665dd053cc1b5a692b7341c33f3c3abd5966ed48ee6df82fa4a26569dcc1b4b179
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"cspell@npm:^6.18.1":
|
||||||
|
version: 6.18.1
|
||||||
|
resolution: "cspell@npm:6.18.1"
|
||||||
|
dependencies:
|
||||||
|
"@cspell/cspell-pipe": 6.18.1
|
||||||
|
chalk: ^4.1.2
|
||||||
|
commander: ^9.4.1
|
||||||
|
cspell-gitignore: 6.18.1
|
||||||
|
cspell-glob: 6.18.1
|
||||||
|
cspell-lib: 6.18.1
|
||||||
|
fast-json-stable-stringify: ^2.1.0
|
||||||
|
file-entry-cache: ^6.0.1
|
||||||
|
fs-extra: ^11.1.0
|
||||||
|
get-stdin: ^8.0.0
|
||||||
|
glob: ^8.0.3
|
||||||
|
imurmurhash: ^0.1.4
|
||||||
|
semver: ^7.3.8
|
||||||
|
strip-ansi: ^6.0.1
|
||||||
|
vscode-uri: ^3.0.7
|
||||||
|
bin:
|
||||||
|
cspell: bin.js
|
||||||
|
checksum: 44cda81bd43d8453f4f081d63203290f84356c573e6e09a40a63c690367071cb5b2a335881c627d537df6cf9f39da93ffab1153dd46b715e5d257418bf4275fe
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"css-declaration-sorter@npm:^6.3.1":
|
"css-declaration-sorter@npm:^6.3.1":
|
||||||
version: 6.3.1
|
version: 6.3.1
|
||||||
resolution: "css-declaration-sorter@npm:6.3.1"
|
resolution: "css-declaration-sorter@npm:6.3.1"
|
||||||
@ -4940,6 +5508,7 @@ __metadata:
|
|||||||
algoliasearch: ^4.14.2
|
algoliasearch: ^4.14.2
|
||||||
algoliasearch-helper: ^3.7.4
|
algoliasearch-helper: ^3.7.4
|
||||||
clsx: ^1.2.1
|
clsx: ^1.2.1
|
||||||
|
cspell: ^6.18.1
|
||||||
docusaurus-plugin-sass: ^0.2.2
|
docusaurus-plugin-sass: ^0.2.2
|
||||||
graphiql: ^1.5.1
|
graphiql: ^1.5.1
|
||||||
graphql: ^15.7.2
|
graphql: ^15.7.2
|
||||||
@ -5268,7 +5837,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"esprima@npm:^4.0.0":
|
"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
|
||||||
version: 4.0.1
|
version: 4.0.1
|
||||||
resolution: "esprima@npm:4.0.1"
|
resolution: "esprima@npm:4.0.1"
|
||||||
bin:
|
bin:
|
||||||
@ -5425,6 +5994,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"fast-equals@npm:^4.0.3":
|
||||||
|
version: 4.0.3
|
||||||
|
resolution: "fast-equals@npm:4.0.3"
|
||||||
|
checksum: 3d5935b757f9f2993e59b5164a7a9eeda0de149760495375cde14a4ed725186a7e6c1c0d58f7d42d2f91deb97f3fce1e0aad5591916ef0984278199a85c87c87
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9":
|
"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9":
|
||||||
version: 3.2.12
|
version: 3.2.12
|
||||||
resolution: "fast-glob@npm:3.2.12"
|
resolution: "fast-glob@npm:3.2.12"
|
||||||
@ -5438,7 +6014,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"fast-json-stable-stringify@npm:^2.0.0":
|
"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0":
|
||||||
version: 2.1.0
|
version: 2.1.0
|
||||||
resolution: "fast-json-stable-stringify@npm:2.1.0"
|
resolution: "fast-json-stable-stringify@npm:2.1.0"
|
||||||
checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb
|
checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb
|
||||||
@ -5512,6 +6088,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"file-entry-cache@npm:^6.0.1":
|
||||||
|
version: 6.0.1
|
||||||
|
resolution: "file-entry-cache@npm:6.0.1"
|
||||||
|
dependencies:
|
||||||
|
flat-cache: ^3.0.4
|
||||||
|
checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"file-loader@npm:^6.2.0":
|
"file-loader@npm:^6.2.0":
|
||||||
version: 6.2.0
|
version: 6.2.0
|
||||||
resolution: "file-loader@npm:6.2.0"
|
resolution: "file-loader@npm:6.2.0"
|
||||||
@ -5595,6 +6180,23 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"flat-cache@npm:^3.0.4":
|
||||||
|
version: 3.0.4
|
||||||
|
resolution: "flat-cache@npm:3.0.4"
|
||||||
|
dependencies:
|
||||||
|
flatted: ^3.1.0
|
||||||
|
rimraf: ^3.0.2
|
||||||
|
checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"flatted@npm:^3.1.0":
|
||||||
|
version: 3.2.7
|
||||||
|
resolution: "flatted@npm:3.2.7"
|
||||||
|
checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"flux@npm:^4.0.1":
|
"flux@npm:^4.0.1":
|
||||||
version: 4.0.3
|
version: 4.0.3
|
||||||
resolution: "flux@npm:4.0.3"
|
resolution: "flux@npm:4.0.3"
|
||||||
@ -5680,6 +6282,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"fs-extra@npm:^11.1.0":
|
||||||
|
version: 11.1.0
|
||||||
|
resolution: "fs-extra@npm:11.1.0"
|
||||||
|
dependencies:
|
||||||
|
graceful-fs: ^4.2.0
|
||||||
|
jsonfile: ^6.0.1
|
||||||
|
universalify: ^2.0.0
|
||||||
|
checksum: 5ca476103fa1f5ff4a9b3c4f331548f8a3c1881edaae323a4415d3153b5dc11dc6a981c8d1dd93eec8367ceee27b53f8bd27eecbbf66ffcdd04927510c171e7f
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"fs-extra@npm:^9.0.0":
|
"fs-extra@npm:^9.0.0":
|
||||||
version: 9.1.0
|
version: 9.1.0
|
||||||
resolution: "fs-extra@npm:9.1.0"
|
resolution: "fs-extra@npm:9.1.0"
|
||||||
@ -5757,6 +6370,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"gensequence@npm:^4.0.3":
|
||||||
|
version: 4.0.3
|
||||||
|
resolution: "gensequence@npm:4.0.3"
|
||||||
|
checksum: 541824a242bb0a64e7e58b595c753a5a9cd07c02a1c6c41928e0d6e09f16047e774deab470ae484e4aded29cfe03a6325a3090dd6e5a0c32ff3726606b09ffc4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"gensync@npm:^1.0.0-beta.1, gensync@npm:^1.0.0-beta.2":
|
"gensync@npm:^1.0.0-beta.1, gensync@npm:^1.0.0-beta.2":
|
||||||
version: 1.0.0-beta.2
|
version: 1.0.0-beta.2
|
||||||
resolution: "gensync@npm:1.0.0-beta.2"
|
resolution: "gensync@npm:1.0.0-beta.2"
|
||||||
@ -5782,6 +6402,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"get-stdin@npm:^8.0.0":
|
||||||
|
version: 8.0.0
|
||||||
|
resolution: "get-stdin@npm:8.0.0"
|
||||||
|
checksum: 40128b6cd25781ddbd233344f1a1e4006d4284906191ed0a7d55ec2c1a3e44d650f280b2c9eeab79c03ac3037da80257476c0e4e5af38ddfb902d6ff06282d77
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"get-stream@npm:^4.1.0":
|
"get-stream@npm:^4.1.0":
|
||||||
version: 4.1.0
|
version: 4.1.0
|
||||||
resolution: "get-stream@npm:4.1.0"
|
resolution: "get-stream@npm:4.1.0"
|
||||||
@ -5853,7 +6480,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"glob@npm:^8.0.1":
|
"glob@npm:^8.0.1, glob@npm:^8.0.3":
|
||||||
version: 8.0.3
|
version: 8.0.3
|
||||||
resolution: "glob@npm:8.0.3"
|
resolution: "glob@npm:8.0.3"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -5866,6 +6493,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"global-dirs@npm:^0.1.1":
|
||||||
|
version: 0.1.1
|
||||||
|
resolution: "global-dirs@npm:0.1.1"
|
||||||
|
dependencies:
|
||||||
|
ini: ^1.3.4
|
||||||
|
checksum: 10624f5a8ddb8634c22804c6b24f93fb591c3639a6bc78e3584e01a238fc6f7b7965824184e57d63f6df36980b6c191484ad7bc6c35a1599b8f1d64be64c2a4a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"global-dirs@npm:^3.0.0":
|
"global-dirs@npm:^3.0.0":
|
||||||
version: 3.0.1
|
version: 3.0.1
|
||||||
resolution: "global-dirs@npm:3.0.1"
|
resolution: "global-dirs@npm:3.0.1"
|
||||||
@ -6044,6 +6680,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"has-own-prop@npm:^2.0.0":
|
||||||
|
version: 2.0.0
|
||||||
|
resolution: "has-own-prop@npm:2.0.0"
|
||||||
|
checksum: ca6336e85ead2295c9603880cbc199e2d3ff7eaea0e9035d68fbc79892e9cf681abc62c0909520f112c671dad9961be2173b21dff951358cc98425c560e789e0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"has-property-descriptors@npm:^1.0.0":
|
"has-property-descriptors@npm:^1.0.0":
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
resolution: "has-property-descriptors@npm:1.0.0"
|
resolution: "has-property-descriptors@npm:1.0.0"
|
||||||
@ -6531,7 +7174,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"ini@npm:^1.3.5, ini@npm:~1.3.0":
|
"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0":
|
||||||
version: 1.3.8
|
version: 1.3.8
|
||||||
resolution: "ini@npm:1.3.8"
|
resolution: "ini@npm:1.3.8"
|
||||||
checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3
|
checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3
|
||||||
@ -7676,7 +8319,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"node-fetch@npm:2.6.7":
|
"node-fetch@npm:2.6.7, node-fetch@npm:^2.6.7":
|
||||||
version: 2.6.7
|
version: 2.6.7
|
||||||
resolution: "node-fetch@npm:2.6.7"
|
resolution: "node-fetch@npm:2.6.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -8010,6 +8653,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"parent-module@npm:^2.0.0":
|
||||||
|
version: 2.0.0
|
||||||
|
resolution: "parent-module@npm:2.0.0"
|
||||||
|
dependencies:
|
||||||
|
callsites: ^3.1.0
|
||||||
|
checksum: f131f13d687a938556a01033561fb1b274b39921eb4425c7a691f0d91dcfbe9b19759c2b8d425a3ee7c8a46874e57fa418a690643880c3c7c56827aba12f78dd
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"parse-entities@npm:^2.0.0":
|
"parse-entities@npm:^2.0.0":
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
resolution: "parse-entities@npm:2.0.0"
|
resolution: "parse-entities@npm:2.0.0"
|
||||||
@ -9314,7 +9966,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"repeat-string@npm:^1.5.4":
|
"repeat-string@npm:^1.5.4, repeat-string@npm:^1.6.1":
|
||||||
version: 1.6.1
|
version: 1.6.1
|
||||||
resolution: "repeat-string@npm:1.6.1"
|
resolution: "repeat-string@npm:1.6.1"
|
||||||
checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0
|
checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0
|
||||||
@ -9349,6 +10001,22 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"resolve-from@npm:^5.0.0":
|
||||||
|
version: 5.0.0
|
||||||
|
resolution: "resolve-from@npm:5.0.0"
|
||||||
|
checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"resolve-global@npm:^1.0.0":
|
||||||
|
version: 1.0.0
|
||||||
|
resolution: "resolve-global@npm:1.0.0"
|
||||||
|
dependencies:
|
||||||
|
global-dirs: ^0.1.1
|
||||||
|
checksum: c4e11d33e84bde7516b824503ffbe4b6cce863d5ce485680fd3db997b7c64da1df98321b1fd0703b58be8bc9bc83bc96bd83043f96194386b45eb47229efb6b6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"resolve-pathname@npm:^3.0.0":
|
"resolve-pathname@npm:^3.0.0":
|
||||||
version: 3.0.0
|
version: 3.0.0
|
||||||
resolution: "resolve-pathname@npm:3.0.0"
|
resolution: "resolve-pathname@npm:3.0.0"
|
||||||
@ -10832,6 +11500,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"vscode-languageserver-textdocument@npm:^1.0.8":
|
||||||
|
version: 1.0.8
|
||||||
|
resolution: "vscode-languageserver-textdocument@npm:1.0.8"
|
||||||
|
checksum: d6b685456ceca2736793d7fc1924d78a8483997c96c6ec4900d90e64115730da6c0c03e3fbc2c5d031a4592f2acd9cca2ca58a651b696c4f40b8690a48538c06
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"vscode-languageserver-types@npm:^3.17.1":
|
"vscode-languageserver-types@npm:^3.17.1":
|
||||||
version: 3.17.2
|
version: 3.17.2
|
||||||
resolution: "vscode-languageserver-types@npm:3.17.2"
|
resolution: "vscode-languageserver-types@npm:3.17.2"
|
||||||
@ -10839,6 +11514,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"vscode-uri@npm:^3.0.7":
|
||||||
|
version: 3.0.7
|
||||||
|
resolution: "vscode-uri@npm:3.0.7"
|
||||||
|
checksum: c899a0334f9f6ba53021328e083f6307978c09b94407d7e5fe86fcd8fcb8f1da0cb344123a335e55769055007a46d51aff83f9ee1dfc0296ee54b78f34ef0e4f
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"wait-on@npm:^6.0.1":
|
"wait-on@npm:^6.0.1":
|
||||||
version: 6.0.1
|
version: 6.0.1
|
||||||
resolution: "wait-on@npm:6.0.1"
|
resolution: "wait-on@npm:6.0.1"
|
||||||
|
Loading…
Reference in New Issue
Block a user