Skip to main content
Version: 1.4.12

Configuración

Cada módulo de SUDOCU tiene su propia configuración, de las cuales la más importante es la del api-server. Hasta el momento son en total 6 archivos:

API-Server#

{
"organismo": {
// Completar el campo código con el número de SAF asignado a la institución
"codigo": 815,
"nombre": "Universidad Nacional de General Sarmiento",
"sigla": "UNGS"
},
"servidor": {
"path": "/",
"host": "0.0.0.0",
"subdomain": "sudocu",
"domain": ".ungs.edu.ar",
"port": "8080",
"seguro": {
"habilitado": true,
"certificados": {
"ca": "/etc/ssl/crt/sudocu.ca-bundle",
"cert": "/etc/ssl/crt/sudocu.crt",
"key": "/etc/ssl/crt/sudocu.key"
},
"cookies": {
"secure": true,
"maxAge": 3600000,
"sameSite": "none"
}
},
"websocket": {
// Configuración librería socket.io
"path": "/socket.io",
"secure": false,
"cookie": {
"name": "test",
"httpOnly": false,
"path": ""
}
},
"firebase": false,
"environment": "development" // Agrega marca de agua a documentos cerrados con leyenda "test". Opciones: development | production
},
"reverse_proxy": {
// Agrega https a las url
"seguro": true
},
"debug": {
"SQL": false, // Habilita debug para consultas postgres (solo develop)
"verbose": true // Habilita debug de mensajes para cada función
},
"auth": {
// Estrategias de login
"providers": {
"basic": {
"user": "",
"challenge": true,
"realm": ""
},
"local": {
"habilitado": false
},
"twitter": {
"habilitado": false,
"consumerKey": "consumerKey",
"consumerSecret": "consumerSecret"
},
"facebook": {
"habilitado": false,
"clientID": "clientID",
"clientSecret": "clientSecret"
},
"google": {
"habilitado": false,
"clientID": "clientID",
"clientSecret": "clientSecret"
},
"saml": {
"identifier": "uid", // Este valor depende de la versión de saml
"crearSiNoExiste": true, // Crea nuevo usuario en SUDOCU si este no existe
"habilitacionAutomatica": true,
"perfilXDefecto": 1,
"claustroXDefecto": "ND",
"habilitado": true,
"entryPoint": "https://idp.edu.ar/saml2/idp/SSOService.php",
"logoutUrl": "https://idp.edu.ar/saml2/idp/SingleLogoutService.php?ReturnTo=http://sudocu.edu.ar/",
"cert_pem": "" // Permite incorporar certificado en formato .pem para autenticación saml
}
}
},
"repositorios": {
//Repositorio
"documentos": "arai", // Opciones: arai | filesystem
"adjuntos": "filesystem",
"arai": {
"url_notificacion": "https://sudocu.edu.ar/api/integracion/notificacion",
"url": "https://sudocu.edu.ar/docs/rest/backend/documentos",
"username": "documentos",
"id_instalacion": "sudocu"
}
},
"firma": {
//Firma
"modelo_autorizacion": "siu", // Opciones: siu | sudocu
"api": "https://sudocu.edu.ar/docs/rest/backend", // Exclusivo modelo siu
"api_front": "https://sudocu.edu.ar/docs/rest/frontend", // Exclusivo modelo siu
"username": "documentos"
},
"filesystem": {
// Carpeta donde se guardan los adjuntos
"rootFolder": "/app/sudocu-files/",
"cacheFolder": "/app/sudocu-files/cache",
"rootFolderWorker": "/worker/sudocu-files/",
},
"ungsxt": {
// Conexión con base de datos
"host": "10.0.0.1",
"port": "5435",
"database": "sudocu",
"user": "postgres",
"max": 20, // Cantidad máxima pool de conexión
"idleTimeoutMillis": 30000,
"connectionTimeoutMillis": 2000,
"statement_timeout": 30000,
"query_timeout": 20000
},
"nuxeo": {
// Configuración nuxeo en caso de no usar arai
"api": "",
"admin": {
"username": ""
}
},
"carpetas": {
// Path dentro del contenedor para almacenar archivos temporales
"archivos": "/tmp"
},
"alertas": {
// Funcionalidad alertas permite recibir notificaciones con errores producidos en el api-server
"traceinconsole": false, // Oculta el trace
"rawinmessage": false, // Incorpora el error completo convertido en texto en el mensaje de la notificación
"telegram": {
// Habilita mensajes con errores por telegram
"_comment": "https://www.npmjs.com/package/messaging-api-telegram",
"enabled": false,
"login": false,
"token": "",
"chat_id_prod": "",
"chat_id_testing": ""
},
"email": {
// Habilita mensajes con errores por email
"enabled": false,
"dev": {
"_comment": "https://stackoverflow.com/questions/24098461/nodemailer-gmail-what-exactly-is-a-refresh-token-and-how-do-i-get-one",
"destinatario": "",
"client_id": "",
"client_secret": "",
"refresh_token": "",
"auth": {
"user": ""
}
}
}
},
"email": {
// Configuración de funcionalidad seguimientos
"seguimientos": {
"notificaciones": {
// Variables disponibles para asunto y cuerpo: $novedad $tipo $numero $caratula $area_usuario_origen $estado $permalink
"campo_destinatarios": "para|cc|cco", // Opciones: para|cc|cco|. Cuando el valor es "para" la notificación será enviada solo a la cuenta destinataria. Cuando el valor sea "cc" o "cco" también se enviará la misma notificación a la cuenta remitente.
"remitente": "", // Es posible colocar la misma cuenta de email o cualquier otra y será visible como remitente en las notificaciones automáticas.
"asunto": "$novedad ($tipo)",
"cuerpo": "Tipo: $tipo<br/>Número: $numero <br/>Carátula: $caratula<br/>Area y usuario de origen: $area_usuario_uario_origen <br/>Novedad: $novedad<br/>Estado: $estado<br/>link: $permalink<br/>",
"escenarios": "compartir|enviar", // Opciones: remitir|enviar|solicitar|autorizar|rechazar|compartir
"novedades": {
// Permite especificar el texto para cada evento
"remitir": "Se remite un expediente",
"enviar": "Se envía un documento",
"solicitar": "Solicitud de autorización",
"autorizar": "Solicitud autorizada",
"rechazar": "Rechazo solicitud de autorización",
"compartir": "Se comparte un documento"
}
},
// Configuración servidor de email
"_comment": "Modo puede ser smtp o gmail",
// "modo": "gmail" ó "modo": "smtp"
"modo": "gmail",
// smtp
"smtp": {
"remitente": "",
"host": "",
"port": "",
// "secure": false ó "secure": true
"secure": true,
"auth": {
"user": "",
"pass": ""
}
},
// gmail
"gmail": {
"remitente": "SUDOCU",
"client_id": "",
"client_secret": "",
"refresh_token": "",
"auth": {
"user": ""
}
}
}
},
"redis": {
// Servidor redis
"host": "cache",
"port": 6379,
"db": "UNGSxt",
"ttl": 28800,
"options": {}
},
"firebase_admin": {
"databaseURL": ""
},
"pdf": {
// Host servidor pdf
"host": "http://pdf:3000"
},
"blockchain": {
"habilitado": false,
"stampURL": "https://tsaapi-test.bfa.ar/api/tsa/stamp/",
"verifyURL": "https://tsaapi-test.bfa.ar/api/tsa/verify/"
},
// Configuración CORS
"whitelist": [8080, 8181, 8383, 443],
"documentos": {
"_comment": "recepcion por vista o por edicion",
"recepcion": "edicion", // Opciones: vista | edicion
"google_analytics": {
// Permite incoporar el id para tracking
"habilitado": false,
"id": ""
}
},
"archivos": {
"vista_previa": {
"_limite_previsualizacion": "numero entero, representa el total de MB de las primeras hojas en la vista previa",
"limite_previsualizacion": 1
},
// Herramienta merge archivos pdf
"merge_tool": "gs", // Opciones: gs o pdftk
"merge_skip_error": true, // En caso de recibir errores todo el tiempo
"lectura_firmas": {
"_comment": "El valor de max_file_mb solo se toma en cuenta si stamper_host es null y por lo tanto se utiliza verifyPDF para lectura de las firmas. De otro modo, si el valor de stamper_host apunta a un servicio de stamper válido este no tiene limitaciones de tamaño.",
"_max_file_mb": "Se recomienda no utilizar mas de 20mb",
"max_file_mb": 20,
"stamper_host": "http://stamper:8080/signatures",
"_stamper_host": "se recomienda utilizar esta alternativa cuando los adjuntos son mayores a 20mb. El host del stamper se puede obtener del archivo docs.yml del despliegue de arai-documentos. El parámetro se debe escribir de tal manera que quede el protocolo al principio (http://) y la ruta /signatures al final."
"stamper_timeout": 30000,
}
},
"gestion": {
"vistas": {
"frecuencia_actualizacion_cron": "* * * * *", //Frecuencia de actualización de la vista de la Bandeja de Novedades
"inbox": {
"habilitado": true,
"periodo_horas": 24,
"limite": 10
},
"busqueda_e_incorporaciones": {
"periodo_dias": 90,
"frecuencia_actualizacion_busqueda_cron": "* * * * *", //Frecuencia de actualización de la vista materializada de la búsqueda rápida.
}
},
"_buscador_general": "sincrono/asincrono",
"buscador_general": "sincrono",
"reutilizar_numeros_documentos_anulados": false, // Indica la posibilidad de reutilizar una numeración tomada por un documento anulado
"recaratular": {
"_creador": "boolean permite o no al creador de un documento recaratular",
"creador": false
},
"copiar_archivos_adjuntos": false,
"transformacion": {
"_hereda_visibilidad": "true: la visibilidad del documento resultante tendra la del original, false: la visibilidad sera la del tipo de documento resultante",
"hereda_visibilidad": true
},
"incorporar_expedientes": true, // Permite o no incorporar expedientes
"expedientes": {
"asociacion": {
"_alcance": "area_activa / areas_usuario / global",
"alcance": "global"
},
"limite_tamanio_vista_previa_expedientes": -1, // Establece límite en megabytes para previsualización de expedientes/trámites, si se supera el límite el sistema sugiere otras herramientas. Para no establcer un límite se utiliza el valor -1
"incorporar_mismo_documento_n_veces": true, // Habilita la posibilidad de incorporar el mismo documento a un expediente producto de la incorporación de trámites o expedientes que ya contengan un documento previamente incorporado
"mostrar_alerta_documento_ya_existente": false, // Muestra alerta cuando un documento ya se encuentra incorporado en el contenedor
"incorporar_vacios": false // Habilita la posibilidad de incorporar un contenedor/trámite vacío en un expediente
},
"busqueda": {
"esencias": {
"documento": ["privado", "publico", "reservado"],
"tramite": ["privado", "publico", "reservado"],
"contenedor": ["privado", "publico", "reservado"]
}
},
"expediente_papel_fojas": true,
"integracion": {
"esencias": ["contenedor"] // Tipos de esencia habilitadas en integración
},
"carpeta_mpd_mis_documentos": {
"descargar_relacionados": true
},
"anti_flood_ms": 100,
"ver_expedientes_enviados": false, // Habilita herramienta vista avanzada para expedientes en vista enviados
"agregar_seguimiento_docs_compartidos": false, // Muestra seguimientos en la vista preview
"vista_rapida_descargar": "ubicacion", // Habilita botón descargar para la vista previa
"mostrar_validez": true, // Habilita toggle en formulario para indicar validez digital o papel
"contar_novedades": false, // Habilita ícono con cantidad de documentos en cada solapa
"permitir_usar_fojas_remision_contenedor_tramite": false, // Habilita switch en formulario para indicar el uso de fojas al remitir
"archivo_principal": true, // Habilita botón para establecer archivo adjunto principal
"permite_eliminar_seguimientos": true, // Habilita botón eliminar seguimientos
"archivos_adjuntos": {
"max_mb": 100, // Tamaño máximo por archivo
"sum_max_mb": 100, // Tamaño máximo de todos los adjuntos por documento
"max_cant": 100 // Cantidad máxima de adjuntos por documentos
},
"herramientas_vistas": {
// Habilita herramientas según la vista
"documentos": {
"anular": true
},
"compartidos": {
"vista_previa": true
},
"busqueda": {
"compartir": false,
"vista_avanzada": false,
"descargar": false,
"abrir": false,
"mapa": false
}
},
"fonts": [
//Agrega fuentes en módulo templates pdf de mpc
{
"name": "Oswald=oswald",
"style": "https://fonts.googleapis.com/css2?family=Oswald&display=swap"
}
]
},
"admin": {
// Parámetros módulo admin
"logged_users_refresh_rate": 30,
"notificaciones_delay": 100,
"jobs_timer": "0 */1 * * * *"
},
"imagemin": {
// Parámetros librería imagemin
"width_pixels": 20,
"jpeg_quality": 50 // Permite definir la calidad de los archivos .jpg subidos como adjuntos Opciones: 1 a 100
},
"http-proxy": {
// Librería http-proxy-middleware
// Permite redireccionar request hacia otro servidor
// Ejemplo: http://localhost:3000/api/foo/bar -> http://www.example.org/api/foo/bar
"service": {
"target": "",
"auth": "user:password"
}
},
"secrets": {
// Secrets para modo desarrollo
"auth_providers_basic_password": "integracion",
"auth_admin_basic_password": "admin",
"repositorios_arai_password": "password_arai",
"firma_password": "password_arai",
"db_password": "password_db",
"redis_options_password": "redis",
"nuxeo_admin_password": "Administrator"
}
}

Inicio#

{
"server": {
"host": "",
"port": 0,
"secure": true,
"clusters": false,
"apiUrl": "",
"urlHome": "",
"livereload": 35738,
"urlLogout": ""
},
"cookiesOptions": {
"path": "/",
"domain": "",
"secure": true
},
"crts": {
"ca": "/etc/ssl/crt/sudocu.ca-bundle",
"key": "/etc/ssl/crt/sudocu.key",
"cert": "/etc/ssl/crt/sudocu.crt"
},
"links": {
"gestion": "",
"mpd": "",
"config": ""
}
}

Gestión#

{
"server": {
"path": "/",
"host": "",
"modName": "gestion",
"port": 0,
"secure": true,
"clusters": false,
"apiUrl": "",
"socketUrl": "",
"socketPath": "/socket.io",
"socketSecure": false,
"urlHome": "",
"livereload": 35745,
"contexto": "fr_sudocu_gestion",
"formato_fecha": "dd-MM-yyyy HH:mm",
"modelo_autorizacion": "sudocu"
},
"cookiesOptions": {
"domain": "",
"secure": true
},
"crts": {
"ca": "/etc/ssl/crt/sudocu.ca-bundle",
"cert": "/etc/ssl/crt/sudocu.crt",
"key": "/etc/ssl/crt/sudocu.key"
}
}

MPD#

{
"server": {
"host": "",
"port": 0,
"modName": "mpd",
"secure": true,
"clusters": false,
"apiUrl": "",
"urlHome": "",
"socketUrl": "",
"socketPath": "/socket.io",
"socketSecure": false,
"livereload": 35738
},
"cookiesOptions": {
"domain": "",
"secure": true
},
"crts": {
"ca": "/etc/ssl/crt/sudocu.ca-bundle",
"cert": "/etc/ssl/crt/sudocu.crt",
"key": "/etc/ssl/crt/sudocu.key"
}
}

MPC#

{
"server": {
"host": "",
"port": 0,
"modName": "mpc",
"securePort": 0,
"secure": true,
"clusters": false,
"apiUrl": "",
"urlHome": "",
"socketUrl": "",
"socketPath": "/socket.io",
"socketSecure": false,
"livereload": 35738,
"contexto": "fr_sudocu_mpc"
},
"cookiesOptions": {
"domain": "",
"secure": true
},
"crts": {
"ca": "/etc/ssl/crt/sudocu.ca-bundle",
"cert": "/etc/ssl/crt/sudocu.crt",
"key": "/etc/ssl/crt/sudocu.key"
}
}