feat: version 4.10.0 -- Conectores de datos externos y conector FoxPro
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Conector FoxPro 1.0.0
|
||||
|
||||
API de solo lectura para tablas FoxPro/Visual FoxPro (`.dbf` con memo `.fpt`), según el contrato
|
||||
v1 de [`../README.md`](../README.md). Node.js sin servidor web adicional; única dependencia: `dbffile`.
|
||||
|
||||
- No abre los originales para leer registros: copia `DBF`+`FPT` a una carpeta temporal y lee la
|
||||
copia, así no choca con los bloqueos de SAGA. Si FoxPro tiene la tabla en uso exclusivo → `423`.
|
||||
- El índice `.cdx` no se usa (se recorre la tabla). Las tablas se guardan en caché y la caché se
|
||||
renueva sola cuando cambia el archivo.
|
||||
- Tipos soportados: C, N, F, Y, I, L, D, T, B, M. Otros (V, Q, W…) se omiten.
|
||||
|
||||
## Instalación en el Windows (`C:\api_project\foxpro`)
|
||||
|
||||
1. Copiar esta carpeta a `C:\api_project\foxpro` **con** `node_modules` (no requiere internet en el
|
||||
server). Sin `config.json` ni `logs` de otro equipo.
|
||||
2. Node: copiar `node.exe` portable (Node 20 LTS o superior, Windows x64) a
|
||||
`C:\api_project\foxpro\node\node.exe`. Así no hay que instalar Node en el servidor.
|
||||
3. Token: `node\node.exe scripts\generar-token.js`. El **TOKEN** se carga en el sistema; el
|
||||
**tokenSha256** va en `config.json`.
|
||||
4. `config.json` (a partir de `config.example.json`):
|
||||
- `sources`: una entrada por carpeta (`nomina`, `clientes`…). Usar `path` con doble `\\`.
|
||||
- `tables`: `"*"` (todas) o solo las tablas que se quieren exponer, con `fields` si se quiere
|
||||
limitar columnas. `denyFields` oculta columnas sensibles (sueldo, claves).
|
||||
- `encoding`: `cp1252` normalmente; si salen mal las tildes/eñes, probar `cp850`.
|
||||
- `allowIps`: IP del backend de producción (`192.168.222.3`) y la de desarrollo si aplica.
|
||||
5. Probar a mano: `node\node.exe src\server.js` y, desde el backend,
|
||||
`curl -H "Authorization: Bearer <TOKEN>" http://192.168.0.253:8455/v1/health`.
|
||||
6. Dejarlo como servicio (PowerShell como administrador):
|
||||
`powershell -ExecutionPolicy Bypass -File .\scripts\instalar-servicio.ps1`
|
||||
- Crea la tarea `LinkedCorp-Conector-FoxPro` (arranque con Windows, reinicio si cae) y la regla
|
||||
de firewall del puerto 8455 solo para las IPs permitidas.
|
||||
- Recomendado: `-Usuario 'DOMINIO\svc_conector' -Clave '...'` con una cuenta que tenga **solo
|
||||
lectura** sobre las carpetas de datos (por defecto corre como SYSTEM).
|
||||
7. Desinstalar: `scripts\desinstalar-servicio.ps1`.
|
||||
|
||||
TLS opcional: en `config.json` → `tls.pfx` con la ruta del `.pfx` y la clave en la variable de
|
||||
entorno indicada en `tls.passphraseEnv`. Por la VPN WireGuard el tráfico ya va cifrado.
|
||||
|
||||
Logs: `logs\acceso-AAAA-MM-DD.log` (sin tokens ni valores buscados).
|
||||
|
||||
## Desarrollo
|
||||
|
||||
- `npm test`: crea una tabla DBF temporal, levanta el conector y valida el contrato (16 pruebas).
|
||||
- `npm run token`: genera token + hash.
|
||||
Reference in New Issue
Block a user