From 94d8514ed3192a1c82085b37208c761649b6743c Mon Sep 17 00:00:00 2001 From: Isaac Mann Date: Fri, 17 Nov 2023 13:28:11 -0500 Subject: [PATCH] docs(core): nx-cloud concepts section (#20250) --- docs/generated/manifests/cloud.json | 304 ++++++++++-------- docs/generated/manifests/menus.json | 260 ++++++++------- docs/generated/manifests/nx.json | 20 -- docs/generated/manifests/tags.json | 88 ++--- docs/map.json | 88 ++--- docs/nx-cloud/account/users.md | 16 - .../{account => concepts}/encryption.md | 0 .../{account => concepts}/scenarios.md | 0 docs/nx-cloud/private/auth-single-admin.md | 4 +- .../{account => recipes}/access-tokens.md | 0 .../{account => recipes}/google-auth.md | 0 .../{account => recipes}/google_oauth.png | Bin .../require-google-signin.webp | Bin .../require_google_signin.png | Bin docs/nx-cloud/tutorial/circle.md | 4 +- .../angular-tutorial/angular-monorepo.md | 2 +- .../concepts/improve-worst-case-ci-times.md | 2 +- .../distribute-task-execution.md | 4 +- .../guides/module-federation/faster-builds.md | 2 +- docs/shared/migration/from-turborepo.md | 2 +- docs/shared/migration/lerna-and-nx.md | 2 +- docs/shared/react-tutorial/react-monorepo.md | 2 +- docs/shared/reference/sitemap.md | 16 +- nx-dev/data-access-menu/src/lib/menu.utils.ts | 2 +- .../src/nx-cloud-documentation.spec.ts | 12 +- nx-dev/nx-dev/redirect-rules.js | 7 + 26 files changed, 433 insertions(+), 404 deletions(-) delete mode 100644 docs/nx-cloud/account/users.md rename docs/nx-cloud/{account => concepts}/encryption.md (100%) rename docs/nx-cloud/{account => concepts}/scenarios.md (100%) rename docs/nx-cloud/{account => recipes}/access-tokens.md (100%) rename docs/nx-cloud/{account => recipes}/google-auth.md (100%) rename docs/nx-cloud/{account => recipes}/google_oauth.png (100%) rename docs/nx-cloud/{account => recipes}/require-google-signin.webp (100%) rename docs/nx-cloud/{account => recipes}/require_google_signin.png (100%) diff --git a/docs/generated/manifests/cloud.json b/docs/generated/manifests/cloud.json index 7dfb92b8a3b73..b014befdd5eee 100644 --- a/docs/generated/manifests/cloud.json +++ b/docs/generated/manifests/cloud.json @@ -15,16 +15,6 @@ "path": "/nx-cloud/intro/ci-with-nx", "tags": [] }, - { - "id": "nx-cloud-workflows", - "name": "Nx Cloud Workflows", - "description": "", - "file": "nx-cloud/intro/nx-cloud-workflows", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/intro/nx-cloud-workflows", - "tags": [] - }, { "id": "tutorials", "name": "Tutorials", @@ -61,16 +51,6 @@ "path": "/nx-cloud/intro/ci-with-nx", "tags": [] }, - "/nx-cloud/intro/nx-cloud-workflows": { - "id": "nx-cloud-workflows", - "name": "Nx Cloud Workflows", - "description": "", - "file": "nx-cloud/intro/nx-cloud-workflows", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/intro/nx-cloud-workflows", - "tags": [] - }, "/nx-cloud/intro/tutorials": { "id": "tutorials", "name": "Tutorials", @@ -147,6 +127,16 @@ "isExternal": false, "path": "/nx-cloud/features/on-premise", "tags": ["on-premise"] + }, + { + "id": "nx-cloud-workflows", + "name": "Nx Cloud Workflows", + "description": "", + "file": "nx-cloud/intro/nx-cloud-workflows", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/nx-cloud-workflows", + "tags": [] } ], "isExternal": false, @@ -193,6 +183,87 @@ "path": "/nx-cloud/features/on-premise", "tags": ["on-premise"] }, + "/nx-cloud/features/nx-cloud-workflows": { + "id": "nx-cloud-workflows", + "name": "Nx Cloud Workflows", + "description": "", + "file": "nx-cloud/intro/nx-cloud-workflows", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/nx-cloud-workflows", + "tags": [] + }, + "/nx-cloud/concepts": { + "id": "concepts", + "name": "Concepts", + "description": "Learn how to manage Nx Cloud subscriptions and other options.", + "file": "", + "itemList": [ + { + "id": "dte", + "name": "Improve Worst Case CI Times", + "description": "", + "file": "shared/concepts/improve-worst-case-ci-times", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/concepts/dte", + "tags": ["distribute-task-execution"] + }, + { + "id": "scenarios", + "name": "Security Scenarios", + "description": "", + "file": "nx-cloud/concepts/scenarios", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/concepts/scenarios", + "tags": [] + }, + { + "id": "encryption", + "name": "End to End Encryption", + "description": "", + "file": "nx-cloud/concepts/encryption", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/concepts/encryption", + "tags": [] + } + ], + "isExternal": false, + "path": "/nx-cloud/concepts", + "tags": [] + }, + "/nx-cloud/concepts/dte": { + "id": "dte", + "name": "Improve Worst Case CI Times", + "description": "", + "file": "shared/concepts/improve-worst-case-ci-times", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/concepts/dte", + "tags": ["distribute-task-execution"] + }, + "/nx-cloud/concepts/scenarios": { + "id": "scenarios", + "name": "Security Scenarios", + "description": "", + "file": "nx-cloud/concepts/scenarios", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/concepts/scenarios", + "tags": [] + }, + "/nx-cloud/concepts/encryption": { + "id": "encryption", + "name": "End to End Encryption", + "description": "", + "file": "nx-cloud/concepts/encryption", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/concepts/encryption", + "tags": [] + }, "/nx-cloud/recipes": { "id": "recipes", "name": "Recipes", @@ -280,6 +351,37 @@ "path": "/nx-cloud/recipes/set-up", "tags": [] }, + { + "id": "security", + "name": "Security", + "description": "Manage access to Nx Cloud", + "file": "", + "itemList": [ + { + "id": "google-auth", + "name": "Authenticate with Google Identity", + "description": "", + "file": "nx-cloud/recipes/google-auth", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/security/google-auth", + "tags": [] + }, + { + "id": "access-tokens", + "name": "Access Tokens", + "description": "", + "file": "nx-cloud/recipes/access-tokens", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/security/access-tokens", + "tags": [] + } + ], + "isExternal": false, + "path": "/nx-cloud/recipes/security", + "tags": [] + }, { "id": "source-control-integration", "name": "Source Control Integration", @@ -599,6 +701,57 @@ "path": "/nx-cloud/recipes/set-up/monorepo-ci-bitbucket-pipelines", "tags": [] }, + "/nx-cloud/recipes/security": { + "id": "security", + "name": "Security", + "description": "Manage access to Nx Cloud", + "file": "", + "itemList": [ + { + "id": "google-auth", + "name": "Authenticate with Google Identity", + "description": "", + "file": "nx-cloud/recipes/google-auth", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/security/google-auth", + "tags": [] + }, + { + "id": "access-tokens", + "name": "Access Tokens", + "description": "", + "file": "nx-cloud/recipes/access-tokens", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/security/access-tokens", + "tags": [] + } + ], + "isExternal": false, + "path": "/nx-cloud/recipes/security", + "tags": [] + }, + "/nx-cloud/recipes/security/google-auth": { + "id": "google-auth", + "name": "Authenticate with Google Identity", + "description": "", + "file": "nx-cloud/recipes/google-auth", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/security/google-auth", + "tags": [] + }, + "/nx-cloud/recipes/security/access-tokens": { + "id": "access-tokens", + "name": "Access Tokens", + "description": "", + "file": "nx-cloud/recipes/access-tokens", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/security/access-tokens", + "tags": [] + }, "/nx-cloud/recipes/source-control-integration": { "id": "source-control-integration", "name": "Source Control Integration", @@ -892,117 +1045,6 @@ "path": "/nx-cloud/recipes/other/ci-deployment", "tags": ["docker", "deploy"] }, - "/nx-cloud/account": { - "id": "account", - "name": "Account Management", - "description": "Learn how to manage Nx Cloud subscriptions and other options.", - "file": "", - "itemList": [ - { - "id": "users", - "name": "Users", - "description": "", - "file": "nx-cloud/account/users", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/users", - "tags": [] - }, - { - "id": "google-auth", - "name": "Authenticate with Google Identity", - "description": "", - "file": "nx-cloud/account/google-auth", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/google-auth", - "tags": [] - }, - { - "id": "access-tokens", - "name": "Access Tokens", - "description": "", - "file": "nx-cloud/account/access-tokens", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/access-tokens", - "tags": [] - }, - { - "id": "scenarios", - "name": "Security Scenarios", - "description": "", - "file": "nx-cloud/account/scenarios", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/scenarios", - "tags": [] - }, - { - "id": "encryption", - "name": "End to End Encryption", - "description": "", - "file": "nx-cloud/account/encryption", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/encryption", - "tags": [] - } - ], - "isExternal": false, - "path": "/nx-cloud/account", - "tags": [] - }, - "/nx-cloud/account/users": { - "id": "users", - "name": "Users", - "description": "", - "file": "nx-cloud/account/users", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/users", - "tags": [] - }, - "/nx-cloud/account/google-auth": { - "id": "google-auth", - "name": "Authenticate with Google Identity", - "description": "", - "file": "nx-cloud/account/google-auth", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/google-auth", - "tags": [] - }, - "/nx-cloud/account/access-tokens": { - "id": "access-tokens", - "name": "Access Tokens", - "description": "", - "file": "nx-cloud/account/access-tokens", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/access-tokens", - "tags": [] - }, - "/nx-cloud/account/scenarios": { - "id": "scenarios", - "name": "Security Scenarios", - "description": "", - "file": "nx-cloud/account/scenarios", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/scenarios", - "tags": [] - }, - "/nx-cloud/account/encryption": { - "id": "encryption", - "name": "End to End Encryption", - "description": "", - "file": "nx-cloud/account/encryption", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/account/encryption", - "tags": [] - }, "/nx-cloud/reference": { "id": "reference", "name": "Reference", diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index 183efa1ba9efa..0b3cbb5c17298 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -801,14 +801,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Improve Worst Case CI Times", - "path": "/concepts/dte", - "id": "dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "What is a Task Pipeline", "path": "/concepts/task-pipeline-configuration", @@ -1038,14 +1030,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Improve Worst Case CI Times", - "path": "/concepts/dte", - "id": "dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "What is a Task Pipeline", "path": "/concepts/task-pipeline-configuration", @@ -5549,14 +5533,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Nx Cloud Workflows", - "path": "/nx-cloud/intro/nx-cloud-workflows", - "id": "nx-cloud-workflows", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Tutorials", "path": "/nx-cloud/intro/tutorials", @@ -5585,14 +5561,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Nx Cloud Workflows", - "path": "/nx-cloud/intro/nx-cloud-workflows", - "id": "nx-cloud-workflows", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Tutorials", "path": "/nx-cloud/intro/tutorials", @@ -5655,6 +5623,14 @@ "isExternal": false, "children": [], "disableCollapsible": false + }, + { + "name": "Nx Cloud Workflows", + "path": "/nx-cloud/features/nx-cloud-workflows", + "id": "nx-cloud-workflows", + "isExternal": false, + "children": [], + "disableCollapsible": false } ], "disableCollapsible": false @@ -5691,6 +5667,71 @@ "children": [], "disableCollapsible": false }, + { + "name": "Nx Cloud Workflows", + "path": "/nx-cloud/features/nx-cloud-workflows", + "id": "nx-cloud-workflows", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Concepts", + "path": "/nx-cloud/concepts", + "id": "concepts", + "isExternal": false, + "children": [ + { + "name": "Improve Worst Case CI Times", + "path": "/nx-cloud/concepts/dte", + "id": "dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Security Scenarios", + "path": "/nx-cloud/concepts/scenarios", + "id": "scenarios", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "End to End Encryption", + "path": "/nx-cloud/concepts/encryption", + "id": "encryption", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Improve Worst Case CI Times", + "path": "/nx-cloud/concepts/dte", + "id": "dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Security Scenarios", + "path": "/nx-cloud/concepts/scenarios", + "id": "scenarios", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "End to End Encryption", + "path": "/nx-cloud/concepts/encryption", + "id": "encryption", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "Recipes", "path": "/nx-cloud/recipes", @@ -5762,6 +5803,31 @@ ], "disableCollapsible": false }, + { + "name": "Security", + "path": "/nx-cloud/recipes/security", + "id": "security", + "isExternal": false, + "children": [ + { + "name": "Authenticate with Google Identity", + "path": "/nx-cloud/recipes/security/google-auth", + "id": "google-auth", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Access Tokens", + "path": "/nx-cloud/recipes/security/access-tokens", + "id": "access-tokens", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, { "name": "Source Control Integration", "path": "/nx-cloud/recipes/source-control-integration", @@ -6017,6 +6083,47 @@ "children": [], "disableCollapsible": false }, + { + "name": "Security", + "path": "/nx-cloud/recipes/security", + "id": "security", + "isExternal": false, + "children": [ + { + "name": "Authenticate with Google Identity", + "path": "/nx-cloud/recipes/security/google-auth", + "id": "google-auth", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Access Tokens", + "path": "/nx-cloud/recipes/security/access-tokens", + "id": "access-tokens", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Authenticate with Google Identity", + "path": "/nx-cloud/recipes/security/google-auth", + "id": "google-auth", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Access Tokens", + "path": "/nx-cloud/recipes/security/access-tokens", + "id": "access-tokens", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "Source Control Integration", "path": "/nx-cloud/recipes/source-control-integration", @@ -6252,95 +6359,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Account Management", - "path": "/nx-cloud/account", - "id": "account", - "isExternal": false, - "children": [ - { - "name": "Users", - "path": "/nx-cloud/account/users", - "id": "users", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with Google Identity", - "path": "/nx-cloud/account/google-auth", - "id": "google-auth", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Access Tokens", - "path": "/nx-cloud/account/access-tokens", - "id": "access-tokens", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Security Scenarios", - "path": "/nx-cloud/account/scenarios", - "id": "scenarios", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "End to End Encryption", - "path": "/nx-cloud/account/encryption", - "id": "encryption", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Users", - "path": "/nx-cloud/account/users", - "id": "users", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with Google Identity", - "path": "/nx-cloud/account/google-auth", - "id": "google-auth", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Access Tokens", - "path": "/nx-cloud/account/access-tokens", - "id": "access-tokens", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Security Scenarios", - "path": "/nx-cloud/account/scenarios", - "id": "scenarios", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "End to End Encryption", - "path": "/nx-cloud/account/encryption", - "id": "encryption", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Reference", "path": "/nx-cloud/reference", diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index 29c7af28ba119..913e256909257 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -994,16 +994,6 @@ "path": "/concepts/types-of-configuration", "tags": [] }, - { - "id": "dte", - "name": "Improve Worst Case CI Times", - "description": "", - "file": "shared/concepts/improve-worst-case-ci-times", - "itemList": [], - "isExternal": false, - "path": "/concepts/dte", - "tags": ["distribute-task-execution"] - }, { "id": "task-pipeline-configuration", "name": "What is a Task Pipeline", @@ -1296,16 +1286,6 @@ "path": "/concepts/types-of-configuration", "tags": [] }, - "/concepts/dte": { - "id": "dte", - "name": "Improve Worst Case CI Times", - "description": "", - "file": "shared/concepts/improve-worst-case-ci-times", - "itemList": [], - "isExternal": false, - "path": "/concepts/dte", - "tags": ["distribute-task-execution"] - }, "/concepts/task-pipeline-configuration": { "id": "task-pipeline-configuration", "name": "What is a Task Pipeline", diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index 7c17d4b7bf7a1..1673af1bd2546 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -584,50 +584,6 @@ "path": "/concepts/integrated-vs-package-based" } ], - "distribute-task-execution": [ - { - "description": "", - "file": "shared/concepts/improve-worst-case-ci-times", - "id": "dte", - "name": "Improve Worst Case CI Times", - "path": "/concepts/dte" - }, - { - "description": "", - "file": "shared/concepts/illustrated-dte-guide", - "id": "illustrated-dte", - "name": "Illustrated Distributed Task Execution", - "path": "/concepts/more-concepts/illustrated-dte" - }, - { - "description": "", - "file": "", - "id": "nx-cloud-documentation", - "name": "Nx Cloud Documentation", - "path": "/nx-cloud/intro/ci-with-nx" - }, - { - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", - "file": "shared/core-features/distribute-task-execution", - "id": "distribute-task-execution", - "name": "Distribute Task Execution", - "path": "/nx-cloud/features/distribute-task-execution" - }, - { - "description": "", - "file": "shared/ci-overview", - "id": "ci-setup", - "name": "CI Setup", - "path": "/nx-cloud/recipes/set-up/ci-setup" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", - "id": "connect-to-nx-cloud", - "name": "connect-to-nx-cloud", - "path": "/nx-api/nx/documents/connect-to-nx-cloud" - } - ], "repository-types": [ { "description": "", @@ -748,6 +704,50 @@ "path": "/recipes/react/module-federation-with-ssr" } ], + "distribute-task-execution": [ + { + "description": "", + "file": "shared/concepts/illustrated-dte-guide", + "id": "illustrated-dte", + "name": "Illustrated Distributed Task Execution", + "path": "/concepts/more-concepts/illustrated-dte" + }, + { + "description": "", + "file": "", + "id": "nx-cloud-documentation", + "name": "Nx Cloud Documentation", + "path": "/nx-cloud/intro/ci-with-nx" + }, + { + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", + "file": "shared/core-features/distribute-task-execution", + "id": "distribute-task-execution", + "name": "Distribute Task Execution", + "path": "/nx-cloud/features/distribute-task-execution" + }, + { + "description": "", + "file": "shared/concepts/improve-worst-case-ci-times", + "id": "dte", + "name": "Improve Worst Case CI Times", + "path": "/nx-cloud/concepts/dte" + }, + { + "description": "", + "file": "shared/ci-overview", + "id": "ci-setup", + "name": "CI Setup", + "path": "/nx-cloud/recipes/set-up/ci-setup" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", + "id": "connect-to-nx-cloud", + "name": "connect-to-nx-cloud", + "path": "/nx-api/nx/documents/connect-to-nx-cloud" + } + ], "create-your-own-plugin": [ { "description": "", diff --git a/docs/map.json b/docs/map.json index 62a2d5d665179..4f9c43c4b060b 100644 --- a/docs/map.json +++ b/docs/map.json @@ -288,12 +288,6 @@ "id": "types-of-configuration", "file": "shared/concepts/types-of-configuration" }, - { - "name": "Improve Worst Case CI Times", - "tags": ["distribute-task-execution"], - "id": "dte", - "file": "shared/concepts/improve-worst-case-ci-times" - }, { "name": "What is a Task Pipeline", "tags": ["run-tasks", "use-task-executors"], @@ -1644,11 +1638,6 @@ "id": "ci-with-nx", "file": "nx-cloud/intro/ci-with-nx" }, - { - "name": "Nx Cloud Workflows", - "id": "nx-cloud-workflows", - "file": "nx-cloud/intro/nx-cloud-workflows" - }, { "name": "Tutorials", "id": "tutorials", @@ -1694,6 +1683,34 @@ "id": "on-premise", "tags": ["on-premise"], "file": "nx-cloud/private/get-started" + }, + { + "name": "Nx Cloud Workflows", + "id": "nx-cloud-workflows", + "file": "nx-cloud/intro/nx-cloud-workflows" + } + ] + }, + { + "name": "Concepts", + "id": "concepts", + "description": "Learn how to manage Nx Cloud subscriptions and other options.", + "itemList": [ + { + "name": "Improve Worst Case CI Times", + "tags": ["distribute-task-execution"], + "id": "dte", + "file": "shared/concepts/improve-worst-case-ci-times" + }, + { + "name": "Security Scenarios", + "id": "scenarios", + "file": "nx-cloud/concepts/scenarios" + }, + { + "name": "End to End Encryption", + "id": "encryption", + "file": "nx-cloud/concepts/encryption" } ] }, @@ -1745,6 +1762,23 @@ } ] }, + { + "name": "Security", + "id": "security", + "description": "Manage access to Nx Cloud", + "itemList": [ + { + "name": "Authenticate with Google Identity", + "id": "google-auth", + "file": "nx-cloud/recipes/google-auth" + }, + { + "name": "Access Tokens", + "id": "access-tokens", + "file": "nx-cloud/recipes/access-tokens" + } + ] + }, { "name": "Source Control Integration", "id": "source-control-integration", @@ -1834,38 +1868,6 @@ } ] }, - { - "name": "Account Management", - "id": "account", - "description": "Learn how to manage Nx Cloud subscriptions and other options.", - "itemList": [ - { - "name": "Users", - "id": "users", - "file": "nx-cloud/account/users" - }, - { - "name": "Authenticate with Google Identity", - "id": "google-auth", - "file": "nx-cloud/account/google-auth" - }, - { - "name": "Access Tokens", - "id": "access-tokens", - "file": "nx-cloud/account/access-tokens" - }, - { - "name": "Security Scenarios", - "id": "scenarios", - "file": "nx-cloud/account/scenarios" - }, - { - "name": "End to End Encryption", - "id": "encryption", - "file": "nx-cloud/account/encryption" - } - ] - }, { "name": "Reference", "id": "reference", diff --git a/docs/nx-cloud/account/users.md b/docs/nx-cloud/account/users.md deleted file mode 100644 index 1987e9a5df40c..0000000000000 --- a/docs/nx-cloud/account/users.md +++ /dev/null @@ -1,16 +0,0 @@ -# User Management - -## Managing Members - -You can use Nx Cloud organizations to manage permissions. - -When you create a new organization, you are its only member and admin. You can invite other users using their emails, or using an email domain, in which case everyone under the same domain can join the organization. You can also make sure that members have to log in using their external identity provider (e.g., Google). In this case, if a member loses access to their Google account they will automatically lose the ability to access Nx Cloud. - -You can set one of the two roles for everyone you invited: - -- Admin (can view runs and stats, edit organization/workspace, modify billing, invite other users, etc.) -- Member (can view runs and stats, but cannot make any changes to any of the workspaces) - -## Public Organizations - -Sometimes you don't have a known list of members (for instance, for an open-source project). In this case you can change the organization's type to "public". In a public organization, everyone (including those without an Nx Cloud account) can see and do everything an organization member can see and do. diff --git a/docs/nx-cloud/account/encryption.md b/docs/nx-cloud/concepts/encryption.md similarity index 100% rename from docs/nx-cloud/account/encryption.md rename to docs/nx-cloud/concepts/encryption.md diff --git a/docs/nx-cloud/account/scenarios.md b/docs/nx-cloud/concepts/scenarios.md similarity index 100% rename from docs/nx-cloud/account/scenarios.md rename to docs/nx-cloud/concepts/scenarios.md diff --git a/docs/nx-cloud/private/auth-single-admin.md b/docs/nx-cloud/private/auth-single-admin.md index 2324a8732b78a..97abed502bd39 100644 --- a/docs/nx-cloud/private/auth-single-admin.md +++ b/docs/nx-cloud/private/auth-single-admin.md @@ -10,14 +10,14 @@ a [video walkthrough of this](https://youtu.be/GT7XIwG1i5A?t=409). By default, when you connect your token to a workspace on your Nx Cloud web app, all links and runs are private to only members of your organisation. This means that you'll either need to explicitly add members, or make your organisation public (which means anyone with access to your Nx Cloud instance will be able to see your runs) -. [More details here.](/nx-cloud/account/users#managing-members) +. ## Setting up a single admin user If you just want to try out running Nx Cloud on prem and set up full membership management later, then the simplest option is to just set up a single admin user. This option might also work for you if you are okay -with [making your organisation public](/nx-cloud/account/users#public-organizations) to anyone that has access to your +with making your organisation public to anyone that has access to your Nx Cloud installation. To do that provision the `ADMIN_PASSWORD` env variable for the `nx-cloud-aggregator` container (if you are running Nx diff --git a/docs/nx-cloud/account/access-tokens.md b/docs/nx-cloud/recipes/access-tokens.md similarity index 100% rename from docs/nx-cloud/account/access-tokens.md rename to docs/nx-cloud/recipes/access-tokens.md diff --git a/docs/nx-cloud/account/google-auth.md b/docs/nx-cloud/recipes/google-auth.md similarity index 100% rename from docs/nx-cloud/account/google-auth.md rename to docs/nx-cloud/recipes/google-auth.md diff --git a/docs/nx-cloud/account/google_oauth.png b/docs/nx-cloud/recipes/google_oauth.png similarity index 100% rename from docs/nx-cloud/account/google_oauth.png rename to docs/nx-cloud/recipes/google_oauth.png diff --git a/docs/nx-cloud/account/require-google-signin.webp b/docs/nx-cloud/recipes/require-google-signin.webp similarity index 100% rename from docs/nx-cloud/account/require-google-signin.webp rename to docs/nx-cloud/recipes/require-google-signin.webp diff --git a/docs/nx-cloud/account/require_google_signin.png b/docs/nx-cloud/recipes/require_google_signin.png similarity index 100% rename from docs/nx-cloud/account/require_google_signin.png rename to docs/nx-cloud/recipes/require_google_signin.png diff --git a/docs/nx-cloud/tutorial/circle.md b/docs/nx-cloud/tutorial/circle.md index bf864f7ca1d6c..ba84ab6695f36 100644 --- a/docs/nx-cloud/tutorial/circle.md +++ b/docs/nx-cloud/tutorial/circle.md @@ -350,7 +350,7 @@ When Circle CI now processes our tasks they'll only take a fraction of the usual ![Circle CI after enabling remote caching](/nx-cloud/tutorial/circle-ci-remote-cache.png) -The commands could be restored from the remote cache because we had run them locally before pushing the changes, thus priming the cache with the results. You can **configure** whether local runs should be read-only or read/write. [Our docs page has more details on various scenarios](/nx-cloud/account/scenarios) and how to configure them. +The commands could be restored from the remote cache because we had run them locally before pushing the changes, thus priming the cache with the results. You can **configure** whether local runs should be read-only or read/write. [Our docs page has more details on various scenarios](/nx-cloud/concepts/scenarios) and how to configure them. You might also want to learn more about [how to fine-tune caching](/recipes/running-tasks/customizing-inputs) to get even better results. @@ -510,5 +510,5 @@ With this pipeline configuration in place, no matter how large the repository sc You now have a highly optimized CI configuration that will scale as your repository scales. See what else you can do with Nx Cloud. - Set up [GitHub PR integration](/nx-cloud/recipes/source-control-integration/github) to view Nx Cloud results directly in your PR -- Choose the [security scenario](/nx-cloud/account/scenarios) that makes sense for your organization +- Choose the [security scenario](/nx-cloud/concepts/scenarios) that makes sense for your organization - [Record non-Nx commands](/nx-cloud/recipes/other/record-commands) and view the results in the Nx Cloud interface diff --git a/docs/shared/angular-tutorial/angular-monorepo.md b/docs/shared/angular-tutorial/angular-monorepo.md index 9636bf69badc8..41a8757b9806f 100644 --- a/docs/shared/angular-tutorial/angular-monorepo.md +++ b/docs/shared/angular-tutorial/angular-monorepo.md @@ -981,7 +981,7 @@ Learn more about how to [enforce module boundaries](/core-features/enforce-modul ## Setting Up CI -Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/nx-cloud/features/affected) and Nx Cloud's [distributed caching](/nx-cloud/features/remote-cache). Nx also [decreases the worst case CI time](/concepts/dte) with Nx Cloud's distributed task execution. +Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/nx-cloud/features/affected) and Nx Cloud's [distributed caching](/nx-cloud/features/remote-cache). Nx also [decreases the worst case CI time](/nx-cloud/concepts/dte) with Nx Cloud's distributed task execution. To set up Nx Cloud run: diff --git a/docs/shared/concepts/improve-worst-case-ci-times.md b/docs/shared/concepts/improve-worst-case-ci-times.md index 984d0001ed18a..6335382f46a09 100644 --- a/docs/shared/concepts/improve-worst-case-ci-times.md +++ b/docs/shared/concepts/improve-worst-case-ci-times.md @@ -107,7 +107,7 @@ This approach fully optimizes the binning strategy so that tasks are optimally d ### 🎉 Pro: Easy to Scale -If CI is taking too long, simply increase the number of agent jobs being started in your CI system and Nx will recognize the new agent jobs are available and distribute tasks accordingly. With this approach, your worst case CI time is only limited by your longest running individual task. If you want Nx to automatically provision the agents for you, check out [Nx Cloud Workflows](/nx-cloud/intro/nx-cloud-workflows). +If CI is taking too long, simply increase the number of agent jobs being started in your CI system and Nx will recognize the new agent jobs are available and distribute tasks accordingly. With this approach, your worst case CI time is only limited by your longest running individual task. If you want Nx to automatically provision the agents for you, check out [Nx Cloud Workflows](/nx-cloud/features/nx-cloud-workflows). ### 🎉 Pro: Build Artifacts diff --git a/docs/shared/core-features/distribute-task-execution.md b/docs/shared/core-features/distribute-task-execution.md index 11da7c2a980ff..d616d1188cc27 100644 --- a/docs/shared/core-features/distribute-task-execution.md +++ b/docs/shared/core-features/distribute-task-execution.md @@ -25,7 +25,7 @@ When you set up Nx's distributed task execution, your task graph will look more And not only will CI finish faster, but the debugging experience is the same as if you ran all of your CI on a single job. That's because Nx uses distributed caching to recreate all of the logs and build artifacts on the main job. -Find more information in this [detailed guide to improve your worst case CI times](/concepts/dte). +Find more information in this [detailed guide to improve your worst case CI times](/nx-cloud/concepts/dte). ## Set up @@ -54,7 +54,7 @@ For existing workspaces you would probably want to adjust your configuration by Distributed task execution can work on any CI provider. You are responsible for launching jobs in your CI system. Nx Cloud then coordinates the way those jobs work together. There are two different kinds of jobs that you'll need to -create in your CI system. If you would like Nx Cloud to dynamically provision agents for you, check out [Nx Cloud Workflows](/nx-cloud/intro/nx-cloud-workflows) +create in your CI system. If you would like Nx Cloud to dynamically provision agents for you, check out [Nx Cloud Workflows](/nx-cloud/features/nx-cloud-workflows) 1. Main job that controls what is going to be executed 2. Multiple agent jobs that actually execute the tasks diff --git a/docs/shared/guides/module-federation/faster-builds.md b/docs/shared/guides/module-federation/faster-builds.md index 630c9d726e2bf..309a1bb6dcbc0 100644 --- a/docs/shared/guides/module-federation/faster-builds.md +++ b/docs/shared/guides/module-federation/faster-builds.md @@ -372,7 +372,7 @@ module.exports = withModuleFederation({ Now you can run `nx build host` to build all the `host` and all the implicit dependencies in production mode. {% callout type="note" title="Distributed caching" %} -Again, if you don't use [Nx Cloud's Distributed Tasks Execution](/concepts/dte) using Module Federation will be slower +Again, if you don't use [Nx Cloud's Distributed Tasks Execution](/nx-cloud/concepts/dte) using Module Federation will be slower than building everything in a single process. It's only if you enable Distributed Tasks Execution, your CI will be able to build each remote on a separate machine, in parallel, (or not build it at all and retrieve it from cache), which will reduce the CI time. diff --git a/docs/shared/migration/from-turborepo.md b/docs/shared/migration/from-turborepo.md index 70a7227472b38..d179d6e7fd03b 100644 --- a/docs/shared/migration/from-turborepo.md +++ b/docs/shared/migration/from-turborepo.md @@ -215,7 +215,7 @@ For each `turbo.json` configuration property, the equivalent Nx property is list | `--parallel` | N/A | | `--remote-only` | N/A. Can [ignore the remote cache](/nx-cloud/features/remote-cache#skipping-cloud) with `--no-cloud`. | | `--summarize` | N/A | -| `--token` | Set the [Nx Cloud token in `nx.json`](/nx-cloud/account/access-tokens#setting-access-tokens) or as an environment variable (`NX_CLOUD_ACCESS_TOKEN`) | +| `--token` | Set the [Nx Cloud token in `nx.json`](/nx-cloud/recipes/security/access-tokens#setting-access-tokens) or as an environment variable (`NX_CLOUD_ACCESS_TOKEN`) | | `--team` | See `--token` for choosing a different Nx Cloud workspace. You can [use `--runner`](/nx-api/nx/documents/run-many#runner) to choose a different runner defined in the `nx.json` file. | | `--preflight` | N/A | | `--trace` | N/A. [`--verbose`](/nx-api/nx/documents/run-many#verbose) for more logging. | diff --git a/docs/shared/migration/lerna-and-nx.md b/docs/shared/migration/lerna-and-nx.md index c885e172104b0..2867ac2a72eef 100644 --- a/docs/shared/migration/lerna-and-nx.md +++ b/docs/shared/migration/lerna-and-nx.md @@ -23,7 +23,7 @@ Nx comes with a powerful task scheduler that intelligently runs operations and m - **Parallelization and task dependencies -** Nx automatically [knows how your projects relate to each other](/concepts/more-concepts/how-project-graph-is-built). As a result, if `project-a` depends on `project-b` and you run the build command for `project-a`, Nx first runs the builds for all of `project-a`'s dependencies and then the invoked project itself. Nx sorts these tasks to maximize parallelism. - **Only run what changed -** Using [Nx affected commands](/nx-cloud/features/affected) you only really execute tasks on the projects that changed, compared to a given baseline (usually the main branch). - **Caching -** You get Nx's [computation caching](/concepts/how-caching-works) for free. All operations, including artifacts and terminal output are restored from the cache (if present) in a completely transparent way without disrupting your DX. No configuration needed. Obviously this results in an incredible speed improvement. -- **Distributed Task Execution -** This is unique to Nx. In combination with Nx Cloud your tasks are automatically distributed across CI agents, taking into account build order, maximizing parallelization and thus agent utilization. It even learns from previous runs to better distribute tasks! [Learn more](/concepts/dte) +- **Distributed Task Execution -** This is unique to Nx. In combination with Nx Cloud your tasks are automatically distributed across CI agents, taking into account build order, maximizing parallelization and thus agent utilization. It even learns from previous runs to better distribute tasks! [Learn more](/nx-cloud/concepts/dte) ## Integrating Nx with Lerna diff --git a/docs/shared/react-tutorial/react-monorepo.md b/docs/shared/react-tutorial/react-monorepo.md index eef38c8a2a3ec..e44e11575379b 100644 --- a/docs/shared/react-tutorial/react-monorepo.md +++ b/docs/shared/react-tutorial/react-monorepo.md @@ -997,7 +997,7 @@ Learn more about how to [enforce module boundaries](/core-features/enforce-modul ## Setting Up CI -Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/nx-cloud/features/affected) and Nx Cloud's [distributed caching](/nx-cloud/features/remote-cache). Nx also [decreases the worst case CI time](/concepts/dte) with Nx Cloud's distributed task execution. +Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/nx-cloud/features/affected) and Nx Cloud's [distributed caching](/nx-cloud/features/remote-cache). Nx also [decreases the worst case CI time](/nx-cloud/concepts/dte) with Nx Cloud's distributed task execution. To set up Nx Cloud run: diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index f14948ecdc02c..8064b12adf29e 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -47,7 +47,6 @@ - [Mental Model](/concepts/mental-model) - [How Caching Works](/concepts/how-caching-works) - [Types of Configuration](/concepts/types-of-configuration) - - [Improve Worst Case CI Times](/concepts/dte) - [What is a Task Pipeline](/concepts/task-pipeline-configuration) - [Integrated Repos vs. Package-Based Repos vs. Standalone Apps](/concepts/integrated-vs-package-based) - [Module Federation](/concepts/module-federation) @@ -266,7 +265,6 @@ - [Intro](/nx-cloud/intro) - [CI with Nx](/nx-cloud/intro/ci-with-nx) - - [Nx Cloud Workflows](/nx-cloud/intro/nx-cloud-workflows) - [Tutorials](/nx-cloud/intro/tutorials) - [Circle CI with Nx](/nx-cloud/intro/tutorials/circle) - [Features](/nx-cloud/features) @@ -274,6 +272,11 @@ - [Run Only Tasks Affected by a PR](/nx-cloud/features/affected) - [Distribute Task Execution](/nx-cloud/features/distribute-task-execution) - [Set up Nx Cloud On-Premise](/nx-cloud/features/on-premise) + - [Nx Cloud Workflows](/nx-cloud/features/nx-cloud-workflows) + - [Concepts](/nx-cloud/concepts) + - [Improve Worst Case CI Times](/nx-cloud/concepts/dte) + - [Security Scenarios](/nx-cloud/concepts/scenarios) + - [End to End Encryption](/nx-cloud/concepts/encryption) - [Recipes](/nx-cloud/recipes) - [Set Up CI](/nx-cloud/recipes/set-up) - [CI Setup](/nx-cloud/recipes/set-up/ci-setup) @@ -283,6 +286,9 @@ - [Setting up Jenkins](/nx-cloud/recipes/set-up/monorepo-ci-jenkins) - [Setting up GitLab](/nx-cloud/recipes/set-up/monorepo-ci-gitlab) - [Setting up Bitbucket](/nx-cloud/recipes/set-up/monorepo-ci-bitbucket-pipelines) + - [Security](/nx-cloud/recipes/security) + - [Authenticate with Google Identity](/nx-cloud/recipes/security/google-auth) + - [Access Tokens](/nx-cloud/recipes/security/access-tokens) - [Source Control Integration](/nx-cloud/recipes/source-control-integration) - [Enable GitHub PR Integration](/nx-cloud/recipes/source-control-integration/github) - [Enable Bitbucket Cloud PR Integration](/nx-cloud/recipes/source-control-integration/bitbucket-cloud) @@ -299,12 +305,6 @@ - [Other](/nx-cloud/recipes/other) - [Record Non-Nx Commands](/nx-cloud/recipes/other/record-commands) - [Prepare applications for deployment via CI](/nx-cloud/recipes/other/ci-deployment) - - [Account Management](/nx-cloud/account) - - [Users](/nx-cloud/account/users) - - [Authenticate with Google Identity](/nx-cloud/account/google-auth) - - [Access Tokens](/nx-cloud/account/access-tokens) - - [Security Scenarios](/nx-cloud/account/scenarios) - - [End to End Encryption](/nx-cloud/account/encryption) - [Reference](/nx-cloud/reference) - [Configuration Options](/nx-cloud/reference/config) - [nx-cloud CLI](/nx-cloud/reference/nx-cloud-cli) diff --git a/nx-dev/data-access-menu/src/lib/menu.utils.ts b/nx-dev/data-access-menu/src/lib/menu.utils.ts index 5fdfa6c76caf1..5db920d9c68b9 100644 --- a/nx-dev/data-access-menu/src/lib/menu.utils.ts +++ b/nx-dev/data-access-menu/src/lib/menu.utils.ts @@ -82,8 +82,8 @@ export function getBasicNxCloudSection(items: MenuItem[]): MenuSection { (m) => m.id === 'intro' || m.id === 'features' || + m.id === 'concepts' || m.id === 'recipes' || - m.id === 'account' || m.id === 'reference' ) .map((m) => { diff --git a/nx-dev/nx-dev-e2e/src/nx-cloud-documentation.spec.ts b/nx-dev/nx-dev-e2e/src/nx-cloud-documentation.spec.ts index a3628e7fdba7a..333099a244448 100644 --- a/nx-dev/nx-dev-e2e/src/nx-cloud-documentation.spec.ts +++ b/nx-dev/nx-dev-e2e/src/nx-cloud-documentation.spec.ts @@ -14,25 +14,21 @@ const pages: Array<{ title: string; path: string }> = [ title: 'Enable GitHub PR Integration', path: '/nx-cloud/recipes/source-control-integration/github', }, - { - title: 'User Management', - path: '/nx-cloud/account/users', - }, { title: 'Connecting Nx Cloud to your existing Google identity provider', - path: '/nx-cloud/account/google-auth', + path: '/nx-cloud/recipes/security/google-auth', }, { title: 'Access Tokens', - path: '/nx-cloud/account/access-tokens', + path: '/nx-cloud/recipes/security/access-tokens', }, { title: 'Security Scenarios', - path: '/nx-cloud/account/scenarios', + path: '/nx-cloud/concepts/scenarios', }, { title: 'End to End Encryption', - path: '/nx-cloud/account/encryption', + path: '/nx-cloud/concepts/encryption', }, { title: 'Running Nx Cloud Enterprise', diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index 91a53458a5d17..c6e881d1d9650 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -437,6 +437,13 @@ const nxCloudUrls = { '/nx-cloud/recipes/on-premise/auth-saml-managed', '/nx-cloud/private-cloud/advanced-config': '/nx-cloud/recipes/on-premise/advanced-config', + '/concepts/dte': '/nx-cloud/concepts/dte', + '/nx-cloud/intro/nx-cloud-workflows': '/nx-cloud/features/nx-cloud-workflows', + '/nx-cloud/account': '/nx-cloud/recipes/security', + '/nx-cloud/account/google-auth': '/nx-cloud/recipes/security/google-auth', + '/nx-cloud/account/access-tokens': '/nx-cloud/recipes/security/access-tokens', + '/nx-cloud/account/scenarios': '/nx-cloud/concepts/scenarios', + '/nx-cloud/account/encryption': '/nx-cloud/concepts/encryption', }; /**