Credenciales - Gestion de autenticacion
Que son las Credenciales
Sección titulada «Que son las Credenciales»Sistema de almacenamiento seguro para datos de autenticacion como claves API, tokens, contrasenas y conexiones a bases de datos. Las credenciales se almacenan cifradas en la base de datos y se cargan bajo demanda por los modulos que necesitan autenticacion con servicios externos. Se almacenan en la tabla servicecredentials.
Como funcionan
Sección titulada «Como funcionan»- Se crean y gestionan desde el panel de administracion.
- Se almacenan como JSON en la columna
credentialsde la tablaservicecredentials. - Los modulos las cargan mediante
getCredentials(config.credentials_id). - El identificador puede ser numerico (ID) o string (service_name).
- Cada credencial esta asociada a un
client_id.
Tipos de credenciales comunes
Sección titulada «Tipos de credenciales comunes»API Key
Sección titulada «API Key»Para servicios como OpenAI, Telegram, entre otros:
{ "apiKey": "sk-xxxx..." }Basic Auth
Sección titulada «Basic Auth»Para HTTP, APIs REST:
{ "username": "user", "password": "pass123" }OAuth2 / Token
Sección titulada «OAuth2 / Token»Para Shopify, Amazon, Google, entre otros:
{ "access_token": "token_xxx", "refresh_token": "refresh_xxx" }Base de datos
Sección titulada «Base de datos»Para PostgreSQL, MySQL, MSSQL, Oracle:
{ "host": "db.example.com", "port": 5432, "user": "admin", "password": "secret", "database": "mydb", "ssl": true}SMTP (Email)
Sección titulada «SMTP (Email)»Para SendMail:
{ "host": "smtp.gmail.com", "port": 465, "secure": true, "auth_user": "user@gmail.com", "auth_pass": "app_password"}Webhook URL
Sección titulada «Webhook URL»Para Slack:
{ "webhookUrl": "https://hooks.slack.com/services/xxx", "username": "Bot" }Bot Token
Sección titulada «Bot Token»Para Telegram:
{ "botToken": "123456:ABC-DEF..." }E-commerce
Sección titulada «E-commerce»Para Shopify:
{ "shop_domain": "mitienda.myshopify.com", "access_token": "shpat_xxx..."}Para WooCommerce:
{ "url": "https://mitienda.com", "consumer_key": "ck_xxx", "consumer_secret": "cs_xxx"}Usar credenciales en un modulo
Sección titulada «Usar credenciales en un modulo»En el editor visual, el campo credentials_id muestra un selector de credenciales disponibles. El archivo metadata.json del modulo define el campo con "type": "credentials". Opcionalmente se puede incluir "provider": "stripe" para filtrar las credenciales por tipo de servicio.
En el codigo del modulo, se accede de la siguiente manera:
const credentials = await getCredentials(config.credentials_id);// credentials.apiKey, credentials.host, etc.Seguridad y buenas practicas
Sección titulada «Seguridad y buenas practicas»- Nunca incluir credenciales directamente en la configuracion del nodo.
- Siempre usar el campo
credentials_idpara referenciar credenciales almacenadas. - Las credenciales no se exponen en los logs ni en las trazas de ejecucion.
- Cada cliente tiene sus propias credenciales aisladas mediante
client_id. - Rotar tokens y contrasenas periodicamente para mantener la seguridad.
Tabla de referencia por servicio
Sección titulada «Tabla de referencia por servicio»| Servicio | Campos necesarios | Donde obtenerlos |
|---|---|---|
| OpenAI | apiKey | platform.openai.com/api-keys |
| Stripe | secret_key | dashboard.stripe.com/apikeys |
| Telegram | botToken | @BotFather en Telegram |
| Shopify | shop_domain, access_token | Panel admin Shopify > Apps |
| OAuth2 tokens (automatico) | Google Cloud Console | |
| PostgreSQL | host, port, user, password, database | Tu servidor de BD |
| SMTP | host, port, auth_user, auth_pass | Tu proveedor de email |