Sign Service es un sistema para la firma electrónica avanzada de documentos utilizando SoftHSM, Node.js, Express y MongoDB.
- Docker
- Docker Compose
-
Clona el repositorio:
git clone https://github.com/sebavidal10/sign-service.git cd sign-service
-
Elimina las dependencias locales:
rm -rf node_modules package-lock.json
-
Construye las imágenes Docker:
docker-compose build
-
Levanta los contenedores:
docker-compose up -d
El archivo docker-compose.yml
incluye la configuración de los servicios necesarios:
- SoftHSM
- MongoDB
- Servicio de firma (
sign-service
)
Para registrar un usuario, envía una solicitud POST al endpoint /register
con el RUN y la información del usuario.
curl -X POST http://localhost:3000/register \
-H "Content-Type: application/json" \
-d '{
"run": "15989091",
"userInfo": {
"name": "John Doe",
"email": "john.doe@example.com"
}
}'
{
"certificateId": "60d5f2d72f8fb814c8a65d93"
}
Para firmar un documento, convierte el archivo PDF a base64 y envía una solicitud POST al endpoint /sign
con el documento en base64 y el RUN del usuario registrado.
base64 -i document.pdf > document_base64.txt
document_base64=$(cat document_base64.txt)
curl -X POST http://localhost:3000/sign \
-H "Content-Type: application/json" \
-d '{
"documentBase64": "'"$document_base64"'",
"run": "15989091"
}'
{
"documentBase64": "JVBERi0xLjQKJcTl8uXrp...",
"signature": "3046022100e4f...a6f"
}
sign-service/
├── Dockerfile
├── docker-compose.yml
├── index.js
├── package.json
└── package-lock.json
Dockerfile
: Define la configuración de la imagen Docker para el servicio de firma.docker-compose.yml
: Configura y orquesta los servicios necesarios para el sistema.index.js
: Contiene la lógica del servidor y los endpoints de la API.package.json
ypackage-lock.json
: Definen las dependencias del proyecto.