From 6631c84268b3238d498e91ba35b54e244bb868c5 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:13:11 +0700 Subject: [PATCH 01/40] fix images on mobile --- .eslintrc.cjs | 11 +++ package.json | 2 +- .../pages/docs/schema-registry/contracts.mdx | 75 +++---------------- .../pages/docs/self-hosting/get-started.mdx | 14 +--- ...sted-documents-app-deployments-preview.mdx | 10 +-- pnpm-lock.yaml | 20 ++--- 6 files changed, 37 insertions(+), 95 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index cc52dea774..dfacbfcaa2 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -229,6 +229,17 @@ module.exports = { }, }, }, + { + files: ['packages/web/docs/src/**/*.mdx'], + parser: 'eslint-mdx', + parserOptions: { + ecmaVersion: 2024, + sourceType: 'module' + }, + rules: { + 'no-restricted-imports': ['error', { name: 'next/image', message: 'Use markdown syntax - ![Your image alt attribute](/path/to/your/image)' }], + }, + }, { files: 'cypress/**', extends: 'plugin:cypress/recommended', diff --git a/package.json b/package.json index 0d543ac04b..91764fb5a9 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "generate": "pnpm --filter @hive/storage db:generate && pnpm graphql:generate", "graphql:generate": "graphql-codegen --config codegen.mts", "integration:prepare": "cd integration-tests && ./local.sh", - "lint": "eslint --cache --ignore-path .gitignore \"{packages,cypress}/**/*.{ts,tsx,graphql}\"", + "lint": "eslint --cache --ignore-path .gitignore \"{packages,cypress}/**/*.{ts,tsx,graphql,mdx}\"", "lint:env-template": "tsx scripts/check-env-template.ts", "lint:fix": "pnpm lint --fix", "lint:prettier": "prettier --cache --check .", diff --git a/packages/web/docs/src/pages/docs/schema-registry/contracts.mdx b/packages/web/docs/src/pages/docs/schema-registry/contracts.mdx index a3e52b22ee..261d3e670e 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/contracts.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/contracts.mdx @@ -2,7 +2,6 @@ title: Schema Contracts --- -import NextImage from 'next/image' import { Callout } from '@theguild/components' # Contract Management @@ -116,33 +115,15 @@ type Query { Contracts are defined within the Hive application. You can define a contract by navigating to the Target settings. -import settingsPageImage from '../../../../public/docs/pages/management/contracts/settings-page.png' - - +![Target Settings](/docs/pages/management/contracts/settings-page.png) On the settings page, there is a schema contracts section. -import schemaContractsSettingsEmptyImage from '../../../../public/docs/pages/management/contracts/schema-contracts-settings-empty.png' - - +![Schema contract section in target settings](/docs/pages/management/contracts/schema-contracts-settings-empty.png) Click the "Create new contract" button to create a new contract. -import createSchemaContractModalImage from '../../../../public/docs/pages/management/contracts/create-schema-contract-modal.png' - - +![Create Schema Contract Modal](/docs/pages/management/contracts/create-schema-contract-modal.png) Within the dialogue, you need to define the name of the contract and the filter. @@ -162,24 +143,12 @@ from the public API schema. After that, press the "Create Contract" button to create the contract. -import createSchemaContractModalConfirmImage from '../../../../public/docs/pages/management/contracts/create-schema-contract-modal-confirm.png' +![Create schema contract confirmation modal](/docs/pages/management/contracts/create-schema-contract-modal-confirm.png) - - -If the contract creation succeeds you will see the success modal. Close the modal and you will now +If the contract creation succeeds you will see the success modal. Close the modal, and you will now see the contract in the schema contracts section. -import schemaContractsSettingsContractImage from '../../../../public/docs/pages/management/contracts/schema-contracts-settings-contract.png' - - +![Schema contract section in target settings with created contract](/docs/pages/management/contracts/schema-contracts-settings-contract.png) The contract is now active and used for subsequent schema checks and schema publishing runs within the target. Note that the first contract version will only be published after the next schema is @@ -191,49 +160,25 @@ When you run a schema check, Hive will run the schema check for each contract de if the composition of the contract schema is not valid, or the contract schema contains breaking changes, the schema check will fail. -import schemaChecksContractExample from '../../../../public/docs/pages/management/contracts/schema-checks-contract-example.png' - - +![Contract in Schema Checks](/docs/pages/management/contracts/schema-checks-contract-example.png) ## Contracts in Schema Publishing Hive will publish the contract schema to the schema registry when you run a schema publishing run. Within the History view of a target, you can see how the contract schema has evolved. -import schemaHistoryContractDiffTextImage from '../../../../public/docs/pages/management/contracts/schema-history-contract-diff-text.png' - - +![Changes listed in the schema version history for a contract](/docs/pages/management/contracts/schema-history-contract-diff-text.png) You can also see the direct changes on the SDL or Supergraph to the previous schema version. -import schemaHistoryContractDiffGitStyle from '../../../../public/docs/pages/management/contracts/schema-history-contract-diff-git-style.png' - - +![Supergraph Diff from one contract version to the next using a diff view](/docs/pages/management/contracts/schema-history-contract-diff-git-style.png) ## Access Contract CDN Artifacts Artifacts such as the SDL and Supergraph of a contract are available on the High-Availability CDN. Within the "Connect to CDN" modal, you can find the URLs for accessing the contract artifacts. -import hiveCdnAccessContractImage from '../../../../public/docs/pages/management/contracts/hive-cdn-access-contract.png' - - +![Selecting the contract in the connect to CDN modal](/docs/pages/management/contracts/hive-cdn-access-contract.png) ## Serving a Contract Schema diff --git a/packages/web/docs/src/pages/docs/self-hosting/get-started.mdx b/packages/web/docs/src/pages/docs/self-hosting/get-started.mdx index f851753f04..57349fd7a8 100644 --- a/packages/web/docs/src/pages/docs/self-hosting/get-started.mdx +++ b/packages/web/docs/src/pages/docs/self-hosting/get-started.mdx @@ -1,6 +1,4 @@ -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import diagram from '../../../../public/docs/pages/self-hosting/diagram.png' # Self-Hosting Hive @@ -46,7 +44,7 @@ components: - Hive microservices -The defualt configuration of the self-hosted environment comes with a single instance of each database. +The default configuration of the self-hosted environment comes with a single instance of each database. For production environments, we recommend replacing the in-cluster databases (PostgreSQL, Kafka and ClickHouse) and storage (S3) with managed database/storage (Cloud-based or in-house). @@ -59,11 +57,7 @@ ClickHouse) and storage (S3) with managed database/storage (Cloud-based or in-ho The following diagram shows the architecture of a self-hosted GraphQL Hive instance: - +![Self-hosting diagram](/docs/pages/self-hosting/diagram.png) ### Services Overview @@ -132,7 +126,7 @@ First download the `docker-compose.community.yml` file from the using `wget`. This's going to download the latest version available. - Note: make sure you've Docker installed to be able to continue with the setup process. + **Note**: make sure you've Docker installed to be able to continue with the setup process. > You can also download the file directly from GitHub, if you don't have wget installed using the @@ -275,7 +269,7 @@ git init Make sure you exclude the following in your `.gitignore` file, because you don't wanna push those in your commits: -``` +```gitignore node_modules .hive hive.json diff --git a/packages/web/docs/src/pages/product-updates/2024-07-30-persisted-documents-app-deployments-preview.mdx b/packages/web/docs/src/pages/product-updates/2024-07-30-persisted-documents-app-deployments-preview.mdx index 213e9aed92..57599af074 100644 --- a/packages/web/docs/src/pages/product-updates/2024-07-30-persisted-documents-app-deployments-preview.mdx +++ b/packages/web/docs/src/pages/product-updates/2024-07-30-persisted-documents-app-deployments-preview.mdx @@ -7,8 +7,6 @@ date: 2024-07-30 authors: [laurin] --- -import NextImage from 'next/image' - **TL;DR** Persisted documents through app deployments are now available in preview on Hive and allow you to secure your GraphQL API. To get started, please refer to the [app deployments documentation](/docs/schema-registry/app-deployments). @@ -87,13 +85,7 @@ Furthermore, you get analytics specific to your deployed app version, so you can decisions on deprecating and removing fields from your GraphQL API schema and avoid breaking ancient versions of your app. -import pendingAppImage from '../../../public/changelog/2024-07-30-persisted-documents-app-deployments-preview/app-deployments-overview.png' - - +![App Deployments on Hive Dashboard](/changelog/2024-07-30-persisted-documents-app-deployments-preview/app-deployments-overview.png) App deployments are now available in preview on Hive. To get started, please refer to the [app deployments documentation](/docs/schema-registry/app-deployments). diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40023d6221..28fc9f21db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16307,8 +16307,8 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16415,11 +16415,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.596.0(@aws-sdk/client-sts@3.596.0)': + '@aws-sdk/client-sso-oidc@3.596.0': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16458,7 +16458,6 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sts' - aws-crt '@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0)': @@ -16592,11 +16591,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.596.0': + '@aws-sdk/client-sts@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16635,6 +16634,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt '@aws-sdk/client-sts@3.693.0': @@ -16748,7 +16748,7 @@ snapshots: '@aws-sdk/credential-provider-ini@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/credential-provider-env': 3.587.0 '@aws-sdk/credential-provider-http': 3.596.0 '@aws-sdk/credential-provider-process': 3.587.0 @@ -16867,7 +16867,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity@3.587.0(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.8 '@smithy/types': 3.6.0 @@ -17042,7 +17042,7 @@ snapshots: '@aws-sdk/token-providers@3.587.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 From 8caba5bf02a9d5f7f12ab12a9222cdf49432a0b5 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:16:58 +0700 Subject: [PATCH 02/40] fix images on mobile --- packages/web/docs/src/pages/docs/dashboard/explorer.mdx | 8 +------- packages/web/docs/src/pages/docs/dashboard/insights.mdx | 9 +-------- .../web/docs/src/pages/docs/dashboard/laboratory.mdx | 7 ++----- .../docs/src/pages/docs/gateway/monitoring-tracing.mdx | 8 +++----- 4 files changed, 7 insertions(+), 25 deletions(-) diff --git a/packages/web/docs/src/pages/docs/dashboard/explorer.mdx b/packages/web/docs/src/pages/docs/dashboard/explorer.mdx index 117a5acc4d..c9caee847d 100644 --- a/packages/web/docs/src/pages/docs/dashboard/explorer.mdx +++ b/packages/web/docs/src/pages/docs/dashboard/explorer.mdx @@ -1,6 +1,4 @@ -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import schemaExplorerImage from '../../../../public/docs/pages/features/schema-explorer.png' # Schema Explorer @@ -9,11 +7,7 @@ your GraphQL schema. Not only does it allow you to explore the different types a schema, but it also enables you to gain a deeper understanding of the arguments and their respective input types. - +![Schema Explorer](/docs/pages/features/schema-explorer.png) ## Schema Usage and Coverage diff --git a/packages/web/docs/src/pages/docs/dashboard/insights.mdx b/packages/web/docs/src/pages/docs/dashboard/insights.mdx index ffaea4c7bd..c1ec9198e0 100644 --- a/packages/web/docs/src/pages/docs/dashboard/insights.mdx +++ b/packages/web/docs/src/pages/docs/dashboard/insights.mdx @@ -1,14 +1,7 @@ -import NextImage from 'next/image' -import usageOperationsImage from '../../../../public/docs/pages/features/usage-operations.png' - # Insights A list of all the GraphQL operations executed by your consumers, their performance metrics and total count. By clicking on a specific query, you'll be able to see the full list of fields and arguments used in the operation. - +![Insights](/docs/pages/features/usage-operations.png) diff --git a/packages/web/docs/src/pages/docs/dashboard/laboratory.mdx b/packages/web/docs/src/pages/docs/dashboard/laboratory.mdx index ee00cdbd6e..e9646c3ff6 100644 --- a/packages/web/docs/src/pages/docs/dashboard/laboratory.mdx +++ b/packages/web/docs/src/pages/docs/dashboard/laboratory.mdx @@ -1,7 +1,4 @@ -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import labFormImage from '../../../../public/docs/pages/features/lab-form.png' -import labImage from '../../../../public/docs/pages/features/lab.png' # Laboratory @@ -14,7 +11,7 @@ You can use the full power of [GraphiQL](https://github.com/graphql/graphiql) di compose your GraphQL operations, explore with different field and variations, and access your GraphQL schema full documentation. - +![Laboratory](/docs/pages/features/lab.png) ## Link a Laboratory Endpoint @@ -49,7 +46,7 @@ To get started with using the Laboratory mock schema externally, create a Now, click on the **Use Schema Externally** button on the Laboratory page, and follow the instructions on the form: - +![Laboratory Form](/docs/pages/features/lab-form.png) To test access to your setup, try running a `curl` command to run a simple GraphQL query against your mocked schema: diff --git a/packages/web/docs/src/pages/docs/gateway/monitoring-tracing.mdx b/packages/web/docs/src/pages/docs/gateway/monitoring-tracing.mdx index 58021aa0f3..7e0011b8f0 100644 --- a/packages/web/docs/src/pages/docs/gateway/monitoring-tracing.mdx +++ b/packages/web/docs/src/pages/docs/gateway/monitoring-tracing.mdx @@ -4,9 +4,7 @@ description: behavior of your Hive Gateway. --- -import Image from 'next/image' -import { Table, Td, Th, Tr } from 'nextra/components' -import { Callout, Cards, Tabs } from '@theguild/components' +import { Callout, Tabs } from '@theguild/components' # Monitoring and Tracing @@ -130,7 +128,7 @@ The following are available to use with this plugin: - + ```ts filename="gateway.config.ts" import { createStdoutExporter, defineConfig } from '@graphql-hive/gateway' @@ -159,7 +157,7 @@ export const gatewayConfig = defineConfig({ }) ``` - + From f0fc1d8ca6c3d5d76faeaa6390f19120648ef89d Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:21:15 +0700 Subject: [PATCH 03/40] fix images on mobile --- .../external-schema-composition.mdx | 29 +++---------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx b/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx index 67caaf177e..6e0d32c54e 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx @@ -1,9 +1,4 @@ -import NextImage from 'next/image' import { Callout, Steps, Tabs } from '@theguild/components' -import externalCompositionInvalid from '../../../../public/docs/pages/management/external-composition-invalid.png' -import externalCompositionValid from '../../../../public/docs/pages/management/external-composition-valid.png' -import externalCompositionOff from '../../../../public/docs/pages/management/external-schema-composition-disabled.png' -import externalCompositionOn from '../../../../public/docs/pages/management/external-schema-composition-enabled.png' # External Schema Composition @@ -218,37 +213,21 @@ function verifyRequest(input) { Start by enabling the **External Composition** for your project. To do that, go to your Hive project page, and click the **Settings** tab. You'll notice a **"External Composition"** section. - +![External Composition section in the project settings](/docs/pages/management/external-schema-composition-disabled.png) Next, provide the URL of your deployed endpoint, and also set the secret you set for your service. Click **Save**. - +![External Composition section in the project settings](/docs/pages/management/external-schema-composition-enabled.png) If your service is available publicly and the secret matches, you should see a green checkmark next to the URL: - +![Valid External Composition](/docs/pages/management/external-composition-valid.png) In case of a failure, you'll see a red cross with the reason of the failure: - +![Invalid External Composition](/docs/pages/management/external-composition-invalid.png) Now you should be able to use the **External Composition** feature in your project. [Publish a GraphQL schema](/docs/schema-registry#publish-a-schema) or perform a From 35e71e0dba2fc4e297d2882ddd3dee56bca1aec1 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:28:23 +0700 Subject: [PATCH 04/40] fix images on mobile --- .../docs/get-started/apollo-federation.mdx | 4 --- .../docs/schema-registry/app-deployments.mdx | 34 ++++--------------- .../external-schema-composition.mdx | 2 +- 3 files changed, 8 insertions(+), 32 deletions(-) diff --git a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx index cc54856967..13d62f6de0 100644 --- a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx +++ b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx @@ -10,10 +10,6 @@ import publishSecondSchemaVersionUi from '../../../../public/docs/pages/get-star import publishThirdSchemaVersionUi from '../../../../public/docs/pages/get-started/apollo-federation/publish-third-schema-version-ui.png' import registryTokenSettings from '../../../../public/docs/pages/get-started/apollo-federation/registry-token-settings.png' import targetOverview from '../../../../public/docs/pages/get-started/apollo-federation/target-overview.png' -import cdnTokenImage from '../../../../public/docs/pages/guides/federation-cdn-token.png' - -import historyImage from '../../../../public/docs/pages/guides/history.png' -import tokenImage from '../../../../public/docs/pages/guides/token.png' # Get started with Apollo Federation diff --git a/packages/web/docs/src/pages/docs/schema-registry/app-deployments.mdx b/packages/web/docs/src/pages/docs/schema-registry/app-deployments.mdx index 19d44a6bee..f7504b687d 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/app-deployments.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/app-deployments.mdx @@ -2,7 +2,6 @@ title: 'App Deployment (Persisted Operations)' --- -import NextImage from 'next/image' import { Callout, Tabs } from '@theguild/components' # App Deployments @@ -14,7 +13,7 @@ import { Callout, Tabs } from '@theguild/components' href="#" className="inline-block underline" onClick={() => { - window?.$crisp?.push(['do', 'chat:open']) + window.$crisp?.push(['do', 'chat:open']) }} > reach out to us @@ -32,7 +31,7 @@ Making better decisions about: - Which operations are being used by what app client version (mobile app, web app, etc.) - Which team or developer is responsible for a specific operation and needs to be contacted for - Schema change decissions + Schema change decisions ```mermaid flowchart LR @@ -174,24 +173,12 @@ App UI. Navigate to the Target page on the Hive Dashboard and click on the **Apps** tab to see it. -import pendingAppImage from '../../../../public/docs/pages/features/app-deployments/pending-app.png' - - +![Pending App Deployment](/docs/pages/features/app-deployments/pending-app.png) By clicking on the app deployments name, you can navigate to the app deployment details page, where you can see all the GraphQL operations that are uploaded as part of this app deployment. -import detailAppImage from '../../../../public/docs/pages/features/app-deployments/detail-app.png' - - +![App Deployment Detail View](/docs/pages/features/app-deployments/detail-app.png) ## Publish an App Deployment @@ -214,13 +201,7 @@ hive app:publish --name "my-app" --version "1.0.0" After publishing the app deployment, the persisted documents, the status of the app deployment on the Hive dashboard will change to **active**. -import activeAppImage from '../../../../public/docs/pages/features/app-deployments/active-app.png' - - +![Active App Deployment](/docs/pages/features/app-deployments/active-app.png) ## Persisted Documents on GraphQL Server and Gateway @@ -549,15 +530,14 @@ function fetchQuery(operation, variables) { -## Continous Deployment (CD) Integration +## Continuous Deployment (CD) Integration We recommend integrating the app deployment creation and publishing into your CD pipeline for -automating the creationg and publishing of app deployments. +automating the creating and publishing of app deployments. Usually the following steps are performed. ```mermaid - graph TD A[Extract Persisted Documents from App] --> B[Create App Deployment via Hive CLI] B --> C[Publish App Deployment via Hive CLI] diff --git a/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx b/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx index 6e0d32c54e..183e6087b1 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/external-schema-composition.mdx @@ -158,7 +158,7 @@ await server.listen({ ``` - You can also find here [an example using NodeJS's HTTP + You can also find here [an example using NodeJS' HTTP library](https://github.com/graphql-hive/platform/blob/4af001a7102b255bd8ceb8e3f01722faceb8f2f3/packages/services/external-composition/federation-2). From 88574bf0dbb6c06a38601f515e98d5b97f0ee0c3 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:33:41 +0700 Subject: [PATCH 05/40] fix images on mobile --- .../pages/docs/get-started/first-steps.mdx | 7 ++-- .../src/pages/docs/management/targets.mdx | 33 ++++--------------- 2 files changed, 9 insertions(+), 31 deletions(-) diff --git a/packages/web/docs/src/pages/docs/get-started/first-steps.mdx b/packages/web/docs/src/pages/docs/get-started/first-steps.mdx index 93ffd0c642..8614d8eec8 100644 --- a/packages/web/docs/src/pages/docs/get-started/first-steps.mdx +++ b/packages/web/docs/src/pages/docs/get-started/first-steps.mdx @@ -1,5 +1,4 @@ import { Callout, Cards, Steps, Tabs } from '@theguild/components' -import { Screenshot } from '../../../components/screenshot' # First Steps with Hive Cloud @@ -10,7 +9,7 @@ import { Screenshot } from '../../../components/screenshot' To get started with Hive, first sign up and create your Hive account if you haven't already. [You can use this page to login or sign up](https://app.graphql-hive.com/auth). -![Login/Signup view](/docs/pages/first-steps/signup.png) +![Login/Signup view](/docs/pages/first-steps/signup.png) At the moment, Hive Cloud supports GitHub and Google authentication, or you can use a plain @@ -26,7 +25,7 @@ GraphQL APIs. Hive organizations are used to manage access, integrations, and bi To create a new organization, [you use this page](https://app.graphql-hive.com/org/new). -![Create Organization Form](/docs/pages/first-steps/org.png) +![Create Organization Form](/docs/pages/first-steps/org.png) Once you've successfully created your organization, you'll be able to expand your organization by inviting other members to join and collaborate on projects. @@ -132,7 +131,7 @@ Hive supports the following project types: To get started with your Hive **project**, click on **Create Project +** button from the organization's main page: -![Create Project Form](/docs/pages/first-steps/project.png) +![Create Project Form](/docs/pages/first-steps/project.png) Continue with one of the following guide based on the type of project you selected. diff --git a/packages/web/docs/src/pages/docs/management/targets.mdx b/packages/web/docs/src/pages/docs/management/targets.mdx index 9323158a72..fb52962fe4 100644 --- a/packages/web/docs/src/pages/docs/management/targets.mdx +++ b/packages/web/docs/src/pages/docs/management/targets.mdx @@ -1,9 +1,4 @@ -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import tokenImage from '../../../../public/docs/pages/guides/token.png' -import newTargetFormImage from '../../../../public/docs/pages/management/new-target-form.png' -import tagetConditionalBreakingChangesImage from '../../../../public/docs/pages/management/target-conditional-breaking-changes.png' -import tokenCreateSuccess from '../../../../public/docs/pages/management/target-created-token.png' # Target Management @@ -23,11 +18,7 @@ use. From your Hive **project** page, you can see the list of targets created under the project. You can also use the **New Target** button to create a new target. - +![Create Target Form](/docs/pages/management/new-target-form.png) ## Manage existing target @@ -40,11 +31,7 @@ schemas as safe, based on real-life data and traffic reported to Hive. This is d When a new schema of your GraphQL schema is published to the registry, Hive uses the data collected from your API gateway to identify whether the change in your schema actually affects consumers. - +![Conditional Breaking Changes](/docs/pages/management/target-conditional-breaking-changes.png) Under your target's **Settings** page, you can enable the **Conditional Breaking Changes** feature and configure the following settings: @@ -57,7 +44,7 @@ a specific time range. Here are a few examples and their meaning: - **Traffic Threshold:** `0%`: A breaking change is considered as breaking and dangerous if the - field was was used at least once. + field was used at least once. - **Traffic Threshold:** `10%`: A breaking change is considered as breaking and dangerous if the field was requested by more than 10% of all GraphQL operation. @@ -152,20 +139,12 @@ Under the **Registry Access Tokens** section, click the **Generate new token** b access token a either select a predefined preset for your token (under **Simple** view), or create a token with custom permissions (under **Advanced** view). - +![Create Registry Token Form](/docs/pages/guides/token.png) -Click on **Generate Token** button and you should get your CLI token created, with permissions to +Click on **Generate Token** button, and you should get your CLI token created, with permissions to publish GraphQL schemas. - +![Created Token](/docs/pages/management/target-created-token.png) Make sure to copy your token and keep it safe. **You won't be able to see it again.** From ec13144fd8add1fda75845dc4ff4f22f99ba8486 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:38:01 +0700 Subject: [PATCH 06/40] fix images on mobile --- .../pages/docs/get-started/single-project.mdx | 24 ++++--------------- .../src/pages/docs/high-availability-cdn.mdx | 14 +++-------- 2 files changed, 7 insertions(+), 31 deletions(-) diff --git a/packages/web/docs/src/pages/docs/get-started/single-project.mdx b/packages/web/docs/src/pages/docs/get-started/single-project.mdx index 5e1a7d5bee..2a201e9714 100644 --- a/packages/web/docs/src/pages/docs/get-started/single-project.mdx +++ b/packages/web/docs/src/pages/docs/get-started/single-project.mdx @@ -1,8 +1,4 @@ -import NextImage from 'next/image' import { Callout, Steps } from '@theguild/components' -import cdnTokenImage from '../../../../public/docs/pages/guides/cdn_token.png' -import historyImage from '../../../../public/docs/pages/guides/history.png' -import tokenImage from '../../../../public/docs/pages/guides/token.png' # Single Schema Project @@ -19,7 +15,7 @@ read GraphQL schemas from `.graphql` files in your local filesystem. **Using code-first approach to write your GraphQL schema?** - + Please refer to the [Code-First Guide](/docs/other-integrations/code-first) to learn how to use the Hive with code-first approach. @@ -63,11 +59,7 @@ tab. On the Settings screen, you can manage your target's settings and access to Under the **Registry Access Tokens** section, click the **Generate new token** button. Give your access token a name and select **Schema Check & Push** from the list of token presets: - +![Create Registry Token Form](/docs/pages/guides/token.png) Click on **Generate Token** button and you should get your CLI token created, with permissions to publish GraphQL schemas. @@ -249,11 +241,7 @@ You should see now that Hive accepted your published schema and updated the regi It's a good timing to check the **History** tab of your Hive target. You should see that a new schema is published now, and you can see the changes you made: - +![Schema History](/docs/pages/guides/history.png) ### Fetch your schema @@ -288,11 +276,7 @@ To use your access token, go to your target's page on Hive's dashboard and click CDN** button. You will see a screen with instructions on how to obtain different types of artifacts from the CDN. For this guide, you can pick the **GraphQL SDL** artifact. - +![CDN Token Form](/docs/pages/guides/cdn_token.png) Copy the URL and let's try to fetch your schema using `curl` (replace `YOUR_HIVE_CDN_TOKEN` with your CDN token, and `CDN_ENDPOINT_HERE` with the endpoint you copied from Hive's dashboard): diff --git a/packages/web/docs/src/pages/docs/high-availability-cdn.mdx b/packages/web/docs/src/pages/docs/high-availability-cdn.mdx index 8ffeb84391..5315cb00e0 100644 --- a/packages/web/docs/src/pages/docs/high-availability-cdn.mdx +++ b/packages/web/docs/src/pages/docs/high-availability-cdn.mdx @@ -1,6 +1,4 @@ -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import cdnTokenImage from '../../../public/docs/pages/guides/cdn_token.png' # High-Availability CDN @@ -12,13 +10,11 @@ Hive's status. This ensures that everything required for your GraphQL API and to always available, and reduces the risk of depending on Hive as a single point of failure. ```mermaid - flowchart LR A["GraphQL gateway"] -.-> C["Highly available GraphQL schema on Cloudflare"] B["Frontend tooling (e.g. GraphQL code generator)"] -.-> C - ``` @@ -27,7 +23,7 @@ flowchart LR [Learn more](/docs/self-hosting/cdn-artifacts). -Currently you can access the single services, merged schema, supergraph and metadata (e.g. GraphQL +Currently, you can access the single services, merged schema, supergraph and metadata (e.g. GraphQL Mesh artifacts) via the CDN. ## CDN Access Tokens @@ -44,16 +40,12 @@ To get started with Hive's CDN access, you'll need to create a CDN token for you To use your CDN access token, go to your target's page on Hive's dashboard and click on the **Connect to CDN** button. - +![CDN Token Form](/docs/pages/guides/cdn_token.png) ## Artifacts stored in the CDN You can access the GraphQL schema (SDL), services information (for both Schema-Stitching and Apollo -Federeation), Supergraph (for Apollo Federation) and Hive schema metadata via the CDN. +Federation), Supergraph (for Apollo Federation) and Hive schema metadata via the CDN. ### GraphQL schema (SDL) From b95a0228afdae449a94d8363c5ca12943d36c7e5 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:42:33 +0700 Subject: [PATCH 07/40] fix images on mobile --- .../docs/get-started/schema-stitching.mdx | 39 +++---------------- 1 file changed, 6 insertions(+), 33 deletions(-) diff --git a/packages/web/docs/src/pages/docs/get-started/schema-stitching.mdx b/packages/web/docs/src/pages/docs/get-started/schema-stitching.mdx index 15d5633230..0b94a8958c 100644 --- a/packages/web/docs/src/pages/docs/get-started/schema-stitching.mdx +++ b/packages/web/docs/src/pages/docs/get-started/schema-stitching.mdx @@ -1,11 +1,4 @@ -import NextImage from 'next/image' import { Callout, FileTree, Steps, Tabs } from '@theguild/components' -import cdnTokenImage from '../../../../public/docs/pages/guides/cdn_token.png' -import historyImage from '../../../../public/docs/pages/guides/history.png' -import stitchingExplorerImage from '../../../../public/docs/pages/guides/stitching-explorer.png' -import stitchingHistoryImage from '../../../../public/docs/pages/guides/stitching-history.png' -import stitchingUserSchemaImage from '../../../../public/docs/pages/guides/stitching-users-schema.png' -import tokenImage from '../../../../public/docs/pages/guides/token.png' # Schema-Stitching Project @@ -123,11 +116,7 @@ tab. On the Settings screen, you can manage your target's settings and access to Under the **Registry Access Tokens** section, click the **Generate new token** button. Give your access token a name and select **Schema Check & Push** from the list of token presets: - +![Create Registry Token Form](/docs/pages/guides/token.png) Click on **Generate Token** button and you should get your CLI token created, with permissions to publish GraphQL schemas. @@ -171,11 +160,7 @@ If everything goes well, you should see the following output: If you'll get to your target's page on Hive dashboard, you should see that it was updated with the new schema you just published 🎉 - +![Stitching SDL](/docs/pages/guides/stitching-users-schema.png) You should also check out the **Explorer** tab: you can see the schema you just published, and @@ -202,11 +187,7 @@ If everything goes well, you should see the following output: On your target's **Explorer** page now, you'll be able to see the schema of both services 🎉 - +![Schema Explorer](/docs/pages/guides/stitching-explorer.png) ### Schema Checks @@ -408,11 +389,7 @@ You should see now that Hive accepted your published schema and updated the regi It's a good timing to check the **History** tab of your Hive target. You should see that a new schema is published now, and you can see the changes you made: - +![Schema History](/docs/pages/guides/stitching-history.png) ### Fetch your schema @@ -447,11 +424,7 @@ To use your access token, go to your target's page on Hive's dashboard and click CDN** button. You will see a screen with instructions on how to obtain different types of artifacts from the CDN. For this guide, you can pick the **GraphQL SDL** artifact. - +![CDN Token Form](/docs/pages/guides/cdn_token.png) Copy the URL and let's try to fetch your schema using `curl` (replace `YOUR_HIVE_CDN_TOKEN` with your CDN token, and `CDN_ENDPOINT_HERE` with the endpoint you copied from Hive's dashboard): @@ -522,7 +495,7 @@ main().catch(err => { Make sure to add environment variables: -`HIVE_CDN_ENDPOINT` is your Hive CDN endpoint (without the artficat type, just drop the `/sdl` or +`HIVE_CDN_ENDPOINT` is your Hive CDN endpoint (without the artifact type, just drop the `/sdl` or `/services` from the URL). `HIVE_CDN_KEY` is the Hive CDN Access Token you created earlier. From 2f0b1a61386ed5f2e4340ea8a1a649b5cb226509 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:43:05 +0700 Subject: [PATCH 08/40] fix images on mobile --- .eslintrc.cjs | 10 ++++++++-- .../docs/src/pages/docs/get-started/single-project.mdx | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index dfacbfcaa2..9450c82228 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -234,10 +234,16 @@ module.exports = { parser: 'eslint-mdx', parserOptions: { ecmaVersion: 2024, - sourceType: 'module' + sourceType: 'module', }, rules: { - 'no-restricted-imports': ['error', { name: 'next/image', message: 'Use markdown syntax - ![Your image alt attribute](/path/to/your/image)' }], + 'no-restricted-imports': [ + 'error', + { + name: 'next/image', + message: 'Use markdown syntax - ![Your image alt attribute](/path/to/your/image)', + }, + ], }, }, { diff --git a/packages/web/docs/src/pages/docs/get-started/single-project.mdx b/packages/web/docs/src/pages/docs/get-started/single-project.mdx index 2a201e9714..f44b2b9581 100644 --- a/packages/web/docs/src/pages/docs/get-started/single-project.mdx +++ b/packages/web/docs/src/pages/docs/get-started/single-project.mdx @@ -16,8 +16,8 @@ read GraphQL schemas from `.graphql` files in your local filesystem. **Using code-first approach to write your GraphQL schema?** - Please refer to the [Code-First Guide](/docs/other-integrations/code-first) to learn how to use the Hive with -code-first approach. +Please refer to the [Code-First Guide](/docs/other-integrations/code-first) to learn how to use the +Hive with code-first approach. From f1e89762ded1f12ac36364facf289c558e9416d2 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:45:56 +0700 Subject: [PATCH 09/40] fix images on mobile --- .../docs/src/pages/docs/schema-registry/index.mdx | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/packages/web/docs/src/pages/docs/schema-registry/index.mdx b/packages/web/docs/src/pages/docs/schema-registry/index.mdx index 4f20b38f6d..eebff34ac2 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/index.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/index.mdx @@ -1,7 +1,4 @@ -import NextImage from 'next/image' import { Callout, Cards } from '@theguild/components' -import schemaHistoryDiffImage from '../../../../public/docs/pages/features/history-diff.png' -import schemaHistoryImage from '../../../../public/docs/pages/guides/history.png' # Schema Registry @@ -233,18 +230,10 @@ In the list of schema versions of changes, you'll be able to see the following i You can inspect a change in your GraphQL schema using the Changelog view. This view provides you an overview of the changes, and their respective impact on your GraphQL schema: - +![Schema History Changelog](/docs/pages/guides/history.png) ### Diff View If you wish to have a more technical view of the changes, you can use the `diff` view: - +![Schema History Diff](/docs/pages/features/history-diff.png) From 47f19c70ec7f480c4a600e539f53ac128bfc39bd Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:46:50 +0700 Subject: [PATCH 10/40] fix images on mobile [skip ci] --- .../src/pages/docs/schema-registry/usage-reporting.mdx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx b/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx index 39902d7ee5..df8f2c7405 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx @@ -6,7 +6,6 @@ import NextImage from 'next/image' import { Callout } from '@theguild/components' import monitoringViewImage from '../../../../public/docs/pages/features/monitoring-view.png' import usageClientsImage from '../../../../public/docs/pages/features/usage-clients.png' -import usageLatencyImage from '../../../../public/docs/pages/features/usage-latency-over-time.png' import usageOperationsOverTimeImage from '../../../../public/docs/pages/features/usage-operations-over-time.png' import usageRpmImage from '../../../../public/docs/pages/features/usage-rpm-over-time.png' import usageStatsImage from '../../../../public/docs/pages/features/usage-stats.png' @@ -116,8 +115,4 @@ performance: 3. **Latency over time**: the latency of GraphQL operations over time. - +![Latency Over Time](/docs/pages/features/usage-latency-over-time.png) From 762e28069ac157817ba715d99a97492884b29d86 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:50:52 +0700 Subject: [PATCH 11/40] fix images on mobile [skip ci] --- .../docs/gateway/persisted-documents.mdx | 4 +- .../docs/schema-registry/usage-reporting.mdx | 38 +++---------------- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx b/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx index c08a363e8b..d8c2ff4c14 100644 --- a/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx +++ b/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx @@ -243,7 +243,7 @@ const client = new createClient({ }) ``` -[More information on `@urql/exchange-persisted` on the the urql documentation](https://formidable.com/open-source/urql/docs/advanced/persistence-and-uploads/)) +[More information on `@urql/exchange-persisted` on the urql documentation](https://formidable.com/open-source/urql/docs/advanced/persistence-and-uploads/)) ### Apollo Client and GraphQL Code Generator @@ -379,7 +379,7 @@ You can also use the request headers to extract the persisted operation id. ### Path Recipe -You can also the the request path to extract the persisted operation id. This requires you to also +You can also the request path to extract the persisted operation id. This requires you to also customize the GraphQL endpoint. The underlying implementation for the URL matching is powered by the [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API). diff --git a/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx b/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx index df8f2c7405..1f1ee45811 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/usage-reporting.mdx @@ -2,13 +2,7 @@ title: GraphQL Schema Usage --- -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import monitoringViewImage from '../../../../public/docs/pages/features/monitoring-view.png' -import usageClientsImage from '../../../../public/docs/pages/features/usage-clients.png' -import usageOperationsOverTimeImage from '../../../../public/docs/pages/features/usage-operations-over-time.png' -import usageRpmImage from '../../../../public/docs/pages/features/usage-rpm-over-time.png' -import usageStatsImage from '../../../../public/docs/pages/features/usage-stats.png' # Usage Reporting and Monitoring @@ -56,11 +50,7 @@ For additional reading, please refer to the following resources: Once you have usage reporting enabled, and shipped your usage reports to Hive, you can view the usage data in the **Monitoring** view of the target. - +![Monitoring View](/docs/pages/features/monitoring-view.png) This view includes the following information: @@ -71,26 +61,18 @@ From the usage statistics view, you'll be able to see the following metrics of y 1. Total amount of GraphQL executed. 2. Average RPM (Requests Per Minute) 3. Total count of unique GraphQL operations -4. Sucess-rate of the executed operations +4. Success-rate of the executed operations 5. Error-rate of the executed operations 6. Latency (`p99`, `p95` and `p90`) - +![Usage Statistics View](/docs/pages/features/usage-stats.png) ### Clients Overview A breakdown of the clients who are using your GraphQL gateway, and the amount of operations executed by each client. - +![Clients Overview](/docs/pages/features/usage-clients.png) ### Monitoring Statistics @@ -99,19 +81,11 @@ performance: 1. **Operations time**: the amount of GraphQL operations executed over time. - +![Operations Over Time](/docs/pages/features/usage-operations-over-time.png) 2. **RPM over time**: the amount of GraphQL operations executed per minute over time. - +![RPM Over Time](/docs/pages/features/usage-rpm-over-time.png) 3. **Latency over time**: the latency of GraphQL operations over time. From c655cf58bec710e888d0eb23bbde40ee98068a99 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:53:21 +0700 Subject: [PATCH 12/40] fix images on mobile [skip ci] --- packages/web/docs/src/pages/docs/management/projects.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/projects.mdx b/packages/web/docs/src/pages/docs/management/projects.mdx index 647a45c55a..16f0d38594 100644 --- a/packages/web/docs/src/pages/docs/management/projects.mdx +++ b/packages/web/docs/src/pages/docs/management/projects.mdx @@ -1,7 +1,6 @@ import NextImage from 'next/image' import { Callout } from '@theguild/components' import projectImage from '../../../../public/docs/pages/first-steps/project.png' -import githubIntegrationImage from '../../../../public/docs/pages/management/org-github-integration.png' import slackIntegrationImage from '../../../../public/docs/pages/management/org-slack-integration.png' import projectGitLinkImage from '../../../../public/docs/pages/management/project-git-link.png' import projectHttpAlertImage from '../../../../public/docs/pages/management/project-http-alert.png' @@ -148,7 +147,7 @@ notification is triggered. All you need to do is to provide a valid HTTP URL, an a `POST` request to that URL, with a JSON payload acceptable by MS Teams. [MS Teams Webhook JSON example](https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using#example-of-connector-message) -Typically the webhook URL looks like: +Typically, the webhook URL looks like: ```txt https://USERNAME.webhook.office.com/webhookb2/XXXXX/IncomingWebhook/YYYY/ZZZZZ From 47e5e504a7ed225ad086fda7a96c9bda8fb505f3 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 15:56:07 +0700 Subject: [PATCH 13/40] fix images on mobile [skip ci] --- .../src/pages/docs/management/projects.mdx | 45 +++---------------- 1 file changed, 7 insertions(+), 38 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/projects.mdx b/packages/web/docs/src/pages/docs/management/projects.mdx index 16f0d38594..9b2124071e 100644 --- a/packages/web/docs/src/pages/docs/management/projects.mdx +++ b/packages/web/docs/src/pages/docs/management/projects.mdx @@ -1,11 +1,4 @@ -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import projectImage from '../../../../public/docs/pages/first-steps/project.png' -import slackIntegrationImage from '../../../../public/docs/pages/management/org-slack-integration.png' -import projectGitLinkImage from '../../../../public/docs/pages/management/project-git-link.png' -import projectHttpAlertImage from '../../../../public/docs/pages/management/project-http-alert.png' -import msteamsFormImage from '../../../../public/docs/pages/management/project-msteams-alert.png' -import slackAlertFormImage from '../../../../public/docs/pages/management/project-slack-alert.png' # Project Management @@ -31,11 +24,7 @@ Hive supports the following project types: To create a new project, click on **Create Project +** button from your organization's main page: - +![Create Project Form](/docs/pages/first-steps/project.png) Choose a project type based on your project's stack, and then enter the project slug. @@ -67,11 +56,7 @@ Having a Project connected with your GitHub repositories gives you the following - Have direct connection between a schema version and a Git commit in your repository in Hive dashboard. - +![Associated Git](/docs/pages/management/project-git-link.png) ### Change slug of a project @@ -90,7 +75,7 @@ Settings tab of your project: As the owner of an organization, you have the option to delete a project, including all targets, settings and all data collected during your use of Hive. -To delete an project, go to the **Settings** tab of your project, and use the **Delete Project** +To delete a project, go to the **Settings** tab of your project, and use the **Delete Project** section. This action is not reversible! @@ -117,11 +102,7 @@ At the moment, Hive supports the following transports to ship your alerts and no Integrating your project with a Slack channel will allow you to receive alerts and notifications shipped directly to a Slack channel. - +![Hive Slack Message](/docs/pages/management/org-slack-integration.png) To integrate your **project** with a Slack channel, you first need to [activate the Slack integration at the organization level](/docs/management/organizations#slack). @@ -129,11 +110,7 @@ To integrate your **project** with a Slack channel, you first need to Once you have activated the Slack integration, you can configure a Slack channel to connect to your Hive project: - +![Hive and Slack Configuration](/docs/pages/management/project-slack-alert.png) To send messages to private channels, invite the @GraphQLHive account first. Without this @@ -156,11 +133,7 @@ https://USERNAME.webhook.office.com/webhookb2/XXXXX/IncomingWebhook/YYYY/ZZZZZ You can find more information on how to set up a webhook in MS Teams in the [official documentation - Create Incoming Webhooks](https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook?tabs=newteams%2Cdotnet). - +![MS Teams Alert Configuration](/docs/pages/management/project-msteams-alert.png) #### HTTP Webhook @@ -182,11 +155,7 @@ a notification is triggered. address must contain a valid hostname (not an IP address), and the port must be standard. - +![HTTP Alert Configuration](/docs/pages/management/project-http-alert.png) Every type of event/notification has a different JSON payload, please refer to the information From 6156fbdd90f0718700d03d8753047860d373f8e2 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 16:00:31 +0700 Subject: [PATCH 14/40] fix images on mobile [skip ci] --- .../docs/schema-registry/schema-policy.mdx | 54 ++++--------------- 1 file changed, 9 insertions(+), 45 deletions(-) diff --git a/packages/web/docs/src/pages/docs/schema-registry/schema-policy.mdx b/packages/web/docs/src/pages/docs/schema-registry/schema-policy.mdx index ecb23098c8..6587bf404e 100644 --- a/packages/web/docs/src/pages/docs/schema-registry/schema-policy.mdx +++ b/packages/web/docs/src/pages/docs/schema-registry/schema-policy.mdx @@ -2,15 +2,7 @@ title: Schema Policies (linting) --- -import NextImage from 'next/image' import { Callout } from '@theguild/components' -import cliPolicyErrorImage from '../../../../public/docs/pages/features/policy/policy-cli-error.png' -import cliPolicyWarningImage from '../../../../public/docs/pages/features/policy/policy-cli-warning.png' -import policyOverrideConfigImage from '../../../../public/docs/pages/features/policy/policy-override-config.png' -import policyOverrideSeverityImage from '../../../../public/docs/pages/features/policy/policy-override-severity.png' -import policyOverviewImage from '../../../../public/docs/pages/features/policy/policy-overview.png' -import policyRulesConfigImage from '../../../../public/docs/pages/features/policy/policy-rules-config.png' -import policySeverityImage from '../../../../public/docs/pages/features/policy/policy-severity.png' # Schema Policies @@ -37,11 +29,7 @@ To find the list of all available rules, go to your **organization** or **projec **Policy** tab. You will see the list of all available rules, with the ability to enable/disable rule by using the corresponding checkbox. - +![Schema Policy Overview](/docs/pages/features/policy/policy-overview.png) Once a rule is activated, you may configure the following options: @@ -49,11 +37,7 @@ Once a rule is activated, you may configure the following options: You can set the severity of the rule to `warning` or `error`. The default severity is `warning`. - +![Schema Policy Severity](/docs/pages/features/policy/policy-severity.png) A rule defined with `warning` severity will emit a **warning**, but will not fail the schema check. @@ -65,11 +49,7 @@ Every rule activated in the policy can be configured with the corresponding opti might only have the severity option, but some rule can be configured with additional options to ensure flexibility. - +![Policy Per-rule Configuration](/docs/pages/features/policy/policy-rules-config.png) ## Policies Hierarchy and Overrides @@ -85,22 +65,14 @@ being merged**. When a policy is defined for the organization, you'll see an indicator on the project page, near every rule that you override: - +![Override Policy Configuration](/docs/pages/features/policy/policy-override-config.png) In addition to the ability to override rules configuration or severity, you can disable rules that were defined at the organization level by setting the rule severity to `off`. - +![Override Policy Severity](/docs/pages/features/policy/policy-override-severity.png) -### Prevening overrides +### Preventing overrides If you wish to prevent overrides of your organization-level policies, you can do so by unchecking the `Allow projects to override or disable rules` checkbox under your organization's **Policy** @@ -117,14 +89,6 @@ page. Schema Policies is fully integrated into the Hive CLI, and you'll see both warnings and error coming from the schema policies: - - - +![Hive CLI and Policy Warnings](/docs/pages/features/policy/policy-cli-warning.png) + +![Hive CLI and Policy Errors](/docs/pages/features/policy/policy-cli-error.png) From 20630220ad8e5ea51311f2ead26ad6a8f270e89f Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 16:04:15 +0700 Subject: [PATCH 15/40] fix images on mobile [skip ci] --- .../docs/get-started/apollo-federation.mdx | 28 +++---------------- 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx index 13d62f6de0..19972a09cf 100644 --- a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx +++ b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx @@ -1,15 +1,11 @@ import NextImage from 'next/image' import { Callout, Cards, FileTree, Steps, Tabs } from '@theguild/components' import cdnAccessTokenSettings from '../../../../public/docs/pages/get-started/apollo-federation/cdn-access-token-settings.png' -import createAccessToken from '../../../../public/docs/pages/get-started/apollo-federation/create-access-token.png' import cdnAccessTokenCreate from '../../../../public/docs/pages/get-started/apollo-federation/create-cdn-access-token.png' -import createdAccessToken from '../../../../public/docs/pages/get-started/apollo-federation/created-access-token.png' import cdnAccessTokenCreated from '../../../../public/docs/pages/get-started/apollo-federation/created-cdn-access-token.png' import publishFirstSchemaVersionUi from '../../../../public/docs/pages/get-started/apollo-federation/publish-first-schema-version-ui.png' import publishSecondSchemaVersionUi from '../../../../public/docs/pages/get-started/apollo-federation/publish-second-schema-version-ui.png' import publishThirdSchemaVersionUi from '../../../../public/docs/pages/get-started/apollo-federation/publish-third-schema-version-ui.png' -import registryTokenSettings from '../../../../public/docs/pages/get-started/apollo-federation/registry-token-settings.png' -import targetOverview from '../../../../public/docs/pages/get-started/apollo-federation/target-overview.png' # Get started with Apollo Federation @@ -115,11 +111,7 @@ As you may have noticed, Hive has created three targets under your project: `dev `staging`, and `production`. Each of these targets represent a different environment. You can remove or create new targets as needed, for modelling the different environments of your project. - +![Project overview showing the available targets](/docs/pages/get-started/apollo-federation/target-overview.png) For this guide we will use the `development` target. @@ -129,29 +121,17 @@ access token with the necessary permissions for the Hive CLI. Select the `development` target under your Hive project and then choose the **Settings** tab. On the Settings screen, you can manage your target's settings and access tokens. - +![Target settings for registry token management](/docs/pages/get-started/apollo-federation/registry-token-settings.png) Under the **Registry Access Tokens** section, click the **Create new registry token** button. Give your access token a name and select **Read & Write** for the permissions: - +![Create Registry Token Form](/docs/pages/get-started/apollo-federation/create-access-token.png) Click on **Generate Token** button and you should get your CLI token created, with permissions to publish GraphQL schemas. - +![Created Registry Token Form](/docs/pages/get-started/apollo-federation/created-access-token.png) Make sure to copy your token and keep it safe. **You won't be able to see it again.** From 31fadd229aa2ee89778bb013df05e103ff454075 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 16:09:25 +0700 Subject: [PATCH 16/40] fix images on mobile [skip ci] --- .../docs/get-started/apollo-federation.mdx | 67 +++---------------- 1 file changed, 9 insertions(+), 58 deletions(-) diff --git a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx index 19972a09cf..263a0863e7 100644 --- a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx +++ b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx @@ -1,11 +1,4 @@ -import NextImage from 'next/image' import { Callout, Cards, FileTree, Steps, Tabs } from '@theguild/components' -import cdnAccessTokenSettings from '../../../../public/docs/pages/get-started/apollo-federation/cdn-access-token-settings.png' -import cdnAccessTokenCreate from '../../../../public/docs/pages/get-started/apollo-federation/create-cdn-access-token.png' -import cdnAccessTokenCreated from '../../../../public/docs/pages/get-started/apollo-federation/created-cdn-access-token.png' -import publishFirstSchemaVersionUi from '../../../../public/docs/pages/get-started/apollo-federation/publish-first-schema-version-ui.png' -import publishSecondSchemaVersionUi from '../../../../public/docs/pages/get-started/apollo-federation/publish-second-schema-version-ui.png' -import publishThirdSchemaVersionUi from '../../../../public/docs/pages/get-started/apollo-federation/publish-third-schema-version-ui.png' # Get started with Apollo Federation @@ -215,11 +208,7 @@ schema version on the Hive dashboard. If you'll get to your target's page on Hive dashboard, you should see that it was updated with the new schema you just published 🎉 - +![First published schema version on the Hive dashboard](/docs/pages/get-started/apollo-federation/publish-first-schema-version-ui.png) You should also check out the **Explorer** tab: you can see the schema you just published, and @@ -295,11 +284,7 @@ If everything goes well, you should see the following output: After the publish process, if we had over to the Hive dashboard, we can see our new schema version published. - +![Second published schema version on the Hive dashboard](/docs/pages/get-started/apollo-federation/publish-second-schema-version-ui.png) Last, we will publish the **Reviews** subgraph schema to Hive. Again, let's start by copying the schema to a local file. @@ -371,11 +356,7 @@ Again, if everything goes well, you should see the following output: On your target's **Explorer** page now, you'll be able to see the schema of all three subgraphs 🎉 - +![Third published schema version on the Hive dashboard](/docs/pages/get-started/apollo-federation/publish-third-schema-version-ui.png) Congratulations on publishing and composing your first subgraphs with the Hive schema registry! @@ -420,28 +401,16 @@ For accessing the supergraph, we need to create the CDN access token from the Hi Navigate to your target's settings page and select the **CDN Tokens** tab. - +![CDN Token Form](/docs/pages/get-started/apollo-federation/cdn-access-token-settings.png) Click the **Create new CDN token** button, give your token a name and click **Create**. - +![CDN Token Form](/docs/pages/get-started/apollo-federation/create-cdn-access-token.png) There will be a confirmation screen showing the CDN token you just created. Make sure to copy it and keep it safe. - +![CDN Token Form](/docs/pages/get-started/apollo-federation/created-cdn-access-token.png) #### Run the Gateway @@ -528,24 +497,12 @@ npx hive-gateway supergraph \ If you now navigate to `http://localhost:4000`, you should see the Hive Gateway page with information about the supergraph and subgraphs. -import HiveGatewayLandingPageImage from '../../../../public/docs/pages/get-started/apollo-federation/hive-gateway-landing-page.png' - - +![Hive Gateway Landing Page](/docs/pages/get-started/apollo-federation/hive-gateway-landing-page.png) Now, if you navigate to `http://localhost:4000/graphql`, you should see the GraphiQL interface where you can write and execute queries against the supergraph. -import HiveGatewayGraphiqlImage from '../../../../public/docs/pages/get-started/apollo-federation/hive-gateway-graphiql.png' - - +![Hive Gateway GraphiQL](/docs/pages/get-started/apollo-federation/hive-gateway-graphiql.png) Here you can execute GraphQL operations against the supergraph, which will be delegate to the single subgraph services. @@ -669,13 +626,7 @@ query TopProductsWithReview { After executing the query, a few times, let's switch back to the Hive dashboard and navigate to the insights page. -import HiveDashboardInsightsImage from '../../../../public/docs/pages/get-started/apollo-federation/hive-dashboard-insights.png' - - +![Hive Gateway GraphiQL](/docs/pages/get-started/apollo-federation/hive-dashboard-insights.png) Here we can now see the GraphQL operations from our Gateway being reported to the registry. From 6120184ba1e790908c892458398f0707c40293bb Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 16:16:45 +0700 Subject: [PATCH 17/40] fix images on mobile [skip ci] --- .../web/docs/src/pages/docs/get-started/apollo-federation.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx index 263a0863e7..cee6729427 100644 --- a/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx +++ b/packages/web/docs/src/pages/docs/get-started/apollo-federation.mdx @@ -415,7 +415,7 @@ keep it safe. #### Run the Gateway Hive Gateway is the Federation Gateway that seamlessly integrates with the Hive registry. You can -run Hive Gateay either as a Docker image, binary or NPM package. +run Hive Gateway either as a Docker image, binary or NPM package. From c7fa84e3fdf86548bc30c11a6c1be9de8c3b4815 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 16:20:00 +0700 Subject: [PATCH 18/40] fix images on mobile [skip ci] --- packages/web/docs/src/pages/docs/management/organizations.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/organizations.mdx b/packages/web/docs/src/pages/docs/management/organizations.mdx index 30867809a2..157bda4473 100644 --- a/packages/web/docs/src/pages/docs/management/organizations.mdx +++ b/packages/web/docs/src/pages/docs/management/organizations.mdx @@ -168,8 +168,8 @@ subscription at any time. If you wish to upgrade your plan, you can choose between the **Pro** and **Enterprise** plans. -For the **Pro** plan, you can use a credit-card and pay monthly for the resevered quota that works -for your needs. You can modify your plan and resevered quota any time during the month. +For the **Pro** plan, you can use a credit-card and pay monthly for the reserved quota that works +for your needs. You can modify your plan and reserved quota any time during the month. Date: Fri, 6 Dec 2024 16:27:51 +0700 Subject: [PATCH 19/40] fix images on mobile [skip ci] --- .../docs/management/sso-oidc-provider.mdx | 39 ++++--------------- 1 file changed, 7 insertions(+), 32 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 7c8c9e5dd4..d284826747 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -17,17 +17,12 @@ import azureAdNewApp from '../../../../public/docs/pages/management/sso/azure-ad import azureAdAppRegister from '../../../../public/docs/pages/management/sso/azure-ad-register-application.webp' import azureAdEmail1 from '../../../../public/docs/pages/management/sso/azure-ad-users-tab.webp' import azureAdEmail2 from '../../../../public/docs/pages/management/sso/azure-ad-users-table.webp' -import oktaControlledImage from '../../../../public/docs/pages/management/sso/controlled-access-of-okta-app.webp' -import oktaAppIntegrationImage from '../../../../public/docs/pages/management/sso/create-new-app-integration-options.webp' import hiveOidcModalImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider-modal.png' import hiveOidcImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider.png' import hiveManageOidcImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-connect-modal.png' import hiveLoginUrlImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-okta-login-url.png' -import oktaAdminButtonImage from '../../../../public/docs/pages/management/sso/okta-admin-button.webp' -import oktaAppConfigClientIdImage from '../../../../public/docs/pages/management/sso/okta-app-config-client-id.webp' import oktaAppConfigClientSecretImage from '../../../../public/docs/pages/management/sso/okta-app-config-client-secret.webp' import oktaAppGeneralSettingsImage from '../../../../public/docs/pages/management/sso/okta-app-general-settings-section.webp' -import oktaCreateAppImage from '../../../../public/docs/pages/management/sso/okta-create-app-integration.webp' # Single Sign On via OIDC (Open ID Connect Provider) @@ -120,47 +115,27 @@ organization's slug, and you will then be redirected to your OIDC provider. Once you're logged in to your account, click the **Admin** button in the header to navigate to the admin view. - +![Okta Admin Button](/docs/pages/management/sso/okta-admin-button.webp) After you're redirected click on the **Applications** tab in the sidebar then click on the **Create App Integration** button: - +![Okta Create App](/docs/pages/management/sso/okta-create-app-integration.webp) Choose **OIDC - OpenID Connect** as for the Sign-in method and **Web Application** for the **Application type**, then click **Next**. - +![Okta App Integration](/docs/pages/management/sso/create-new-app-integration-options.webp) Next you're gonna be able to customize your app's name and logo if you want to, then choose the option that suits you for the "Controlled access", I'm gonna go with "Allow everyone" as this's just a guide, after you're done click "Save". - +![Okta Controlled Access](/docs/pages/management/sso/controlled-access-of-okta-app.webp) From the Okta dashboard, grab and store the **Client ID** and **Client Secret**: - +![Okta Client ID](/docs/pages/management/sso/okta-app-config-client-id.webp) **Azure AD and `email` field access** - + Granting the permission for `email` unfortunately doesn't guarantee a successful login, because in Azure AD, the `email` field is marked as optional, while it's required for a successful integration with Hive. - + If your Azure AD members does not have the `email` field set, the login will fail. You can follow the steps in the screenshots below to be able to add an `email` for an existing user record. From 1ff85fc692ee255aef1448966f54412338a6cfb4 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 16:53:03 +0700 Subject: [PATCH 20/40] fix images on mobile [skip ci] --- .../pages/docs/management/sso-oidc-provider.mdx | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index d284826747..3297fea915 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -20,7 +20,6 @@ import azureAdEmail2 from '../../../../public/docs/pages/management/sso/azure-ad import hiveOidcModalImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider-modal.png' import hiveOidcImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider.png' import hiveManageOidcImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-connect-modal.png' -import hiveLoginUrlImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-okta-login-url.png' import oktaAppConfigClientSecretImage from '../../../../public/docs/pages/management/sso/okta-app-config-client-secret.webp' import oktaAppGeneralSettingsImage from '../../../../public/docs/pages/management/sso/okta-app-general-settings-section.webp' @@ -193,11 +192,7 @@ And congrats, you now have Okta connected! 🥳🎉 You can use the link provided in the modal left section to let your users login via Okta. - +![Hive Login URL](/docs/pages/management/sso/hive-manage-openid-okta-login-url.png) ### Azure @@ -269,7 +264,7 @@ And now you'd have to fill in a couple of inputs to connect your OpenID Azure AD className="mt-8 max-w-xl rounded-lg drop-shadow-md" /> -Now, reate a new client secret for your app by navigating as the screenshot illustrates then on the +Now, create a new client secret for your app by navigating as the screenshot illustrates then on the right panel add a description for your secret and configure your expiration configuration or leave it as the default recommended value which is `6 months`, then click **Add**: @@ -356,8 +351,4 @@ And congrats, you now have Azure AD connected! 🎉 You can use the link provided in the modal right section to let your users login via Azure AD. - +![Hive Login URL](/docs/pages/management/sso/hive-manage-openid-okta-login-url.png) From 4cf2790d5f99cc533c0c0b77e944f73f5c88e3d1 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 16:56:48 +0700 Subject: [PATCH 21/40] fix images on mobile [skip ci] --- .../docs/management/sso-oidc-provider.mdx | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 3297fea915..66c4436107 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -1,6 +1,5 @@ import NextImage from 'next/image' import { Callout, Steps } from '@theguild/components' -import azureAdAppAfterRegisterSidebar from '../../../../public/docs/pages/management/sso/azure-ad-after-going-back-choose-tab-in-sidebar.webp' import azureAddAppCreds from '../../../../public/docs/pages/management/sso/azure-ad-app-creds.webp' import azureAdAppSecret from '../../../../public/docs/pages/management/sso/azure-ad-app-new-client-secret.webp' import azureAdAppSecretValue from '../../../../public/docs/pages/management/sso/azure-ad-client-secret-value.webp' @@ -12,13 +11,11 @@ import azureAdPermissions3 from '../../../../public/docs/pages/management/sso/az import azureAdEmail4 from '../../../../public/docs/pages/management/sso/azure-ad-edit-user-email-field.webp' import azureAdEmail3 from '../../../../public/docs/pages/management/sso/azure-ad-edit-user-properties.webp' import azureAdEnterpriseApplication from '../../../../public/docs/pages/management/sso/azure-ad-enterprise-applications.webp' -import azureAdAppAfterRegister from '../../../../public/docs/pages/management/sso/azure-ad-go-back-after-app-registeration.webp' import azureAdNewApp from '../../../../public/docs/pages/management/sso/azure-ad-new-application-button.webp' import azureAdAppRegister from '../../../../public/docs/pages/management/sso/azure-ad-register-application.webp' import azureAdEmail1 from '../../../../public/docs/pages/management/sso/azure-ad-users-tab.webp' import azureAdEmail2 from '../../../../public/docs/pages/management/sso/azure-ad-users-table.webp' import hiveOidcModalImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider-modal.png' -import hiveOidcImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider.png' import hiveManageOidcImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-connect-modal.png' import oktaAppConfigClientSecretImage from '../../../../public/docs/pages/management/sso/okta-app-config-client-secret.webp' import oktaAppGeneralSettingsImage from '../../../../public/docs/pages/management/sso/okta-app-general-settings-section.webp' @@ -145,11 +142,7 @@ From the Okta dashboard, grab and store the **Client ID** and **Client Secret**: And now you're almost good to go with Okta's configuration, now head to your Hive organization settings tab and hit the **Connect Open ID Connect Provider** button - +![OIDC Provider in Hive](/docs/pages/management/sso/hive-connect-openid-provider.png) And now you'd have to fill in a couple of inputs to connect your OpenID Okta's provider as the following: @@ -234,27 +227,15 @@ navigating through the history structure from the top, then navigate to the **Ap tab from the right sidebar, and now you're gonna see your app in the applications list, so click on your app. - +![Azure AD](/docs/pages/management/sso/azure-ad-go-back-after-app-registeration.webp) - +![Azure AD](/docs/pages/management/sso/azure-ad-after-going-back-choose-tab-in-sidebar.webp) And from here, we now have most of the configuration details needed by Hive for SSO connection, so now head to your Hive's organization settings tab and hit the **Connect Open ID Connect Provider** button: - +![OIDC Provider in Hive](/docs/pages/management/sso/hive-connect-openid-provider.png) And now you'd have to fill in a couple of inputs to connect your OpenID Azure AD's provider. From 66daded1328b53c8b42687fa6b551ceced8e5e54 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 17:00:34 +0700 Subject: [PATCH 22/40] fix images on mobile [skip ci] --- .../src/pages/docs/management/sso-oidc-provider.mdx | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 66c4436107..74f07f8422 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -8,13 +8,9 @@ import azureAdPermissions1 from '../../../../public/docs/pages/management/sso/az import azureAdLogoutUrl from '../../../../public/docs/pages/management/sso/azure-ad-configure-logout-url.webp' import azureAdCreateApp from '../../../../public/docs/pages/management/sso/azure-ad-create-application-panel.webp' import azureAdPermissions3 from '../../../../public/docs/pages/management/sso/azure-ad-delegated-permissions.webp' -import azureAdEmail4 from '../../../../public/docs/pages/management/sso/azure-ad-edit-user-email-field.webp' -import azureAdEmail3 from '../../../../public/docs/pages/management/sso/azure-ad-edit-user-properties.webp' import azureAdEnterpriseApplication from '../../../../public/docs/pages/management/sso/azure-ad-enterprise-applications.webp' import azureAdNewApp from '../../../../public/docs/pages/management/sso/azure-ad-new-application-button.webp' import azureAdAppRegister from '../../../../public/docs/pages/management/sso/azure-ad-register-application.webp' -import azureAdEmail1 from '../../../../public/docs/pages/management/sso/azure-ad-users-tab.webp' -import azureAdEmail2 from '../../../../public/docs/pages/management/sso/azure-ad-users-table.webp' import hiveOidcModalImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider-modal.png' import hiveManageOidcImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-connect-modal.png' import oktaAppConfigClientSecretImage from '../../../../public/docs/pages/management/sso/okta-app-config-client-secret.webp' @@ -321,11 +317,10 @@ After you're done, click the **Add permissions** button. If your Azure AD members does not have the `email` field set, the login will fail. You can follow the steps in the screenshots below to be able to add an `email` for an existing user record. - - - - - +![Azure AD](/docs/pages/management/sso/azure-ad-users-tab.webp) +![Azure AD](/docs/pages/management/sso/azure-ad-users-table.webp) +![Azure AD](/docs/pages/management/sso/azure-ad-edit-user-properties.webp) +![Azure AD](/docs/pages/management/sso/azure-ad-edit-user-email-field.webp) And congrats, you now have Azure AD connected! 🎉 From 4d275533d5e64fe36b7c7ce1f65d1f441fae6348 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 17:01:43 +0700 Subject: [PATCH 23/40] fix images on mobile [skip ci] --- .../docs/management/sso-oidc-provider.mdx | 23 +++---------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 74f07f8422..4c182d6203 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -3,11 +3,8 @@ import { Callout, Steps } from '@theguild/components' import azureAddAppCreds from '../../../../public/docs/pages/management/sso/azure-ad-app-creds.webp' import azureAdAppSecret from '../../../../public/docs/pages/management/sso/azure-ad-app-new-client-secret.webp' import azureAdAppSecretValue from '../../../../public/docs/pages/management/sso/azure-ad-client-secret-value.webp' -import azureAdPermissions2 from '../../../../public/docs/pages/management/sso/azure-ad-configure-api-permissions-graph.webp' -import azureAdPermissions1 from '../../../../public/docs/pages/management/sso/azure-ad-configure-api-permissions.webp' import azureAdLogoutUrl from '../../../../public/docs/pages/management/sso/azure-ad-configure-logout-url.webp' import azureAdCreateApp from '../../../../public/docs/pages/management/sso/azure-ad-create-application-panel.webp' -import azureAdPermissions3 from '../../../../public/docs/pages/management/sso/azure-ad-delegated-permissions.webp' import azureAdEnterpriseApplication from '../../../../public/docs/pages/management/sso/azure-ad-enterprise-applications.webp' import azureAdNewApp from '../../../../public/docs/pages/management/sso/azure-ad-new-application-button.webp' import azureAdAppRegister from '../../../../public/docs/pages/management/sso/azure-ad-register-application.webp' @@ -292,23 +289,9 @@ bar and checking the checkboxes: After you're done, click the **Add permissions** button. - - - - - +![Azure AD](/docs/pages/management/sso/azure-ad-configure-api-permissions.webp) +![Azure AD](/docs/pages/management/sso/azure-ad-configure-api-permissions-graph.webp) +![Azure AD](/docs/pages/management/sso/azure-ad-delegated-permissions.webp) **Azure AD and `email` field access** From 0d70a50883c9baddde06f78dcaf7650a2c9a174b Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 17:03:51 +0700 Subject: [PATCH 24/40] fix images on mobile [skip ci] --- .../docs/management/sso-oidc-provider.mdx | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 4c182d6203..71b01b5226 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -1,9 +1,5 @@ import NextImage from 'next/image' import { Callout, Steps } from '@theguild/components' -import azureAddAppCreds from '../../../../public/docs/pages/management/sso/azure-ad-app-creds.webp' -import azureAdAppSecret from '../../../../public/docs/pages/management/sso/azure-ad-app-new-client-secret.webp' -import azureAdAppSecretValue from '../../../../public/docs/pages/management/sso/azure-ad-client-secret-value.webp' -import azureAdLogoutUrl from '../../../../public/docs/pages/management/sso/azure-ad-configure-logout-url.webp' import azureAdCreateApp from '../../../../public/docs/pages/management/sso/azure-ad-create-application-panel.webp' import azureAdEnterpriseApplication from '../../../../public/docs/pages/management/sso/azure-ad-enterprise-applications.webp' import azureAdNewApp from '../../../../public/docs/pages/management/sso/azure-ad-new-application-button.webp' @@ -242,21 +238,17 @@ Now, create a new client secret for your app by navigating as the screenshot ill right panel add a description for your secret and configure your expiration configuration or leave it as the default recommended value which is `6 months`, then click **Add**: - +![](/docs/pages/management/sso/azure-ad-app-new-client-secret.webp) Copy and store your client secret value. Make sure to copy the value immediately, as you're not gonna be able to see it again after navigating. - +![](/docs/pages/management/sso/azure-ad-client-secret-value.webp) Use the pointers in the screenshot to help you find your credentials to be able to fill Hive's connection inputs: - +![Azure AD](/docs/pages/management/sso/azure-ad-app-creds.webp) - **Token Endpoint**: From the screenshot above - **User Info Endpoint**: `https://graph.microsoft.com/oidc/userinfo` @@ -270,11 +262,7 @@ And we're almost done, go to the "**Authentication**" tab and scroll done to the logout URL**" section, and fill in the input with the following URL: `https://app.graphql-hive.com/logout`, then click **Save**. - +![Azure AD](/docs/pages/management/sso/azure-ad-configure-logout-url.webp) And for the last step, we need to add the permissions for Azure AD to be able to access the user info after authentication, so use the "**API permissions** section on AD portal, then click the From d75b4889c4aa92bea3e422723b2445a1f859ecbe Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 6 Dec 2024 17:05:18 +0700 Subject: [PATCH 25/40] fix images on mobile [skip ci] --- .../src/pages/docs/management/sso-oidc-provider.mdx | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 71b01b5226..0586731a23 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -4,7 +4,6 @@ import azureAdCreateApp from '../../../../public/docs/pages/management/sso/azure import azureAdEnterpriseApplication from '../../../../public/docs/pages/management/sso/azure-ad-enterprise-applications.webp' import azureAdNewApp from '../../../../public/docs/pages/management/sso/azure-ad-new-application-button.webp' import azureAdAppRegister from '../../../../public/docs/pages/management/sso/azure-ad-register-application.webp' -import hiveOidcModalImage from '../../../../public/docs/pages/management/sso/hive-connect-openid-provider-modal.png' import hiveManageOidcImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-connect-modal.png' import oktaAppConfigClientSecretImage from '../../../../public/docs/pages/management/sso/okta-app-config-client-secret.webp' import oktaAppGeneralSettingsImage from '../../../../public/docs/pages/management/sso/okta-app-general-settings-section.webp' @@ -136,11 +135,7 @@ settings tab and hit the **Connect Open ID Connect Provider** button And now you'd have to fill in a couple of inputs to connect your OpenID Okta's provider as the following: - +![OIDC Modal in Hive](/docs/pages/management/sso/hive-connect-openid-provider-modal.png) - **Token Endpoint**: `https://YOUR_OKTA_DOMAIN_HERE/oauth2/v1/token` - **User Info Endpoint**: `https://YOUR_OKTA_DOMAIN_HERE/oauth2/v1/userinfo` @@ -228,11 +223,7 @@ button: And now you'd have to fill in a couple of inputs to connect your OpenID Azure AD's provider. - +![OIDC Modal in Hive](/docs/pages/management/sso/hive-connect-openid-provider-modal.png) Now, create a new client secret for your app by navigating as the screenshot illustrates then on the right panel add a description for your secret and configure your expiration configuration or leave From 38029ccf27aae4f952bdffa493c0556a2565d521 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 17:00:41 +0700 Subject: [PATCH 26/40] fix images on mobile [skip ci] --- .../docs/management/sso-oidc-provider.mdx | 46 +++---------------- 1 file changed, 7 insertions(+), 39 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 0586731a23..1b72d98156 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -1,12 +1,4 @@ -import NextImage from 'next/image' import { Callout, Steps } from '@theguild/components' -import azureAdCreateApp from '../../../../public/docs/pages/management/sso/azure-ad-create-application-panel.webp' -import azureAdEnterpriseApplication from '../../../../public/docs/pages/management/sso/azure-ad-enterprise-applications.webp' -import azureAdNewApp from '../../../../public/docs/pages/management/sso/azure-ad-new-application-button.webp' -import azureAdAppRegister from '../../../../public/docs/pages/management/sso/azure-ad-register-application.webp' -import hiveManageOidcImage from '../../../../public/docs/pages/management/sso/hive-manage-openid-connect-modal.png' -import oktaAppConfigClientSecretImage from '../../../../public/docs/pages/management/sso/okta-app-config-client-secret.webp' -import oktaAppGeneralSettingsImage from '../../../../public/docs/pages/management/sso/okta-app-general-settings-section.webp' # Single Sign On via OIDC (Open ID Connect Provider) @@ -121,11 +113,7 @@ From the Okta dashboard, grab and store the **Client ID** and **Client Secret**: ![Okta Client ID](/docs/pages/management/sso/okta-app-config-client-id.webp) - +![Okta Client Secret](/docs/pages/management/sso/okta-app-config-client-secret.webp) And now you're almost good to go with Okta's configuration, now head to your Hive organization settings tab and hit the **Connect Open ID Connect Provider** button @@ -153,17 +141,9 @@ In your Okta's app SSO configuration and scroll down to the **General Settings** URI and the Sign-out redirect URI from Hive into their responding inputs and click **Save** when you're done. - +![Manage OIDC in Hive](/docs/pages/management/sso/hive-manage-openid-connect-modal.png) - +![Okta General Settings](/docs/pages/management/sso/okta-app-general-settings-section.webp) And congrats, you now have Okta connected! 🥳🎉 @@ -176,35 +156,23 @@ You can use the link provided in the modal left section to let your users login After you're logged in to [Azure Portal](https://portal.azure.com/), find the **Azure Entra ID**. On the left sidebar, click on the **Enterprise applications** under the **Manage** section: - +![Azure AD](/docs/pages/management/sso/azure-ad-enterprise-applications.webp) Then click on the **New Application** button and then click on the **Create your own application** button afterwards, you're gonna see the panel on the right where you should provide a name and select "**Register an application to integrate with Azure AD (App you're developing)**" as for the application purpose, then hit the **Create** button. - +![Azure AD](/docs/pages/management/sso/azure-ad-new-application-button.webp) - +![Azure AD](/docs/pages/management/sso/azure-ad-create-application-panel.webp) And now the last step to register your app is to define "**Who can use this application or access this API?**" according to your needs, then choose **Web** as for the selecting the platform and input `https://app.graphql-hive.com/auth/callback/oidc` in the input next to it, and finally click **Register**. - +![Azure AD](/docs/pages/management/sso/azure-ad-register-application.webp) Once you see the successfully created application popup, go back to your enterprise applications by navigating through the history structure from the top, then navigate to the **App registrations** From ca27982b2bd1f43e9425dccffdf80790c74de741 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 17:07:34 +0700 Subject: [PATCH 27/40] fix images on mobile [skip ci] --- .../pages/docs/management/organizations.mdx | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/organizations.mdx b/packages/web/docs/src/pages/docs/management/organizations.mdx index 157bda4473..efd92f6794 100644 --- a/packages/web/docs/src/pages/docs/management/organizations.mdx +++ b/packages/web/docs/src/pages/docs/management/organizations.mdx @@ -1,11 +1,8 @@ import NextImage from 'next/image' import { Callout, Tabs } from '@theguild/components' -import orgImage from '../../../../public/docs/pages/first-steps/org.png' -import newOrgImage from '../../../../public/docs/pages/management/create-an-organization-button.png' import orgCustomRoleImage from '../../../../public/docs/pages/management/org-custom-role.png' import orgInviteLinkImage from '../../../../public/docs/pages/management/org-invite-link.png' import orgInviteMemberImage from '../../../../public/docs/pages/management/org-invite-member.png' -import orgMembersImage from '../../../../public/docs/pages/management/org-members.png' import orgRolesImage from '../../../../public/docs/pages/management/org-roles.png' import slackIntegrationImage from '../../../../public/docs/pages/management/org-slack-integration.png' @@ -22,19 +19,11 @@ To create a new organization, [you use this page directly](https://app.graphql-h Alternatively, you can create a new Hive organization by clicking on your user profile and selecting **Switch organization**. From there, click on the **Create an organization** button. - +![Creating an organization](/docs/pages/management/create-an-organization-button.png) Follow the instructions and choose a unique slug for your organization: - +![Create Organization Form](/docs/pages/first-steps/org.png) ## Manage existing organization @@ -43,13 +32,9 @@ Follow the instructions and choose a unique slug for your organization: Under your organization's **Settings** page, you can manage, add, and remove members from your Hive organization. - +![Members of an Organization](/docs/pages/management/org-members.png) -To invite others to your organization, go to **Members** tab under your oganization. To invite a new +To invite others to your organization, go to **Members** tab under your organization. To invite a new member to your organization, write their email address and click on **Send an invite** button. Date: Mon, 9 Dec 2024 17:16:43 +0700 Subject: [PATCH 28/40] fix images on mobile [skip ci] --- .../web/docs/src/pages/docs/management/organizations.mdx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/organizations.mdx b/packages/web/docs/src/pages/docs/management/organizations.mdx index efd92f6794..5d833b8253 100644 --- a/packages/web/docs/src/pages/docs/management/organizations.mdx +++ b/packages/web/docs/src/pages/docs/management/organizations.mdx @@ -2,7 +2,6 @@ import NextImage from 'next/image' import { Callout, Tabs } from '@theguild/components' import orgCustomRoleImage from '../../../../public/docs/pages/management/org-custom-role.png' import orgInviteLinkImage from '../../../../public/docs/pages/management/org-invite-link.png' -import orgInviteMemberImage from '../../../../public/docs/pages/management/org-invite-member.png' import orgRolesImage from '../../../../public/docs/pages/management/org-roles.png' import slackIntegrationImage from '../../../../public/docs/pages/management/org-slack-integration.png' @@ -37,11 +36,7 @@ organization. To invite others to your organization, go to **Members** tab under your organization. To invite a new member to your organization, write their email address and click on **Send an invite** button. - +![Invite Member to Organization](/docs/pages/management/org-invite-member.png) The new member will receive an email inviting them to join Hive as a user, and this will add them as a member to your Hive organization. From 4ef4bcaacc30b518ef4700b7c6fa2e622b5f53bd Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 17:54:53 +0700 Subject: [PATCH 29/40] fix images on mobile [skip ci] --- .../pages/docs/management/organizations.mdx | 29 +++---------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/organizations.mdx b/packages/web/docs/src/pages/docs/management/organizations.mdx index 5d833b8253..272afa06ee 100644 --- a/packages/web/docs/src/pages/docs/management/organizations.mdx +++ b/packages/web/docs/src/pages/docs/management/organizations.mdx @@ -1,9 +1,4 @@ -import NextImage from 'next/image' import { Callout, Tabs } from '@theguild/components' -import orgCustomRoleImage from '../../../../public/docs/pages/management/org-custom-role.png' -import orgInviteLinkImage from '../../../../public/docs/pages/management/org-invite-link.png' -import orgRolesImage from '../../../../public/docs/pages/management/org-roles.png' -import slackIntegrationImage from '../../../../public/docs/pages/management/org-slack-integration.png' # Organization Management @@ -44,30 +39,18 @@ a member to your Hive organization. Once an invite has been created, you can also copy the personal invite link and share it directly using your preferred method: - +![Copy Invite Link](/docs/pages/management/org-invite-link.png) #### Roles There are two types of system roles in organizations: **Admin** and **Viewer**, but you can also define **custom roles**. - +![List of Roles](/docs/pages/management/org-roles.png) Custom roles can be created to provide more granular access to your organization's resources. - +![Custom role creator](/docs/pages/management/org-custom-role.png) ### Integrations @@ -84,11 +67,7 @@ your GraphQL schemas. Additionally, this integration can help you to collaborate more effectively with your team members, as you can share information and updates in real-time, ensuring that everyone is on the same page. - +![Hive and Slack Integration](/docs/pages/management/org-slack-integration.png) To activate this feature in your organization, go to the **Integrations** section of your **Settings** page, and click **Connect Slack** button. You'll get redirected to **Slack** to From 74fc2b38830d5e43a15561f723919cf65b307316 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 23:32:45 +0700 Subject: [PATCH 30/40] fix images on mobile [skip ci] --- packages/web/docs/package.json | 2 +- .../web/docs/src/components/screenshot.ts | 5 -- .../pages/docs/management/organizations.mdx | 2 +- packages/web/docs/src/theme.config.tsx | 14 ++++ pnpm-lock.yaml | 78 +++++++++---------- 5 files changed, 55 insertions(+), 46 deletions(-) delete mode 100644 packages/web/docs/src/components/screenshot.ts diff --git a/packages/web/docs/package.json b/packages/web/docs/package.json index 0555af9d91..f776884293 100644 --- a/packages/web/docs/package.json +++ b/packages/web/docs/package.json @@ -12,7 +12,7 @@ "@radix-ui/react-tabs": "1.1.1", "@radix-ui/react-tooltip": "1.1.3", "@tailwindcss/typography": "0.5.15", - "@theguild/components": "7.3.0", + "@theguild/components": "7.3.3", "clsx": "2.1.1", "date-fns": "4.1.0", "next": "14.2.18", diff --git a/packages/web/docs/src/components/screenshot.ts b/packages/web/docs/src/components/screenshot.ts deleted file mode 100644 index edf6f976b0..0000000000 --- a/packages/web/docs/src/components/screenshot.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { cloneElement, ReactElement } from 'react'; - -export function Screenshot({ children }: { children: ReactElement }) { - return cloneElement(children, { className: 'mt-6 rounded-lg drop-shadow-md' }); -} diff --git a/packages/web/docs/src/pages/docs/management/organizations.mdx b/packages/web/docs/src/pages/docs/management/organizations.mdx index 272afa06ee..35c03426ab 100644 --- a/packages/web/docs/src/pages/docs/management/organizations.mdx +++ b/packages/web/docs/src/pages/docs/management/organizations.mdx @@ -131,7 +131,7 @@ For the **Pro** plan, you can use a credit-card and pay monthly for the reserved for your needs. You can modify your plan and reserved quota any time during the month. window.$crisp?.push(['do', 'chat:open'])} > For the **Enterprise** plan, please reach our to us, and we'll be happy to help you with your diff --git a/packages/web/docs/src/theme.config.tsx b/packages/web/docs/src/theme.config.tsx index 50e2580b9f..4ade8a9387 100644 --- a/packages/web/docs/src/theme.config.tsx +++ b/packages/web/docs/src/theme.config.tsx @@ -10,6 +10,16 @@ import { import { isLandingPage, NavigationMenu } from './components/navigation-menu'; import { ProductUpdateBlogPostHeader } from './components/product-update-blog-post-header'; import { cn } from './lib'; +import NextImage, { ImageProps } from 'next/image' +import { FC } from 'react'; + +const Image: FC = (props) => { + const ComponentToUse = typeof props.src === 'object' ? NextImage : 'img'; + return ( + // @ts-expect-error -- fixme + + ); +} const HiveLogo = PRODUCTS.HIVE.logo; @@ -183,4 +193,8 @@ export default defineConfig({ description: 'Schema registry for your GraphQL workflows', websiteName: 'Hive', logo: , + components: { + // @ts-expect-error -- fixme + img: Image + }, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28fc9f21db..7094870adf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2021,8 +2021,8 @@ importers: specifier: 0.5.15 version: 0.5.15(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.11))(@types/node@22.9.3)(typescript@5.6.3))) '@theguild/components': - specifier: 7.3.0 - version: 7.3.0(@theguild/tailwind-config@0.6.0(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.11))(@types/node@22.9.3)(typescript@5.6.3))))(@types/react-dom@18.3.1)(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.11))(esbuild@0.23.1)) + specifier: 7.3.3 + version: 7.3.3(@theguild/tailwind-config@0.6.0(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.11))(@types/node@22.9.3)(typescript@5.6.3))))(@types/react-dom@18.3.1)(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.11))(esbuild@0.23.1)) clsx: specifier: 2.1.1 version: 2.1.1 @@ -4887,8 +4887,8 @@ packages: resolution: {integrity: sha512-lH8bYk2kqfbKsht/Gejd8K+y069ZXPHBfrlcj1ptS6xlJbHhncHxpFyy57W+PTuCcN+MPGVjs+3CiufG8EUrCQ==} engines: {node: '>= 10'} - '@next/bundle-analyzer@15.0.3': - resolution: {integrity: sha512-x7ZNvpoQPO0C5ZG//qVp21Qs3v6+C8LBJmdu9DKj4/NmjlnwoQ7dqRZ/nKZcwVhkFT7BHf+Qd5FaeHq9IDJvDQ==} + '@next/bundle-analyzer@15.0.4': + resolution: {integrity: sha512-0If3/mxqUWYC0lAdV5cChGA1Xs1BENjaLyJkdqpI2df86HqprcDZagiB2IU1xc5ph7xZHRdi5mT2cY7VkyibTQ==} '@next/env@13.5.6': resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==} @@ -7485,10 +7485,10 @@ packages: resolution: {integrity: sha512-kUiFyUQDiVdpeeL/qwOZAdDZrYFTwqppwNZDxOXcPSKeqGCZe8ajbbN64OAS7VlGMnXWxEEHcjhyFzB9gtHn5w==} hasBin: true - '@theguild/components@7.3.0': - resolution: {integrity: sha512-g1A2ux536gbbUcZePMtg711iC4oXgoTWEAwQW2mMIAM2I0EtPgXZeX9CYsIzHmQKLGKDEQGyEmLGGzlc9pu2yg==} + '@theguild/components@7.3.3': + resolution: {integrity: sha512-/DafpemXMV8wGLGhvdX1Is+uSoK8oK2Nl0sg70N3uA5XaRhtJKUF63i37zHRfdWVBsSYMNceLKd+w3tneD3FlA==} peerDependencies: - '@theguild/tailwind-config': 0.6.0 + '@theguild/tailwind-config': 0.6.1 next: ^13 || ^14 || ^15.0.0 react: ^18.2.0 react-dom: ^18.2.0 @@ -12674,16 +12674,16 @@ packages: sass: optional: true - nextra-theme-docs@3.2.4: - resolution: {integrity: sha512-3fg7zMHInuvSDURRJjh6UrbdqkK8uLs8RNriY38kVukWLvaVP2f6mmVJKIYqxVv6qAKWEzDLTr4dlJCY81eXuQ==} + nextra-theme-docs@3.2.5: + resolution: {integrity: sha512-eF0j1VNNS1rFjZOfYqlrXISaCU3+MhZ9hhXY+TUydRlfELrFWpGzrpW6MiL7hq4JvUR7OBtHHs8+A+8AYcETBQ==} peerDependencies: next: '>=13' - nextra: 3.2.4 + nextra: 3.2.5 react: '>=18' react-dom: '>=18' - nextra@3.2.4: - resolution: {integrity: sha512-xvQuPVtRoJTz4ynIbEkxYkEtviIX699lt4coij2IMmafYrBNaD0Ofj93jIz7VngYxyT9f4gWSiwqNgoIlnbsjQ==} + nextra@3.2.5: + resolution: {integrity: sha512-n665DRpI/brjHXM83G5LdlbYA2nOtjaLcWJs7mZS3gkuRDmEXpJj4XJ860xrhkYZW2iYoUMu32zzhPuFByU7VA==} engines: {node: '>=18'} peerDependencies: next: '>=13' @@ -16307,8 +16307,8 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0 - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16415,11 +16415,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.596.0': + '@aws-sdk/client-sso-oidc@3.596.0(@aws-sdk/client-sts@3.596.0)': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16458,6 +16458,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sts' - aws-crt '@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0)': @@ -16591,11 +16592,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)': + '@aws-sdk/client-sts@3.596.0': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16634,7 +16635,6 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - aws-crt '@aws-sdk/client-sts@3.693.0': @@ -16748,7 +16748,7 @@ snapshots: '@aws-sdk/credential-provider-ini@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/credential-provider-env': 3.587.0 '@aws-sdk/credential-provider-http': 3.596.0 '@aws-sdk/credential-provider-process': 3.587.0 @@ -16867,7 +16867,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity@3.587.0(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.8 '@smithy/types': 3.6.0 @@ -17042,7 +17042,7 @@ snapshots: '@aws-sdk/token-providers@3.587.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 @@ -20040,7 +20040,7 @@ snapshots: '@napi-rs/simple-git-win32-arm64-msvc': 0.1.17 '@napi-rs/simple-git-win32-x64-msvc': 0.1.17 - '@next/bundle-analyzer@15.0.3': + '@next/bundle-analyzer@15.0.4': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: @@ -23465,18 +23465,18 @@ snapshots: typescript: 4.9.5 yargs: 16.2.0 - '@theguild/components@7.3.0(@theguild/tailwind-config@0.6.0(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.11))(@types/node@22.9.3)(typescript@5.6.3))))(@types/react-dom@18.3.1)(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.11))(esbuild@0.23.1))': + '@theguild/components@7.3.3(@theguild/tailwind-config@0.6.0(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.11))(@types/node@22.9.3)(typescript@5.6.3))))(@types/react-dom@18.3.1)(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.11))(esbuild@0.23.1))': dependencies: '@giscus/react': 3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@next/bundle-analyzer': 15.0.3 + '@next/bundle-analyzer': 15.0.4 '@radix-ui/react-navigation-menu': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@theguild/tailwind-config': 0.6.0(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.11))(@types/node@22.9.3)(typescript@5.6.3))) clsx: 2.1.1 fuzzy: 0.1.3 next: 14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-videos: 1.5.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.11))(esbuild@0.23.1)) - nextra: 3.2.4(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - nextra-theme-docs: 3.2.4(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.2.4(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + nextra: 3.2.5(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + nextra-theme-docs: 3.2.5(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.2.5(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-paginate: 8.2.0(react@18.3.1) @@ -23515,8 +23515,8 @@ snapshots: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3) eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) eslint-config-prettier: 9.1.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) eslint-plugin-jsonc: 2.11.1(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) eslint-plugin-mdx: 3.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) @@ -26243,13 +26243,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): dependencies: debug: 4.3.7(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-core-module: 2.13.1 @@ -26280,14 +26280,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3) eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) transitivePeerDependencies: - supports-color @@ -26303,7 +26303,7 @@ snapshots: eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): dependencies: array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 @@ -26313,7 +26313,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.6.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -30031,7 +30031,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@3.2.4(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.2.4(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + nextra-theme-docs@3.2.5(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.2.5(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 @@ -30039,13 +30039,13 @@ snapshots: flexsearch: 0.7.43 next: 14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: 0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nextra: 3.2.4(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + nextra: 3.2.5(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) scroll-into-view-if-needed: 3.1.0 zod: 3.23.8 - nextra@3.2.4(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3): + nextra@3.2.5(@types/react@18.3.12)(next@14.2.18(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3): dependencies: '@formatjs/intl-localematcher': 0.5.5 '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) From 383cf19b4aa014cecbeb2c718bc3ee9af3eb1ed0 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 23:33:50 +0700 Subject: [PATCH 31/40] fix images on mobile --- .../docs/src/pages/docs/management/organizations.mdx | 4 ++-- .../src/pages/docs/management/sso-oidc-provider.mdx | 8 ++++++-- packages/web/docs/src/theme.config.tsx | 10 +++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/web/docs/src/pages/docs/management/organizations.mdx b/packages/web/docs/src/pages/docs/management/organizations.mdx index 35c03426ab..becf114e50 100644 --- a/packages/web/docs/src/pages/docs/management/organizations.mdx +++ b/packages/web/docs/src/pages/docs/management/organizations.mdx @@ -28,8 +28,8 @@ organization. ![Members of an Organization](/docs/pages/management/org-members.png) -To invite others to your organization, go to **Members** tab under your organization. To invite a new -member to your organization, write their email address and click on **Send an invite** button. +To invite others to your organization, go to **Members** tab under your organization. To invite a +new member to your organization, write their email address and click on **Send an invite** button. ![Invite Member to Organization](/docs/pages/management/org-invite-member.png) diff --git a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx index 1b72d98156..e3b36a4fd0 100644 --- a/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx +++ b/packages/web/docs/src/pages/docs/management/sso-oidc-provider.mdx @@ -243,14 +243,18 @@ After you're done, click the **Add permissions** button. **Azure AD and `email` field access** - Granting the permission for `email` unfortunately doesn't guarantee a successful login, because in Azure AD, the `email` field is marked as optional, while it's required for a successful integration with Hive. +Granting the permission for `email` unfortunately doesn't guarantee a successful login, because in +Azure AD, the `email` field is marked as optional, while it's required for a successful integration +with Hive. - If your Azure AD members does not have the `email` field set, the login will fail. You can follow the steps in the screenshots below to be able to add an `email` for an existing user record. +If your Azure AD members does not have the `email` field set, the login will fail. You can follow +the steps in the screenshots below to be able to add an `email` for an existing user record. ![Azure AD](/docs/pages/management/sso/azure-ad-users-tab.webp) ![Azure AD](/docs/pages/management/sso/azure-ad-users-table.webp) ![Azure AD](/docs/pages/management/sso/azure-ad-edit-user-properties.webp) ![Azure AD](/docs/pages/management/sso/azure-ad-edit-user-email-field.webp) + And congrats, you now have Azure AD connected! 🎉 diff --git a/packages/web/docs/src/theme.config.tsx b/packages/web/docs/src/theme.config.tsx index 4ade8a9387..7fc4fa1d6f 100644 --- a/packages/web/docs/src/theme.config.tsx +++ b/packages/web/docs/src/theme.config.tsx @@ -1,3 +1,5 @@ +import { FC } from 'react'; +import NextImage, { ImageProps } from 'next/image'; import { useRouter } from 'next/router'; import { defineConfig, @@ -10,16 +12,14 @@ import { import { isLandingPage, NavigationMenu } from './components/navigation-menu'; import { ProductUpdateBlogPostHeader } from './components/product-update-blog-post-header'; import { cn } from './lib'; -import NextImage, { ImageProps } from 'next/image' -import { FC } from 'react'; -const Image: FC = (props) => { +const Image: FC = props => { const ComponentToUse = typeof props.src === 'object' ? NextImage : 'img'; return ( // @ts-expect-error -- fixme ); -} +}; const HiveLogo = PRODUCTS.HIVE.logo; @@ -195,6 +195,6 @@ export default defineConfig({ logo: , components: { // @ts-expect-error -- fixme - img: Image + img: Image, }, }); From 4fe224c777c7a8647b9156bbd6f5a88144b51b8c Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 23:36:01 +0700 Subject: [PATCH 32/40] mt-6 is not needed --- packages/web/docs/src/theme.config.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/docs/src/theme.config.tsx b/packages/web/docs/src/theme.config.tsx index 7fc4fa1d6f..8b87e3ad10 100644 --- a/packages/web/docs/src/theme.config.tsx +++ b/packages/web/docs/src/theme.config.tsx @@ -17,7 +17,7 @@ const Image: FC = props => { const ComponentToUse = typeof props.src === 'object' ? NextImage : 'img'; return ( // @ts-expect-error -- fixme - + ); }; From e6e3480381acc455f8bc154a2a80c11b96c02141 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 23:48:22 +0700 Subject: [PATCH 33/40] f1x --- packages/web/docs/src/theme.config.tsx | 27 +++++++++++++------------- pnpm-lock.yaml | 20 +++++++++---------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/packages/web/docs/src/theme.config.tsx b/packages/web/docs/src/theme.config.tsx index 8b87e3ad10..104eb520c2 100644 --- a/packages/web/docs/src/theme.config.tsx +++ b/packages/web/docs/src/theme.config.tsx @@ -134,23 +134,24 @@ export default defineConfig({ return ( :first-child]:mx-0 [&>:first-child]:max-w-[90rem]', 'pt-[72px]', )} - resources={[ - { - children: 'Privacy Policy', - href: 'https://the-guild.dev/graphql/hive/privacy-policy.pdf', - title: 'Privacy Policy', - }, - { - children: 'Terms of Use', - href: 'https://the-guild.dev/graphql/hive/terms-of-use.pdf', - title: 'Terms of Use', - }, - ]} + items={{ + resources: [ + { + children: 'Privacy Policy', + href: 'https://the-guild.dev/graphql/hive/privacy-policy.pdf', + title: 'Privacy Policy', + }, + { + children: 'Terms of Use', + href: 'https://the-guild.dev/graphql/hive/terms-of-use.pdf', + title: 'Terms of Use', + }, + ] + }} /> ); }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7094870adf..12a77408f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16307,8 +16307,8 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16415,11 +16415,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.596.0(@aws-sdk/client-sts@3.596.0)': + '@aws-sdk/client-sso-oidc@3.596.0': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16458,7 +16458,6 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sts' - aws-crt '@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0)': @@ -16592,11 +16591,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.596.0': + '@aws-sdk/client-sts@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16635,6 +16634,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt '@aws-sdk/client-sts@3.693.0': @@ -16748,7 +16748,7 @@ snapshots: '@aws-sdk/credential-provider-ini@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/credential-provider-env': 3.587.0 '@aws-sdk/credential-provider-http': 3.596.0 '@aws-sdk/credential-provider-process': 3.587.0 @@ -16867,7 +16867,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity@3.587.0(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.8 '@smithy/types': 3.6.0 @@ -17042,7 +17042,7 @@ snapshots: '@aws-sdk/token-providers@3.587.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 From fe43aa6bd2032c11c16aa9a9031b6f1da67f7bd0 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Mon, 9 Dec 2024 23:55:00 +0700 Subject: [PATCH 34/40] fix lint --- .eslintrc.cjs | 2 +- packages/web/docs/src/theme.config.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 9450c82228..ffd696a751 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -224,7 +224,7 @@ module.exports = { }, tailwindcss: { callees: tailwindCallees, - whitelist: ['light', 'hive-focus', 'hive-focus-within'], + whitelist: ['light', 'hive-focus', 'hive-focus-within', '_text-primary-600'], config: path.join(__dirname, './packages/web/docs/tailwind.config.ts'), }, }, diff --git a/packages/web/docs/src/theme.config.tsx b/packages/web/docs/src/theme.config.tsx index 104eb520c2..06a9fc28ad 100644 --- a/packages/web/docs/src/theme.config.tsx +++ b/packages/web/docs/src/theme.config.tsx @@ -150,7 +150,7 @@ export default defineConfig({ href: 'https://the-guild.dev/graphql/hive/terms-of-use.pdf', title: 'Terms of Use', }, - ] + ], }} /> ); From 85b0fff5287b96c599bf88770f0068a3981c67b9 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 00:01:00 +0700 Subject: [PATCH 35/40] rerun --- packages/web/docs/src/theme.config.tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/web/docs/src/theme.config.tsx b/packages/web/docs/src/theme.config.tsx index 06a9fc28ad..eb5707c4e6 100644 --- a/packages/web/docs/src/theme.config.tsx +++ b/packages/web/docs/src/theme.config.tsx @@ -13,14 +13,6 @@ import { isLandingPage, NavigationMenu } from './components/navigation-menu'; import { ProductUpdateBlogPostHeader } from './components/product-update-blog-post-header'; import { cn } from './lib'; -const Image: FC = props => { - const ComponentToUse = typeof props.src === 'object' ? NextImage : 'img'; - return ( - // @ts-expect-error -- fixme - - ); -}; - const HiveLogo = PRODUCTS.HIVE.logo; const siteDescription = @@ -196,6 +188,12 @@ export default defineConfig({ logo: , components: { // @ts-expect-error -- fixme - img: Image, + img(props: ImageProps) { + const ComponentToUse = typeof props.src === 'object' ? NextImage : 'img'; + return ( + // @ts-expect-error -- fixme + + ); + }, }, }); From 5d53ce6a7252490e5a263a33c604b045579cda77 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 00:13:48 +0700 Subject: [PATCH 36/40] fix lint --- packages/web/docs/src/theme.config.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/web/docs/src/theme.config.tsx b/packages/web/docs/src/theme.config.tsx index eb5707c4e6..8cdb65a65a 100644 --- a/packages/web/docs/src/theme.config.tsx +++ b/packages/web/docs/src/theme.config.tsx @@ -1,4 +1,3 @@ -import { FC } from 'react'; import NextImage, { ImageProps } from 'next/image'; import { useRouter } from 'next/router'; import { From f4fed5b557b6a7a84038be4784768a5ec3fb4d72 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 00:37:27 +0700 Subject: [PATCH 37/40] fix lint --- .eslintrc.cjs | 9 +++++++++ .../docs/gateway/deployment/node-frameworks/fastify.mdx | 2 -- .../docs/gateway/deployment/node-frameworks/hapi.mdx | 2 -- .../docs/gateway/deployment/node-frameworks/koa.mdx | 2 -- .../docs/gateway/deployment/node-frameworks/nextjs.mdx | 2 -- .../gateway/deployment/node-frameworks/uwebsockets.mdx | 2 -- .../src/pages/docs/gateway/deployment/runtimes/bun.mdx | 2 -- .../src/pages/docs/gateway/deployment/runtimes/deno.mdx | 2 -- .../pages/docs/gateway/deployment/runtimes/nodejs.mdx | 2 -- packages/web/docs/src/pages/docs/gateway/index.mdx | 2 +- .../other-features/performance/upstream-cancellation.mdx | 4 +--- .../docs/gateway/other-features/security/cost-limit.mdx | 4 +--- .../gateway/other-features/security/csrf-prevention.mdx | 2 -- .../gateway/other-features/security/error-masking.mdx | 2 -- .../pages/docs/gateway/other-features/security/index.mdx | 4 +--- .../docs/gateway/other-features/security/max-aliases.mdx | 2 -- .../docs/gateway/other-features/security/max-depth.mdx | 2 -- .../gateway/other-features/security/max-directives.mdx | 2 -- .../docs/gateway/other-features/security/max-tokens.mdx | 2 -- .../gateway/other-features/security/rate-limiting.mdx | 4 +--- .../pages/docs/gateway/other-features/testing/index.mdx | 2 -- .../docs/gateway/other-features/testing/snapshot.mdx | 2 -- .../docs/src/pages/docs/gateway/persisted-documents.mdx | 2 +- packages/web/docs/src/pages/oss-friends.mdx | 1 - packages/web/docs/tailwind.config.ts | 1 + packages/web/docs/tsconfig.json | 4 ++-- 26 files changed, 18 insertions(+), 49 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index ffd696a751..54cf86359f 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -237,6 +237,15 @@ module.exports = { sourceType: 'module', }, rules: { + 'import/no-duplicates': 'error', + 'react/jsx-uses-vars': 'error', // should be enabled, otherwise @typescript-eslint/no-unused-vars gives false positive + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', // allow underscores in destructuring + }, + ], 'no-restricted-imports': [ 'error', { diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/fastify.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/fastify.mdx index e12ca91c68..6b4b0e12f9 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/fastify.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/fastify.mdx @@ -4,8 +4,6 @@ description: powerful framework that is easy to learn and use. --- -import { Callout } from '@theguild/components' - # Integration with Fastify [Fastify is one of the popular HTTP server frameworks for Node.js.](https://www.fastify.io/) It is a diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/hapi.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/hapi.mdx index 116886c683..0d5392213c 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/hapi.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/hapi.mdx @@ -1,5 +1,3 @@ -import { Callout } from '@theguild/components' - # Integration with Hapi [Hapi](https://hapi.dev) allows you to build powerful, scalable applications, with minimal overhead diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/koa.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/koa.mdx index 4224322fb9..8b71406111 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/koa.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/koa.mdx @@ -4,8 +4,6 @@ description: expressive, and more robust foundation for web applications and APIs. --- -import { Callout } from '@theguild/components' - # Integration with Koa [Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.](https://koajs.com) diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/nextjs.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/nextjs.mdx index bfe0ffa35b..a9615c3fca 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/nextjs.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/nextjs.mdx @@ -4,8 +4,6 @@ description: integrated with Next.js easily as an API Route. --- -import { Callout } from '@theguild/components' - # Integration with Next.js [Next.js](https://nextjs.org) is a web framework that allows you to build websites very quickly and diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/uwebsockets.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/uwebsockets.mdx index 9f09cca474..25360b5b26 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/uwebsockets.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/uwebsockets.mdx @@ -2,8 +2,6 @@ description: µWebSockets.js is an HTTP/WebSocket server for Node.js. --- -import { Callout } from '@theguild/components' - # Integration with µWebSockets.js [µWebSockets.js](https://github.com/uNetworking/uWebSockets.js) is an alternative to Node.js's diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/bun.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/bun.mdx index be344daf49..29afe9c55c 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/bun.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/bun.mdx @@ -4,8 +4,6 @@ description: platform besides Node.js. --- -import { Callout } from '@theguild/components' - # Integration with Bun Hive Gateway provides you a cross-platform GraphQL Server. So you can easily integrate it into any diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/deno.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/deno.mdx index 4b9c4b4155..d583821e1f 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/deno.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/deno.mdx @@ -4,8 +4,6 @@ description: platform besides Node.js. --- -import { Callout } from '@theguild/components' - # Integration with Deno Hive Gateway provides you a cross-platform GraphQL Server. So you can easily integrate it into any diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/nodejs.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/nodejs.mdx index 9856f0bfb6..472b113c7b 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/nodejs.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/runtimes/nodejs.mdx @@ -1,5 +1,3 @@ -import { Callout } from '@theguild/components' - # Node.js Node.js is the most common runtime for JavaScript. diff --git a/packages/web/docs/src/pages/docs/gateway/index.mdx b/packages/web/docs/src/pages/docs/gateway/index.mdx index b23f1007c5..c79e8f736a 100644 --- a/packages/web/docs/src/pages/docs/gateway/index.mdx +++ b/packages/web/docs/src/pages/docs/gateway/index.mdx @@ -4,7 +4,7 @@ description: Hive Gateway is the GraphQL federation Gateway and/or Proxy Gateway for your GraphQL services. --- -import { Callout, Cards, Tabs } from '@theguild/components' +import { Cards, Tabs } from '@theguild/components' # Hive Gateway diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/performance/upstream-cancellation.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/performance/upstream-cancellation.mdx index 9d73dbc3ae..292f5c0df2 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/performance/upstream-cancellation.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/performance/upstream-cancellation.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Upstream Cancellation This feature enables you to cancel the upstream HTTP requests when the client cancels the downstream @@ -11,7 +9,7 @@ GraphQL request. This can be useful when you want to save resources on your serv There is also [Execution Cancellation](/docs/gateway/other-features/performance/execution-cancellation) that stops -the execution, but it doesn't stop ongoing HTTP requests. This seperately allows you to stop the +the execution, but it doesn't stop ongoing HTTP requests. This separately allows you to stop the HTTP requests by hooking into [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). ## Enable Upstream Cancellation diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx index 436a7691b5..eb00de671d 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Cost Limit **Limit** the **complexity** of a GraphQL document by using @@ -42,7 +40,7 @@ export const gatewayConfig = defineConfig({ /* Advanced options (use here on your own risk) */ // Callbacks that are ran whenever a Query is accepted - onAccept: [] + onAccept: [], // Callbacks that are ran whenever a Query is rejected onReject: [] diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/csrf-prevention.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/csrf-prevention.mdx index 8258cb4bcd..3ced58032c 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/csrf-prevention.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/csrf-prevention.mdx @@ -5,8 +5,6 @@ description: searchable: false --- -import { Callout } from '@theguild/components' - # CSRF Prevention If you have CORS enabled, almost all requests coming from the browser will have a preflight diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/error-masking.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/error-masking.mdx index 8d045dc89e..df9f3a2522 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/error-masking.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/error-masking.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Error Masking Hive Gateway automatically masks unexpected errors and prevents leaking sensitive information to diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/index.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/index.mdx index 1dceca3667..43de864ada 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/index.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/index.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Secure your Gateway Building a secure GraphQL API is hard by design because of the “Graph” nature of GraphQL. Libraries @@ -102,7 +100,7 @@ sequence of characters into a sequence of lexical tokens. E.g. given the following GraphQL operation. ```graphql -graphql { +query { me { id user diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-aliases.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-aliases.mdx index e22b568034..fac5701b88 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-aliases.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-aliases.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Max Aliases **Limit** the number of **aliases** in a GraphQL document. diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-depth.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-depth.mdx index be98850f31..88a1c68e09 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-depth.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-depth.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Max Depth **Limit** the **depth** of a GraphQL document. diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-directives.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-directives.mdx index b54cd76a85..db7a70cc6a 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-directives.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-directives.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Max Directives **Limit** the number of **directives** in a GraphQL document. diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-tokens.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-tokens.mdx index b1ef483848..e65b120e76 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/max-tokens.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/max-tokens.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Max Tokens **Limit** the number of **tokens** in a GraphQL document. diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/rate-limiting.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/rate-limiting.mdx index ebc9d8f705..2089d97bfd 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/rate-limiting.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/rate-limiting.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Rate Limiting Rate limiting is a technique for reducing server load by limiting the number of requests that can be @@ -82,7 +80,7 @@ type Query { - `max`: Define the max number of calls to the given field per window. - `identityArgs`: If you wanted to limit the requests to a field per id, per user, use identityArgs - to define how the request should be identified. For example you'd provide just ["id"] if you + to define how the request should be identified. For example, you'd provide just ["id"] if you wanted to rate limit the access to a field by id. We use Lodash's get to access nested identity args, docs here. diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/testing/index.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/testing/index.mdx index b5d6787fda..f2539d6352 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/testing/index.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/testing/index.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Testing & Debugging Testing and debugging are essential parts of the development process. This section will help you diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/testing/snapshot.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/testing/snapshot.mdx index 2ce28d2d66..98a79fef57 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/testing/snapshot.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/testing/snapshot.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Snapshot Plugin The `snapshot` plugin allows applying snapshot for development usage. diff --git a/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx b/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx index d8c2ff4c14..af76ba47c5 100644 --- a/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx +++ b/packages/web/docs/src/pages/docs/gateway/persisted-documents.mdx @@ -2,7 +2,7 @@ title: 'Gateway: Persisted Documents / Operations' --- -import { Callout, Cards, Tabs } from '@theguild/components' +import { Callout, Tabs } from '@theguild/components' # Persisted Documents diff --git a/packages/web/docs/src/pages/oss-friends.mdx b/packages/web/docs/src/pages/oss-friends.mdx index ce2546344f..bc4237208d 100644 --- a/packages/web/docs/src/pages/oss-friends.mdx +++ b/packages/web/docs/src/pages/oss-friends.mdx @@ -3,7 +3,6 @@ title: Our Open Source Friends description: We love open source. Meet our friends who share the same passion. --- -import NextLink from 'next/link' import { useData } from '@theguild/components' import { OSSFriendsPage } from '../components/oss-friends' diff --git a/packages/web/docs/tailwind.config.ts b/packages/web/docs/tailwind.config.ts index 1aa60fa461..a834098563 100644 --- a/packages/web/docs/tailwind.config.ts +++ b/packages/web/docs/tailwind.config.ts @@ -3,6 +3,7 @@ import type { Config } from 'tailwindcss'; import tailwindcssAnimate from 'tailwindcss-animate'; import tailwindcssRadix from 'tailwindcss-radix'; import { fontFamily } from 'tailwindcss/defaultTheme'; +// @ts-expect-error -- no types import { default as flattenColorPalette } from 'tailwindcss/lib/util/flattenColorPalette'; import plugin from 'tailwindcss/plugin'; import tailwindTypography from '@tailwindcss/typography'; diff --git a/packages/web/docs/tsconfig.json b/packages/web/docs/tsconfig.json index 8433f8a200..22844e3932 100644 --- a/packages/web/docs/tsconfig.json +++ b/packages/web/docs/tsconfig.json @@ -9,7 +9,7 @@ "noEmit": true, "esModuleInterop": true, "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve", @@ -21,6 +21,6 @@ ], "strictNullChecks": true }, - "include": ["next-env.d.ts", "src", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] } From eb3319189884ee58c9bedd737dcebcb628605a64 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 00:38:14 +0700 Subject: [PATCH 38/40] fix lint --- .../gateway/other-features/performance/deduplicate-request.mdx | 2 -- .../gateway/other-features/performance/request-batching.mdx | 2 -- .../gateway/other-features/security/block-field-suggestions.mdx | 2 -- packages/web/docs/src/pages/docs/gateway/usage-reporting.mdx | 2 +- 4 files changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/performance/deduplicate-request.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/performance/deduplicate-request.mdx index a0adf5cf7a..3e2776a733 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/performance/deduplicate-request.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/performance/deduplicate-request.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Deduplicate HTTP Requests Most of the time, your Hive Gateway will receive multiple requests for the same data. This can diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/performance/request-batching.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/performance/request-batching.mdx index 766b55cf23..2b0fc638c8 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/performance/request-batching.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/performance/request-batching.mdx @@ -5,8 +5,6 @@ description: searchable: false --- -import { Callout } from '@theguild/components' - # Request Batching Batching is the process of taking a group of requests, combining them into one, and making a single diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/block-field-suggestions.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/block-field-suggestions.mdx index 6868c059d2..2be90af94a 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/block-field-suggestions.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/block-field-suggestions.mdx @@ -2,8 +2,6 @@ searchable: false --- -import { Callout } from '@theguild/components' - # Block Field Suggestions This is a feature that allows you to prevent **returning field suggestions** and **leaking your diff --git a/packages/web/docs/src/pages/docs/gateway/usage-reporting.mdx b/packages/web/docs/src/pages/docs/gateway/usage-reporting.mdx index 694c401fa0..3ef4513ba3 100644 --- a/packages/web/docs/src/pages/docs/gateway/usage-reporting.mdx +++ b/packages/web/docs/src/pages/docs/gateway/usage-reporting.mdx @@ -1,4 +1,4 @@ -import { Callout, Cards, Tabs } from '@theguild/components' +import { Tabs } from '@theguild/components' # Usage Reporting From be59552cc4fe05626c030a42c1c3d7883bf63beb Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 00:38:56 +0700 Subject: [PATCH 39/40] fix lint --- .../pages/docs/gateway/deployment/node-frameworks/express.mdx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/express.mdx b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/express.mdx index 70e7b9ec10..6530a6a14f 100644 --- a/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/express.mdx +++ b/packages/web/docs/src/pages/docs/gateway/deployment/node-frameworks/express.mdx @@ -4,8 +4,6 @@ description: a robust set of features to handle HTTP on Node.js applications. --- -import { Callout } from '@theguild/components' - # Integration with Express [Express is the most popular web framework for Node.js.](https://expressjs.com/) It is a minimalist @@ -65,7 +63,7 @@ const app = express() const serveRuntime = createGatewayRuntime(/* Your configuration */) const hiveGWRouter = express.Router() -// GraphiQL specefic CSP configuration +// GraphiQL specific CSP configuration hiveGWRouter.use( helmet({ contentSecurityPolicy: { From 87fffe32a1074ba58f9af5333379fb1d9b57ed8f Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 00:39:21 +0700 Subject: [PATCH 40/40] prettier --- .../other-features/security/cost-limit.mdx | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx b/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx index eb00de671d..0bcdb339c6 100644 --- a/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx +++ b/packages/web/docs/src/pages/docs/gateway/other-features/security/cost-limit.mdx @@ -16,35 +16,35 @@ npm install @escape.tech/graphql-armor-cost-limit Then, add it to your plugins: ```ts filename="gateway.config.ts" -import {defineConfig} from '@graphql-hive/gateway'; -import { costLimitPlugin } from '@escape.tech/graphql-armor-cost-limit'; +import { costLimitPlugin } from '@escape.tech/graphql-armor-cost-limit' +import { defineConfig } from '@graphql-hive/gateway' export const gatewayConfig = defineConfig({ plugins: () => [ costLimitPlugin({ - // Toogle the plugin | default: true - enabled: true, - // Cost allowed for the query | default: 5000 - maxCost: 5000, - // Static cost of an object | default: 2 - objectCost: 2, - // Static cost of a field | default: 1 - scalarCost: 1, - // Factorial applied to nested operator | default: 1.5 - depthCostFactor: 1.5, - // Ignore the cost of introspection queries | default: true - ignoreIntrospection: true, - // Do you want to propagate the rejection to the client? | default: true - propagateOnRejection: true, - - /* Advanced options (use here on your own risk) */ - - // Callbacks that are ran whenever a Query is accepted - onAccept: [], - - // Callbacks that are ran whenever a Query is rejected - onReject: [] - }), + // Toogle the plugin | default: true + enabled: true, + // Cost allowed for the query | default: 5000 + maxCost: 5000, + // Static cost of an object | default: 2 + objectCost: 2, + // Static cost of a field | default: 1 + scalarCost: 1, + // Factorial applied to nested operator | default: 1.5 + depthCostFactor: 1.5, + // Ignore the cost of introspection queries | default: true + ignoreIntrospection: true, + // Do you want to propagate the rejection to the client? | default: true + propagateOnRejection: true, + + /* Advanced options (use here on your own risk) */ + + // Callbacks that are ran whenever a Query is accepted + onAccept: [], + + // Callbacks that are ran whenever a Query is rejected + onReject: [] + }) ] -}); +}) ```