|
| 1 | +# Create New Product Documentation: $ARGUMENTS |
| 2 | + |
| 3 | +This command helps you quickly set up a new product in the Netwrix documentation site. |
| 4 | + |
| 5 | +Product name provided: **$ARGUMENTS** |
| 6 | + |
| 7 | +## Steps to Complete |
| 8 | + |
| 9 | +1. **Create product directory structure** |
| 10 | + - Parse product name from $ARGUMENTS. If given a normal name (e.g. "Netwrix Privilege Secure") use all lowercase, no spaces, and always remove "netwrix" from the name (e.g., "privilegesecure") |
| 11 | + - Ask if product has versions or is single version (e.g., SaaS) |
| 12 | + - If versioned: ask for version numbers (e.g., "7.4", "7.5") |
| 13 | + - Create directories: |
| 14 | + - Single version: `/docs/{productname}/` |
| 15 | + - Versioned: `/docs/{productname}/{version}/` for each version |
| 16 | + |
| 17 | +2. **Create sidebar configuration** |
| 18 | + - For single version: create `/sidebars/{productname}-sidebar.js` |
| 19 | + - For versioned: create `/sidebars/{productname}-{version}-sidebar.js` for each version |
| 20 | + |
| 21 | + Example sidebar format: |
| 22 | + ```javascript |
| 23 | + // @ts-check |
| 24 | + |
| 25 | + /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ |
| 26 | + const sidebars = { |
| 27 | + sidebar: [ |
| 28 | + { |
| 29 | + type: 'autogenerated', |
| 30 | + dirName: '.', |
| 31 | + }, |
| 32 | + ], |
| 33 | + }; |
| 34 | + |
| 35 | + export default sidebars; |
| 36 | + ``` |
| 37 | + |
| 38 | +3. **Add to the plugins list of docusaurus.config.js** |
| 39 | + |
| 40 | + For single version product: |
| 41 | + ```javascript |
| 42 | + // $ARGUMENTS Product |
| 43 | + [ |
| 44 | + '@docusaurus/plugin-content-docs', |
| 45 | + { |
| 46 | + id: '{productname}', |
| 47 | + path: 'docs/{productname}', |
| 48 | + routeBasePath: 'docs/{productname}', |
| 49 | + sidebarPath: require.resolve('./sidebars/{productname}-sidebar.js'), |
| 50 | + editUrl: 'https://github.com/netwrix/docs/tree/main/', |
| 51 | + exclude: ['**/CLAUDE.md'], |
| 52 | + versions: { |
| 53 | + current: { |
| 54 | + label: 'Current', |
| 55 | + }, |
| 56 | + }, |
| 57 | + }, |
| 58 | + ], |
| 59 | + ``` |
| 60 | + |
| 61 | + For versioned product (add one for each version): |
| 62 | + ```javascript |
| 63 | + // $ARGUMENTS Product {version} |
| 64 | + [ |
| 65 | + '@docusaurus/plugin-content-docs', |
| 66 | + { |
| 67 | + id: '{productname}{version_with_underscores}', // e.g., 'threatprevention7_5' |
| 68 | + path: 'docs/{productname}/{version}', |
| 69 | + routeBasePath: 'docs/{productname}/{version}', |
| 70 | + sidebarPath: require.resolve('./sidebars/{productname}-{version}-sidebar.js'), |
| 71 | + editUrl: 'https://github.com/netwrix/docs/tree/main/', |
| 72 | + exclude: ['**/CLAUDE.md'], |
| 73 | + versions: { |
| 74 | + current: { |
| 75 | + label: '{version}', |
| 76 | + }, |
| 77 | + }, |
| 78 | + }, |
| 79 | + ], |
| 80 | + ``` |
| 81 | + |
| 82 | +4. **Add to HomepageFeatures component** |
| 83 | + |
| 84 | + Ask user which category $ARGUMENTS belongs to: |
| 85 | + - Identity Management |
| 86 | + - Privileged Access Management (PAM) |
| 87 | + - Directory Management |
| 88 | + - Endpoint Management |
| 89 | + - Data Security Posture Management (DSPM) |
| 90 | + - Identity Threat Detection & Response (ITDR) |
| 91 | + - Other |
| 92 | + |
| 93 | + Add to `/src/components/HomepageFeatures/index.js` in the appropriate category: |
| 94 | + |
| 95 | + For single version: |
| 96 | + ```javascript |
| 97 | + { |
| 98 | + title: '$ARGUMENTS', |
| 99 | + link: '/docs/{productname}', |
| 100 | + description: '{Brief product description}' |
| 101 | + }, |
| 102 | + ``` |
| 103 | + |
| 104 | + For versioned (add latest version): |
| 105 | + ```javascript |
| 106 | + { |
| 107 | + title: '$ARGUMENTS', |
| 108 | + link: '/docs/{productname}/{latest_version}', |
| 109 | + description: '{Brief product description}' |
| 110 | + }, |
| 111 | + ``` |
| 112 | + |
| 113 | +5. **Collapse directories in IDE** |
| 114 | + If using Cursor IDE, collapse all directories except `/docs/{productname}` |
| 115 | + |
| 116 | +## Product Categories Reference // Update this list with $ARGUMENTS |
| 117 | + |
| 118 | +- **Identity Management**: Identity Manager, Directory Manager, Platform Governance products |
| 119 | +- **Privileged Access Management (PAM)**: Privilege Secure, Endpoint Privilege Manager, Password Secure |
| 120 | +- **Directory Management**: Auditor, Directory Manager, Password Policy Enforcer |
| 121 | +- **Endpoint Management**: Endpoint Protector, Endpoint Policy Manager, Change Tracker |
| 122 | +- **Data Security Posture Management (DSPM)**: 1Secure, Auditor, Access Analyzer, Data Classification |
| 123 | +- **Identity Threat Detection & Response (ITDR)**: PingCastle, Access Analyzer, Threat Manager, Threat Prevention, Recovery for AD |
| 124 | +- **Other**: Access Information Center, Activity Monitor, Password Reset, Flashlight products |
| 125 | + |
| 126 | +## Important Notes |
| 127 | + |
| 128 | +- Product names should be lowercase with no spaces (e.g., "privilegesecure" not "Privilege Secure") |
| 129 | +- Version numbers use dots in paths but underscores in IDs (e.g., path: "7.5", id: "7_5") |
| 130 | +- All products need the CLAUDE.md exclusion in their config |
| 131 | +- Test with `npm start {productname}` or `npm start {productname}/{version}` after creation |
| 132 | +- Product being created: **$ARGUMENTS** |
0 commit comments