diff --git a/docs/blog/2024-09-25-evolving-nx.md b/docs/blog/2024-09-25-evolving-nx.md index e262aa970f..b3b9a919fb 100644 --- a/docs/blog/2024-09-25-evolving-nx.md +++ b/docs/blog/2024-09-25-evolving-nx.md @@ -51,7 +51,7 @@ Are you a startup? If these features make sense for your team but the cost is a ## Got Questions? -If you’re curious to learn more about these changes for Nx and how to get started, [check out our docs](/features/powerpack). +If you’re curious to learn more about these changes for Nx and how to get started, [check out our docs](/nx-enterprise/powerpack). ## Learn more diff --git a/docs/blog/2024-09-25-introducing-nx-powerpack.md b/docs/blog/2024-09-25-introducing-nx-powerpack.md index 4fc2fe5acf..a0b8a4e63a 100644 --- a/docs/blog/2024-09-25-introducing-nx-powerpack.md +++ b/docs/blog/2024-09-25-introducing-nx-powerpack.md @@ -119,7 +119,7 @@ A dedicated `nx sync` command automatically synchronizes these definitions to a ... ``` -Read all about how to [configure Codeowners for your project in our docs](/features/powerpack/owners). +Read all about how to [configure Codeowners for your project in our docs](/nx-enterprise/powerpack/owners). ## Self-hosted Cache Storage @@ -178,7 +178,7 @@ jobs: Similarly you can **set up network file based caching** using the `nx add @nx/powerpack-shared-fs-cache` package and by setting the `cacheDirectory` path in your `nx.json`. -Read all about how to [set up S3 or network drive based caching for your Nx workspace in our docs](/features/powerpack/custom-caching). +Read all about how to [set up S3 or network drive based caching for your Nx workspace in our docs](/nx-enterprise/powerpack/custom-caching). ## Workspace Conformance (Beta) @@ -245,7 +245,7 @@ You can then run `nx conformance` to execute the conformance checks: In this first preview release, you'll only be able to run workspace conformance rules on a single workspace. In future iterations, you **will be able to connect it to your existing Nx Cloud organization**, allowing you to upload conformance rules and run them across connected workspaces. -Read all the details on how to [get started with workspace conformance rules in our docs](/features/powerpack/conformance). +Read all the details on how to [get started with workspace conformance rules in our docs](/nx-enterprise/powerpack/conformance). ## Learn More diff --git a/docs/external-generated/packages-metadata.json b/docs/external-generated/packages-metadata.json index 94ce1433bd..552b25ad04 100644 --- a/docs/external-generated/packages-metadata.json +++ b/docs/external-generated/packages-metadata.json @@ -14,7 +14,17 @@ "originalFilePath": "shared/packages/powerpack-conformance/powerpack-conformance-plugin" } ], - "executors": [], + "executors": [ + { + "description": "Compile and bundle an Nx Conformance Rule", + "file": "external-generated/packages/powerpack-conformance/executors/bundle-rule.json", + "hidden": false, + "name": "bundle-rule", + "originalFilePath": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rule/schema.json", + "path": "powerpack-conformance/executors/bundle-rule", + "type": "executor" + } + ], "generators": [], "githubRoot": "https://github.com/nrwl/nx/blob/master", "name": "powerpack-conformance", diff --git a/docs/external-generated/packages/powerpack-conformance/documents/overview.md b/docs/external-generated/packages/powerpack-conformance/documents/overview.md index 1c60cd181e..67d0a6bdf9 100644 --- a/docs/external-generated/packages/powerpack-conformance/documents/overview.md +++ b/docs/external-generated/packages/powerpack-conformance/documents/overview.md @@ -18,7 +18,7 @@ In order to use `@nx/powerpack-conformance`, you need to have an active Powerpac ## Set Up @nx/powerpack-conformance -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell @@ -189,6 +189,7 @@ import { createConformanceRule } from '@nx/powerpack-conformance'; const rule = createConformanceRule({ name: 'local-conformance-rule-example', + description: 'The description of the rule', category: 'security', // `consistency`, `maintainability`, `reliability` or `security` reporter: 'project-reporter', // `project-reporter` or `project-files-reporter` implementation: async (context) => { diff --git a/docs/external-generated/packages/powerpack-conformance/executors/bundle-rule.json b/docs/external-generated/packages/powerpack-conformance/executors/bundle-rule.json new file mode 100644 index 0000000000..297e07d7ba --- /dev/null +++ b/docs/external-generated/packages/powerpack-conformance/executors/bundle-rule.json @@ -0,0 +1,28 @@ +{ + "name": "bundle-rule", + "implementation": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rule/executor.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "title": "BundleNxConformanceRule", + "description": "Compile and bundle an Nx Conformance Rule", + "type": "object", + "properties": { + "main": { + "type": "string", + "description": "The entrypoint file for the rule" + }, + "outputPath": { + "type": "string", + "description": "The output path for the bundled rule" + } + }, + "required": ["main", "outputPath"], + "presets": [] + }, + "description": "Compile and bundle an Nx Conformance Rule", + "aliases": [], + "hidden": false, + "path": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rule/schema.json", + "type": "executor" +} diff --git a/docs/external-generated/packages/powerpack-owners/documents/overview.md b/docs/external-generated/packages/powerpack-owners/documents/overview.md index 31ca7f0119..3b6a7f8ed2 100644 --- a/docs/external-generated/packages/powerpack-owners/documents/overview.md +++ b/docs/external-generated/packages/powerpack-owners/documents/overview.md @@ -13,7 +13,7 @@ In order to use `@nx/powerpack-owners`, you need to have an active Powerpack lic ## Set Up @nx/powerpack-owners -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell diff --git a/docs/external-generated/packages/powerpack-s3-cache/documents/overview.md b/docs/external-generated/packages/powerpack-s3-cache/documents/overview.md index 193e471439..dc1ed6a229 100644 --- a/docs/external-generated/packages/powerpack-s3-cache/documents/overview.md +++ b/docs/external-generated/packages/powerpack-s3-cache/documents/overview.md @@ -19,7 +19,7 @@ In order to use `@nx/powerpack-s3-cache`, you need to have an active Powerpack l ### 1. Install the Package -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell diff --git a/docs/external-generated/packages/powerpack-shared-fs-cache/documents/overview.md b/docs/external-generated/packages/powerpack-shared-fs-cache/documents/overview.md index 88489aeff6..643bf1c831 100644 --- a/docs/external-generated/packages/powerpack-shared-fs-cache/documents/overview.md +++ b/docs/external-generated/packages/powerpack-shared-fs-cache/documents/overview.md @@ -19,7 +19,7 @@ In order to use `@nx/powerpack-shared-fs-cache`, you need to have an active Powe ### 1. Install the Package -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index 0b37c71ee4..2b2a2f1b28 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -323,39 +323,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Powerpack Features", - "path": "/features/powerpack", - "id": "powerpack", - "isExternal": false, - "children": [ - { - "name": "Run Language-Agnostic Conformance Rules", - "path": "/features/powerpack/conformance", - "id": "conformance", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Code Ownership at the Project Level", - "path": "/features/powerpack/owners", - "id": "owners", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Self-Host the Remote Cache", - "path": "/features/powerpack/custom-caching", - "id": "custom-caching", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, { "name": "CI Features", "path": "/features/ci-features", @@ -472,63 +439,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Powerpack Features", - "path": "/features/powerpack", - "id": "powerpack", - "isExternal": false, - "children": [ - { - "name": "Run Language-Agnostic Conformance Rules", - "path": "/features/powerpack/conformance", - "id": "conformance", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Code Ownership at the Project Level", - "path": "/features/powerpack/owners", - "id": "owners", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Self-Host the Remote Cache", - "path": "/features/powerpack/custom-caching", - "id": "custom-caching", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Run Language-Agnostic Conformance Rules", - "path": "/features/powerpack/conformance", - "id": "conformance", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Code Ownership at the Project Level", - "path": "/features/powerpack/owners", - "id": "owners", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Self-Host the Remote Cache", - "path": "/features/powerpack/custom-caching", - "id": "custom-caching", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "CI Features", "path": "/features/ci-features", @@ -1155,14 +1065,6 @@ "id": "installation", "isExternal": false, "children": [ - { - "name": "Activate Powerpack", - "path": "/recipes/installation/activate-powerpack", - "id": "activate-powerpack", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Install Nx in a Non-Javascript Repo", "path": "/recipes/installation/install-non-javascript", @@ -2144,14 +2046,6 @@ "id": "installation", "isExternal": false, "children": [ - { - "name": "Activate Powerpack", - "path": "/recipes/installation/activate-powerpack", - "id": "activate-powerpack", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Install Nx in a Non-Javascript Repo", "path": "/recipes/installation/install-non-javascript", @@ -2171,14 +2065,6 @@ ], "disableCollapsible": false }, - { - "name": "Activate Powerpack", - "path": "/recipes/installation/activate-powerpack", - "id": "activate-powerpack", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Install Nx in a Non-Javascript Repo", "path": "/recipes/installation/install-non-javascript", @@ -3973,6 +3859,121 @@ "children": [], "disableCollapsible": false }, + { + "name": "Enterprise", + "path": "/nx-enterprise", + "id": "nx-enterprise", + "isExternal": false, + "children": [ + { + "name": "Activate Powerpack", + "path": "/nx-enterprise/activate-powerpack", + "id": "activate-powerpack", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Powerpack Features", + "path": "/nx-enterprise/powerpack", + "id": "powerpack", + "isExternal": false, + "children": [ + { + "name": "Run Language-Agnostic Conformance Rules", + "path": "/nx-enterprise/powerpack/conformance", + "id": "conformance", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Code Ownership at the Project Level", + "path": "/nx-enterprise/powerpack/owners", + "id": "owners", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Self-Host the Remote Cache", + "path": "/nx-enterprise/powerpack/custom-caching", + "id": "custom-caching", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Activate Powerpack", + "path": "/nx-enterprise/activate-powerpack", + "id": "activate-powerpack", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Powerpack Features", + "path": "/nx-enterprise/powerpack", + "id": "powerpack", + "isExternal": false, + "children": [ + { + "name": "Run Language-Agnostic Conformance Rules", + "path": "/nx-enterprise/powerpack/conformance", + "id": "conformance", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Code Ownership at the Project Level", + "path": "/nx-enterprise/powerpack/owners", + "id": "owners", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Self-Host the Remote Cache", + "path": "/nx-enterprise/powerpack/custom-caching", + "id": "custom-caching", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Run Language-Agnostic Conformance Rules", + "path": "/nx-enterprise/powerpack/conformance", + "id": "conformance", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Code Ownership at the Project Level", + "path": "/nx-enterprise/powerpack/owners", + "id": "owners", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Self-Host the Remote Cache", + "path": "/nx-enterprise/powerpack/custom-caching", + "id": "custom-caching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "Showcase", "path": "/showcase", @@ -10617,6 +10618,23 @@ ], "isExternal": false, "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/powerpack-conformance/executors", + "name": "executors", + "children": [ + { + "id": "bundle-rule", + "path": "/nx-api/powerpack-conformance/executors/bundle-rule", + "name": "bundle-rule", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false } ], "isExternal": false, diff --git a/docs/generated/manifests/nx-api.json b/docs/generated/manifests/nx-api.json index bc3518e8d1..e7900c3446 100644 --- a/docs/generated/manifests/nx-api.json +++ b/docs/generated/manifests/nx-api.json @@ -3626,7 +3626,17 @@ }, "root": "/libs/nx-packages/powerpack-conformance", "source": "/libs/nx-packages/powerpack-conformance/src", - "executors": {}, + "executors": { + "/nx-api/powerpack-conformance/executors/bundle-rule": { + "description": "Compile and bundle an Nx Conformance Rule", + "file": "external-generated/packages/powerpack-conformance/executors/bundle-rule.json", + "hidden": false, + "name": "bundle-rule", + "originalFilePath": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rule/schema.json", + "path": "/nx-api/powerpack-conformance/executors/bundle-rule", + "type": "executor" + } + }, "generators": {}, "path": "/nx-api/powerpack-conformance" }, diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index 223ed968c3..2343114390 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -438,51 +438,6 @@ "path": "/features/manage-releases", "tags": ["nx-release"] }, - { - "id": "powerpack", - "name": "Powerpack Features", - "description": "Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.", - "mediaImage": "", - "file": "shared/features/powerpack/index", - "itemList": [ - { - "id": "conformance", - "name": "Run Language-Agnostic Conformance Rules", - "description": "Write and apply rules for your Nx workspace", - "mediaImage": "", - "file": "shared/features/powerpack/conformance", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/conformance", - "tags": ["conformance"] - }, - { - "id": "owners", - "name": "Define Code Ownership at the Project Level", - "description": "Configure and maintain code owners for projects in an Nx workspace", - "mediaImage": "", - "file": "shared/features/powerpack/owners", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/owners", - "tags": ["owners"] - }, - { - "id": "custom-caching", - "name": "Self-Host the Remote Cache", - "description": "Host the remote cache without using Nx Cloud", - "mediaImage": "", - "file": "shared/features/powerpack/custom-caching", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/custom-caching", - "tags": ["custom-caching"] - } - ], - "isExternal": false, - "path": "/features/powerpack", - "tags": [] - }, { "id": "ci-features", "name": "CI Features", @@ -643,84 +598,6 @@ "path": "/features/manage-releases", "tags": ["nx-release"] }, - "/features/powerpack": { - "id": "powerpack", - "name": "Powerpack Features", - "description": "Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.", - "mediaImage": "", - "file": "shared/features/powerpack/index", - "itemList": [ - { - "id": "conformance", - "name": "Run Language-Agnostic Conformance Rules", - "description": "Write and apply rules for your Nx workspace", - "mediaImage": "", - "file": "shared/features/powerpack/conformance", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/conformance", - "tags": ["conformance"] - }, - { - "id": "owners", - "name": "Define Code Ownership at the Project Level", - "description": "Configure and maintain code owners for projects in an Nx workspace", - "mediaImage": "", - "file": "shared/features/powerpack/owners", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/owners", - "tags": ["owners"] - }, - { - "id": "custom-caching", - "name": "Self-Host the Remote Cache", - "description": "Host the remote cache without using Nx Cloud", - "mediaImage": "", - "file": "shared/features/powerpack/custom-caching", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/custom-caching", - "tags": ["custom-caching"] - } - ], - "isExternal": false, - "path": "/features/powerpack", - "tags": [] - }, - "/features/powerpack/conformance": { - "id": "conformance", - "name": "Run Language-Agnostic Conformance Rules", - "description": "Write and apply rules for your Nx workspace", - "mediaImage": "", - "file": "shared/features/powerpack/conformance", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/conformance", - "tags": ["conformance"] - }, - "/features/powerpack/owners": { - "id": "owners", - "name": "Define Code Ownership at the Project Level", - "description": "Configure and maintain code owners for projects in an Nx workspace", - "mediaImage": "", - "file": "shared/features/powerpack/owners", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/owners", - "tags": ["owners"] - }, - "/features/powerpack/custom-caching": { - "id": "custom-caching", - "name": "Self-Host the Remote Cache", - "description": "Host the remote cache without using Nx Cloud", - "mediaImage": "", - "file": "shared/features/powerpack/custom-caching", - "itemList": [], - "isExternal": false, - "path": "/features/powerpack/custom-caching", - "tags": ["custom-caching"] - }, "/features/ci-features": { "id": "ci-features", "name": "CI Features", @@ -1577,17 +1454,6 @@ "mediaImage": "", "file": "", "itemList": [ - { - "id": "activate-powerpack", - "name": "Activate Powerpack", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/activate-powerpack", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/activate-powerpack", - "tags": ["installation"] - }, { "id": "install-non-javascript", "name": "Install Nx in a Non-Javascript Repo", @@ -2931,17 +2797,6 @@ "mediaImage": "", "file": "", "itemList": [ - { - "id": "activate-powerpack", - "name": "Activate Powerpack", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/activate-powerpack", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/activate-powerpack", - "tags": ["installation"] - }, { "id": "install-non-javascript", "name": "Install Nx in a Non-Javascript Repo", @@ -2969,17 +2824,6 @@ "path": "/recipes/installation", "tags": [] }, - "/recipes/installation/activate-powerpack": { - "id": "activate-powerpack", - "name": "Activate Powerpack", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/activate-powerpack", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/activate-powerpack", - "tags": ["installation"] - }, "/recipes/installation/install-non-javascript": { "id": "install-non-javascript", "name": "Install Nx in a Non-Javascript Repo", @@ -5440,6 +5284,163 @@ "path": "/recipes/nx-release/build-before-versioning", "tags": ["nx-release"] }, + "/nx-enterprise": { + "id": "nx-enterprise", + "name": "Enterprise", + "description": "Enterprise solutions for the Nx CLI", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "activate-powerpack", + "name": "Activate Powerpack", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/activate-powerpack", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/activate-powerpack", + "tags": ["installation"] + }, + { + "id": "powerpack", + "name": "Powerpack Features", + "description": "Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.", + "mediaImage": "", + "file": "shared/features/powerpack/index", + "itemList": [ + { + "id": "conformance", + "name": "Run Language-Agnostic Conformance Rules", + "description": "Write and apply rules for your Nx workspace", + "mediaImage": "", + "file": "shared/features/powerpack/conformance", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/conformance", + "tags": ["conformance"] + }, + { + "id": "owners", + "name": "Define Code Ownership at the Project Level", + "description": "Configure and maintain code owners for projects in an Nx workspace", + "mediaImage": "", + "file": "shared/features/powerpack/owners", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/owners", + "tags": ["owners"] + }, + { + "id": "custom-caching", + "name": "Self-Host the Remote Cache", + "description": "Host the remote cache without using Nx Cloud", + "mediaImage": "", + "file": "shared/features/powerpack/custom-caching", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/custom-caching", + "tags": ["custom-caching"] + } + ], + "isExternal": false, + "path": "/nx-enterprise/powerpack", + "tags": [] + } + ], + "isExternal": false, + "path": "/nx-enterprise", + "tags": [] + }, + "/nx-enterprise/activate-powerpack": { + "id": "activate-powerpack", + "name": "Activate Powerpack", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/activate-powerpack", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/activate-powerpack", + "tags": ["installation"] + }, + "/nx-enterprise/powerpack": { + "id": "powerpack", + "name": "Powerpack Features", + "description": "Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.", + "mediaImage": "", + "file": "shared/features/powerpack/index", + "itemList": [ + { + "id": "conformance", + "name": "Run Language-Agnostic Conformance Rules", + "description": "Write and apply rules for your Nx workspace", + "mediaImage": "", + "file": "shared/features/powerpack/conformance", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/conformance", + "tags": ["conformance"] + }, + { + "id": "owners", + "name": "Define Code Ownership at the Project Level", + "description": "Configure and maintain code owners for projects in an Nx workspace", + "mediaImage": "", + "file": "shared/features/powerpack/owners", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/owners", + "tags": ["owners"] + }, + { + "id": "custom-caching", + "name": "Self-Host the Remote Cache", + "description": "Host the remote cache without using Nx Cloud", + "mediaImage": "", + "file": "shared/features/powerpack/custom-caching", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/custom-caching", + "tags": ["custom-caching"] + } + ], + "isExternal": false, + "path": "/nx-enterprise/powerpack", + "tags": [] + }, + "/nx-enterprise/powerpack/conformance": { + "id": "conformance", + "name": "Run Language-Agnostic Conformance Rules", + "description": "Write and apply rules for your Nx workspace", + "mediaImage": "", + "file": "shared/features/powerpack/conformance", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/conformance", + "tags": ["conformance"] + }, + "/nx-enterprise/powerpack/owners": { + "id": "owners", + "name": "Define Code Ownership at the Project Level", + "description": "Configure and maintain code owners for projects in an Nx workspace", + "mediaImage": "", + "file": "shared/features/powerpack/owners", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/owners", + "tags": ["owners"] + }, + "/nx-enterprise/powerpack/custom-caching": { + "id": "custom-caching", + "name": "Self-Host the Remote Cache", + "description": "Host the remote cache without using Nx Cloud", + "mediaImage": "", + "file": "shared/features/powerpack/custom-caching", + "itemList": [], + "isExternal": false, + "path": "/nx-enterprise/powerpack/custom-caching", + "tags": ["custom-caching"] + }, "/showcase": { "id": "showcase", "name": "Showcase", diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index 8b0d0dbce9..a274e6fc23 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -575,33 +575,6 @@ "path": "/nx-api/nx/documents/release" } ], - "conformance": [ - { - "description": "Write and apply rules for your Nx workspace", - "file": "shared/features/powerpack/conformance", - "id": "conformance", - "name": "Run Language-Agnostic Conformance Rules", - "path": "/features/powerpack/conformance" - } - ], - "owners": [ - { - "description": "Configure and maintain code owners for projects in an Nx workspace", - "file": "shared/features/powerpack/owners", - "id": "owners", - "name": "Define Code Ownership at the Project Level", - "path": "/features/powerpack/owners" - } - ], - "custom-caching": [ - { - "description": "Host the remote cache without using Nx Cloud", - "file": "shared/features/powerpack/custom-caching", - "id": "custom-caching", - "name": "Self-Host the Remote Cache", - "path": "/features/powerpack/custom-caching" - } - ], "intro": [ { "description": "", @@ -811,13 +784,6 @@ } ], "installation": [ - { - "description": "", - "file": "shared/recipes/installation/activate-powerpack", - "id": "activate-powerpack", - "name": "Activate Powerpack", - "path": "/recipes/installation/activate-powerpack" - }, { "description": "", "file": "shared/recipes/installation/install-non-javascript", @@ -831,6 +797,13 @@ "id": "update-global-installation", "name": "Update Your Global Nx Installation", "path": "/recipes/installation/update-global-installation" + }, + { + "description": "", + "file": "shared/recipes/installation/activate-powerpack", + "id": "activate-powerpack", + "name": "Activate Powerpack", + "path": "/nx-enterprise/activate-powerpack" } ], "workspace-watching": [ @@ -1103,6 +1076,33 @@ "path": "/recipes/tips-n-tricks/flat-config" } ], + "conformance": [ + { + "description": "Write and apply rules for your Nx workspace", + "file": "shared/features/powerpack/conformance", + "id": "conformance", + "name": "Run Language-Agnostic Conformance Rules", + "path": "/nx-enterprise/powerpack/conformance" + } + ], + "owners": [ + { + "description": "Configure and maintain code owners for projects in an Nx workspace", + "file": "shared/features/powerpack/owners", + "id": "owners", + "name": "Define Code Ownership at the Project Level", + "path": "/nx-enterprise/powerpack/owners" + } + ], + "custom-caching": [ + { + "description": "Host the remote cache without using Nx Cloud", + "file": "shared/features/powerpack/custom-caching", + "id": "custom-caching", + "name": "Self-Host the Remote Cache", + "path": "/nx-enterprise/powerpack/custom-caching" + } + ], "database": [ { "description": "", diff --git a/docs/map.json b/docs/map.json index 3e4416a8e9..7d1721adcc 100644 --- a/docs/map.json +++ b/docs/map.json @@ -131,35 +131,6 @@ "tags": ["nx-release"], "file": "shared/features/manage-releases" }, - { - "name": "Powerpack Features", - "id": "powerpack", - "description": "Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.", - "file": "shared/features/powerpack/index", - "itemList": [ - { - "name": "Run Language-Agnostic Conformance Rules", - "description": "Write and apply rules for your Nx workspace", - "id": "conformance", - "tags": ["conformance"], - "file": "shared/features/powerpack/conformance" - }, - { - "name": "Define Code Ownership at the Project Level", - "description": "Configure and maintain code owners for projects in an Nx workspace", - "id": "owners", - "tags": ["owners"], - "file": "shared/features/powerpack/owners" - }, - { - "name": "Self-Host the Remote Cache", - "description": "Host the remote cache without using Nx Cloud", - "id": "custom-caching", - "tags": ["custom-caching"], - "file": "shared/features/powerpack/custom-caching" - } - ] - }, { "name": "CI Features", "id": "ci-features", @@ -377,12 +348,6 @@ "id": "installation", "description": "Installing Nx", "itemList": [ - { - "name": "Activate Powerpack", - "id": "activate-powerpack", - "tags": ["installation"], - "file": "shared/recipes/installation/activate-powerpack" - }, { "name": "Install Nx in a Non-Javascript Repo", "id": "install-non-javascript", @@ -1105,6 +1070,48 @@ } ] }, + { + "name": "Enterprise", + "id": "nx-enterprise", + "description": "Enterprise solutions for the Nx CLI", + "itemList": [ + { + "name": "Activate Powerpack", + "id": "activate-powerpack", + "tags": ["installation"], + "file": "shared/recipes/installation/activate-powerpack" + }, + { + "name": "Powerpack Features", + "id": "powerpack", + "description": "Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.", + "file": "shared/features/powerpack/index", + "itemList": [ + { + "name": "Run Language-Agnostic Conformance Rules", + "description": "Write and apply rules for your Nx workspace", + "id": "conformance", + "tags": ["conformance"], + "file": "shared/features/powerpack/conformance" + }, + { + "name": "Define Code Ownership at the Project Level", + "description": "Configure and maintain code owners for projects in an Nx workspace", + "id": "owners", + "tags": ["owners"], + "file": "shared/features/powerpack/owners" + }, + { + "name": "Self-Host the Remote Cache", + "description": "Host the remote cache without using Nx Cloud", + "id": "custom-caching", + "tags": ["custom-caching"], + "file": "shared/features/powerpack/custom-caching" + } + ] + } + ] + }, { "name": "Showcase", "id": "showcase", diff --git a/docs/nx-cloud/concepts/cache-security.md b/docs/nx-cloud/concepts/cache-security.md index 616d9b1672..67785337c4 100644 --- a/docs/nx-cloud/concepts/cache-security.md +++ b/docs/nx-cloud/concepts/cache-security.md @@ -46,7 +46,7 @@ In order to guarantee that cache poisoning will never affect your end users, [sk ### Do Not Manually Share Your Local Cache -Nx implicitly trusts the local cache which is stored by default in the `.nx/cache` folder. You can change the location of that folder in the `nx.json` file, so it could be tempting to place it on a network drive and easily share your cache with everyone on the company network. However, by doing this you've voided the guarantee of immutability from your cache. If someone has direct access to the cached files, they could directly poison the cache. Nx will automatically detect if a cache entry has been created in your local cache using a different machine and warn you with an [Unknown Local Cache Error](/troubleshooting/unknown-local-cache). Instead, use Nx Cloud [remote caching](/ci/features/remote-cache). If you want share your local cache anyway, you can [activate Nx Powerpack](/recipes/installation/activate-powerpack) and use the [`@nx/powerpack-shared-fs-cache`](/nx-api/powerpack-shared-fs-cache) plugin. +Nx implicitly trusts the local cache which is stored by default in the `.nx/cache` folder. You can change the location of that folder in the `nx.json` file, so it could be tempting to place it on a network drive and easily share your cache with everyone on the company network. However, by doing this you've voided the guarantee of immutability from your cache. If someone has direct access to the cached files, they could directly poison the cache. Nx will automatically detect if a cache entry has been created in your local cache using a different machine and warn you with an [Unknown Local Cache Error](/troubleshooting/unknown-local-cache). Instead, use Nx Cloud [remote caching](/ci/features/remote-cache). If you want share your local cache anyway, you can [activate Nx Powerpack](/nx-enterprise/activate-powerpack) and use the [`@nx/powerpack-shared-fs-cache`](/nx-api/powerpack-shared-fs-cache) plugin. ### Configure End to End Encryption diff --git a/docs/shared/features/powerpack/conformance.md b/docs/shared/features/powerpack/conformance.md index 9be4b4b2e0..bba2fdeed1 100644 --- a/docs/shared/features/powerpack/conformance.md +++ b/docs/shared/features/powerpack/conformance.md @@ -13,7 +13,7 @@ The plugin also provides the following pre-written rules: ## Setup -The `@nx/powerpack-conformance` plugin requires an Nx Powerpack license to function. [Activating Powerpack](/recipes/installation/activate-powerpack) is a simple process. +The `@nx/powerpack-conformance` plugin requires an Nx Powerpack license to function. [Activating Powerpack](/nx-enterprise/activate-powerpack) is a simple process. {% call-to-action title="Buy a Powerpack License" icon="nx" description="Unlock all the features of Nx" url="https://cloud.nx.app/powerpack/purchase" /%} diff --git a/docs/shared/features/powerpack/custom-caching.md b/docs/shared/features/powerpack/custom-caching.md index 578979059d..b94f964045 100644 --- a/docs/shared/features/powerpack/custom-caching.md +++ b/docs/shared/features/powerpack/custom-caching.md @@ -12,7 +12,7 @@ The options range from fully opting in to Nx's management of the remote cache to ## Setup -The `@nx/powerpack-s3-cache` and `@nx/powerpack-shared-fs-cache` plugins require an Nx Powerpack license to function. [Activating Powerpack](/recipes/installation/activate-powerpack) is a simple process. +The `@nx/powerpack-s3-cache` and `@nx/powerpack-shared-fs-cache` plugins require an Nx Powerpack license to function. [Activating Powerpack](/nx-enterprise/activate-powerpack) is a simple process. {% call-to-action title="Buy a Powerpack License" icon="nx" description="Unlock all the features of the Nx CLI" url="https://cloud.nx.app/powerpack/purchase" /%} diff --git a/docs/shared/features/powerpack/index.md b/docs/shared/features/powerpack/index.md index 67f3f7591d..d55b12b7a4 100644 --- a/docs/shared/features/powerpack/index.md +++ b/docs/shared/features/powerpack/index.md @@ -2,12 +2,12 @@ Nx PowerPack is a suite of paid extensions for the Nx CLI specifically designed for enterprises. Powerpack is available for Nx version 19.8 and higher. -The following features are available after you [activate a Powerpack license](/recipes/installation/activate-powerpack): +The following features are available after you [activate a Powerpack license](/nx-enterprise/activate-powerpack): {% cards cols="2" lgCols="3" mdCols="3" smCols="2" %} - {% link-card title="Conformance" type="Powerpack Feature" url="/features/powerpack/conformance" icon="CheckBadgeIcon" /%} - {% link-card title="Owners" type="Powerpack Feature" url="/features/powerpack/owners" icon="UserGroupIcon" /%} - {% link-card title="Self-Hosted Remote Cache" type="Powerpack Feature" url="/features/powerpack/custom-caching" icon="AwsIcon" /%} + {% link-card title="Conformance" type="Powerpack Feature" url="/nx-enterprise/powerpack/conformance" icon="CheckBadgeIcon" /%} + {% link-card title="Owners" type="Powerpack Feature" url="/nx-enterprise/powerpack/owners" icon="UserGroupIcon" /%} + {% link-card title="Self-Hosted Remote Cache" type="Powerpack Feature" url="/nx-enterprise/powerpack/custom-caching" icon="AwsIcon" /%} {% /cards %} diff --git a/docs/shared/features/powerpack/owners.md b/docs/shared/features/powerpack/owners.md index dcdd451168..71b26342d6 100644 --- a/docs/shared/features/powerpack/owners.md +++ b/docs/shared/features/powerpack/owners.md @@ -8,7 +8,7 @@ The atomic unit of code in an Nx workspace is a project. Tasks, module boundarie ## Setup -The `@nx/powerpack-owners` plugin requires an Nx Powerpack license to function. [Activating Powerpack](/recipes/installation/activate-powerpack) is a simple process. +The `@nx/powerpack-owners` plugin requires an Nx Powerpack license to function. [Activating Powerpack](/nx-enterprise/activate-powerpack) is a simple process. {% call-to-action title="Buy a Powerpack License" icon="nx" description="Unlock all the features of Nx" url="https://cloud.nx.app/powerpack/purchase" /%} diff --git a/docs/shared/guides/unknown-local-cache.md b/docs/shared/guides/unknown-local-cache.md index 3bbc05b693..7175b47283 100644 --- a/docs/shared/guides/unknown-local-cache.md +++ b/docs/shared/guides/unknown-local-cache.md @@ -73,11 +73,11 @@ allow overwrites. an access token gets compromised it can be easily removed, in turn deleting all the cache artifacts that were created using it. -Nx Replay is not the only remote cache you can use. You can also use one of the [Powerpack self-hosted remote cache plugins](/features/powerpack/custom-caching). These plugins offer the performance benefits of a remote cache, but do not have the same security guarantees as Nx Replay. +Nx Replay is not the only remote cache you can use. You can also use one of the [Powerpack self-hosted remote cache plugins](/nx-enterprise/powerpack/custom-caching). These plugins offer the performance benefits of a remote cache, but do not have the same security guarantees as Nx Replay. ## Self-Hosted Remote Cache -If you can't use Nx Replay, Nx provides plugins that enable you to [self-host the remote cache](/features/powerpack/custom-caching). These plugins are available as part of the [Nx Powerpack](/powerpack), which you can unlock by [activating your license](/recipes/installation/activate-powerpack). There are plugins to self-host your remote cache in the following locations: +If you can't use Nx Replay, Nx provides plugins that enable you to [self-host the remote cache](/nx-enterprise/powerpack/custom-caching). These plugins are available as part of the [Nx Powerpack](/powerpack), which you can unlock by [activating your license](/nx-enterprise/activate-powerpack). There are plugins to self-host your remote cache in the following locations: - [Amazon S3 Bucket](/nx-api/powerpack-s3-cache) - [Shared File System](/nx-api/powerpack-shared-fs-cache) diff --git a/docs/shared/packages/powerpack-conformance/powerpack-conformance-plugin.md b/docs/shared/packages/powerpack-conformance/powerpack-conformance-plugin.md index e067719279..67d0a6bdf9 100644 --- a/docs/shared/packages/powerpack-conformance/powerpack-conformance-plugin.md +++ b/docs/shared/packages/powerpack-conformance/powerpack-conformance-plugin.md @@ -18,7 +18,7 @@ In order to use `@nx/powerpack-conformance`, you need to have an active Powerpac ## Set Up @nx/powerpack-conformance -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell diff --git a/docs/shared/packages/powerpack-owners/powerpack-owners-plugin.md b/docs/shared/packages/powerpack-owners/powerpack-owners-plugin.md index 31ca7f0119..3b6a7f8ed2 100644 --- a/docs/shared/packages/powerpack-owners/powerpack-owners-plugin.md +++ b/docs/shared/packages/powerpack-owners/powerpack-owners-plugin.md @@ -13,7 +13,7 @@ In order to use `@nx/powerpack-owners`, you need to have an active Powerpack lic ## Set Up @nx/powerpack-owners -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell diff --git a/docs/shared/packages/powerpack-s3-cache/powerpack-s3-cache-plugin.md b/docs/shared/packages/powerpack-s3-cache/powerpack-s3-cache-plugin.md index 193e471439..dc1ed6a229 100644 --- a/docs/shared/packages/powerpack-s3-cache/powerpack-s3-cache-plugin.md +++ b/docs/shared/packages/powerpack-s3-cache/powerpack-s3-cache-plugin.md @@ -19,7 +19,7 @@ In order to use `@nx/powerpack-s3-cache`, you need to have an active Powerpack l ### 1. Install the Package -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell diff --git a/docs/shared/packages/powerpack-shared-fs-cache/powerpack-shared-fs-cache-plugin.md b/docs/shared/packages/powerpack-shared-fs-cache/powerpack-shared-fs-cache-plugin.md index 88489aeff6..643bf1c831 100644 --- a/docs/shared/packages/powerpack-shared-fs-cache/powerpack-shared-fs-cache-plugin.md +++ b/docs/shared/packages/powerpack-shared-fs-cache/powerpack-shared-fs-cache-plugin.md @@ -19,7 +19,7 @@ In order to use `@nx/powerpack-shared-fs-cache`, you need to have an active Powe ### 1. Install the Package -1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already +1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already 2. Install the package ```shell diff --git a/docs/shared/recipes/installation/activate-powerpack.md b/docs/shared/recipes/installation/activate-powerpack.md index c5cdb8e111..e3844de964 100644 --- a/docs/shared/recipes/installation/activate-powerpack.md +++ b/docs/shared/recipes/installation/activate-powerpack.md @@ -2,9 +2,9 @@ Nx Powerpack unlocks features of Nx that are particularly useful for larger organizations. Powerpack is available for Nx version 19.8 and higher. The features include the ability to: -- [Run language-agnostic conformance rules](/features/powerpack/conformance) -- [Define code ownership at the project level](/features/powerpack/owners) -- [Change the remote cache storage location](/features/powerpack/custom-caching) +- [Run language-agnostic conformance rules](/nx-enterprise/powerpack/conformance) +- [Define code ownership at the project level](/nx-enterprise/powerpack/owners) +- [Change the remote cache storage location](/nx-enterprise/powerpack/custom-caching) Activating Powerpack is a two step process. diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index 48dd25b0d4..ecf7bd0313 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -21,10 +21,6 @@ - [Automate Updating Dependencies](/features/automate-updating-dependencies) - [Enforce Module Boundaries](/features/enforce-module-boundaries) - [Manage Releases](/features/manage-releases) - - [Powerpack Features](/features/powerpack) - - [Run Language-Agnostic Conformance Rules](/features/powerpack/conformance) - - [Define Code Ownership at the Project Level](/features/powerpack/owners) - - [Self-Host the Remote Cache](/features/powerpack/custom-caching) - [CI Features](/features/ci-features) - [Concepts](/concepts) - [Mental Model](/concepts/mental-model) @@ -54,7 +50,6 @@ - [Folder Structure](/concepts/decisions/folder-structure) - [Recipes](/recipes) - [Installation](/recipes/installation) - - [Activate Powerpack](/recipes/installation/activate-powerpack) - [Install Nx in a Non-Javascript Repo](/recipes/installation/install-non-javascript) - [Update Your Global Nx Installation](/recipes/installation/update-global-installation) - [Tasks & Caching](/recipes/running-tasks) @@ -175,6 +170,12 @@ - [Publish a Custom Dist Directory](/recipes/nx-release/publish-custom-dist-directory) - [Build Before Versioning](/recipes/nx-release/build-before-versioning) - [Troubleshoot Nx Console Issues](/recipes/nx-console/console-troubleshooting) + - [Enterprise](/nx-enterprise) + - [Activate Powerpack](/nx-enterprise/activate-powerpack) + - [Powerpack Features](/nx-enterprise/powerpack) + - [Run Language-Agnostic Conformance Rules](/nx-enterprise/powerpack/conformance) + - [Define Code Ownership at the Project Level](/nx-enterprise/powerpack/owners) + - [Self-Host the Remote Cache](/nx-enterprise/powerpack/custom-caching) - [Showcase](/showcase) - [Nx with your favorite tech](/showcase/example-repos) - [Express](/showcase/example-repos/add-express) @@ -777,6 +778,8 @@ - [powerpack-conformance](/nx-api/powerpack-conformance) - [documents](/nx-api/powerpack-conformance/documents) - [Overview](/nx-api/powerpack-conformance/documents/overview) + - [executors](/nx-api/powerpack-conformance/executors) + - [bundle-rule](/nx-api/powerpack-conformance/executors/bundle-rule) - [powerpack-license](/nx-api/powerpack-license) - [powerpack-owners](/nx-api/powerpack-owners) - [documents](/nx-api/powerpack-owners/documents) 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 a7d28aab50..ffd4cb5fcf 100644 --- a/nx-dev/data-access-menu/src/lib/menu.utils.ts +++ b/nx-dev/data-access-menu/src/lib/menu.utils.ts @@ -1,6 +1,6 @@ import { MenuItem, MenuSection } from '@nx/nx-dev/models-menu'; -const COLLAPSIBLE_SECTIONS = ['concepts', 'recipes']; +const COLLAPSIBLE_SECTIONS = ['concepts', 'recipes', 'enterprise']; export function getBasicNxSection(items: MenuItem[]): MenuSection { return { @@ -14,6 +14,7 @@ export function getBasicNxSection(items: MenuItem[]): MenuSection { m.id === 'features' || m.id === 'concepts' || m.id === 'recipes' || + m.id === 'nx-enterprise' || m.id === 'showcase' || m.id === 'reference' || m.id === 'troubleshooting' diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index 61128ebc55..0bd634e07e 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -1144,6 +1144,16 @@ const featurePagesUpdate = { '/ci/features/ai-features': '/ci/concepts/ai-features', }; +const enterpriseNxSection = { + '/features/powerpack': '/nx-enterprise/powerpack', + '/features/powerpack/conformance': '/nx-enterprise/powerpack/conformance', + '/features/powerpack/owners': '/nx-enterprise/powerpack/owners', + '/features/powerpack/custom-caching': + '/nx-enterprise/powerpack/custom-caching', + '/recipes/installation/activate-powerpack': + '/nx-enterprise/activate-powerpack', +}; + /** * Public export API */ @@ -1177,4 +1187,5 @@ module.exports = { decisionsSection, featurePagesUpdate, marketing, + enterpriseNxSection, }; diff --git a/nx-dev/ui-common/src/lib/headers/documentation-header.tsx b/nx-dev/ui-common/src/lib/headers/documentation-header.tsx index 0675e07219..dc9ef5ddcb 100644 --- a/nx-dev/ui-common/src/lib/headers/documentation-header.tsx +++ b/nx-dev/ui-common/src/lib/headers/documentation-header.tsx @@ -262,7 +262,7 @@ export function DocumentationHeader({ leaveTo="opacity-0 translate-y-1" > - + > diff --git a/nx-dev/ui-common/src/lib/headers/header.tsx b/nx-dev/ui-common/src/lib/headers/header.tsx index bb0584ee04..64739266cf 100644 --- a/nx-dev/ui-common/src/lib/headers/header.tsx +++ b/nx-dev/ui-common/src/lib/headers/header.tsx @@ -107,7 +107,7 @@ export function Header(): JSX.Element { leaveTo="opacity-0 translate-y-1" > - + > @@ -397,12 +397,14 @@ export function Header(): JSX.Element { as="ul" className="space-y-1 pb-2" > - {featuresItems.map((item) => ( - - ))} + {Object.values(featuresItems) + .flat() + .map((item) => ( + + ))} > )} diff --git a/nx-dev/ui-common/src/lib/headers/menu-items.ts b/nx-dev/ui-common/src/lib/headers/menu-items.ts index bf9069397e..0d44d8d09f 100644 --- a/nx-dev/ui-common/src/lib/headers/menu-items.ts +++ b/nx-dev/ui-common/src/lib/headers/menu-items.ts @@ -31,95 +31,101 @@ export interface MenuItem { isNew: boolean; } -export const featuresItems: MenuItem[] = [ - { - name: 'Run Tasks', - // description: 'Run one or many tasks in parallel.', - description: null, - href: '/features/run-tasks', - icon: BoltIcon, - isNew: false, - isHighlight: false, - }, - { - name: 'Cache Task Results', - // description: 'Speeds up your local workflow.', - description: null, - href: '/features/cache-task-results', - icon: CircleStackIcon, - isNew: false, - isHighlight: false, - }, - { - name: 'Explore Your Workspace', - // description: 'See interactions for tasks and modules.', - description: null, - href: '/features/explore-graph', - icon: ShareIcon, - isNew: false, - isHighlight: false, - }, - { - name: 'Automate Updating Dependencies', - // description: 'Keep running on latest without effort.', - description: null, - href: '/features/automate-updating-dependencies', - icon: ArrowUpCircleIcon, - isNew: false, - isHighlight: false, - }, - { - name: 'Enforce Module Boundaries', - // description: 'Partition your code into defined units.', - description: null, - href: '/features/enforce-module-boundaries', - icon: Squares2X2Icon, - isNew: false, - isHighlight: false, - }, - { - name: 'Manage Releases', - // description: 'Versioning, changelog, publishing.', - description: null, - href: '/features/manage-releases', - icon: CubeIcon, - isNew: false, - isHighlight: false, - }, - { - name: 'Run Conformance Rules', - description: null, - href: '/features/powerpack/conformance', - icon: CheckBadgeIcon, - isNew: false, - isHighlight: false, - }, - { - name: 'Define Project Owners', - description: null, - href: '/features/powerpack/owners', - icon: UserGroupIcon, - isNew: false, - isHighlight: false, - }, - { - name: 'Use Remote Caching (Nx Replay)', - description: 'Zero-config, fast & secure remote cache solution.', - href: '/ci/features/remote-cache', - icon: NxReplayIcon, - isNew: false, - isHighlight: true, - }, - { - name: 'Distribute Task Execution (Nx Agents)', - description: - 'One-line config for distributing tasks across multiple machines', - href: '/ci/features/distribute-task-execution', - icon: NxAgentsIcon, - isNew: false, - isHighlight: true, - }, -]; +export const featuresItems: Record = { + '': [ + { + name: 'Run Tasks', + // description: 'Run one or many tasks in parallel.', + description: null, + href: '/features/run-tasks', + icon: BoltIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Cache Task Results', + // description: 'Speeds up your local workflow.', + description: null, + href: '/features/cache-task-results', + icon: CircleStackIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Explore Your Workspace', + // description: 'See interactions for tasks and modules.', + description: null, + href: '/features/explore-graph', + icon: ShareIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Automate Updating Dependencies', + // description: 'Keep running on latest without effort.', + description: null, + href: '/features/automate-updating-dependencies', + icon: ArrowUpCircleIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Enforce Module Boundaries', + // description: 'Partition your code into defined units.', + description: null, + href: '/features/enforce-module-boundaries', + icon: Squares2X2Icon, + isNew: false, + isHighlight: false, + }, + { + name: 'Manage Releases', + // description: 'Versioning, changelog, publishing.', + description: null, + href: '/features/manage-releases', + icon: CubeIcon, + isNew: false, + isHighlight: false, + }, + ], + 'Nx Cloud Features': [ + { + name: 'Use Remote Caching (Nx Replay)', + description: 'Zero-config, fast & secure remote cache solution.', + href: '/ci/features/remote-cache', + icon: NxReplayIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Distribute Task Execution (Nx Agents)', + description: + 'One-line config for distributing tasks across multiple machines', + href: '/ci/features/distribute-task-execution', + icon: NxAgentsIcon, + isNew: false, + isHighlight: false, + }, + ], + 'Nx Powerpack Features (Paid Enterprise Extensions)': [ + { + name: 'Run Conformance Rules', + description: null, + href: '/nx-enterprise/powerpack/conformance', + icon: CheckBadgeIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Define Project Owners', + description: null, + href: '/nx-enterprise/powerpack/owners', + icon: UserGroupIcon, + isNew: false, + isHighlight: false, + }, + ], +}; export const solutions: MenuItem[] = [ { name: 'Nx Cloud', diff --git a/nx-dev/ui-common/src/lib/headers/sections-menu.tsx b/nx-dev/ui-common/src/lib/headers/sections-menu.tsx index 646dea834f..3049645da6 100644 --- a/nx-dev/ui-common/src/lib/headers/sections-menu.tsx +++ b/nx-dev/ui-common/src/lib/headers/sections-menu.tsx @@ -11,9 +11,11 @@ export function SectionsMenu({ {Object.keys(sections).map((section) => ( - - {section} - + {section ? ( + + {section} + + ) : undefined} {sections[section].map((item) => ( diff --git a/nx-dev/ui-powerpack/src/lib/get-started.tsx b/nx-dev/ui-powerpack/src/lib/get-started.tsx index 861242e3d8..7fc4305f2d 100644 --- a/nx-dev/ui-powerpack/src/lib/get-started.tsx +++ b/nx-dev/ui-powerpack/src/lib/get-started.tsx @@ -143,21 +143,21 @@ export function GetStarted(): ReactElement { Install Powerpack plugins such as{' '} Self-hosted cache storage ,{' '} workspace conformance , and{' '} Codeowners for monorepos diff --git a/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx b/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx index be91ed2279..edd146083b 100644 --- a/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx +++ b/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx @@ -51,7 +51,7 @@ export function PowerpackFeatures(): ReactElement {
Install Powerpack plugins such as{' '} Self-hosted cache storage ,{' '} workspace conformance , and{' '} Codeowners for monorepos diff --git a/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx b/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx index be91ed2279..edd146083b 100644 --- a/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx +++ b/nx-dev/ui-powerpack/src/lib/powerpack-features.tsx @@ -51,7 +51,7 @@ export function PowerpackFeatures(): ReactElement {