Esta página es de solo lectura. Puedes ver la fuente pero no puedes cambiarla. Pregunta a tu administrador si crees que esto es incorrecto.
La configuración en SIMO sigue dos principios, que sea externalizable, es decir que no sea necesario desplegar para alterar la configuración y que sea legible. Ambas condiciones se logran mediante archivos de propiedades los cuales se describen a continuación.
Es el archivo de configuración principal, por defecto su localización es en el directorio /datossimo/archivos aunque esta localización puede ser cambiada con variables de entorno tomcat. En este archivo se encuentran propiedades básicas para la operación del sistema, pero también se encuentran las referencias a otros archivos de configuración, de esta forma, los archivos de configuración complementarios pueden estar en el mismo directorio que application.properties, en otro directorio o incluso internos al war si asi se desea. El archivo incluye propiedades definidas por Spring Boot, pero también contiene propiedades específicas del sistema SIMO.Las principales propiedades son:
Configuración de Datasource y pool de conexiones
spring.datasource.username=usrsimo
spring.datasource.password=simo
spring.datasource.max-active= 200
spring.datasource.max-idle= 10
spring.datasource.min-idle= 10
Generación de código
#Controla si hibernate genera DDL (crea tablas y demás) a partir de las anotaciones JPA
spring.jpa.generate-ddl=false
Hibernate Search
#Directorio donde se almacenan indices si se tiene un directorio tipo FileSystem
spring.jpa.properties.hibernate.search.default.indexBase = /indexsimo/lucene
#Tipo de directorio
spring.jpa.properties.hibernate.search.default.directory_provider = infinispan
#Configuración infinispan si se usa este tipo de directorio
spring.jpa.properties.hibernate.search.infinispan.configuration_resourcename = file:/datossimo/archivos/infinispan.xml
Repositorios y archivos
sigeca.documents.fileStagePrefix=sigeca-${sigeca.cluster.name}-
sigeca.documents.fileStageSuffix=.tmp
sigeca.documents.repositoryPath=/datossimo/archivos/repository
sigeca.documents.reportDirectory=/datossimo/archivos/report
#Controla tamaños y tipos de archivo generales y excepciones
multipart.maxRequestSize=80MB
file.restriction.fileSize.default=10000000
file.restriction.mimeTypes.imagen=image/jpeg,image/png
file.restriction.mimeTypes.DAT=application/x-ns-proxy-autoconfig
file.restriction.fileSize.DAT=16388608
file.restriction.fileSize.acuerdo=16388608
Roles permitidos por servidor
simo.rol=CIUDADANO,CARGADOR,ADMINISTRADOR,ADMIN_CONVOCATORIA,ADMIN_ENTIDAD,ADMIN_ENTIDAD_EDUCATIVA,ANALISTA,SUPERVISOR,AUDITOR
Integración PENTAHO
pentaho.url=http://192.168.52.37:8181 # ruta para consultar el estado de los trabajos (esta compuesto de url+getStatus+jobName) pentaho.getStatus=/kettle/jobStatus/?xml=y&name= #ruta para iniciar la tarea (esta compuesto de url+startJob+jobName) pentaho.startJob=/kettle/runJob?level=DebugLevel&xml=y&job= pentaho.auth=Y2x1c3RlcjpjbHVzdGVy
#Mensajes de retorno estado pentaho.finishedStatus=OK,Finished pentaho.runnigStatus=Running pentaho.errorStatus=Finished (with errors),Stopped,Stopped (with errors)
Agendador Quartz
quartz.enabled=true
Referencias a otros archivos de configuración
business-rules.properties=classpath:business-rules.properties #business-rules.properties=file:/datossimo/archivos/business-rules.properties notificaciones.properties=file:/datossimo/archivos/notificaciones.properties messages.properties=file:/datossimo/archivos/messages.properties pse.properties=file:/datossimo/archivos/pse.properties cluster.properties=file:/datossimo/archivos/cluster.properties ayuda.properties=file:/datossimo/archivos/ayuda.properties jobs.properties=file:/datossimo/archivos/jobs.properties antecedentes.properties=file:/datossimo/archivos/antecedentes.properties
Este archivo contiene todas las reglas de negocio que son aplicadas por recurso (Entidad JPA, DTO), el sistema evalua las reglas de negocio para un objeto que hereda de Model y produce un mapa de permisos para un objeto en particular y segùn el contexto de ejecución en el cual se está utilizando el objeto Por ejemplo, al serializar un objeto de tipo convocatoria, el sistema lo aumenta con un campo llamado access que tiene un mapa de los permisos que sobre esa convocatoria tiene el usuario autenticado en el contexto de ejecución (estado de la aplicación) en el cual se serializa el objeto, es decir, para un momento especìfico, las reglas de negocio indican si un usuario puede editar, crear, activar una convocatoria, etc. De esta forma, el sistema de permisos es áltamente configurable y flexible.
Las reglas de negocio son escritas usando Spring EL con ayuda del servicio RuleService, ej
br.co.gov.cnsc.sigeca.model.Convocatoria.view = #getAuthUser()!=null br.co.gov.cnsc.sigeca.model.Convocatoria.edit = #userHasRole(#currentUser,'ADMINISTRADOR') || (#userHasRole(#currentUser,'ADMIN_CONVOCATORIA') && #conv.estaAsociado(#currentUser,#root)) br.co.gov.cnsc.sigeca.model.Convocatoria.create = #userHasRole(#currentUser,'ADMIN_CONVOCATORIA')|| #userHasRole(#currentUser,'ADMINISTRADOR') br.co.gov.cnsc.sigeca.model.Convocatoria.delete = false br.co.gov.cnsc.sigeca.model.Convocatoria.publicarOpec = estado==T(co.gov.cnsc.sigeca.model.EstadoConvocatoria).A || estado==T(co.gov.cnsc.sigeca.model.EstadoConvocatoria).S #br.co.gov.cnsc.sigeca.model.Convocatoria.gestionarCargador = #userHasRole(#currentUser,'ADMINISTRADOR') || (#userHasRole(#currentUser,'ADMIN_ENTIDAD') && #currentUser.entidad.id == entidad.id) br.co.gov.cnsc.sigeca.model.Convocatoria.gestionarCargador = #userHasRole(#currentUser,'ADMINISTRADOR') || (#userHasRole(#currentUser,'ADMIN_ENTIDAD') && #usuario.isUsuarioEntidad(entidad.id)) br.co.gov.cnsc.sigeca.model.Convocatoria.crearEmpleo = #userHasRole(#currentUser,'CARGADOR') && #etapa.activa('OPEC',#root.id) En este archivo también se especifican las reglas de excepción, estas son similares a las reglas de negocio pero su propósito es ser utilizadas cuando se quieren crear excepciones a las reglas de negocio regulares, ejemplo, cuando se debe permitir una inscripción extemporánea a una convocatoria a un solo usuario por fallo de tutela, algunas reglas de excepción son:
ex.co.gov.cnsc.sigeca.dto.InscripcionDTO.inscribir = #currentUser!=null && !existeInscripcion && preInscripcion && pinInscripcion!=null && (#excepcion.validarExcepcion('exACRINSCRIBIR',1, idEmpleo, 'EMPLEO'))
ex.co.gov.cnsc.sigeca.dto.InscripcionDTO.pagarPSE = #currentUser!=null && !existeInscripcion && preInscripcion && pinInscripcion==null && (#excepcion.validarExcepcion('exACRPSE',1, idEmpleo, 'EMPLEO'))
ex.co.gov.cnsc.sigeca.model.InscripcionConvocatoria.inscribir = (#excepcion.validarExcepcion('exACRINSCRIBIR',1, empleo.id, 'EMPLEO')) && !#inscripcion.existeInscripcion(empleo.convocatoria,#currentUser) && pinInscripcion!=null && estado==T(co.gov.cnsc.sigeca.model.EstadoInscripcion).PI
ex.co.gov.cnsc.sigeca.model.InscripcionConvocatoria.pagarPSE = (#excepcion.validarExcepcion('exACRPSE',1, empleo.id, 'EMPLEO')) && estado==T(co.gov.cnsc.sigeca.model.EstadoInscripcion).PI && pinInscripcion==null && !#inscripcion.existeInscripcion(empleo.convocatoria,#currentUser)
Contiene la configuración del sistema de envío de notificaciones y mensajes, tiene dos secciones principales, la primera es la configuración del servidor de correo y/o del servicio de envio masivo, así
EMAIL NOTIFICATION spring.mail.host=localhost spring.mail.port=1025 spring.mail.username=simo spring.mail.password=cnsc2016<nowiki>*</nowiki> spring.mail.default-encoding=UTF-8 spring.mail.properties.<nowiki>*</nowiki>= # properties to set on the JavaMail session spring.mail.transport.protocol=smtp spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.socketFactory.port=25 spring.mail.properties.mail.smtp.starttls.enable=false spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.socketFactory.fallback=true La segunda son las plantillas de los correos prefijados:
############### MENSAJES PERSONALIZADAS ################################### ##TODO Cambiar namespace a properties y unificar con mensajes de notificaciones #REGISTRO NUEVO CORREO spring.properties.encoder=CNSC spring.mail.properties.registro.setfrom=sigeca@cnsc.gov.co spring.mail.properties.registro.setSubject=CNSC, Confirmar registro de usuario spring.mail.properties.registro.setUrl=http://192.168.0.138:8080/index.html?codigoVerificacion=xxxx#confirmacionregistro spring.mail.properties.registro.template=registro.vm #OLVIDO DE CONTRASE<nowiki>\</nowiki>u00d1A spring.mail.properties.olvido.setfrom=sigeca@cnsc.gov.co spring.mail.properties.olvido.setSubject=CNSC2 Cambiar contrase<nowiki>\</nowiki>u00F1a spring.mail.properties.olvido.setUrl=http://192.168.0.139:8080/index.html?codigoVerificacion=xxxx#cambiarcontrasena spring.mail.properties.olvido.template=olvidocontrasena.vm spring.mail.properties.olvido.template.multiples.usuarios=olvidocontrasenamultiplesusuarios.vm #CAMBIAR DE CONTRASE<nowiki>\</nowiki>u00d1A spring.mail.properties.cambio.setfrom=sigeca@cnsc.gov.co spring.mail.properties.cambio.setSubject=CNSC2 Cambiar contrase<nowiki>\</nowiki>u00F1a spring.mail.properties.cambio.setUrl=http://192.168.0.139:8080/index.html?codigoVerificacion=xxxx#cambiarcontrasena spring.mail.properties.cambio.template=cambiarcontrasena.vm #PREINSCRIPCION spring.mail.properties.preinscripcion.setfrom=sigeca@cnsc.gov.co spring.mail.properties.preinscripcion.setSubject=CNSC, Preinscripci<nowiki>\</nowiki>u00F3n a convocatoria. spring.mail.properties.preinscripcion.template=preinscrito.vm #NOTIFICAR spring.mail.properties.notificar.setfrom=sigeca@cnsc.gov.co spring.mail.properties.notificar.setSubject=Notificación CNSC spring.mail.properties.notificar.setUrl=http://192.168.0.138:8080/ spring.mail.properties.notificar.template=notificacion.vm
Mensajes de error e informativos al usuario, ejemplo
sigeca.errorInesperado=Ocurrio un error inesperado, por favor comun<nowiki>\</nowiki>u00EDquese con la CNSC. sigeca.acceso.noautorizado=No tiene permisos para esta opci<nowiki>\</nowiki>u00F3n, por favor ingrese al aplicativo con su usuario y contrase<nowiki>\</nowiki>u00F1a. O comun<nowiki>\</nowiki>u00EDquese con la CNSC. sigeca.controladores.resultadobusqueda.error=No se encontraron resultados con los filtros aplicados. sigeca.usuariocontrolador.cambiarcontrasena=Se cambio la contrase<nowiki>\</nowiki>u00F1a del usuario<nowiki>\</nowiki>:xxxx correctamente. sigeca.usuariocontrolador.cambiarcontrasena.exception=Ocurrio un error inesperado cambiando la contrase<nowiki>\</nowiki>u00F1a, por favor comun<nowiki>\</nowiki>u00EDquese con la CNSC. sigeca.usuariocontrolador.olvidocontrasena=Se envi<nowiki>\</nowiki>u00F3 un correo electr<nowiki>\</nowiki>u00F3nico con las instrucciones a seguir para recuperar su contrase<nowiki>\</nowiki>u00F1a. sigeca.usuariocontrolador.olvidocontrasenaErrorUsuario=El usuario o correo no existe. Por favor valide sus datos o comun<nowiki>\</nowiki>u00EDquese con la CNSC. sigeca.usuariocontrolador.registroexitoso=Usted recibir<nowiki>\</nowiki>u00E1 un correo electr<nowiki>\</nowiki>u00F3nico con la confirmaci<nowiki>\</nowiki>u00F3n del registro y los pasos a seguir para activar su usuario<nowiki>\</nowiki>:xx
Contiene información específica del nodo, esta información es utilizada por subsistemas como Quartz, infinispan, y log, no debe ponerse en un recurso compartido, ejemplo
sigeca.cluster.name=julian1 sigeca.envio.correo.pendiente.habilitado=true sigeca.envio.notificaciones.habilitado=true sigeca.validar.pagospse.pendientes.habilitado=true
Contiene la información necesaria para desplegar los controles de ayuda contextual (wiki y videos), ejemplo
registro.wiki=http://simo.cnsc.gov.co/cnscwiki/doku.php?id=simo:documentos:manual_ciudadano#como_registrarse formacion.wiki=http://simo.cnsc.gov.co/cnscwiki/doku.php?id=simo:documentos:manual_ciudadano#formacion experiencialaboral.wiki=http://simo.cnsc.gov.co/cnscwiki/doku.php?id=simo:documentos:manual_ciudadano#experiencia produccionintelectual.wiki=http://simo.cnsc.gov.co/cnscwiki/doku.php?id=simo:documentos:manual_ciudadano#produccion_intelectual otrosdocumentos.wiki=http://simo.cnsc.gov.co/cnscwiki/doku.php?id=simo:documentos:manual_ciudadano#otros_documentos ofertaEmpleo.wiki=http://simo.cnsc.gov.co/cnscwiki/doku.php?id=simo:documentos:manual_ciudadano#busqueda_empleo datosbasicos.wiki=http://simo.cnsc.gov.co/cnscwiki/doku.php?id=simo:documentos:manual_ciudadano#datos_basicos registro.video=http://www.youtube.com/embed/yyYvsEGNCik datosbasicos.video=http://www.youtube.com/embed/YvNnKyC3VoY formacion.video=http://www.youtube.com/embed/blJndAlX66o experiencialaboral.video=http://www.youtube.com/embed/blJndAlX66o
Contiene la configuración de los trabajos de ejecución fuera de máquina virtual, hasta el momento existen trabajos para ejecutar como procedimientos almacenados o como Pentaho, el prefijo de las propiedades (después de la palabra job) constituye el identificados del trabajo, ejemplo
#Trabajo de distribucion automatico job.dist.servidor=julian1 job.dist.clase=co.gov.cnsc.sigeca.jobs.CallStoredProcedureJob job.dist.descripcion=Distribución automática para una prueba job.dist.recordable=true job.dist.repetible=true job.dist.startNow=true job.dist.procedureName=public.distribucionautomatica job.dist.inParameters=tipo #job.dist.allowedRoles=ADMINISTRADOR,ADMIN_ENTIDAD_EDUCATIVA
Contiene configuración de calificación automática de valoración de antecedentes