Veronica
es una API Rest utilizada para la emisión y autorización de comprobantes electrónicos según la normativa vigente del Sistema de Rentas Internas del Ecuador. El proyecto ha sido desarrollado a través de una aplicación Spring-Boot 1.5.9.RELEASE. Adicionalmente, Veronica
almacena los comprobantes en una base de datos PostgreSQL lo cual le permite realizar posteriores consultas más allá de las comunes como por ejemplo, consultar detalles de facturas, consultar totales o listar comprobantes por emisor o receptor.
Todo comprobante electrónico gestionado a través de Veronica
manejará un ciclo de vida basado en 4 fases:
Cotenidos
Software requerido
- JDK 1.8.0_121
- Apache Maven 3.5.3
- PostgreSQL 11.1-1
Pasos previos
Instalación
Instalación de base de datos
- Abrir una consola o shell y crear la base de datos.
$ psql -U postgres
# CREATE DATABASE "veronica-db";
# \q
- Crear la estructura de tablas ejecutando el script veronica_schema.sql.
$ cd /veronica/sql
$ psql -U postgres veronica-db < veronica_schema.sql
- Ejecutar el script veronica_data.sql de carga inicial de datos.
$ cd /veronica/sql
$ psql -U postgres veronica-db < veronica_data.sql
- Agregar la siguiente entrada al final del archivo postgresql.conf y reiniciar el servidor de base de datos.
encrypt.key = 8qxBjzCdQkwdpu
- Para modificar los atributos de conexión a la base de datos, dirigirse al archivo /veronica/veronica-web/src/main/resources/application.properties.
Instalación de dependencias
Veronica
posee una lista de dependencias que no se encuentran disponibles en el repositorio remoto de Maven por lo que se tendrá que hacer la instalación de forma manual. Para esto, ejecutar los comandos listados a continuación.
$ cd /veronica/additional_libs
$ mvn install:install-file -Dfile=jss-4.2.5.jar -DgroupId=org.mozilla -DartifactId=jss -Dversion=4.2.5 -Dpackaging=jar
$ mvn install:install-file -Dfile=MITyCLibAPI-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=api -Dversion=1.0.4 -Dpackaging=jar
$ mvn install:install-file -Dfile=MITyCLibCert-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=cert -Dversion=1.0.4 -Dpackaging=jar
$ mvn install:install-file -Dfile=MITyCLibOCSP-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=ocsp -Dversion=1.0.4 -Dpackaging=jar
$ mvn install:install-file -Dfile=MITyCLibPolicy-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=policy -Dversion=1.0.4 -Dpackaging=jar
$ mvn install:install-file -Dfile=MITyCLibTrust-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=trust -Dversion=1.0.4 -Dpackaging=jar
$ mvn install:install-file -Dfile=MITyCLibTSA-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=tsa -Dversion=1.0.4 -Dpackaging=jar
$ mvn install:install-file -Dfile=MITyCLibXADES-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=xades -Dversion=1.0.4 -Dpackaging=jar
$ mvn install:install-file -Dfile=xmlsec-1.4.2-ADSI-1.0.jar -DgroupId=org.apache.xmlsec-adsi -DartifactId=xmlsec-adsi -Dversion=1.4.2 -Dpackaging=jar
- Instalar
Veronica
.
$ cd /veronica
$ mvn clean install
Despliegue
Veronica
proporciona dos perfiles de despliegue: Desarrollo y Producción. Cada uno de estos perfiles posee un archivo de configuración situado en /veronica/src/filters. Para desplegar el proyecto con el perfil adecuado, indicar el ambiente como argumento de ejecución.
Desarrollo
$ cd /veronica/veronica-web
$ mvn spring-boot:run -Pdevelopment
Producción
$ cd /veronica/veronica-web
$ mvn spring-boot:run -Pproduction
Documentación
Swagger
http://localhost:8080/veronica/swagger-ui.html
Postman
Veronica
también pone a disposición de los usuarios una colección de llamadas y ejemplos que se encuentra en la ruta /veronica/Verónica API Reference.postman_collection.json.
Bitácora
- V1: 2018-04-12, Primera versión.
- V2: 2018-04-27, Perfiles de Maven.
- V3: 2018-04-28, Habilitar Swagger2.
- V4: 2018-11-10, Generación de RIDEs.
- V5: 2018-11-19, Integración con Postman.
- V6: 2019-01-09, Integración con PostgreSQL.
- V7: 2019-02-21, Retenciones y Guías de remisión.
Autores
@RolandoPalermo | @XaviMontero | @Japstones |