# graphql-knowledge

**Please familiarize yourself with our [GraphQL Notion page](https://www.notion.so/GraphQL-bee3d9f485734cadb2a6483f9bb02707) before contributing!**

## Running

1. Make sure you have `node` and `yarn` installed
2. Follow [Javascript Package Setup](https://www.notion.so/JavaScript-Package-Setup-9553d5d491c94835aa787fdf0fc4838d)
3. Install dependencies: `yarn`
4. Copy the `.env.shadow` file to `.env` and fill in your information
5. Run the server: `yarn start`
6. Open your browser at [http://localhost:8080/graphql](http://localhost:8080/graphql)

## Running graphql-service with frontend service

1. This service uses jwt-service-handler private package. The package defaults to use QA auth0 creds for jwt token validation on local graphql setup. Make sure to use qa auth0 creds in your frontend service local setups so that they generate QA jwt and pass on in graphql calls.

## Examples

You can find some example queries in `tests/integration/queries`.

## Federation

New schema Types should avoid name clashes with existing schema Types in other federated services.

For example, if a `SoundRecording` Type were added to the schema,
it would conflict with `SoundRecording` in graphql-product

Check any new Types do not share names with those defined in:

    graphql-product
    graphql-participant
    graphql-user
    graphql-podcast
