more cleaning

This commit is contained in:
MrMatiz2 2025-07-09 20:56:19 -05:00
commit de3e6aa70b
4 changed files with 43 additions and 295 deletions

43
README.md Normal file
View file

@ -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
```

View file

@ -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.

View file

@ -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 }}
```

View file

@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2L2 7l10 5 10-5-10-5z"/>
<path d="M2 17l10 5 10-5"/>
<path d="M2 12l10 5 10-5"/>
</svg>

Before

Width:  |  Height:  |  Size: 289 B