blackcoffee2 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/test-aplicacion.con-logisession/BlackCoffee.js +0 -226
- package/test-aplicacion.con-logisession/SSL_SETUP.md +0 -53
- package/test-aplicacion.con-logisession/certs/ca-certificate.pem +0 -32
- package/test-aplicacion.con-logisession/certs/ca-private-key.pem +0 -52
- package/test-aplicacion.con-logisession/certs/certificate-2048.pem +0 -22
- package/test-aplicacion.con-logisession/certs/certificate.pem +0 -32
- package/test-aplicacion.con-logisession/certs/private-key-2048.pem +0 -28
- package/test-aplicacion.con-logisession/certs/private-key.pem +0 -52
- package/test-aplicacion.con-logisession/config/iaQueueSetup.js +0 -84
- package/test-aplicacion.con-logisession/config/qwen-rules.json +0 -39
- package/test-aplicacion.con-logisession/controllers/analyticsController.js +0 -117
- package/test-aplicacion.con-logisession/controllers/auth/AdminAuthController.js +0 -142
- package/test-aplicacion.con-logisession/controllers/auth/AuthController.js +0 -439
- package/test-aplicacion.con-logisession/controllers/auth/AuthViewController.js +0 -223
- package/test-aplicacion.con-logisession/controllers/endpointController.js +0 -66
- package/test-aplicacion.con-logisession/controllers/example.js +0 -183
- package/test-aplicacion.con-logisession/controllers/iaQueueController.js +0 -367
- package/test-aplicacion.con-logisession/controllers/queueController.js +0 -206
- package/test-aplicacion.con-logisession/controllers/qwenQueueController.js +0 -197
- package/test-aplicacion.con-logisession/controllers/test.js +0 -0
- package/test-aplicacion.con-logisession/controllers/tracking/EventsNoFinishController.js +0 -78
- package/test-aplicacion.con-logisession/controllers/tracking/TrackingController.js +0 -412
- package/test-aplicacion.con-logisession/controllers/tracking/TrackingControllerWithLoadModel.js +0 -437
- package/test-aplicacion.con-logisession/hooks/admin-hooks.js +0 -20
- package/test-aplicacion.con-logisession/hooks/general-hooks.js +0 -97
- package/test-aplicacion.con-logisession/hooks/queue-hooks.js +0 -64
- package/test-aplicacion.con-logisession/hooks/route-directory-hooks.js +0 -38
- package/test-aplicacion.con-logisession/hooks/security-hooks.js +0 -24
- package/test-aplicacion.con-logisession/insitu-admin-client/README.md +0 -69
- package/test-aplicacion.con-logisession/insitu-admin-client/package.json +0 -23
- package/test-aplicacion.con-logisession/insitu-admin-client.js +0 -257
- package/test-aplicacion.con-logisession/models/ExampleModel.js +0 -88
- package/test-aplicacion.con-logisession/models/QueueJobModel.js +0 -263
- package/test-aplicacion.con-logisession/models/TokenModel.js +0 -207
- package/test-aplicacion.con-logisession/models/auth/AuthModel.js +0 -66
- package/test-aplicacion.con-logisession/models/auth/UserModel.js +0 -189
- package/test-aplicacion.con-logisession/models/tracking/CompletedCartModel.js +0 -213
- package/test-aplicacion.con-logisession/models/tracking/EventModel.js +0 -366
- package/test-aplicacion.con-logisession/models/tracking/EventsNoFinishModel.js +0 -131
- package/test-aplicacion.con-logisession/models/tracking/SessionModel.js +0 -360
- package/test-aplicacion.con-logisession/models/tracking/SiteFlowModel.js +0 -286
- package/test-aplicacion.con-logisession/models/tracking/TokenModel.js +0 -207
- package/test-aplicacion.con-logisession/package-lock.json +0 -3313
- package/test-aplicacion.con-logisession/package.json +0 -32
- package/test-aplicacion.con-logisession/public/blackcoffee-welcome/index.html +0 -1339
- package/test-aplicacion.con-logisession/public/css/style.css +0 -64
- package/test-aplicacion.con-logisession/public/ejemplo-estatica/index.html +0 -18
- package/test-aplicacion.con-logisession/public/ejemplo-estatica/script.js +0 -16
- package/test-aplicacion.con-logisession/public/ejemplo-estatica/styles.css +0 -43
- package/test-aplicacion.con-logisession/public/images/logo.svg +0 -7
- package/test-aplicacion.con-logisession/public/js/main.js +0 -67
- package/test-aplicacion.con-logisession/routes/analytics-routes.json +0 -8
- package/test-aplicacion.con-logisession/routes/auth-routes.json +0 -98
- package/test-aplicacion.con-logisession/routes/blackcoffee-welcome-routes.json +0 -20
- package/test-aplicacion.con-logisession/routes/duplicate-test-routes.json.disabled +0 -16
- package/test-aplicacion.con-logisession/routes/ejemplo-estatica-routes.json +0 -11
- package/test-aplicacion.con-logisession/routes/endpoints-routes.json +0 -8
- package/test-aplicacion.con-logisession/routes/ia-queue-routes.json +0 -26
- package/test-aplicacion.con-logisession/routes/product-routes.json.disabled +0 -20
- package/test-aplicacion.con-logisession/routes/queue-routes.json +0 -32
- package/test-aplicacion.con-logisession/routes/qwen-routes.json +0 -14
- package/test-aplicacion.con-logisession/routes/static-routes.json +0 -29
- package/test-aplicacion.con-logisession/routes/tracking-routes.json +0 -58
- package/test-aplicacion.con-logisession/routes/tracking-with-loadmodel-routes.json +0 -51
- package/test-aplicacion.con-logisession/utils/dbAdapter.js +0 -88
- package/test-aplicacion.con-logisession/utils/qbWrapper.js +0 -4
- package/test-aplicacion.con-logisession/utils/queueProcessor.js +0 -305
- package/test-aplicacion.con-logisession/utils/qwenRulesService.js +0 -131
- package/test-aplicacion.con-logisession/utils/tokenHelper.js +0 -22
- package/test-aplicacion.con-logisession/views/auth/dashboard.html +0 -443
- package/test-aplicacion.con-logisession/views/auth/forgot-password.html +0 -200
- package/test-aplicacion.con-logisession/views/auth/login.html +0 -213
- package/test-aplicacion.con-logisession/views/auth/register.html +0 -294
- package/test-aplicacion.con-logisession/views/contact/form.html +0 -47
- package/test-aplicacion.con-logisession/views/products/index.html +0 -39
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blackcoffee2",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "A app server built with Insitu Framework",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"author": "Benjamin Sanchez Cardenas <bytedogssyndicate@gmail.com>",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"backend",
|
|
41
41
|
"framework",
|
|
42
42
|
"microservices",
|
|
43
|
-
"api-server"
|
|
43
|
+
"api-server",
|
|
44
|
+
"mvc"
|
|
44
45
|
]
|
|
45
46
|
}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
#!/bin/node
|
|
2
|
-
/**
|
|
3
|
-
* Aplicación BlackCoffee con insitu-js
|
|
4
|
-
* Servidor backend para construir aplicaciones web
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
// Cargar variables de entorno desde archivo .env
|
|
8
|
-
require('dotenv').config();
|
|
9
|
-
|
|
10
|
-
const jerk = require('insitu-js');
|
|
11
|
-
const {
|
|
12
|
-
APIServer,
|
|
13
|
-
Logger,
|
|
14
|
-
RouteLoader,
|
|
15
|
-
RouteDirectoryLoader,
|
|
16
|
-
Firewall, // Importar el Firewall
|
|
17
|
-
hooks
|
|
18
|
-
} = jerk;
|
|
19
|
-
|
|
20
|
-
// Importar los módulos de hooks
|
|
21
|
-
const { registerGeneralHooks } = require('./hooks/general-hooks');
|
|
22
|
-
const { registerSecurityHooks } = require('./hooks/security-hooks');
|
|
23
|
-
const { registerQueueHooks } = require('./hooks/queue-hooks');
|
|
24
|
-
const { registerRouteDirectoryHooks } = require('./hooks/route-directory-hooks');
|
|
25
|
-
const { registerAdminHooks } = require('./hooks/admin-hooks');
|
|
26
|
-
|
|
27
|
-
// Importar el procesador de colas
|
|
28
|
-
const { queueProcessor } = require('./utils/queueProcessor');
|
|
29
|
-
|
|
30
|
-
// Importar y configurar el sistema de colas global
|
|
31
|
-
const { QueueIntegration } = require('insitu-js');
|
|
32
|
-
const globalQueueIntegration = new QueueIntegration();
|
|
33
|
-
|
|
34
|
-
// Crear instancia del logger
|
|
35
|
-
const logger = new Logger({ level: 'debug' });
|
|
36
|
-
|
|
37
|
-
// Crear instancia del Firewall con opciones personalizadas
|
|
38
|
-
const firewall = new Firewall({
|
|
39
|
-
maxAttempts: 5, // Máximo de intentos fallidos antes de bloquear
|
|
40
|
-
blockDuration: 900000, // Duración del bloqueo en ms (15 minutos)
|
|
41
|
-
whitelist: ['127.0.0.1'], // IPs que no deben ser bloqueadas
|
|
42
|
-
blacklist: [], // IPs que siempre deben ser bloqueadas
|
|
43
|
-
logger: logger // Instancia de logger para eventos de seguridad
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
// Array para almacenar los controladores disponibles
|
|
47
|
-
let availableControllers = [];
|
|
48
|
-
|
|
49
|
-
// Instancia del cargador de rutas desde directorio
|
|
50
|
-
let routeDirectoryLoader = null;
|
|
51
|
-
|
|
52
|
-
// Registrar todos los hooks
|
|
53
|
-
registerGeneralHooks(hooks, logger, availableControllers);
|
|
54
|
-
registerSecurityHooks(hooks, logger);
|
|
55
|
-
registerQueueHooks(hooks, logger);
|
|
56
|
-
registerRouteDirectoryHooks(hooks, logger);
|
|
57
|
-
registerAdminHooks(hooks);
|
|
58
|
-
|
|
59
|
-
async function startApp() {
|
|
60
|
-
// Configurar opciones del servidor
|
|
61
|
-
const serverOptions = {
|
|
62
|
-
port: parseInt(process.env.PORT) || 3000,
|
|
63
|
-
host: '0.0.0.0',
|
|
64
|
-
requestTimeout: parseInt(process.env.REQUEST_TIMEOUT) || 300000, // 5 minutos por defecto (era 2 minutos)
|
|
65
|
-
connectionTimeout: parseInt(process.env.CONNECTION_TIMEOUT) || 300000 // 5 minutos por defecto (era 2 minutos)
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// Agregar soporte para SSL basado en variables de entorno
|
|
69
|
-
if (process.env.ENABLE_SSL === 'true') {
|
|
70
|
-
serverOptions.https = true;
|
|
71
|
-
|
|
72
|
-
if (process.env.SSL_KEY_PATH && process.env.SSL_CERT_PATH) {
|
|
73
|
-
serverOptions.key = process.env.SSL_KEY_PATH;
|
|
74
|
-
serverOptions.cert = process.env.SSL_CERT_PATH;
|
|
75
|
-
|
|
76
|
-
// Opcional: soporte para certificado CA
|
|
77
|
-
if (process.env.SSL_CA_PATH) {
|
|
78
|
-
serverOptions.ca = process.env.SSL_CA_PATH;
|
|
79
|
-
}
|
|
80
|
-
} else {
|
|
81
|
-
console.error('ERROR: ENABLE_SSL está activado pero faltan las variables SSL_KEY_PATH o SSL_CERT_PATH');
|
|
82
|
-
process.exit(1);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Crear instancia del servidor
|
|
87
|
-
const server = new APIServer(serverOptions);
|
|
88
|
-
|
|
89
|
-
// Exponer el servidor y el sistema de colas globalmente para que otros módulos puedan acceder a ellos
|
|
90
|
-
global.apiServer = server;
|
|
91
|
-
global.queueIntegration = globalQueueIntegration;
|
|
92
|
-
|
|
93
|
-
try {
|
|
94
|
-
// Aplicar middleware del Firewall ANTES de cualquier otro middleware
|
|
95
|
-
server.use(firewall.middleware());
|
|
96
|
-
|
|
97
|
-
// Inicializar SessionManager
|
|
98
|
-
const { SessionManager } = require('insitu-js');
|
|
99
|
-
const sessionManager = new SessionManager({
|
|
100
|
-
cookieName: 'blackcoffee_session',
|
|
101
|
-
secret: process.env.SESSION_SECRET || 'blackcoffee-session-secret-change-in-production',
|
|
102
|
-
timeout: 3600000 // 1 hora por defecto
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
// Aplicar middleware de sesión
|
|
106
|
-
server.use(sessionManager.middleware());
|
|
107
|
-
server.sessionManager = sessionManager;
|
|
108
|
-
|
|
109
|
-
// Middleware para capturar inicio de solicitudes
|
|
110
|
-
server.use((req, res, next) => {
|
|
111
|
-
// Disparar hook de solicitud recibida
|
|
112
|
-
hooks.doAction('request_received', req, res);
|
|
113
|
-
|
|
114
|
-
// Guardar la función original de res.end
|
|
115
|
-
const originalEnd = res.end;
|
|
116
|
-
|
|
117
|
-
// Sobrescribir res.end para capturar cuando se completa la solicitud
|
|
118
|
-
res.end = function(chunk, encoding, callback) {
|
|
119
|
-
// Llamar a la función original
|
|
120
|
-
const result = originalEnd.call(this, chunk, encoding, callback);
|
|
121
|
-
|
|
122
|
-
// Disparar hook de solicitud completada
|
|
123
|
-
hooks.doAction('request_completed', req, res);
|
|
124
|
-
|
|
125
|
-
return result;
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
next();
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
// Determinar si se deben cargar rutas desde archivo o directorio
|
|
132
|
-
// Si la variable de entorno USE_FILE_ROUTES está definida como 'true', se usa el archivo en lugar del directorio
|
|
133
|
-
if (process.env.USE_FILE_ROUTES === 'true') {
|
|
134
|
-
// Determinar qué archivo de rutas usar basado en variables de entorno
|
|
135
|
-
// Prioridad: CUSTOM_ROUTES_PATH > USE_DEFAULT_ROUTES > routes.json por defecto
|
|
136
|
-
let routesFilePath = './routes.json'; // Valor por defecto
|
|
137
|
-
|
|
138
|
-
if (process.env.CUSTOM_ROUTES_PATH) {
|
|
139
|
-
routesFilePath = process.env.CUSTOM_ROUTES_PATH;
|
|
140
|
-
logger.info(`Usando ruta personalizada para rutas: ${routesFilePath}`);
|
|
141
|
-
} else if (process.env.USE_DEFAULT_ROUTES === 'true') {
|
|
142
|
-
routesFilePath = './routes-default.json';
|
|
143
|
-
logger.info(`Usando rutas por defecto: ${routesFilePath}`);
|
|
144
|
-
} else {
|
|
145
|
-
logger.info(`Usando rutas estándar: ${routesFilePath}`);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Cargar rutas desde archivo JSON
|
|
149
|
-
const routeLoader = new RouteLoader();
|
|
150
|
-
await routeLoader.loadRoutes(server, routesFilePath);
|
|
151
|
-
} else {
|
|
152
|
-
logger.info('Usando carga de rutas desde directorio (modo predeterminado)');
|
|
153
|
-
|
|
154
|
-
// Crear instancia del cargador de rutas desde directorio
|
|
155
|
-
routeDirectoryLoader = new RouteDirectoryLoader();
|
|
156
|
-
|
|
157
|
-
// Directorio que contiene los archivos JSON de rutas
|
|
158
|
-
const routesDirectory = process.env.ROUTES_DIRECTORY || './routes';
|
|
159
|
-
logger.info(`Cargando rutas desde directorio: ${routesDirectory}`);
|
|
160
|
-
|
|
161
|
-
// Cargar rutas desde el directorio
|
|
162
|
-
const loadedRoutes = await routeDirectoryLoader.loadRoutesFromDirectory(server, routesDirectory);
|
|
163
|
-
logger.info(`${loadedRoutes.length} rutas cargadas exitosamente desde el directorio`);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Mostrar los controladores disponibles (usando hooks)
|
|
167
|
-
logger.info('\n=== CONTROLADORES DISPONIBLES ===');
|
|
168
|
-
availableControllers.forEach((controller, index) => {
|
|
169
|
-
// logger.info(`[[CONTROLLER ${index + 1}]] - Nombre: ${controller.name}`);
|
|
170
|
-
// logger.info(`[[PATH]] - Ruta: ${controller.path}`);
|
|
171
|
-
// logger.info(`[[HANDLERS]] - Funciones: ${controller.handlers.join(', ')}`);
|
|
172
|
-
// logger.info('---');
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
// Iniciar el servidor
|
|
177
|
-
server.start();
|
|
178
|
-
|
|
179
|
-
// Mostrar el protocolo correcto según si está usando SSL o no
|
|
180
|
-
const protocol = (process.env.ENABLE_SSL === 'true') ? 'https' : 'http';
|
|
181
|
-
const host = process.env.HOST || 'localhost';
|
|
182
|
-
const port = process.env.PORT || '9791'; // Usar el puerto predeterminado 9791
|
|
183
|
-
logger.info(`\nServidor BlackCoffee iniciado en ${protocol}://${host}:${server.port}`);
|
|
184
|
-
logger.info('La aplicación está lista para servir peticiones web');
|
|
185
|
-
|
|
186
|
-
// Disparar hook antes de iniciar el procesador de colas
|
|
187
|
-
hooks.doAction('queue_processor_before_start');
|
|
188
|
-
|
|
189
|
-
// Iniciar el sistema de colas global
|
|
190
|
-
global.queueIntegration.start();
|
|
191
|
-
logger.info('Sistema de colas global iniciado');
|
|
192
|
-
|
|
193
|
-
// Configurar las colas de IA después de iniciar el sistema de colas
|
|
194
|
-
require('./config/iaQueueSetup.js');
|
|
195
|
-
|
|
196
|
-
// Iniciar el procesador de colas
|
|
197
|
-
queueProcessor.start();
|
|
198
|
-
logger.info('Procesador de colas iniciado');
|
|
199
|
-
|
|
200
|
-
// Disparar hook después de iniciar el procesador de colas
|
|
201
|
-
hooks.doAction('queue_processor_after_start');
|
|
202
|
-
|
|
203
|
-
} catch (error) {
|
|
204
|
-
logger.error('Error iniciando la aplicación:', error.message);
|
|
205
|
-
logger.error('Stack trace:', error.stack);
|
|
206
|
-
|
|
207
|
-
// Disparar hook antes de detener el procesador de colas en caso de error
|
|
208
|
-
hooks.doAction('queue_processor_before_stop_on_error');
|
|
209
|
-
|
|
210
|
-
// Asegurarse de detener el procesador de colas en caso de error
|
|
211
|
-
try {
|
|
212
|
-
queueProcessor.stop();
|
|
213
|
-
} catch (stopError) {
|
|
214
|
-
logger.error('Error deteniendo el procesador de colas:', stopError.message);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Disparar hook después de detener el procesador de colas en caso de error
|
|
218
|
-
hooks.doAction('queue_processor_after_stop_on_error');
|
|
219
|
-
|
|
220
|
-
process.exit(1);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
startApp();
|
|
225
|
-
|
|
226
|
-
module.exports = { startApp };
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# Configuración SSL para BlackCoffee
|
|
2
|
-
|
|
3
|
-
Este documento explica cómo configurar BlackCoffee para que funcione con SSL/TLS.
|
|
4
|
-
|
|
5
|
-
## Variables de Entorno
|
|
6
|
-
|
|
7
|
-
Para habilitar SSL en BlackCoffee, configure las siguientes variables de entorno:
|
|
8
|
-
|
|
9
|
-
- `ENABLE_SSL`: Establezca en `true` para habilitar SSL (por defecto es `false`)
|
|
10
|
-
- `SSL_KEY_PATH`: Ruta al archivo de clave privada SSL
|
|
11
|
-
- `SSL_CERT_PATH`: Ruta al archivo de certificado SSL
|
|
12
|
-
- `SSL_CA_PATH`: (Opcional) Ruta al archivo de certificado de autoridad (CA)
|
|
13
|
-
|
|
14
|
-
## Configuración de Ejemplo
|
|
15
|
-
|
|
16
|
-
En su archivo `.env`, puede configurar SSL de la siguiente manera:
|
|
17
|
-
|
|
18
|
-
```env
|
|
19
|
-
# Deshabilitar SSL (por defecto)
|
|
20
|
-
ENABLE_SSL=false
|
|
21
|
-
|
|
22
|
-
# O habilitar SSL
|
|
23
|
-
ENABLE_SSL=true
|
|
24
|
-
SSL_KEY_PATH=./certs/private-key.pem
|
|
25
|
-
SSL_CERT_PATH=./certs/certificate.pem
|
|
26
|
-
SSL_CA_PATH=./certs/ca-certificate.pem
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Generación de Certificados
|
|
30
|
-
|
|
31
|
-
Si necesita certificados autofirmados para desarrollo, puede generarlos con OpenSSL:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Crear directorio para certificados
|
|
35
|
-
mkdir -p certs
|
|
36
|
-
|
|
37
|
-
# Generar clave privada y certificado autofirmado
|
|
38
|
-
openssl req -x509 -newkey rsa:4096 -keyout certs/private-key.pem -out certs/certificate.pem -days 365 -nodes -subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Producción
|
|
42
|
-
|
|
43
|
-
Para entornos de producción, asegúrese de:
|
|
44
|
-
|
|
45
|
-
1. Utilizar certificados válidos emitidos por una Autoridad de Certificación (CA) confiable
|
|
46
|
-
2. Proteger adecuadamente los archivos de clave privada
|
|
47
|
-
3. Mantener actualizados los certificados antes de su vencimiento
|
|
48
|
-
|
|
49
|
-
## Notas Adicionales
|
|
50
|
-
|
|
51
|
-
- Cuando SSL está habilitado, el servidor escuchará en el puerto configurado usando HTTPS
|
|
52
|
-
- El valor predeterminado sigue siendo HTTP para compatibilidad hacia atrás
|
|
53
|
-
- Si `ENABLE_SSL` está establecido en `true` pero faltan `SSL_KEY_PATH` o `SSL_CERT_PATH`, el servidor mostrará un error y se cerrará
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIFmzCCA4OgAwIBAgIUaonLK1BNS/GlUNojPOgGRGjQPEowDQYJKoZIhvcNAQEL
|
|
3
|
-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
-
MRgwFgYDVQQKDA9DQSBPcmdhbml6YXRpb24xFTATBgNVBAMMDGNhLmxvY2FsaG9z
|
|
5
|
-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
-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
-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
-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
-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
-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
-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
-
LDxiv7ODVy6Iz81vcireIKZCuAuTvqq0AoPdXO/11Anfbqx67+nBg1sdSB8IfI1I
|
|
13
|
-
+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
-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
-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
-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
-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
-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
-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
-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
-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
-
+t4JQgAYMULNCkbskiuMtlKo3yJ201NdoH+CihKpzhLOEZkucOxh8j/FAVmB5dFk
|
|
23
|
-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
-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
-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
-
FXfxQQCRyo4VAi/85TPJDPIktkSOEEsEML0+bxeTjIsILLmhoL2erD433axj8liX
|
|
27
|
-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
-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
-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
-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
-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
|
|
32
|
-
-----END CERTIFICATE-----
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
-----BEGIN PRIVATE KEY-----
|
|
2
|
-
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
-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
-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
-
/yvRvh16QTw0/3fgwtyenA7oorbZ2g1TFooHsJVxV+m+EK6M/UWjnukYlQo7EMdV
|
|
6
|
-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
-
XO/11Anfbqx67+nBg1sdSB8IfI1I+UTk9wGaRy9kiJp2mhXj5UnbVPm2HpmFysGJ
|
|
8
|
-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
-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
-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
-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
-
Pjoz7CUICGWI7vyS2aIgCzhbTIes2c34VLxF7RyupehcUAjn+aZXhX09H6Wynh5v
|
|
13
|
-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
-
xgSfQdDCTZuRmIkGBZGR7pt674aAYuqsC65BZrGDi26iCFFaeFWMWA504RPrFL6T
|
|
15
|
-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
-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
-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
-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
-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
-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
-
51M38DJJjRWtxq+Z8KeBwxq9/LoGx4uFsg7zUjVV3gpuGHK+Lcmohx0gXuAoay44
|
|
22
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
XwLafHFO8jxaYgOEqP9jNELL5pN4vLxxlqMxqFJlAhcnDVfK+PT3WovFujR8NyLk
|
|
37
|
-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
-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
-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
-
jFYBujDQXHlBK3TVO4IM+d8JZIu4bsvHx146Vk0CggEBAMaXFPEMlQGQeMgzbD/e
|
|
41
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
|
51
|
-
n3kP2JSr6Y7hpD0t/0f75+RdnCog+GQ=
|
|
52
|
-
-----END PRIVATE KEY-----
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIDjzCCAnegAwIBAgIUTuUu2F+FkfM5v+yLPfKvNZzLz+YwDQYJKoZIhvcNAQEL
|
|
3
|
-
BQAwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
|
|
4
|
-
MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0y
|
|
5
|
-
NjAyMTQwMDIzMDRaFw0yNzAyMTQwMDIzMDRaMFcxCzAJBgNVBAYTAlVTMQ4wDAYD
|
|
6
|
-
VQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEVMBMGA1UECgwMT3JnYW5pemF0aW9u
|
|
7
|
-
MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
|
8
|
-
AoIBAQC8q2hknxipLvS7uSsLURP3vUxg+TACP4g0WVjyk2eTLK7NX+JmA5dv+AaN
|
|
9
|
-
P4ZBOnAV2/QwR+BlrlxH2mRPUJcRk3dK7jKfgidbSm7sqXZxav1Ej59ph9vjqBdb
|
|
10
|
-
X7NfpKfh+AEnWmi8C3VIyAOFb60y9SjuUlUzzBeToPh3iJ0gw0zT84XdLl+wnV47
|
|
11
|
-
KjzsLHqRAmBSUct1XGCej0WLeqLwm8i+6685VY2yH4LrYUCmAUV9fxrPGJSkgPgT
|
|
12
|
-
faMK/5bC3TytzVSU9iUTP0OiEhJOrJcZMG2ybGPdpSlgp4v5eZA96TFqsKO/TJoy
|
|
13
|
-
VzGmRqSqtStmV86accmPsvlCt2RhAgMBAAGjUzBRMB0GA1UdDgQWBBSf/HSRcBqE
|
|
14
|
-
Oi9zeDmu0BE8w/M6MzAfBgNVHSMEGDAWgBSf/HSRcBqEOi9zeDmu0BE8w/M6MzAP
|
|
15
|
-
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQC0mfIAGGA1XaKrLIpK
|
|
16
|
-
A+sWqmcyI4dwVyP00CRVy3M9jnwNIOnw3YxdSfKeClX93yRYrRpjPRRqH8JA4ys2
|
|
17
|
-
NS8kyvkH899urPU2hZXnuzEk/FHM+0ETxo/qBxavMbzLoDPj+pEj8emI9muoAzBR
|
|
18
|
-
wlyD0wbRgvspC2A4lZ+AUIqZHU86u+yrPWPon/y0U6W3h03NA3Xej7pE++wTN9xT
|
|
19
|
-
/RHrmJWzSQzPXhxMSX0m9hL6WQvv+3kh9KneXt33xJ4YCAj1ogje/nMzU6yaAXXV
|
|
20
|
-
bAJlngUgodn6dEKd3eGbfQBR095/CMk7kjHbnrr/MIrXjoMCIBxzVebVHX/5yIdT
|
|
21
|
-
agQm
|
|
22
|
-
-----END CERTIFICATE-----
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIFjzCCA3egAwIBAgIUQCyN9vl6wQccgNE3HOZbLrxTix8wDQYJKoZIhvcNAQEL
|
|
3
|
-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
-
MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0y
|
|
5
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
|
32
|
-
-----END CERTIFICATE-----
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
-----BEGIN PRIVATE KEY-----
|
|
2
|
-
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8q2hknxipLvS7
|
|
3
|
-
uSsLURP3vUxg+TACP4g0WVjyk2eTLK7NX+JmA5dv+AaNP4ZBOnAV2/QwR+BlrlxH
|
|
4
|
-
2mRPUJcRk3dK7jKfgidbSm7sqXZxav1Ej59ph9vjqBdbX7NfpKfh+AEnWmi8C3VI
|
|
5
|
-
yAOFb60y9SjuUlUzzBeToPh3iJ0gw0zT84XdLl+wnV47KjzsLHqRAmBSUct1XGCe
|
|
6
|
-
j0WLeqLwm8i+6685VY2yH4LrYUCmAUV9fxrPGJSkgPgTfaMK/5bC3TytzVSU9iUT
|
|
7
|
-
P0OiEhJOrJcZMG2ybGPdpSlgp4v5eZA96TFqsKO/TJoyVzGmRqSqtStmV86accmP
|
|
8
|
-
svlCt2RhAgMBAAECggEAHI3pqQ7uJc7iQdYaxmXxOnW3LVcRdcmlRNz/6gi2rI7e
|
|
9
|
-
7tzT8EIbZZoZbb+/QziDtb86JCOAugrrUwGh3GIzVvjlXV0TItKJP9cSVjWopC4/
|
|
10
|
-
4iRFiWyDMl+il1Ty2icatIe7LvhPMSSfzdHdvJCEG1oA5Z7m38XEDLcYW8j8lPRP
|
|
11
|
-
RT7OIbE2BhDEZHdnubvSTjM2pISxJxKMWnbiMK0byvVwUsldmN9ZuMPDzwv9Y5qp
|
|
12
|
-
MbLC1TTjv2irSkV3yggqjZjIG5rzdoVYNxOYT7RLjwSui0bR1wGtS4ZFnUaE6bAU
|
|
13
|
-
FZ7TnHo+Y6xQ3Bdzv4VSUGgRLn+9l5TmNvIe3i7DRQKBgQDsZEDHeq5kMm2YeMIv
|
|
14
|
-
F1O0OmSIbkoK1n9Gu4vkAJfqkCNfyVEYeC4X4fQ+sK/PkCwDV+H4Qfx0qaSMtPI6
|
|
15
|
-
DKbfqs0yKlYS6JvxCk8z/bTalELTqmvD/WopKUYMF+DMiAvXfH2+L7DH73MMr5Qo
|
|
16
|
-
vDykLwjri+IP+8xgb6gsGJ46FQKBgQDMUchmtZKQ9nIkqyaTiPcMbI3o7pwt+3uq
|
|
17
|
-
OiqdPsp5CcAOkWfc59TSUZD5Zh3gXISgrBIT80CiSREKTpgOKamvPA79kQIKPb5O
|
|
18
|
-
ep8ZVRLv4Pd1As9LI2ptnzZZ0DJJGam1lraiXtiu1Y4O/NB5EIUAlj87wR3nxyKl
|
|
19
|
-
A533emOQHQKBgQCiew4jjmmLqTW3VVlzcL8x4+jx9YyjAmgdQA+ZOecxbL1Du2Yo
|
|
20
|
-
QYK9G6v74woUyu3VpnRFZWWW8nuN01mjGMsidY3w6zSabpOxC/sAq2PB0aJVRpAn
|
|
21
|
-
+GkdvabN7SOwsdoh1QnAzZre8fDMSWq2zRuJZmLlNBLAFbyWlGitVoZ7OQKBgHID
|
|
22
|
-
tRuzeO1RyNIze5xaktmo/eucsyRpsFGGkd8beerfCQBYHahE6hrPD2JMnKFln1D1
|
|
23
|
-
lETzuf6VXV/uCaXlk93IWukecQ/78mViwcNmGOIpHI18GuboBWzUqoSlzFnEa1J8
|
|
24
|
-
nr+uw6WUX+h3JXJZSI7SSMj0c9ax5eBFS3IdJs/1AoGAOEsheOU783soNhLYbsNz
|
|
25
|
-
g+WuWYFm33aaDcAB0Bwr0FQt4nXAdaAJW7JouyTtnsmYq0DTz2RBouxpiigt5qg1
|
|
26
|
-
qE1HETdfdO282QiI2IkxH5c7gTrvc0XrxKYCpUuOnobABVsQeRiitTHQvp3FcwQW
|
|
27
|
-
Kkl1ouq9cAlbKAJ1VTEHVsk=
|
|
28
|
-
-----END PRIVATE KEY-----
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
-----BEGIN PRIVATE KEY-----
|
|
2
|
-
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDiP+9iigLLhInh
|
|
3
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
vDjjbiDiJh2Ye2sEDVH9XcwuwnlQN+DwL2r3ckZBAgSMIJGZetszNKsZIepnQ31+
|
|
13
|
-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
-
Y6OAZ2sRoJhMEc8OQb15V3g86JwZC87V9P7q7Q4jLrMUvfuxu0s5i4B8Of0hwsqY
|
|
15
|
-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
-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
-
NfojSFdXksydem2NU7yv2IFo+2GAABHW7zkGYTFoM5B+6zz3VrDzR3a1UpTw+ueV
|
|
18
|
-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
-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
-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
-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
-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
-
4r6XN11rkoiAIbuytAvrzbLNhYRduWSeJiPLbFG5yKcUAA0MkhC9ZY8BwVk8V0mx
|
|
24
|
-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
-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
-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
-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
-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
-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
-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
-
8Mc2HWPFNeno+PpGCBs1lLGH8gtXPRo424nKUQNJ5AdemA4eeBlwbxy5ltTjQ/Ao
|
|
32
|
-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
-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
-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
-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
-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
-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
-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
-
qIaWkfkJ+VTi18jR8HOIpnlEFrV+Z4BxnB4BRRpoaUirpleU9B41PvDKz93eXK4j
|
|
40
|
-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
-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
-
b//QcB3tdt1bdAtSsGbzQohiLqmfnIQOU/G8mZ0kk6bba8I7ThkCdRNDx6Kk3j8Q
|
|
43
|
-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
-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
-
3JCMPyS5OGROS7hqHMmOK/izV5EZ1c+hRXt7F3yN7XmKGUAa571IwI1se+/K1AA4
|
|
46
|
-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
-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
-
yPGXUusNRtOliwZYuJ6ymuUeyy1egglIqVV6aQH6MZC/oFFfRR1Bku7JvU/JzrZ/
|
|
49
|
-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
-
Ev3XhW1YIxeDCBm6siaiyULFMj8DEPB3pQOuKErqXHfs1wvJICCKp3BqpvSFOcfO
|
|
51
|
-
wAaKuo3SY0hW6Y3Jc8hf3Xz8qfSbXA==
|
|
52
|
-
-----END PRIVATE KEY-----
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
// Configuración del sistema de colas de IA siguiendo el patrón del ejemplo test-app
|
|
2
|
-
|
|
3
|
-
const { HookSystem } = require('insitu-js');
|
|
4
|
-
|
|
5
|
-
// Verificar que el sistema de colas global esté disponible
|
|
6
|
-
if (global.queueIntegration) {
|
|
7
|
-
// Crear sistema de hooks para la cola de IA
|
|
8
|
-
const iaHooks = new HookSystem();
|
|
9
|
-
|
|
10
|
-
// Hook para personalizar la lógica de procesamiento
|
|
11
|
-
iaHooks.addAction('queue_execute_task', (task, queueName, taskObj) => {
|
|
12
|
-
console.log(`[IA_QUEUE] Preparando para procesar tarea: ${taskObj.id}`);
|
|
13
|
-
|
|
14
|
-
// Envolver la tarea original con lógica adicional
|
|
15
|
-
const wrappedTask = async (datos, taskObj) => {
|
|
16
|
-
console.log(`[IA_QUEUE] Iniciando procesamiento de IA: ${taskObj.id}`);
|
|
17
|
-
try {
|
|
18
|
-
const result = await task(datos, taskObj);
|
|
19
|
-
console.log(`[IA_QUEUE] Procesamiento completado: ${taskObj.id}`);
|
|
20
|
-
return result;
|
|
21
|
-
} catch (error) {
|
|
22
|
-
console.log(`[IA_QUEUE] Error procesando tarea: ${taskObj.id} - ${error.message}`);
|
|
23
|
-
throw error;
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
return wrappedTask;
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
// Hook para manejar la lógica de fallback
|
|
31
|
-
iaHooks.addAction('queue_task_fallback', (queueName, task, error) => {
|
|
32
|
-
console.log(`[IA_QUEUE] Ejecutando fallback para tarea:`, error.message);
|
|
33
|
-
// Lógica personalizada para manejar tareas que fallan definitivamente
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
// Hook para registrar tareas completadas
|
|
37
|
-
iaHooks.addAction('queue_task_completed', async (queueName, task) => {
|
|
38
|
-
// El hook queue_task_completed se llama con (queueName, task) según el código del sistema de colas
|
|
39
|
-
// El resultado no se pasa directamente en este hook, sino que se maneja de otra manera
|
|
40
|
-
console.log(`[IA_QUEUE] Hook queue_task_completed recibió:`, { queueName, task });
|
|
41
|
-
|
|
42
|
-
// Extraer el ID de la tarea del objeto
|
|
43
|
-
let taskId;
|
|
44
|
-
if (task && typeof task === 'object' && task.id) {
|
|
45
|
-
taskId = task.id;
|
|
46
|
-
} else if (typeof task === 'string') {
|
|
47
|
-
taskId = task; // Si es un string, asumimos que es el ID
|
|
48
|
-
} else {
|
|
49
|
-
console.error(`[IA_QUEUE] No se pudo obtener ID de la tarea completada:`, { task });
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
console.log(`[IA_QUEUE] Tarea completada en cola ${queueName}:`, taskId);
|
|
54
|
-
|
|
55
|
-
// En este hook no tenemos acceso directo al resultado de la tarea
|
|
56
|
-
// El resultado debe ser manejado de otra manera, posiblemente almacenado temporalmente
|
|
57
|
-
// durante la ejecución de la tarea y luego recuperado aquí
|
|
58
|
-
|
|
59
|
-
// Para este ejemplo, vamos a asumir que el resultado ya está disponible en algún lugar
|
|
60
|
-
// o que se manejará de forma diferente
|
|
61
|
-
console.log(`[IA_QUEUE] Tarea ${taskId} completada, pero el resultado debe manejarse de otra manera`);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
// Hook para registrar tareas fallidas
|
|
65
|
-
iaHooks.addAction('queue_task_failed', (queueName, taskObj, error) => {
|
|
66
|
-
if (!taskObj || !taskObj.id) {
|
|
67
|
-
console.error(`[IA_QUEUE] Tarea fallida sin ID válido:`, { taskObj, error });
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
console.log(`[IA_QUEUE] Tarea fallida en cola ${queueName}:`, taskObj.id, error.message);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
// Crear la cola de IA con hooks personalizados
|
|
75
|
-
global.queueIntegration.createQueue('ia-processing', {
|
|
76
|
-
concurrency: 2, // Máximo 2 tareas de IA ejecutándose simultáneamente
|
|
77
|
-
retryAttempts: 3, // Reintentar hasta 3 veces si falla
|
|
78
|
-
retryDelay: 2000 // Esperar 2 segundos entre reintentos
|
|
79
|
-
}, iaHooks);
|
|
80
|
-
|
|
81
|
-
console.log('[IA_QUEUE] Cola de IA configurada correctamente');
|
|
82
|
-
} else {
|
|
83
|
-
console.error('[IA_QUEUE] El sistema de colas global no está disponible');
|
|
84
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"qwenRules": {
|
|
3
|
-
"restrictSystemInfo": true,
|
|
4
|
-
"preventDataLeakage": true,
|
|
5
|
-
"allowExternalContext": false,
|
|
6
|
-
"maxResponseTokens": 2000,
|
|
7
|
-
"responseFormat": "json",
|
|
8
|
-
"prohibitedTopics": [
|
|
9
|
-
"sistema de archivos",
|
|
10
|
-
"estructura de directorios",
|
|
11
|
-
"archivos del sistema",
|
|
12
|
-
"información interna",
|
|
13
|
-
"código fuente del sistema",
|
|
14
|
-
"configuración interna"
|
|
15
|
-
],
|
|
16
|
-
"requiredTopics": [
|
|
17
|
-
"datos proporcionados",
|
|
18
|
-
"análisis de información",
|
|
19
|
-
"recomendaciones basadas en datos"
|
|
20
|
-
],
|
|
21
|
-
"customInstructions": [
|
|
22
|
-
"Solo responde sobre los datos que se te proporcionan explícitamente",
|
|
23
|
-
"No hagas suposiciones sobre la estructura interna del sistema",
|
|
24
|
-
"Si se te pregunta sobre archivos o estructura del sistema, redirige a los datos proporcionados",
|
|
25
|
-
"Mantén el enfoque en el análisis de los datos proporcionados"
|
|
26
|
-
]
|
|
27
|
-
},
|
|
28
|
-
"queueSettings": {
|
|
29
|
-
"defaultPriority": 0,
|
|
30
|
-
"maxRetries": 3,
|
|
31
|
-
"processingTimeout": 60000,
|
|
32
|
-
"maxPayloadSize": 1048576
|
|
33
|
-
},
|
|
34
|
-
"security": {
|
|
35
|
-
"sanitizeInputs": true,
|
|
36
|
-
"validateOutputs": true,
|
|
37
|
-
"blockSuspiciousPatterns": true
|
|
38
|
-
}
|
|
39
|
-
}
|