Credenciales - Gestion de autenticacion
This content is not available in your language yet.
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 |