这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@shahidhk
Copy link
Member

No description provided.

@shahidhk shahidhk added the c/cli Related to CLI label Aug 30, 2018
@shahidhk shahidhk merged commit fc9104f into hasura:master Aug 30, 2018
@hasura-bot
Copy link
Contributor

Review app https://hge-ci-pull-332.herokuapp.com is deleted

karthikvt26 pushed a commit to karthikvt26/graphql-engine that referenced this pull request Sep 5, 2018
* add a query to reload schema cache (metadata), close hasura#292

* minor code refactor

* simpler root level select fields using primary keys (fix hasura#304) (hasura#306)

* select fields by primary key col values as argument values, fix hasura#304

* change field name 'table_by_pkey' to 'table_by_pk'

* add links to share and help (hasura#303)

* add req_user_id as alias to x-hasura-user-id (fix hasura#317) (hasura#320)

* fix insert fails for non-admin roles on v1/query  (fix hasura#327) (hasura#328)

* fix insert fails for non-admin roles on v1/query, fix hasura#327

* add test case for user role upsert usint constraint name

* mutation return type and query type are same (close hasura#315) (hasura#324)

* add support for jwt authorization (close hasura#186) (hasura#255)

The API:
1. HGE has `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var. The value of which is a JSON.

2. The structure of this JSON is: `{"type": "<standard-JWT-algorithms>", "key": "<the-key>"}`
`type` : Standard JWT algos : `HS256`, `RS256`, `RS512` etc. (see jwt.io).
`key`:
  i. Incase of symmetric key, the key as it is.
  ii. Incase of asymmetric keys, only the public key, in a PEM encoded string or as a X509 certificate.

3. The claims in the JWT token must contain the following:
  i. `x-hasura-default-role` field: default role of that user
  ii. `x-hasura-allowed-roles` : A list of allowed roles for the user. The default role is overriden by `x-hasura-role` header.

4. The claims in the JWT token,  can have other `x-hasura-*` fields where their values can only be strings.

5. The JWT tokens are sent as `Authorization: Bearer <token>` headers.

---
To test:
1. Generate a shared secret (for HMAC-SHA256) or RSA key pair.
2. Goto https://jwt.io/ , add the keys
3. Edit the claims to have `x-hasura-role` (mandatory) and other `x-hasura-*` fields. Add permissions related to the claims to test permissions.
4. Start HGE with `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var, which takes a JSON string: `{"type": "HS256", "key": "mylongsharedsecret"}` or `{"type":"RS256", "key": "<PEM-encoded-public-key>"}`
5. Copy the JWT token from jwt.io and use it in the `Authorization: Bearer <token>` header.

---
TODO: Support EC public keys. It is blocked on frasertweedale/hs-jose#61

* compare only major and minor versions for cli-server (fix hasura#331) (hasura#332)

* Revert "add links to share and help (hasura#303)" (hasura#334)

This reverts commit 798efdd.

* update tests to use access key (close hasura#113) (hasura#296)

Closes hasura#113

* generate a returning field in a mutation only when the select permission is defined (fix hasura#340) (hasura#341)

* allow selectively updating columns on a conflict during insert (fix hasura#342)

* fix primary key changing on upsert, fix hasura#342

* add 'update_columns' in 'on_conflict' object, consider 'allowUpsert'

* 'ConflictCtx' type should respect upsert cases

* validation for not null fields in an object

* console: fix error notification non json, auto height css (hasura#354)
hasura-bot pushed a commit that referenced this pull request Mar 22, 2024
<!-- Thank you for submitting this PR! :) -->

## Description

This PR adds the capability to expose _entities and _service fields.
Apollo Federation uses these fields to extend types in other subgraphs
using the types from a subgraph. We can now use Hasura v3 as a subgraph
in an Apollo federated supergraph.

To make this possible, we had to do the following metadata changes:

- Add `apolloFederation` in `ObjectType.graphql`:
  ```yaml
  apolloFederation:
      keys:
        - fields:
          - id
  ```
- Add `apolloFederation` in `Model.graphql`:
  ```yaml
  apolloFederation:
      entitySource: true
  ```
- Add `apolloFederation` in `GraphqlConfig`:
  ```yaml
  apolloFederation:
      enableRootFields: true
  ```

https://github.com/hasura/v3-engine/assets/85472423/b3223c61-360a-4ed6-b8ab-b394469957ce

RFC:
https://github.com/hasura/graphql-engine/pull/10141/files#diff-a9f74850aca6ecad1556723e4b3c7395e59f26cd40d9de20bfef83cb9c64f028

## Changelog

- Add a changelog entry (in the "Changelog entry" section below) if the
changes in this PR have any user-facing impact. See [changelog
guide](https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide).
- If no changelog is required ignore/remove this section and add a
`no-changelog-required` label to the PR.

### Product
_(Select all products this will be available in)_
- [ ] community-edition
- [ ] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [ ] enhancement
- [ ] bugfix
- [ ] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

_Replace with changelog entry_

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

V3_GIT_ORIGIN_REV_ID: 73cb9e6c8ef4bfe64d0f0cd9ce3ccbd32e208712
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c/cli Related to CLI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants