diff --git a/docs/generated/manifests/ci.json b/docs/generated/manifests/ci.json index c25dfcfcef..6a07862e9a 100644 --- a/docs/generated/manifests/ci.json +++ b/docs/generated/manifests/ci.json @@ -681,6 +681,95 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "single-tenant", + "name": "Single Tenant", + "description": "Manage an on-premise installation of Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "overview", + "name": "Single Tenant Nx Cloud Hosting", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/overview", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/overview", + "tags": ["single-tenant"] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-bitbucket-data-center", + "name": "Authenticate with BitBucket Data Center", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "tags": [] + }, + { + "id": "custom-github-app", + "name": "Custom GitHub App", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/custom-github-app", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant", + "tags": [] + }, { "id": "on-premise", "name": "On-Premise", @@ -1276,6 +1365,95 @@ "mediaImage": "", "file": "", "itemList": [ + { + "id": "single-tenant", + "name": "Single Tenant", + "description": "Manage an on-premise installation of Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "overview", + "name": "Single Tenant Nx Cloud Hosting", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/overview", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/overview", + "tags": ["single-tenant"] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-bitbucket-data-center", + "name": "Authenticate with BitBucket Data Center", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "tags": [] + }, + { + "id": "custom-github-app", + "name": "Custom GitHub App", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/custom-github-app", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant", + "tags": [] + }, { "id": "on-premise", "name": "On-Premise", @@ -1481,6 +1659,172 @@ "path": "/ci/recipes/enterprise", "tags": [] }, + "/ci/recipes/enterprise/single-tenant": { + "id": "single-tenant", + "name": "Single Tenant", + "description": "Manage an on-premise installation of Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "overview", + "name": "Single Tenant Nx Cloud Hosting", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/overview", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/overview", + "tags": ["single-tenant"] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-bitbucket-data-center", + "name": "Authenticate with BitBucket Data Center", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "tags": [] + }, + { + "id": "custom-github-app", + "name": "Custom GitHub App", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/custom-github-app", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant", + "tags": [] + }, + "/ci/recipes/enterprise/single-tenant/overview": { + "id": "overview", + "name": "Single Tenant Nx Cloud Hosting", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/overview", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/overview", + "tags": ["single-tenant"] + }, + "/ci/recipes/enterprise/single-tenant/auth-github": { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "tags": [] + }, + "/ci/recipes/enterprise/single-tenant/auth-gitlab": { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "tags": [] + }, + "/ci/recipes/enterprise/single-tenant/auth-bitbucket": { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "tags": [] + }, + "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center": { + "id": "auth-bitbucket-data-center", + "name": "Authenticate with BitBucket Data Center", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "tags": [] + }, + "/ci/recipes/enterprise/single-tenant/auth-saml": { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "tags": [] + }, + "/ci/recipes/enterprise/single-tenant/custom-github-app": { + "id": "custom-github-app", + "name": "Custom GitHub App", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/single-tenant/custom-github-app", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "tags": [] + }, "/ci/recipes/enterprise/on-premise": { "id": "on-premise", "name": "On-Premise", diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index da211f57f8..a1704b22e0 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -5896,6 +5896,71 @@ "id": "enterprise", "isExternal": false, "children": [ + { + "name": "Single Tenant", + "path": "/ci/recipes/enterprise/single-tenant", + "id": "single-tenant", + "isExternal": false, + "children": [ + { + "name": "Single Tenant Nx Cloud Hosting", + "path": "/ci/recipes/enterprise/single-tenant/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket Data Center", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "id": "auth-bitbucket-data-center", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Custom GitHub App", + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "id": "custom-github-app", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, { "name": "On-Premise", "path": "/ci/recipes/enterprise/on-premise", @@ -6330,6 +6395,71 @@ "id": "enterprise", "isExternal": false, "children": [ + { + "name": "Single Tenant", + "path": "/ci/recipes/enterprise/single-tenant", + "id": "single-tenant", + "isExternal": false, + "children": [ + { + "name": "Single Tenant Nx Cloud Hosting", + "path": "/ci/recipes/enterprise/single-tenant/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket Data Center", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "id": "auth-bitbucket-data-center", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Custom GitHub App", + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "id": "custom-github-app", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, { "name": "On-Premise", "path": "/ci/recipes/enterprise/on-premise", @@ -6479,6 +6609,127 @@ ], "disableCollapsible": false }, + { + "name": "Single Tenant", + "path": "/ci/recipes/enterprise/single-tenant", + "id": "single-tenant", + "isExternal": false, + "children": [ + { + "name": "Single Tenant Nx Cloud Hosting", + "path": "/ci/recipes/enterprise/single-tenant/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket Data Center", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "id": "auth-bitbucket-data-center", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Custom GitHub App", + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "id": "custom-github-app", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Single Tenant Nx Cloud Hosting", + "path": "/ci/recipes/enterprise/single-tenant/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/single-tenant/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/single-tenant/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket Data Center", + "path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center", + "id": "auth-bitbucket-data-center", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/single-tenant/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Custom GitHub App", + "path": "/ci/recipes/enterprise/single-tenant/custom-github-app", + "id": "custom-github-app", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "On-Premise", "path": "/ci/recipes/enterprise/on-premise", diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index a274e6fc23..0909806c34 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -1188,6 +1188,15 @@ "path": "/ci/features/remote-cache" } ], + "single-tenant": [ + { + "description": "", + "file": "nx-cloud/enterprise/single-tenant/overview", + "id": "overview", + "name": "Single Tenant Nx Cloud Hosting", + "path": "/ci/recipes/enterprise/single-tenant/overview" + } + ], "on-premise": [ { "description": "Set up Nx Cloud on machines that you control", diff --git a/docs/map.json b/docs/map.json index 7d1721adcc..f729c2d547 100644 --- a/docs/map.json +++ b/docs/map.json @@ -1860,6 +1860,49 @@ "id": "enterprise", "description": "Recipes for enterprise accounts", "itemList": [ + { + "name": "Single Tenant", + "id": "single-tenant", + "description": "Manage an on-premise installation of Nx Cloud", + "itemList": [ + { + "name": "Single Tenant Nx Cloud Hosting", + "id": "overview", + "tags": ["single-tenant"], + "file": "nx-cloud/enterprise/single-tenant/overview" + }, + { + "name": "Authenticate with GitHub", + "id": "auth-github", + "file": "nx-cloud/enterprise/single-tenant/auth-github" + }, + { + "name": "Authenticate with GitLab", + "id": "auth-gitlab", + "file": "nx-cloud/enterprise/single-tenant/auth-gitlab" + }, + { + "name": "Authenticate with BitBucket", + "id": "auth-bitbucket", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket" + }, + { + "name": "Authenticate with BitBucket Data Center", + "id": "auth-bitbucket-data-center", + "file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center" + }, + { + "name": "Authenticate via SAML", + "id": "auth-saml", + "file": "nx-cloud/enterprise/single-tenant/auth-saml" + }, + { + "name": "Custom GitHub App", + "id": "custom-github-app", + "file": "nx-cloud/enterprise/single-tenant/custom-github-app" + } + ] + }, { "name": "On-Premise", "id": "on-premise", diff --git a/docs/nx-cloud/enterprise/on-premise/advanced-config.md b/docs/nx-cloud/enterprise/on-premise/advanced-config.md index 994fbe1ca0..6cd45266f4 100644 --- a/docs/nx-cloud/enterprise/on-premise/advanced-config.md +++ b/docs/nx-cloud/enterprise/on-premise/advanced-config.md @@ -63,3 +63,16 @@ If you use an external file storage and an external MongoDB instance, you don't See note above about setting a cache expiration time. For Azure blob storage, [see this guide](https://docs.microsoft.com/en-us/azure/cdn/cdn-manage-expiration-of-blob-content). {% /callout %} + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/ami-setup.md b/docs/nx-cloud/enterprise/on-premise/ami-setup.md index 12d4c7910d..e6d8e654a1 100644 --- a/docs/nx-cloud/enterprise/on-premise/ami-setup.md +++ b/docs/nx-cloud/enterprise/on-premise/ami-setup.md @@ -180,3 +180,16 @@ And apply the changes: ```bash scp -r ./myconfiguration.yaml nx-cloud@:~/config/user/update.yaml ``` + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/auth-bitbucket-data-center.md b/docs/nx-cloud/enterprise/on-premise/auth-bitbucket-data-center.md index c2b910c8ee..28b8c62211 100644 --- a/docs/nx-cloud/enterprise/on-premise/auth-bitbucket-data-center.md +++ b/docs/nx-cloud/enterprise/on-premise/auth-bitbucket-data-center.md @@ -21,3 +21,16 @@ And create a new link using the settings below (make sure the callback URL is po ## Connect your Nx Cloud installation to your new app It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file. + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/auth-bitbucket.md b/docs/nx-cloud/enterprise/on-premise/auth-bitbucket.md index 88e2f73b47..5a66d777a2 100644 --- a/docs/nx-cloud/enterprise/on-premise/auth-bitbucket.md +++ b/docs/nx-cloud/enterprise/on-premise/auth-bitbucket.md @@ -46,3 +46,16 @@ Once you create, keep a note of the Key and the Secret: ## Connect your Nx Cloud installation to your new app It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file. + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/auth-github.md b/docs/nx-cloud/enterprise/on-premise/auth-github.md index 5773fbcdef..5389865a11 100644 --- a/docs/nx-cloud/enterprise/on-premise/auth-github.md +++ b/docs/nx-cloud/enterprise/on-premise/auth-github.md @@ -42,3 +42,16 @@ And then generate a new client secret, and save it somewhere secure (we'll use i ## Configure Nx Cloud Installation It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file. + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/auth-gitlab.md b/docs/nx-cloud/enterprise/on-premise/auth-gitlab.md index cc58c85b9a..152612e7e3 100644 --- a/docs/nx-cloud/enterprise/on-premise/auth-gitlab.md +++ b/docs/nx-cloud/enterprise/on-premise/auth-gitlab.md @@ -38,3 +38,16 @@ Once you create, keep a note of the Client ID and the Secret: ## Connect your Nx Cloud installation to your new app It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file. + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/auth-saml.md b/docs/nx-cloud/enterprise/on-premise/auth-saml.md index 35b78ad5de..b3fc44b8bd 100644 --- a/docs/nx-cloud/enterprise/on-premise/auth-saml.md +++ b/docs/nx-cloud/enterprise/on-premise/auth-saml.md @@ -145,3 +145,16 @@ if you are interested. ## Helm config It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file. + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/auth-single-admin.md b/docs/nx-cloud/enterprise/on-premise/auth-single-admin.md index 73c05bf92c..4eb2b25a35 100644 --- a/docs/nx-cloud/enterprise/on-premise/auth-single-admin.md +++ b/docs/nx-cloud/enterprise/on-premise/auth-single-admin.md @@ -67,3 +67,16 @@ GitLab: GitHub: ![GitHub username location](/nx-cloud/enterprise/on-premise/images/github-username.png) + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/on-premise/custom-github-app.md b/docs/nx-cloud/enterprise/on-premise/custom-github-app.md index 79456fbe53..7f7e50dd22 100644 --- a/docs/nx-cloud/enterprise/on-premise/custom-github-app.md +++ b/docs/nx-cloud/enterprise/on-premise/custom-github-app.md @@ -104,3 +104,16 @@ This will point all auth endpoints to your GitHub server (rather the public one) The above environment variable, also helps with setting up the GitHub app integration, so you can have Nx Cloud build stats directly on your pull request. See full set up instructions [here](/ci/recipes/source-control-integration/github). {% /callout %} --> + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center.md b/docs/nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center.md new file mode 100644 index 0000000000..bfed30c789 --- /dev/null +++ b/docs/nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center.md @@ -0,0 +1,23 @@ +# BitBucket Data Center Auth + +This page is for configuring auth via BitBucket Data Center (on-prem). If you are using BitBucket Cloud please refer to the docs [here](/ci/recipes/enterprise/single-tenant/auth-bitbucket). + +Before creating your container, your Bitbucket Data Center admin will need to create an "Application Link". + +## Creating an Application Link + +Your BitBucket installation admin will need to navigate to their installation settings: + +![Step 1](/nx-cloud/enterprise/on-premise/images/bitbucket_onprem_1.png) + +Then "Application Links": + +![Step 2](/nx-cloud/enterprise/on-premise/images/bitbucket_onprem_2.png) + +And create a new link using the settings below (make sure the callback URL is pointed to your BitBucket installation): + +![Step 3](/nx-cloud/enterprise/on-premise/images/bitbucket_onprem_3.png) + +## Connect Your Nx Cloud Installation to Your New App + +Contact your developer productivity engineer to connect your Nx Cloud instance to the newly created BitBucket data center app. diff --git a/docs/nx-cloud/enterprise/single-tenant/auth-bitbucket.md b/docs/nx-cloud/enterprise/single-tenant/auth-bitbucket.md new file mode 100644 index 0000000000..42ceb452bd --- /dev/null +++ b/docs/nx-cloud/enterprise/single-tenant/auth-bitbucket.md @@ -0,0 +1,48 @@ +# BitBucket Cloud Auth + +This page is only for BitBucket Cloud (bitbucket.org). If you have an on-premise version of BitBucket Data Center please refer to the docs [here](/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center). + +First, you'll need to create a BitBucket "OAuth consumer" for your organisation. + +## Creating a BitBucket OAuth Consumer + +From BitBucket, click on your profile picture and select your workspace: + +![Step 1](/nx-cloud/enterprise/on-premise/images/bitbucket_1.png) + +Then "Settings": + +![Step 2](/nx-cloud/enterprise/on-premise/images/bitbucket_2.png) + +Then "OAuth consumers": + +![Step 3](/nx-cloud/enterprise/on-premise/images/bitbucket_3.png) + +And create a new consumer. + +Give the app a name. The callback URL is the important bit. It needs to be in this form: + +``` +[your-nx-cloud-url]/auth-callback + +# for example +https://my.nx-enterprise.url:8080/auth-callback +``` + +**Important:** Ensure there is **no backslash at the end of the "Callback URL"** (i.e. it matches the above pattern) + +![Step 4](/nx-cloud/enterprise/on-premise/images/bitbucket_4.png) + +Ensure you grant it the `account:read` and `account:email` scopes: + +![Step 5](/nx-cloud/enterprise/on-premise/images/bitbucket_5.png) + +Save your changes. + +Once you create, keep a note of the Key and the Secret: + +![Step 6](/nx-cloud/enterprise/on-premise/images/bitbucket_6.png) + +## Connect Your Nx Cloud Installation to Your BitBucket OAuth Consumer + +Contact your developer productivity engineer to connect your Nx Cloud instance to the newly created BitBucket OAuth consumer. diff --git a/docs/nx-cloud/enterprise/single-tenant/auth-github.md b/docs/nx-cloud/enterprise/single-tenant/auth-github.md new file mode 100644 index 0000000000..6df3dbe131 --- /dev/null +++ b/docs/nx-cloud/enterprise/single-tenant/auth-github.md @@ -0,0 +1,44 @@ +# GitHub Auth + +First, you'll need to create a GitHub OAuth app for your organisation. + +## Creating a GitHub OAuth app + +From GitHub, click on your profile picture and chose "Settings": + +![Step 1](/nx-cloud/enterprise/on-premise/images/github_auth_step_1.png) + +Then "Developer settings" from the left-hand menu: + +![Step 2](/nx-cloud/enterprise/on-premise/images/github_auth_step_2.png) + +Then "OAuth Apps": + +![Step 3](/nx-cloud/enterprise/on-premise/images/github_auth_step_3.png) + +And create a new OAuth app: + +![Step 4](/nx-cloud/enterprise/on-premise/images/github_auth_step_4.png) + +Give it a name, and a homepage URL. The authorization callback is the important bit. It needs to be in this form: + +``` +[your-nx-cloud-url]/auth-callback + +# for example +https://my.nx-enterprise.url:8080/auth-callback +``` + +![Step 5](/nx-cloud/enterprise/on-premise/images/github_auth_step_5.png) + +Once you create, keep a note of the Client ID: + +![Step 6](/nx-cloud/enterprise/on-premise/images/github_auth_step_6.png) + +And then generate a new client secret, and save it somewhere secure (we'll use it in a bit): + +![Step 7](/nx-cloud/enterprise/on-premise/images/github_auth_step_7.png) + +## Configure Nx Cloud Installation + +Contact your developer productivity engineer to connect your Nx Cloud instance to the newly created GitHub OAuth app. diff --git a/docs/nx-cloud/enterprise/single-tenant/auth-gitlab.md b/docs/nx-cloud/enterprise/single-tenant/auth-gitlab.md new file mode 100644 index 0000000000..85e0eb63e6 --- /dev/null +++ b/docs/nx-cloud/enterprise/single-tenant/auth-gitlab.md @@ -0,0 +1,40 @@ +# GitLab Auth + +Before creating your container, you'll need to create a GitLab app for your organisation. + +## Creating a GitLab app + +From GitLab, click on your profile picture and chose "Preferences": + +![Step 1](/nx-cloud/enterprise/on-premise/images/gitlab_step_1.png) + +Then "Applications" from the left-hand menu: + +![Step 2](/nx-cloud/enterprise/on-premise/images/gitlab_step_2.png) + +Give the app a name. The authorization callback is the important bit. It needs to be in this form: + +``` +[your-nx-cloud-url]/auth-callback + +# for example +https://my.nx-enterprise.url:8080/auth-callback +``` + +**Important:** Ensure there is **no backslash at the end of the "Redirect URI"** (i.e. it matches the above pattern) + +![Step 3](/nx-cloud/enterprise/on-premise/images/gitlab_step_3.png) + +Ensure you grant it the "`read_user`" scope: + +![Step 4](/nx-cloud/enterprise/on-premise/images/gitlab_step_4.png) + +Click "Save application". + +Once you create, keep a note of the Client ID and the Secret: + +![Step 5](/nx-cloud/enterprise/on-premise/images/gitlab_step_5.png) + +## Connect Your Nx Cloud Installation to Your New App + +Contact your developer productivity engineer to connect your Nx Cloud instance to the newly created GitLab app. diff --git a/docs/nx-cloud/enterprise/single-tenant/auth-saml.md b/docs/nx-cloud/enterprise/single-tenant/auth-saml.md new file mode 100644 index 0000000000..ac8a003b00 --- /dev/null +++ b/docs/nx-cloud/enterprise/single-tenant/auth-saml.md @@ -0,0 +1,147 @@ +# SAML Auth + +SAML support for Nx Cloud is an addon for Nx Enterprise contracts and requires an unlock key. Please [get in touch](mailto:cloud-support@nrwl.io) +if you are interested. + +### Jump To + +- [Azure AD Config](#azure-active-directory-set-up) +- [Okta Config](#okta-setup) + +## Azure Active Directory Set-up + +1. Create a new enterprise app + + ![Step 1](/nx-cloud/enterprise/on-premise/images/saml/azure_1.png) + + ![Step 2](/nx-cloud/enterprise/on-premise/images/saml/azure_2.png) + +2. Choose “Create your own”: + + ![Step 3](/nx-cloud/enterprise/on-premise/images/saml/azure_3.png) + +3. Give it a name + + ![Step 4](/nx-cloud/enterprise/on-premise/images/saml/azure_4.png) + +4. Assign your users and/or groups to it: + + ![Step 5](/nx-cloud/enterprise/on-premise/images/saml/azure_5.png) + +5. Then set-up SSO + + ![Step 6](/nx-cloud/enterprise/on-premise/images/saml/azure_6.png) + +6. And choose SAML: + + ![Step 7](/nx-cloud/enterprise/on-premise/images/saml/azure_7.png) + +7. Add these configuration options + + 1. Configure the Identifier **exactly** as `nx-private-cloud` + 2. For the **Reply URL**, it should point to your Private Cloud instance URL. Make sure it ends with `/auth-callback` + + ![Step 8](/nx-cloud/enterprise/on-premise/images/saml/azure_8.png) + +8. Scroll down and manage claims: + + ![Step 9](/nx-cloud/enterprise/on-premise/images/saml/azure_9.png) + +9. The first row should be the `email` claim, click to Edit it: + + ![Step 10](/nx-cloud/enterprise/on-premise/images/saml/azure_10.png) + +10. Configure it as per below + + 1. **“Namespace”** needs to be blank + 2. **“Name:”** needs to be “email” + 3. See screenshot below. This is an important step, because Nx Cloud will expect the “email” property on each profile that logs in. + + ![Step 11](/nx-cloud/enterprise/on-premise/images/saml/azure_11.png) + + Make sure your application user profile exposes the email address under `user.mail`. This can be configured in `Users and Groups` in the Azure portal. Alternatively, you can always configure the `email` claim to use a different property under the `user` object. + +11. Under `SAML Certificates`, click the pencil icon to edit + + ![Step 12](/nx-cloud/enterprise/on-premise/images/saml/azure_12.png) + + For **Signing Option**, select **Sign SAML response and assertion** + + ![Step 13](/nx-cloud/enterprise/on-premise/images/saml/azure_13.png) + + Then click **Save** and close the popover. + +12. Download the certificate in **Base64**: + + ![Step 14](/nx-cloud/enterprise/on-premise/images/saml/azure_14.png) + +13. Extract the downloaded certificate value as a one-line string: + 1. `awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' azure_cert_file.cer` + 2. We’ll use this later +14. Copy the Login URL: + + ![Step 15](/nx-cloud/enterprise/on-premise/images/saml/azure_15.png) + +15. Save the following information to send to your DPE: + 1. `SAML_CERT=` + 2. `SAML_ENTRY_POINT=` + +## Okta Set-up + +1. Create a new Okta App Integration: + + ![Okta 1](/nx-cloud/enterprise/on-premise/images/saml/okta_1.png) + + ![Okta 2](/nx-cloud/enterprise/on-premise/images/saml/okta_2.png) + +2. Give it a name: + + ![Okta 3](/nx-cloud/enterprise/on-premise/images/saml/okta_3.png) + +3. On the Next page, configure it as below: + + 1. The Single Sign On URL needs to point to your Nx Cloud instance URL and ends with `/auth-callback` + 2. The Audience should be `nx-private-cloud` + + ![Okta 4](/nx-cloud/enterprise/on-premise/images/saml/okta_4.png) + +4. Scroll down to attribute statements and configure them as per below: + + ![Okta 5](/nx-cloud/enterprise/on-premise/images/saml/okta_5.png) + +5. Click “Next”, and select the first option on the next screen. +6. Go to the assignments tab and assign the users that can login to the Nx Cloud WebApp: + + 1. **Note:** This just gives them permission to use the Nx Cloud web app with their own workspace. Users will still need to be invited manually through the web app to your main workspace. + + ![Okta 6](/nx-cloud/enterprise/on-premise/images/saml/okta_6.png) + +7. Then in the Sign-On tab scroll down: + + ![Okta 7](/nx-cloud/enterprise/on-premise/images/saml/okta_7.png) + +8. Scroll down and from the list of certificates, download the one with the “Active” status: + + ![Okta 8](/nx-cloud/enterprise/on-premise/images/saml/okta_8.png) + +9. Extract the downloaded certificate value as a one-line string: + 1. `awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' okta.cert` + 2. We'll use this later +10. Then view the ldP metadata: + + ![Okta 9](/nx-cloud/enterprise/on-premise/images/saml/okta_9.png) + +11. Then find the row similar to the below, and copy the highlighted URL (see screenshot as well): + + 1. ```html + + ``` + + ![Okta 10](/nx-cloud/enterprise/on-premise/images/saml/okta_10.png) + +## Connect Your Nx Cloud Installation to Your SAML Set Up + +Contact your developer productivity engineer to connect your Nx Cloud instance to the SAML configuration. diff --git a/docs/nx-cloud/enterprise/single-tenant/custom-github-app.md b/docs/nx-cloud/enterprise/single-tenant/custom-github-app.md new file mode 100644 index 0000000000..5c7bf4b0e9 --- /dev/null +++ b/docs/nx-cloud/enterprise/single-tenant/custom-github-app.md @@ -0,0 +1,64 @@ +# Custom GitHub App + +Before creating your container, you'll need to create a GitHub app for your organisation. + +## Creating a GitHub OAuth app + +From GitHub, click on your profile picture and chose "Settings": + +![Step 1](/nx-cloud/enterprise/on-premise/images/github_auth_step_1.png) + +Then "Developer settings" from the left-hand menu: + +![Step 2](/nx-cloud/enterprise/on-premise/images/github_auth_step_2.png) + +Then "GitHub Apps": + +![Step 3](/nx-cloud/enterprise/on-premise/images/github_custom_app_step_3.avif) + +And create a new GitHub app: + +![Step 4](/nx-cloud/enterprise/on-premise/images/github_custom_app_step_5.avif) + +Give it a name, and a homepage URL. The callback URL is the important bit. It needs to be in this form: + +``` +[your-nx-cloud-url]/callbacks/github-user + +# for example +https://my.nx-enterprise.url:8080/callbacks/github-user +``` + +Once you create the app, keep a note of the Client ID and App ID: + +![Step 6](/nx-cloud/enterprise/on-premise/images/github_custom_app_step_6.avif) + +Then generate a new client secret, and save it somewhere secure (we'll use it in a bit): + +![Step 7](/nx-cloud/enterprise/on-premise/images/github_auth_step_7.png) + +## Configure Permissions for the GitHub App + +The following permissions are required for Nx Cloud to work: + +Repository permissions: + +- `Contents: Read & Write` +- `Pull requests: Read & Write` +- `Checks: Read Only` +- `Commit Statuses: Read & Write` +- `Issues: Read & Write` +- `Metadata: Read Only` + +Organization permissions: + +- `Administration: Read Only` +- `Members: Read Only` + +## Connect Your Nx Cloud Installation + +Provide the following values to your developer productivity engineer so they can help connect Nx Cloud to your custom GitHub app: + +- Github App Client ID +- Github App Client Secret +- Github App App ID diff --git a/docs/nx-cloud/enterprise/single-tenant/overview.md b/docs/nx-cloud/enterprise/single-tenant/overview.md new file mode 100644 index 0000000000..570039a857 --- /dev/null +++ b/docs/nx-cloud/enterprise/single-tenant/overview.md @@ -0,0 +1,55 @@ +# Single Tenant Nx Cloud Hosting + +We offer multiple ways of running Nx Cloud for our Enterprise customers. The below options are listed in recommended order, from easiest to most complex in terms of set-up and maintenance for your team. Please carefully consider your organization's requirements and level of infrastructure expertise before deciding on a deployment option. + +{% call-to-action title="Get in Touch" icon="nxcloud" description="Get the package that best fits your needs" url="/enterprise" /%} + +## Multi-tenant + +The quickest and easiest way to start using Nx Cloud is by utilizing our pre-existing secure, multi-tenant managed clusters: + +- [https://nx.app/](https://nx.app/) +- Enterprise customers can contact their developer productivity engineer (DPE) to configure the EU hosted version of Nx Cloud. + +We also offer an uptime SLA guarantee of 99.98% for our Enterprise customers, SOC certificates on request, and we're happy to meet with your security teams if they have questions, or fill in security questionnaires. We also maintain a [Status Page here](https://status.nx.app/). + +To start with this option, it's as easy as creating an account on [nx.app](https://cloud.nx.app) and connecting your repository. + +## Single Tenant Instance + +If you have very specific requirements, then we can also offer to host Nx Cloud for you in an isolated/single-tenant cluster. + +We'll be able to discuss specific requirements such as: + +- SAML/SSO +- Specific regions you want your data to be in +- Network isolation / dedicated VPCs +- Dedicated instances +- Different storage encryption than what is available on our multi-tenant instances +- Custom storage replication / redundancy requirements +- Custom Node types for Nx agents +- Static IPs (if you need to open up connections in your corporate network) +- VPC peering on GCloud or AWS Private Link + +This option allows you to define specific parameters of how the instance should run. +Your data and the Nx Cloud will run in complete isolation and will only serve your company. There will be no external API calls to any services outside of the clusters we set-up for you. + +Once you let us know you'd like this option, depending on the agreed requirements, it might take a few days to get it set up. + +### More Stable Version of Nx Cloud + +The Nx Cloud software that is used in single tenant instances trails the version used in the multi-tenant instance by about month. This allows single tenant customers to benefit from an extra month of real world validation of any new features before enabling those features. + +### Easy Set Up + +While the multi-tenant option requires no set up at all, single tenant Nx Cloud still has a simple set up process from your perspective. Since the Nx Cloud team manages the instance, your infrastructure team members do not need to become experts in the specific configuration required to make sure all the parts of Nx Cloud work together correctly. Our team will provision and configure all the hardware required to get your Nx Cloud instance ready. This process usually takes a few days. + +### Nx Maintenance Team + +Our team will also manage changes to the Nx Cloud instance. + +- As your usage grows, we will take care of allocating and scaling resources. +- When new features are available for Nx Cloud, our team will automatically enable them for you so that you can always have access to the best version of Nx Cloud. +- If you encounter issues with your Nx Cloud instance, we have full access to the set up and can diagnose the problems for you. + +{% call-to-action title="Get in Touch" icon="nxcloud" description="Get the package that best fits your needs" url="/enterprise" /%} diff --git a/docs/nx-cloud/features/nx-enterprise-on-prem.md b/docs/nx-cloud/features/nx-enterprise-on-prem.md index ca0319113e..9ba6cb9086 100644 --- a/docs/nx-cloud/features/nx-enterprise-on-prem.md +++ b/docs/nx-cloud/features/nx-enterprise-on-prem.md @@ -35,7 +35,7 @@ We'll be able to discuss specific requirements such as: - Static IPs (if you need to open up connections in your corporate network) - VPC peering on GCloud or AWS Private Link -This would be a "best of both worlds" option, as it would free you up from managing the instance yourself, but you will get to define specific parameters of how it should it run. +This would be a "best of both worlds" option, as it would free you up from managing the instance yourself, but you will get to define specific parameters of how it should run. Your data and the Nx Cloud will run in complete isolation and will only serve your company. There will be no external API calls to any services outside of the clusters we set-up for you. Once you let us know you'd like this option, depending on the agreed requirements, it might take a few days to get it set up. @@ -55,4 +55,16 @@ We also offer a multi-node Kubernetes setup, that is deployed via Helm. You can ## Resources - [Integration with your source control provider](/ci/recipes/source-control-integration) -- [On-Prem specific features](/ci/recipes/enterprise/on-premise/auth-single-admin) + +## On Premise Docs + +- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) +- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) +- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github) +- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup) +- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab) +- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket) +- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center) +- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml) +- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config) +- [Custom GitHub App](/ci/recipes/enterprise/on-premise/custom-github-app) diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index 40e07c3406..30fcdd0160 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -298,6 +298,14 @@ - [Enable GitLab MR Integration](/ci/recipes/source-control-integration/gitlab) - [Enable Azure DevOps PR Integration](/ci/recipes/source-control-integration/azure-devops) - [Enterprise](/ci/recipes/enterprise) + - [Single Tenant](/ci/recipes/enterprise/single-tenant) + - [Single Tenant Nx Cloud Hosting](/ci/recipes/enterprise/single-tenant/overview) + - [Authenticate with GitHub](/ci/recipes/enterprise/single-tenant/auth-github) + - [Authenticate with GitLab](/ci/recipes/enterprise/single-tenant/auth-gitlab) + - [Authenticate with BitBucket](/ci/recipes/enterprise/single-tenant/auth-bitbucket) + - [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center) + - [Authenticate via SAML](/ci/recipes/enterprise/single-tenant/auth-saml) + - [Custom GitHub App](/ci/recipes/enterprise/single-tenant/custom-github-app) - [On-Premise](/ci/recipes/enterprise/on-premise) - [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise) - [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin) 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 ffd4cb5fcf..d11258aa04 100644 --- a/nx-dev/data-access-menu/src/lib/menu.utils.ts +++ b/nx-dev/data-access-menu/src/lib/menu.utils.ts @@ -94,6 +94,17 @@ export function getBasicNxCloudSection(items: MenuItem[]): MenuSection { m.id === 'troubleshooting' ) .map((m) => { + if (m.id === 'recipes') { + m.children.map((recipesChild) => { + if (recipesChild.id !== 'enterprise') { + return recipesChild; + } + recipesChild.children = recipesChild.children.filter( + (enterpriseChild) => enterpriseChild.id !== 'on-premise' + ); + return recipesChild; + }); + } return { ...m, disableCollapsible: