udistrital / sisifo_documentacion

0 stars 0 forks source link

Ajustes para despliegue de microservicio de renderizado de plantillas #173

Closed edwargl7 closed 2 weeks ago

edwargl7 commented 2 weeks ago

Se requiere realizar la revisión basado en el repositorio de firma_electronica_mid para realizar ajustes de configuraciones faltantes para el despliegue.

Sub Tareas

Criterios de aceptación

Requerimientos

No aplica

Definition of Ready - DoR

Definition of Done - DoD - Desarrollo

jucastro94 commented 2 weeks ago

drone.yml Image

jucastro94 commented 2 weeks ago

se genera swagger.json

{
  "swagger": "2.0",
  "info": {
    "description": "API para la generación de PDFs a partir de plantillas HTML.",
    "version": "1.0.0",
    "title": "PDF Generation API"
  },
  "host": "localhost:5000",
  "basePath": "/",
  "tags": [
    {
      "name": "PDF Generation",
      "description": "Operaciones relacionadas con la generación de PDF."
    }
  ],
  "schemes": [
    "http"
  ],
  "paths": {
    "/pdf": {
      "post": {
        "tags": [
          "PDF Generation"
        ],
        "summary": "Genera un PDF a partir de un HTML.",
        "description": "Este endpoint permite generar un archivo PDF utilizando una plantilla HTML y opcionalmente CSS y datos para templating con Jinja2.",
        "operationId": "generarPDF",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "Datos necesarios para generar el PDF.",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "html": {
                  "type": "string",
                  "description": "Plantilla HTML en formato string."
                },
                "css": {
                  "type": "string",
                  "description": "CSS opcional en formato string."
                },
                "datos": {
                  "type": "object",
                  "description": "Datos opcionales para renderizar con Jinja2."
                }
              },
              "required": [
                "html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "PDF generado exitosamente.",
            "schema": {
              "type": "object",
              "properties": {
                "Message": {
                  "type": "string",
                  "example": "PDF generado exitosamente"
                },
                "Success": {
                  "type": "boolean",
                  "example": true
                },
                "Status": {
                  "type": "integer",
                  "example": 200
                },
                "PDF": {
                  "type": "string",
                  "description": "Cadena en Base64 del archivo PDF generado.",
                  "example": "JVBERi0xLjQKJcfsj6IK... (PDF en base64)"
                }
              }
            }
          },
          "500": {
            "description": "Error al generar el PDF.",
            "schema": {
              "type": "object",
              "properties": {
                "Message": {
                  "type": "string",
                  "example": "Ha ocurrido un error: descripción del error"
                },
                "Success": {
                  "type": "boolean",
                  "example": false
                },
                "Status": {
                  "type": "integer",
                  "example": 500
                }
              }
            }
          }
        }
      }
    }
  }
}
jucastro94 commented 2 weeks ago

prueba funcional con ejemplo de ejecucion Image

el json se comprendera de 3 partes html (oblicatorio) css (opcional) data (opcional)

Ejemplo


{
    "html": "<!DOCTYPE html><html lang=\"es\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>Plan Anual de Auditoría (PAA)</title></head><body><div class=\"container\"><table class=\"header-table\"><tr><td rowspan=\"3\" class=\"logo\"><img src=\"\" alt=\"Logo\"></td><td colspan=\"1\"><strong>PLAN ANUAL DE AUDITORÍA (PAA)</strong></td><td colspan=\"1\"><strong>Código:</strong> EC-PR-005-FR-001</td><td rowspan=\"3\" class=\"logo\"><img src=\"\" alt=\"SIGUD\"></td></tr><tr><td><strong>lolololololol:</strong> Evaluación y Control</td><td><strong>Versión:</strong> 02</td></tr><tr><td><strong>Proceso:</strong> Gestión de la Evaluación y el Control</td><td><strong>Fecha de Aprobación:</strong> 20/11/2015</td></tr></table><table class=\"content-table\"><tr><td><strong>Objetivo del Programa: </strong>Planear las actividades que realizará el equipo auditor de la Oficina de control interno, mediante la aplicación de auditorías y seguimientos que contribuyan a proteger los recursos, garantizar los estándares de las operaciones, la confiabilidad y oportunidad de la información, dar manejo adecuado a los riesgos para contribuir con el cumplimiento de los objetivos institucionales y la mejora de la gestión de la Universidad.</td></tr><tr><td><strong>Alcance del Programa: </strong>{{ alcance }}</td></tr><tr><td><strong>Criterios:</strong><br>- Normatividad interna y externa aplicable a la Universidad.<br>- Direccionamiento Estratégico<br>- Modelo Integrado de Planeación y Gestión MIPG<br>- Sistema Integrado de Gestión<br>- Proyectos de Inversión</td></tr><tr><td><strong>Recursos:</strong><br>- Humanos: Equipo de trabajo de la Oficina de Control interno (servidores públicos y/o particulares que ejerzan funciones públicas permanente o transitoria)<br>- Financieros: Presupuesto asignado<br>- Tecnológicos: Equipos de computo, sistemas de información, archivo documental, papelería, sistemas de redes y correo electrónico de la Universidad.</td></tr></table><table class=\"schedule-table\"><tr><th class=\"cabecera-table\" rowspan=\"2\">TÍTULO DE LA ACTIVIDAD</th><th class=\"cabecera-table\" colspan=\"6\">CRONOGRAMA DE ACTIVIDADES - I SEM.</th><th class=\"cabecera-table\" colspan=\"6\">CRONOGRAMA DE ACTIVIDADES - II SEM.</th></tr><tr><th>enero</th><th>febrero</th><th>marzo</th><th>abril</th><th>mayo</th><th>junio</th><th>julio</th><th>agosto</th><th>septiembre</th><th>octubre</th><th>noviembre</th><th>diciembre</th></tr>{% for item in items %}<tr><td>{{ item.actividad }}</td><td>{{ item.enero }}</td><td>{{ item.febrero }}</td><td>{{ item.marzo }}</td><td>{{ item.abril }}</td><td>{{ item.mayo }}</td><td>{{ item.junio }}</td><td>{{ item.julio }}</td><td>{{ item.agosto }}</td><td>{{ item.septiembre }}</td><td>{{ item.octubre }}</td><td>{{ item.noviembre }}</td><td>{{ item.diciembre }}</td></tr>{% endfor %}</table></div></body></html>", 
    "css": "@page {size: 8.5in 14in; margin: 0;padding: 0;}@page :first {margin-top: 1in;margin-right: 0.5in;margin-bottom: 1in;margin-left: 0.51in; }@page :right {margin-top: 1in;margin-right: 0.5in;margin-bottom: 1in;margin-left: 0.5in; }@page :left {margin-top: 1in;margin-right: 0.5in;margin-bottom: 1in;margin-left: 0.5in; }/* @page {size: 8.5in 14in;margin-top: 0;margin-bottom:0;margin-left: 0;margin-right:0;padding: 0;}*/body {font-family: Arial, sans-serif;background-color: #f4f4f4;margin: 0;padding: 0;width: 100%;height: 100%;}.container {width: 100%;margin: 0px auto;padding: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;background-color: white;box-shadow: 0 0 10px rgba(0,0,0,0.1);box-sizing: border-box;height: 100%; }table{table-layout: fixed;margin: 0;padding: 0;width: 100%}.header-table, .content-table, .schedule-table {width: 100%;border-collapse: collapse;}.content-table tr td {font-size: 12px;}.header-table th, .header-table td, .content-table th, .content-table td, .schedule-table th, .schedule-table td {border: 1px solid black;padding: 2px;text-align: left;}.header-table {margin-bottom: 20px;}.header-table th {background-color: #e6e6e6;font-size: 8px;}.header-table td {width: auto;}.logo {text-align: center;vertical-align: middle;}.logo img { max-width: 100px;}.section-title {font-weight: bold; background-color: #e6e6e6;padding: 5px;}.schedule-table th {background-color: #b3c6ff;text-align: center;font-size: 7px;word-break: break-all; /* Permite dividir las palabras largas */hyphens: auto; /* Añade guiones donde se divide la palabra */} .schedule-table td {text-align: left;font-size: 10px;word-break: break-all; /* Permite dividir las palabras largas */hyphens: auto; /* Añade guiones donde se divide la palabra */}.cabecera-table{font-size: 10;}",
    "data": {
        "select": "X",
        "alcance":"Los informes determinados por la ley, los procesos, procedimientos y normatividad interna, requerimientos de los entes de control y partes interesadas, planes de mejoramiento, políticas de operación y gestión de riesgos.",
        "items":[
            {"actividad": "pensamiento sincronico del conocimiento", "enero": "x", "febrero": "x", "marzo": "x", "abril": "x", "mayo": "x", "junio": "", "item.julio": "", "agosto": "", "septiembre": "x", "octubre": "x", "noviembre": "", "diciembre": "" },
            {"actividad": "anilisis analitico para analizar analizando", "enero": "", "febrero": "", "marzo": "", "abril": "x", "mayo": "x", "junio": "x", "item.julio": "", "agosto": "x", "septiembre": "x", "octubre": "", "noviembre": "", "diciembre": "" },
            {"actividad": "idea idea idea idea idea idea idea ", "enero": "x", "febrero": "", "marzo": "x", "abril": "", "mayo": "x", "junio": "", "item.julio": "x", "agosto": "x", "septiembre": "x", "octubre": "x", "noviembre": "x", "diciembre": "x" },
            {"actividad": "externocleidomastoideo", "enero": "x", "febrero": "", "marzo": "", "abril": "x", "mayo": "", "junio": "", "item.julio": "", "agosto": "", "septiembre": "", "octubre": "", "noviembre": "", "diciembre": "" },
            {"actividad": "recoleccion de hallazgos", "enero": "", "febrero": "", "marzo": "x", "abril": "", "mayo": "x", "junio": "x", "item.julio": "x", "agosto": "x", "septiembre": "x", "octubre": "", "noviembre": "", "diciembre": "" },
            {"actividad": "pruebas de conocimiento", "enero": "x", "febrero": "x", "marzo": "", "abril": "x", "mayo": "x", "junio": "", "item.julio": "x", "agosto": "", "septiembre": "x", "octubre": "x", "noviembre": "x", "diciembre": "" },
            {"actividad": "capacitación de entornos saludables", "enero": "", "febrero": "x", "marzo": "x", "abril": "", "mayo": "x", "junio": "x", "item.julio": "", "agosto": "x", "septiembre": "", "octubre": "x", "noviembre": "x", "diciembre": "" },
            {"actividad": "actividad #188564", "enero": "", "febrero": "x", "marzo": "x", "abril": "", "mayo": "", "junio": "x", "item.julio": "", "agosto": "", "septiembre": "", "octubre": "", "noviembre": "", "diciembre": "x" },
            {"actividad": "capacidad de pensamiento analitico", "enero": "x", "febrero": "", "marzo": "x", "abril": "", "mayo": "", "junio": "x", "item.julio": "x", "agosto": "x", "septiembre": "", "octubre": "x", "noviembre": "x", "diciembre": "x" },
            {"actividad": "no se que poner mas", "enero": "x", "febrero": "", "marzo": "", "abril": "x", "mayo": "x", "junio": "", "item.julio": "", "agosto": "x", "septiembre": "", "octubre": "x", "noviembre": "", "diciembre": "" },
            {"actividad": "prueba prueba prueba prueba prueba prueba prueba prueba", "enero": "x", "febrero": "x", "marzo": "x", "abril": "x", "mayo": "x", "junio": "", "item.julio": "", "agosto": "", "septiembre": "", "octubre": "", "noviembre": "", "diciembre": "" },
            {"actividad": "en en en en en en en en en en enen en en en", "enero": "", "febrero": "", "marzo": "", "abril": "", "mayo": "", "junio": "", "item.julio": "", "agosto": "", "septiembre": "", "octubre": "", "noviembre": "", "diciembre": "" },
            {"actividad": "televisión televisión televisión televisión televisión ", "enero": "", "febrero": "x", "marzo": "x", "abril": "x", "mayo": "x", "junio": "", "item.julio": "", "agosto": "x", "septiembre": "", "octubre": "", "noviembre": "", "diciembre": "" },
            {"actividad": "capacitación teléfono roto", "enero": "x", "febrero": "", "marzo": "", "abril": "", "mayo": "", "junio": "", "item.julio": "x", "agosto": "x", "septiembre": "x", "octubre": "x", "noviembre": "", "diciembre": "x" },
            {"actividad": "sql sql sql sql sql", "enero": "", "febrero": "", "marzo": "", "abril": "", "mayo": "", "junio": "", "item.julio": "", "agosto": "", "septiembre": "", "octubre": "", "noviembre": "", "diciembre": "" },
            {"actividad": "título de la actividad por poner", "enero": "x", "febrero": "", "marzo": "x", "abril": "", "mayo": "x", "junio": "", "item.julio": "x", "agosto": "", "septiembre": "", "octubre": "x", "noviembre": "", "diciembre": "" },
            {"actividad": "interaccion conce a tu compañero", "enero": "", "febrero": "x", "marzo": "", "abril": "", "mayo": "", "junio": "x", "item.julio": "", "agosto": "", "septiembre": "x", "octubre": "", "noviembre": "x", "diciembre": "x" },
            {"actividad": "se me acabaron las ideas", "enero": "", "febrero": "", "marzo": "x", "abril": "", "mayo": "x", "junio": "", "item.julio": "x", "agosto": "", "septiembre": "x", "octubre": "", "noviembre": "", "diciembre": "x" }
        ] 
    }
}

se retornara un pdf en base64 Ejemplo

{
    "Data": "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",
    "Message": "PDF generado exitosamente",
    "Status": 200,
    "Success": true
}
jucastro94 commented 2 weeks ago

se agrega entrypoint.sh

Image

edwargl7 commented 2 weeks ago

Se ajusta entrypoint para ejecutar app.py. Se resuelve el PR. Modelo de datos ajustado y aprobado para solicitar creación de base de datos.

jucastro94 commented 2 weeks ago

Image