Zoho Integration Worker
Un servicio de trabajo Node.js que sincroniza datos de las aplicaciones Zoho Creator con Google Sheets para informes y análisis comerciales.
Descripción general
Este worker proporciona sincronización de datos automatizada entre las aplicaciones Zoho Creator y Google Sheets, lo que permite un flujo de datos fluido para las operaciones comerciales y las necesidades de generación de informes.
Arquitectura del sistema
graph TB
A[Worker Google Auth] -->|Dispatch Event| B[Worker Zoho Integration]
B --> C[API de Zoho Creator]
B --> D[Google Sheets API]
C --> E[Application Data]
C --> F[Report Data]
D --> G[Target Spreadsheet]
B --> H[Data Processing Engine]
H --> I[Field Mapping]
H --> J[Date Filtering]
H --> K[Batch Processing]
L[GitHub Secrets] --> B
M[Environment Variables] --> B
N[Column Mapping JSON] --> I
Características
- Zoho Integración del creador: Obtiene datos de Zoho aplicaciones e informes del creador
- Sincronización de hojas de cálculo de Google: escribe datos procesados en Google Sheets
- Mapeo de datos flexible: Admite asignación de campos personalizados mediante configuración JSON
- Filtrado basado en fechas: Filtra registros según criterios de fecha específicos
- Generación de informes: Admite sincronización de informes estándar y personalizada
- Manejo seguro de datos: Toda la información confidencial está debidamente enmascarada y protegida
Arquitectura Técnica
Componentes
- Cliente da API Zoho: Autentica y recupera datos del Zoho Creator
- Integración de Google Sheets: escribe datos procesados en Google Sheets
- Motor de procesamiento de datos: Asigna y transforma datos Zoho para compatibilidad con hojas de cálculo
- Sincronización de informes: Maneja datos de informes estándar y personalizados
- Registro seguro: Registra todas las operaciones con enmascaramiento de datos confidenciales
Flujo de datos
- Autenticación: Utiliza OAuth2 tokens de Google Auth Worker
- Obtención de datos: Recupera registros de Zoho Creator a través de API
- Procesamiento de datos: Asigna campos Zoho a columnas de hoja de cálculo usando la configuración JSON
- Filtrado de fechas: Filtra registros según los requisitos comerciales (por ejemplo, los datos de ayer)
- Actualización de hoja: agrega o sobrescribe datos en Google Sheets
- Informes de estado: Informa el estado de ejecución al sistema de monitoreo
Implementación de seguridad
Arquitectura de seguridad multicapa
graph LR
A[GitHub Secrets] --> B[Environment Variables]
B --> C[OAuth Authentication]
C --> D[API Communication]
D --> E[Data Processing]
E --> F[Google Sheets]
G[Masking Functions] --> H[Log Protection]
I[Sanitization] --> J[Input Validation]
K[Formula Injection Prevention] --> L[Spreadsheet Security]
M[Minimal Permissions] --> N[Attack Surface Reduction]
Funciones de seguridad
- Seguridad OAuth: Utiliza autenticación OAuth2 tanto para Google como para APIs de Zoho
- Seguridad de tokens: Los tokens OAuth se reciben de forma segura a través del envío del repositorio.
- Enmascaramiento de datos: Toda la información confidencial está enmascarada en registros
- Variables de entorno: Credenciales almacenadas de forma segura como variables de entorno
- Permisos mínimos: Los flujos de trabajo GitHub Actions utilizan los permisos mínimos requeridos
- Enmascaramiento secreto explícito: Todos los secretos están enmascarados explícitamente en los flujos de trabajo GitHub Actions usando
::add-mask:: - Registro seguro: Personalizado
secureLogLa función garantiza que no se expongan datos confidenciales en los registros. - Prevención de inyección de fórmula en hoja de cálculo: Personalizado
sanitizeLa función evita que se inyecten fórmulas maliciosas en Google Sheets
Seguridad del flujo de datos
sequenceDiagram
participant Auth as Worker Google Auth
participant GH as GitHub Actions
participant Zoho as API de Zoho Creator
participant Sheets as Google Sheets
participant Worker as Worker Zoho Integration
Auth->>GH: Dispatch Event (masked token)
GH->>Worker: Trigger Workflow
Worker->>Zoho: Secure Authentication
Zoho->>Worker: Application Data
Worker->>Sheets: Processed Data (sanitized)
Worker->>Sheets: Report Data (sanitized)
Note over Worker,Sheets: All data is sanitized before writing
Configuración
Variables de entorno requeridas
GOOGLE_TOKEN=oauth_access_token_from_google_auth_worker
ZOHO_CLIENT_ID=your_zoho_client_id
ZOHO_CLIENT_SECRET=your_zoho_client_secret
ZOHO_REFRESH_TOKEN=your_zoho_refresh_token
ZOHO_ACCOUNT_OWNER=your_zoho_account_owner
ZOHO_APP_LINK_NAME=your_zoho_app_link_name
ZOHO_REPORT_LINK_NAME=your_zoho_report_link_name
SPREADSHEET_ID=your_google_spreadsheet_id
SHEET_NAME=your_google_sheet_name
COLUMN_MAPPING=your_field_mapping_json
GitHub Secretos
Se deben configurar los siguientes secretos en el repositorio GitHub:
GOOGLE_TOKEN: OAuth token de acceso (proporcionado por Google Auth Worker)ZOHO_CLIENT_ID: Zoho OAuth ID de clienteZOHO_CLIENT_SECRET: Zoho OAuth secreto del clienteZOHO_REFRESH_TOKEN: Zoho OAuth token de actualizaciónZOHO_ACCOUNT_OWNER: Zoho identificador del propietario de la cuentaZOHO_APP_LINK_NAME: Zoho nombre del enlace de la aplicaciónZOHO_REPORT_LINK_NAME: Zoho nombre del enlace del informeSPREADSHEET_ID: ID de hoja de cálculo de Google SheetsSHEET_NAME: nombre de la hoja de destino dentro de la hoja de cálculoCOLUMN_MAPPING: Configuración JSON para mapeo de campos
Uso
Sincronización de datos estándar
El worker principal sincroniza los datos de Zoho Creator con Google Sheets:
{
"event_type": "google_token_ready",
"client_payload": {
"token": "oauth_access_token"
}
}
Sincronización de informes
El worker de informes maneja la sincronización de datos de informes personalizados:
{
"event_type": "report_token_ready",
"client_payload": {
"token": "oauth_access_token"
}
}
Configuración de mapeo de campos
el COLUMN_MAPPING La variable de entorno debe contener un objeto JSON que asigne campos Zoho a columnas de la hoja de cálculo:
{
"column_a": "zoho_field_1",
"column_b": "zoho_field_2",
"column_c": "zoho_field_3"
}
Procesamiento de datos
El worker procesa los datos Zoho con la siguiente lógica:
- Autenticación: Se autentica con Zoho usando OAuth2
- Obtención de datos: Recupera registros de la aplicación y el informe Zoho especificados
- Filtrado de fechas: Filtra registros según los requisitos comerciales
- Mapeo de campo: Asigna campos Zoho a columnas de hoja de cálculo
- Transformación de datos: Maneja tipos de campos complejos (búsquedas, selección múltiple, etc.)
- Procesamiento por lotes: Envía datos en lotes para evitar límites de API
Funciones avanzadas
Manejo de campo complejo
El worker admite varios tipos de campos Zoho:
- Campos de búsqueda: Extrae automáticamente los valores de visualización
- Campos de selección múltiple: une múltiples valores con comas
- Campos de fecha/hora: Formateado correctamente para compatibilidad con hojas de cálculo.
- Campos de fórmula: Manejado como campos de datos regulares
Sincronización de informes
El worker de informes proporciona funciones adicionales:
- Datos paginados: Maneja grandes conjuntos de datos con paginación
- Informes personalizados: Admite informes personalizados Zoho
- Sobrescritura de datos: Utiliza el método PUT para sobrescribir los datos existentes
- Configuración flexible: Configuración separada para configuraciones específicas del informe
Funciones de optimización
- Procesamiento por lotes: Usos
appendpara la inserción de datos para minimizar el consumo de cuota de Google Sheets API - Control de paginación: Implementa paginación inteligente que rompe el ciclo si no se encuentran nuevos registros
- Limitación de tasa: Incluye retrasos para respetar los límites de tarifas de API
- Filtrado de fechas eficiente: Filtra datos en el nivla API para reducir la transferencia de datos.
Monitoreo y observabilidad
- Registros de ejecución: Registro seguro con datos confidenciales enmascarados
- Seguimiento de estado: Integración con el monitor de operaciones en la nube para el seguimiento del tiempo de actividad
- Informe de errores: Manejo de errores estructurado con mensajes de error seguros
- Métricas de rendimiento: Seguimiento de paginación y sincronización incorporado
Solución de problemas
Problemas comunes
- Errores de autenticación: Verifique las credenciales de OAuth tanto para Google como para Zoho
- API Límites de tarifa: El worker incluye retrasos para evitar la limitación de tarifas
- Mapeo de campo: Asegúrese de que COLUMN_MAPPING JSON esté formateado correctamente
- Filtrado de fechas: Verifique que los criterios de fecha coincidan con los requisitos comerciales
- Permisos de hoja: Verificar los permisos de Google Sheets API
Registros
Todos los registros de ejecución se procesan mediante funciones de registro seguras que:
- Enmascarar información confidencial
- Incluir marcas de tiempo y niveles de registro
- Reportar al sistema de monitoreo
Puntos de integración
- Google Auth Worker: Recibe OAuth tokens
- API de Zoho Creator: Obtiene datos de aplicaciones e informes
- Google Sheets API: escribe datos procesados
- Monitor de operaciones en la nube: Estado de ejecución de informes
Licencia
Este proyecto tiene la licencia MIT (consulte la notas de licencia en el repositorio para más detalles.
Cumplimiento de seguridad
Esta implementación sigue las mejores prácticas de seguridad:
- [OK] Arquitectura de confianza cero: Sin secretos ni credenciales codificados
- [OK] Defensa en profundidad: Múltiples capas de controles de seguridad
- [OK] Principio de privilegio mínimo: Permisos mínimos y tokens de corta duración.
- [OK] Seguro por diseño: Seguridad integrada en la arquitectura desde cero
- [OK] Repositorio público seguro: No se exponen datos confidenciales ni siquiera en repositorios públicos
- [OK] Validación de entrada: Todos los datos externos están validados y desinfectados
- [OK] Codificación de salida: Previene ataques de inyección en Google Sheets
- [OK] Seguridad de APIs: Comunicación segura con Zoho y Google APIs
Contribuyendo
- Bifurcar el repositorio
- Crear una rama de características
- Haz tus cambios
- Agregue pruebas para sus cambios
- Enviar una solicitud de extracción
Soporte
Para soporte y preguntas, comuníquese con el equipo de desarrollo.
Autor
Patrick Araujo - Ingeniero Informático
GitHub: https://github.com/PkLavc
Portafolio: https://pklavc.com/projects/
Zoho Integration Worker - Pipeline segura de sincronización ETL desde Zoho Creator a Google Sheets.