first commit

This commit is contained in:
2026-02-03 14:27:12 +00:00
commit fdd50d2174
5879 changed files with 875439 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# Node Gestión API Firebase Admin
Este proyecto incluye un script de prueba para enviar notificaciones con Firebase Admin SDK.
## Configuración segura de credenciales
La opción más segura para persistir `GOOGLE_APPLICATION_CREDENTIALS` en Linux es usar un archivo de entorno protegido y cargarlo desde tu gestor de procesos (systemd o PM2). Ejemplo con systemd:
1. Crea un archivo de entorno fuera del repo, con permisos restrictivos:
```
# /etc/node-gestion-api.env
GOOGLE_APPLICATION_CREDENTIALS=/var/www/node.gestion.abianservice.com/notabser-firebase-adminsdk-fbsvc-bf88758663.json
FIREBASE_DATABASE_URL=https://<DATABASE_NAME>.firebaseio.com
```
```
sudo chown root:root /etc/node-gestion-api.env
sudo chmod 600 /etc/node-gestion-api.env
```
2. En tu servicio systemd:
```
EnvironmentFile=/etc/node-gestion-api.env
```
Si trabajas localmente, puedes usar `.env` (ya soportado por `dotenv`) y mantenerlo fuera del control de versiones.
## Script de prueba (FCM)
El script está en `src/scripts/sendTestNotification.js`.
Variables esperadas (pueden ir en `.env`):
- `GOOGLE_APPLICATION_CREDENTIALS` (ruta absoluta)
- `FIREBASE_DATABASE_URL` (opcional)
- `FCM_TEST_TOKEN`
- `FCM_TEST_TITLE` (opcional)
- `FCM_TEST_BODY` (opcional)
## Uso rápido
Ejemplo de envío real:
```
node src/scripts/sendTestNotification.js --token "<FCM_DEVICE_TOKEN>" --title "Hola" --body "Prueba"
```
Ejemplo de validación sin enviar (dry run):
```
node src/scripts/sendTestNotification.js --token "<FCM_DEVICE_TOKEN>" --dry-run
```
Self-test de inicialización (no envía):
```
node src/scripts/sendTestNotification.js --self-test
```
También puedes usar el script de npm:
```
npm run notify:test -- --token "<FCM_DEVICE_TOKEN>" --dry-run
```