UNPKG

@ev1lc0rp/n8n-nodes-ninjaone

Version:

Professional NinjaOne RMM integration for n8n with complete ticketing and device management

58 lines (45 loc) 2.54 kB
# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Common Development Commands ### Build and Development - `npm run build` - Clean dist, compile TypeScript, and copy icons - `npm run dev` - Start TypeScript compiler in watch mode - `tsc` - Direct TypeScript compilation to dist/ ### Code Quality - `npm run lint` - Run ESLint on nodes, credentials, and package.json - `npm run lintfix` - Auto-fix ESLint issues - `npm run format` - Format code with Prettier ### Pre-publish - `npm run prepublishOnly` - Build and lint with stricter rules (.eslintrc.prepublish.js) ## Project Architecture This is an n8n community node package providing NinjaOne RMM platform integration. The project follows n8n's community node conventions and implements OAuth2 authentication. ### Key Structure - **Main entry point**: `dist/nodes/NinjaOne/NinjaOne.node.js` (compiled from `nodes/NinjaOne/NinjaOne.node.ts`) - **Credentials**: OAuth2 implementation in `credentials/NinjaOneOAuth2Api.credentials.ts` - **Operations**: Modular operation definitions in `nodes/NinjaOne/operations/` (device.ts, ticket.ts) - **Icons**: SVG files copied from nodes/ to dist/nodes/ during build via gulpfile.js ### Node Implementation Pattern - Resources (device, ticket) are defined in separate operation files - Each operation exports arrays of properties and execution logic - Main node class imports and combines all operations - Uses n8n's requestDefaults pattern for OAuth2 authentication ### Authentication Flow - Primary: OAuth2 Client Credentials Flow (`NinjaOneOAuth2Api`) - Legacy: HMAC-based authentication (`NinjaOneLegacyApi`) for older endpoints - Base URL configurable per region (default: https://api.ninjaone.com) ### TypeScript Configuration - Target: ES2019 with strict mode enabled - Compiled to CommonJS modules in dist/ - Source maps and declarations generated - Includes credentials/, nodes/, and package.json ### ESLint Rules - Uses `eslint-plugin-n8n-nodes-base` with specific rulesets for: - Community package.json validation - Credential class conventions - Node class conventions and parameter validation - Separate prepublish configuration with stricter rules ### Development Notes - Icons (SVG/PNG) are automatically copied from source to dist during build - The `new-node-feature-docs/` directory contains API reference documentation for future features - Package follows n8n community node naming conventions (@username/n8n-nodes-*) - Node.js 20.15+ required