From de3e6aa70bebc8a349157e7acc96b6be43309ea2 Mon Sep 17 00:00:00 2001 From: MrMatiz2 Date: Wed, 9 Jul 2025 20:56:19 -0500 Subject: [PATCH] more cleaning --- README.md | 43 ++++++++++ README_S4DS.md | 179 --------------------------------------- nodes/S4DSAuth/README.md | 111 ------------------------ nodes/S4DSAuth/s4ds.svg | 5 -- 4 files changed, 43 insertions(+), 295 deletions(-) create mode 100644 README.md delete mode 100644 README_S4DS.md delete mode 100644 nodes/S4DSAuth/README.md delete mode 100644 nodes/S4DSAuth/s4ds.svg diff --git a/README.md b/README.md new file mode 100644 index 0000000..5d79f18 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +## Prerequisites + +You need the following installed on your development machine: + +* Docker and Docker Compose +* NodeJS, npm and pnpm (Execture npm install -g pnpm@latest-10 after installing npm) + +Once you have cloned the repository: + +* Execute: + ``` + npm i + ``` + +To run the local n8n instance: + +* Execute: + ``` + docker compose up -d + ``` + Now, n8n will run on http://localhost:5678. + +When changes are made to the custom node code and you want to test it on the local instance: + +* There is a script file called deploy-node.sh. Once executed, it will build the custom node code and deploy the Docker container. This file requires a few changes depending on the name that Docker gives to the container and the volumes: + + * On line 24 of the script, you will see this line: + ``` + TARGET_DIR="/var/lib/docker/volumes/n8n-self-hosted_n8n_data/_data/custom/$PACKAGE_NAME" + ``` + + * Depending on the container volume name, "n8n-self-hosted_n8n_data" needs to be changed. To check the volume's name, execute: + + ``` + docker volume ls + ``` + + * On lines 56 and 59, "n8n-self-hosted-n8n-1" must be changed to match the name of the container for the n8n instance. + + * Once these changes are made, execute the script: + ``` + ./deploy-node.sh + ``` \ No newline at end of file diff --git a/README_S4DS.md b/README_S4DS.md deleted file mode 100644 index f2b78ab..0000000 --- a/README_S4DS.md +++ /dev/null @@ -1,179 +0,0 @@ -# S4DS Nodes para n8n - -Este paquete de nodos personalizados para n8n proporciona integración completa con las APIs de S4DS, incluyendo autenticación y operaciones de ejemplo. - -## Nodos Incluidos - -### 1. S4DS Authentication -Nodo principal para autenticación con las APIs de S4DS. - -**Características:** -- Generación de tokens Bearer -- Validación de tokens existentes -- Soporte para múltiples ambientes (Test, UAT, Production) -- Soporte para múltiples clientes (Demo, Cliente 1, Cliente 2) -- Almacenamiento automático de tokens en contexto del workflow -- Gestión de expiración de tokens - -**Operaciones:** -- **Generate Token**: Genera un nuevo token de autenticación -- **Validate Token**: Valida un token existente - -### 2. S4DS Example -Nodo de ejemplo que demuestra cómo usar el token de autenticación. - -**Características:** -- Consume tokens del contexto del workflow -- Soporte para tokens personalizados -- Verificación automática de expiración -- Operaciones de ejemplo con la API - -**Operaciones:** -- **Get Product Count**: Obtiene la cantidad total de productos - -## Instalación - -1. Clone este repositorio -2. Instale las dependencias: - ```bash - npm install - ``` -3. Compile el proyecto: - ```bash - npm run build - ``` -4. Instale el paquete en n8n: - ```bash - npm install -g . - ``` - -## Configuración - -### Credenciales S4DS API - -Configure las credenciales de S4DS API en n8n: - -1. Vaya a **Settings** → **Credentials** -2. Haga clic en **Add Credential** -3. Seleccione **S4DS API** -4. Configure: - - **Base URL**: Seleccione el ambiente y cliente - - **Custom Base URL**: Para URLs personalizadas - - **Timeout**: Tiempo de espera para peticiones - -### URLs Disponibles - -#### Demo -- **Test**: `https://demotest.s4ds.com/demoapi-test` -- **UAT**: `https://demouat.s4ds.com/demoapi-uat` -- **Production**: `https://demoprod.s4ds.com/demoapi-prod` - -#### Cliente 1 -- **Test**: `https://cliente1test.s4ds.com/cliente1api-test` -- **UAT**: `https://cliente1uat.s4ds.com/cliente1api-uat` -- **Production**: `https://cliente1prod.s4ds.com/cliente1api-prod` - -#### Cliente 2 -- **Test**: `https://cliente2test.s4ds.com/cliente2api-test` -- **UAT**: `https://cliente2uat.s4ds.com/cliente2api-uat` -- **Production**: `https://cliente2prod.s4ds.com/cliente2api-prod` - -## Uso - -### Workflow Básico - -1. **Configurar Credenciales**: - - Configure las credenciales de S4DS API con usuario, contraseña y ambiente - - Agregue el nodo **S4DS Authentication** - - Configure la operación "Generate Token" - -2. **Usar el Token**: - - Agregue el nodo **S4DS Example** o **HTTP Request** - - Configure para usar el token del contexto - - Ejecute las operaciones deseadas - -### Ejemplo de Workflow - -``` -[S4DS Auth: Generate Token] → [S4DS Example: Get User Profile] → [Process Data] -``` - -### Acceso al Token - -El token se almacena automáticamente en el contexto del workflow y puede ser accedido usando: - -```javascript -{{ $context.s4ds_token }} -``` - -O con clave personalizada: - -```javascript -{{ $context.your_custom_key }} -``` - -## Estructura del Token - -El token se almacena con la siguiente estructura: - -```json -{ - "token": "8a6c71b3-fa62-434d-8b38-907de24c3176", - "token_type": "Bearer", - "expires_in": 3600, - "expires_at": "2024-01-01T12:00:00.000Z" -} -``` - -## Manejo de Errores - -Los nodos manejan automáticamente: -- Errores de autenticación -- Tokens expirados -- Errores de red -- Timeouts -- Respuestas malformadas - -## Desarrollo - -### Estructura del Proyecto - -``` -n8n-nodes-starter-s4ds/ -├── nodes/ -│ ├── S4DSAuth/ # Nodo de autenticación -│ ├── S4DSExample/ # Nodo de ejemplo -│ └── ... -├── credentials/ -│ └── S4DSApi.credentials.ts -├── package.json -└── index.js -``` - -### Comandos de Desarrollo - -```bash -# Compilar -npm run build - -# Desarrollo con watch -npm run dev - -# Linting -npm run lint - -# Formatear código -npm run format -``` - -## Contribución - -1. Fork el repositorio -2. Cree una rama para su feature -3. Haga commit de sus cambios -4. Push a la rama -5. Abra un Pull Request - -## Licencia - -MIT License - vea el archivo LICENSE para más detalles. \ No newline at end of file diff --git a/nodes/S4DSAuth/README.md b/nodes/S4DSAuth/README.md deleted file mode 100644 index c9f29ef..0000000 --- a/nodes/S4DSAuth/README.md +++ /dev/null @@ -1,111 +0,0 @@ -# S4DS Authentication Node - -Este nodo permite autenticarse con las APIs de S4DS y gestionar tokens de acceso. - -## Características - -- **Generación de tokens**: Autenticación con usuario y contraseña -- **Validación de tokens**: Verificar si un token es válido -- **Múltiples ambientes**: Soporte para Test, UAT y Production -- **Múltiples clientes**: Configuración para diferentes clientes (Demo, Cliente 1, Cliente 2) -- **Gestión de contexto**: Almacenamiento automático de tokens para uso en otros nodos - -## Configuración - -### Credenciales - -1. Configure las credenciales de S4DS API: - - **Base URL**: Seleccione el ambiente y cliente correspondiente - - **Username**: Nombre de usuario para autenticación - - **Password**: Contraseña para autenticación - - **Custom Base URL**: Para URLs personalizadas - - **Timeout**: Tiempo de espera para las peticiones (ms) - -### Operaciones - -#### Generate Token - -Genera un token de autenticación usando las credenciales configuradas. - -**Parámetros opcionales:** -- **Store Token in Context**: Almacenar token en el contexto del workflow -- **Token Context Key**: Clave para almacenar el token (por defecto: `s4ds_token`) - -**Parámetros opcionales:** -- **Store Token in Context**: Almacenar token en el contexto del workflow -- **Token Context Key**: Clave para almacenar el token (por defecto: `s4ds_token`) - -**Respuesta:** -```json -{ - "token_type": "Bearer", - "expires_in": 3600, - "token": "8a6c71b3-fa62-434d-8b38-907de24c3176" -} -``` - -#### Validate Token - -Valida si un token existente es válido. - -**Parámetros requeridos:** -- **Token**: Token a validar - -## Uso en Workflows - -### Flujo básico de autenticación - -1. Configure el nodo **S4DS Auth** con la operación "Generate Token" -2. Configure las credenciales y parámetros de autenticación -3. El token se almacenará automáticamente en el contexto del workflow -4. Use el token en otros nodos de API S4DS - -### Acceso al token desde otros nodos - -El token se almacena en el contexto del workflow y puede ser accedido usando: - -``` -{{ $context.s4ds_token }} -``` - -O si configuró una clave personalizada: - -``` -{{ $context.your_custom_key }} -``` - -## URLs de API - -### Demo -- **Test**: `https://demotest.s4ds.com/demoapi-test` -- **UAT**: `https://demouat.s4ds.com/demoapi-uat` -- **Production**: `https://demoprod.s4ds.com/demoapi-prod` - -### Cliente 1 -- **Test**: `https://cliente1test.s4ds.com/cliente1api-test` -- **UAT**: `https://cliente1uat.s4ds.com/cliente1api-uat` -- **Production**: `https://cliente1prod.s4ds.com/cliente1api-prod` - -### Cliente 2 -- **Test**: `https://cliente2test.s4ds.com/cliente2api-test` -- **UAT**: `https://cliente2uat.s4ds.com/cliente2api-uat` -- **Production**: `https://cliente2prod.s4ds.com/cliente2api-prod` - -## Manejo de Errores - -El nodo maneja automáticamente: -- Errores de autenticación (credenciales inválidas) -- Errores de red y timeout -- Tokens expirados -- Errores de formato de respuesta - -## Ejemplo de Workflow - -``` -[S4DS Auth: Generate Token] → [HTTP Request: API Call] → [Process Data] -``` - -En el nodo HTTP Request, configure el header de autorización: -``` -Authorization: Bearer {{ $context.s4ds_token }} -``` \ No newline at end of file diff --git a/nodes/S4DSAuth/s4ds.svg b/nodes/S4DSAuth/s4ds.svg deleted file mode 100644 index e31775a..0000000 --- a/nodes/S4DSAuth/s4ds.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file