Skip to content

Commit c4e28e6

Browse files
Merge pull request #1764 from OpenSignLabs/updates-15349515719
v2.23.0
2 parents 3d223ba + b19fb29 commit c4e28e6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+2589
-555
lines changed

apps/OpenSign/Dockerfile

Lines changed: 0 additions & 25 deletions
This file was deleted.

apps/OpenSign/Dockerhubfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,24 @@ RUN npm install
1313
# Copy the current directory contents into the container
1414
COPY apps/OpenSign/ .
1515
COPY apps/OpenSign/.husky .
16+
COPY apps/OpenSign/entrypoint.sh .
17+
18+
# make the entrypoint.sh file executable
19+
RUN chmod +x entrypoint.sh
1620

1721
# Define environment variables if needed
1822
ENV NODE_ENV=production
1923
ENV GENERATE_SOURCEMAP=false
2024
# build
2125
RUN npm run build
2226

27+
# Inject env.js loader into index.html
28+
RUN sed -i '/<head>/a\<script src="/env.js"></script>' build/index.html
29+
2330
# Make port 3000 available to the world outside this container
2431
EXPOSE 3000
2532

33+
ENTRYPOINT ["./entrypoint.sh"]
34+
2635
# Run the application
2736
CMD ["npm", "start"]

apps/OpenSign/entrypoint.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/sh
2+
3+
ENV_FILE=./build/env.js
4+
DOTENV_FILE=./.env.prod # ✅ use .env.prod
5+
6+
echo "Generating runtime env file at $ENV_FILE..."
7+
8+
echo "window.RUNTIME_ENV = {" > $ENV_FILE
9+
10+
# List of keys to include
11+
RUNTIME_KEYS="REACT_APP_SERVERURL"
12+
13+
for key in $RUNTIME_KEYS; do
14+
# First check docker env (-e), fallback to .env file
15+
value=$(printenv "$key")
16+
17+
if [ -z "$value" ] && [ -f "$DOTENV_FILE" ]; then
18+
# fallback: read from .env
19+
value=$(grep "^$key=" "$DOTENV_FILE" | cut -d '=' -f2- | tr -d '\r\n' | sed 's/"/\\"/g')
20+
else
21+
value=$(echo "$value" | sed 's/"/\\"/g')
22+
fi
23+
24+
echo " $key: \"$value\"," >> $ENV_FILE
25+
done
26+
27+
echo "};" >> $ENV_FILE
28+
29+
exec "$@"

apps/OpenSign/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"jwt-decode": "^4.0.0",
2020
"moment": "^2.30.1",
2121
"parse": "^6.1.1",
22+
"pkijs": "^3.0.8",
2223
"pdf-lib": "^1.17.1",
2324
"print-js": "^1.6.0",
2425
"prismjs": "^1.30.0",

apps/OpenSign/public/locales/de/translation.json

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"header-news": "Neue Funktion: Benutzer des Teams-Plans können jetzt ihre eigenen AWS S3-Buckets für die Dateispeicherung integrieren",
33
"header-news-btn": "Jetzt einrichten",
4+
"sandbox-news": "Dies ist eine Sandbox-Umgebung. Bitte nicht für produktive Zwecke verwenden.",
45
"create-account": "Konto erstellen",
56
"login": "Anmelden",
67
"language": "Sprache",
@@ -675,7 +676,7 @@
675676
"public-template-mssg-1": "Um OpenSign in Ihr React- oder Next.js-Projekt zu integrieren, führen Sie einfach den folgenden Befehl aus:",
676677
"public-template-mssg-2": "Stellen Sie sicher, dass npm oder yarn in Ihrem Projekt eingerichtet ist. Wenn Sie Yarn verwenden, können Sie npm install durch yarn add @opensign/react ersetzen.",
677678
"public-template-mssg-3": "Benötigen Sie weitere Details oder Beispiele?",
678-
"public-template-mssg-4": "Besuchen Sie die",
679+
"public-template-mssg-4": "Besuchen Sie die ",
679680
"public-template-mssg-5": " npm für die neuesten Updates, detaillierte Dokumentationen und Versionshistorie.",
680681
"public-template-mssg-6": "Bevor Sie diesen Code-Schnipsel verwenden können, müssen Sie diese Vorlage öffentlich machen.",
681682
"public-template-mssg-7": "Bevor Sie einen öffentlichen Link generieren können, müssen Sie diese Vorlage öffentlich machen.",
@@ -980,5 +981,46 @@
980981
"finish-mssg": "Sind Sie sicher, dass Sie das Dokument abschließen möchten?",
981982
"review": "Überprüfen",
982983
"next-field": "Nächstes Feld",
983-
"required-mssg": "{{leftRequiredWidget}} von {{totalWidget}} Feldern übrig"
984+
"required-mssg": "{{leftRequiredWidget}} von {{totalWidget}} Feldern übrig",
985+
"verify-document-signature": "Dokumentensignatur überprüfen",
986+
"select-pdf-document": "PDF-Dokument auswählen",
987+
"selected-file": "Ausgewählte Datei",
988+
"verify-signature": "Signatur überprüfen",
989+
"verification-status": "Überprüfungsstatus",
990+
"verification-in-progress": "Überprüfung läuft...",
991+
"verification-results-will-appear-here": "Überprüfungsergebnisse werden hier angezeigt",
992+
"please-select-pdf": "Bitte wählen Sie eine gültige PDF-Datei aus",
993+
"please-select-file-to-verify": "Bitte wählen Sie eine Datei zur Überprüfung aus",
994+
"no-signature-found": "Keine Signatur im Dokument gefunden",
995+
"error-verifying-pdf": "Fehler beim Überprüfen der PDF",
996+
"signature-valid-basic": "Signatur ist gültig",
997+
"signature-invalid-basic": "Signatur ist ungültig",
998+
"all-signatures-verified-convincing": "Dokument überprüft: Alle Signaturen wurden erfolgreich validiert.",
999+
"some-signatures-invalid-basic": "Einige Signaturen sind ungültig",
1000+
"no-signatures-processed": "Keine Signaturen verarbeitet",
1001+
"unnamed-signature-field": "Unbenanntes Signaturfeld",
1002+
"error-processing-signature": "Fehler beim Verarbeiten der Signatur",
1003+
"signer-info-not-available": "Signaturinformationen nicht verfügbar",
1004+
"cert-validity-not-checked": "Gültigkeit des Zertifikats nicht geprüft",
1005+
"valid": "Gültig",
1006+
"expired-or-not-yet-valid": "Abgelaufen oder noch nicht gültig",
1007+
"valid-from": "Gültig von",
1008+
"to": "bis",
1009+
"signer": "Unterzeichner",
1010+
"issuer": "Aussteller",
1011+
"not-available": "Nicht verfügbar",
1012+
"not-performed": "Nicht durchgeführt",
1013+
"missing-acrofield-dict": "Fehlendes Acrofield-Wörterbuch",
1014+
"signature-dictionary-not-found-or-invalid": "Signaturwörterbuch nicht gefunden oder ungültig",
1015+
"missing-or-invalid-byterange": "Fehlender oder ungültiger ByteRange",
1016+
"missing-or-invalid-contents": "Fehlender oder ungültiger Inhalt",
1017+
"missing-signature-contents": "Fehlender Signaturinhalt",
1018+
"invalid-signature-hex-format": "Ungültiges Signatur-Hex-Format",
1019+
"unsupported-signature-format-not-signeddata": "Nicht unterstütztes Signaturformat - nicht SignedData",
1020+
"signer-certificate-not-found": "Unterzeichnerzertifikat nicht gefunden",
1021+
"no-certificates-in-signature": "Keine Zertifikate in der Signatur",
1022+
"no-signer-info-in-pkcs7": "Keine Signaturinformationen in PKCS#7",
1023+
"could-not-parse-signer-info": "Signaturinformationen konnten nicht analysiert werden",
1024+
"not-calculated": "Nicht berechnet",
1025+
"not-found-in-signature": "Nicht in Signatur gefunden"
9841026
}

apps/OpenSign/public/locales/en/translation.json

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"header-news": "New feature: Protect your account with Two-Factor Authentication (2FA) and enjoy the future of login with Passkeys — no passwords needed.",
33
"header-news-btn": "Setup now",
4+
"sandbox-news": "This is a sandbox environment. Please do not use it for production purposes.",
45
"create-account": "Create account",
56
"login": "Login",
67
"language": "Language",
@@ -675,7 +676,7 @@
675676
"public-template-mssg-1": "To integrate OpenSign into your React or Next.js project, simply run the following command:",
676677
"public-template-mssg-2": "Ensure you have npm or yarn set up in your project. If you're using Yarn, you can replace npm install with yarn add @opensign/react.",
677678
"public-template-mssg-3": "Need more details or examples?",
678-
"public-template-mssg-4": "Visit the",
679+
"public-template-mssg-4": "Visit the ",
679680
"public-template-mssg-5": " npm for the latest updates, detailed documentation, and version history.",
680681
"public-template-mssg-6": "Before you can use this code snippet, you must make this template public.",
681682
"public-template-mssg-7": "Before you can generate a public link you must make this template public.",
@@ -980,5 +981,46 @@
980981
"finish-mssg":" Are you sure you want to finish the document ?",
981982
"review":"Review",
982983
"next-field":"Next Field",
983-
"required-mssg":"{{leftRequiredWidget}} of {{totalWidget}} fields left"
984+
"required-mssg":"{{leftRequiredWidget}} of {{totalWidget}} fields left",
985+
"verify-document-signature": "Verify Document Signature",
986+
"select-pdf-document": "Select PDF Document",
987+
"selected-file": "Selected file",
988+
"verify-signature": "Verify Signature",
989+
"verification-status": "Verification Status",
990+
"verification-in-progress": "Verification in progress...",
991+
"verification-results-will-appear-here": "Verification results will appear here",
992+
"please-select-pdf": "Please select a valid PDF file",
993+
"please-select-file-to-verify": "Please select a file to verify",
994+
"no-signature-found": "No signature found in the document",
995+
"error-verifying-pdf": "Error verifying PDF",
996+
"signature-valid-basic": "Signature is valid",
997+
"signature-invalid-basic": "Signature is invalid",
998+
"all-signatures-verified-convincing": "Document Verified: All signatures have been successfully validated.",
999+
"some-signatures-invalid-basic": "Some signatures are invalid",
1000+
"no-signatures-processed": "No signatures were processed",
1001+
"unnamed-signature-field": "Unnamed Signature Field",
1002+
"error-processing-signature": "Error processing signature",
1003+
"signer-info-not-available": "Signer information not available",
1004+
"cert-validity-not-checked": "Certificate validity not checked",
1005+
"valid": "Valid",
1006+
"expired-or-not-yet-valid": "Expired or not yet valid",
1007+
"valid-from": "Valid from",
1008+
"to": "to",
1009+
"signer": "Signer",
1010+
"issuer": "Issuer",
1011+
"not-available": "Not available",
1012+
"not-performed": "Not performed",
1013+
"missing-acrofield-dict": "Missing acrofield dictionary",
1014+
"signature-dictionary-not-found-or-invalid": "Signature dictionary not found or invalid",
1015+
"missing-or-invalid-byterange": "Missing or invalid ByteRange",
1016+
"missing-or-invalid-contents": "Missing or invalid Contents",
1017+
"missing-signature-contents": "Missing signature contents",
1018+
"invalid-signature-hex-format": "Invalid signature hex format",
1019+
"unsupported-signature-format-not-signeddata": "Unsupported signature format - not SignedData",
1020+
"signer-certificate-not-found": "Signer certificate not found",
1021+
"no-certificates-in-signature": "No certificates in signature",
1022+
"no-signer-info-in-pkcs7": "No signer info in PKCS#7",
1023+
"could-not-parse-signer-info": "Could not parse signer info",
1024+
"not-calculated": "Not calculated",
1025+
"not-found-in-signature": "Not found in signature"
9841026
}

apps/OpenSign/public/locales/es/translation.json

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"header-news": "Nueva característica: los usuarios del plan Teams ahora pueden integrar sus propios depósitos de AWS S3 para el almacenamiento de archivos",
33
"header-news-btn": "Configurar ahora",
4+
"sandbox-news": "Este es un entorno sandbox. Por favor, no lo utilice con fines de producción.",
45
"create-account": "Crear cuenta",
56
"login": "Iniciar sesión",
67
"language": "Idioma",
@@ -675,7 +676,7 @@
675676
"public-template-mssg-1": "Para integrar OpenSign a tu proyecto React o Next.js, simplemente ejecuta los siguientes comandos:",
676677
"public-template-mssg-2": "Asegúrate de tener «npm» o «yarn» configurado en tu proyecto. Si estás usando «yarn», puedes reemplazar «npm install» con «yarn add @opensign/react».",
677678
"public-template-mssg-3": "¿Necesitas más detalles o ejemplos?",
678-
"public-template-mssg-4": "Visita la",
679+
"public-template-mssg-4": "Visita la ",
679680
"public-template-mssg-5": " «npm» para las últimas actualizaciones, documentación detallada e historial de versiones.",
680681
"public-template-mssg-6": "Antes de que puedas usar este fragmento de código, debes convertir esta plantilla en pública.",
681682
"public-template-mssg-7": "Antes de poder generar un enlace público, debes hacer que esta plantilla sea pública.",
@@ -980,5 +981,46 @@
980981
"finish-mssg": "¿Está seguro de que desea finalizar el documento?",
981982
"review": "Revisar",
982983
"next-field": "Siguiente campo",
983-
"required-mssg": "{{leftRequiredWidget}} de {{totalWidget}} campos restantes"
984+
"required-mssg": "{{leftRequiredWidget}} de {{totalWidget}} campos restantes",
985+
"verify-document-signature": "Verificar firma del documento",
986+
"select-pdf-document": "Seleccionar documento PDF",
987+
"selected-file": "Archivo seleccionado",
988+
"verify-signature": "Verificar firma",
989+
"verification-status": "Estado de verificación",
990+
"verification-in-progress": "Verificación en curso...",
991+
"verification-results-will-appear-here": "Los resultados de la verificación aparecerán aquí",
992+
"please-select-pdf": "Por favor, seleccione un archivo PDF válido",
993+
"please-select-file-to-verify": "Por favor, seleccione un archivo para verificar",
994+
"no-signature-found": "No se encontró ninguna firma en el documento",
995+
"error-verifying-pdf": "Error al verificar el PDF",
996+
"signature-valid-basic": "La firma es válida",
997+
"signature-invalid-basic": "La firma no es válida",
998+
"all-signatures-verified-convincing": "Documento verificado: Todas las firmas han sido validadas exitosamente.",
999+
"some-signatures-invalid-basic": "Algunas firmas no son válidas",
1000+
"no-signatures-processed": "No se procesaron firmas",
1001+
"unnamed-signature-field": "Campo de firma sin nombre",
1002+
"error-processing-signature": "Error al procesar la firma",
1003+
"signer-info-not-available": "Información del firmante no disponible",
1004+
"cert-validity-not-checked": "Validez del certificado no verificada",
1005+
"valid": "Válido",
1006+
"expired-or-not-yet-valid": "Caducado o aún no válido",
1007+
"valid-from": "Válido desde",
1008+
"to": "hasta",
1009+
"signer": "Firmante",
1010+
"issuer": "Emisor",
1011+
"not-available": "No disponible",
1012+
"not-performed": "No realizado",
1013+
"missing-acrofield-dict": "Falta el diccionario Acrofield",
1014+
"signature-dictionary-not-found-or-invalid": "Diccionario de firmas no encontrado o inválido",
1015+
"missing-or-invalid-byterange": "ByteRange faltante o inválido",
1016+
"missing-or-invalid-contents": "Contenido faltante o inválido",
1017+
"missing-signature-contents": "Falta el contenido de la firma",
1018+
"invalid-signature-hex-format": "Formato hexadecimal de firma inválido",
1019+
"unsupported-signature-format-not-signeddata": "Formato de firma no compatible - no SignedData",
1020+
"signer-certificate-not-found": "Certificado del firmante no encontrado",
1021+
"no-certificates-in-signature": "No hay certificados en la firma",
1022+
"no-signer-info-in-pkcs7": "No hay información del firmante en PKCS#7",
1023+
"could-not-parse-signer-info": "No se pudo analizar la información del firmante",
1024+
"not-calculated": "No calculado",
1025+
"not-found-in-signature": "No encontrado en la firma"
9841026
}

apps/OpenSign/public/locales/fr/translation.json

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"header-news": "Nouvelle fonctionnalité : les utilisateurs du forfait Teams peuvent désormais intégrer leurs propres compartiments AWS S3 pour le stockage de fichiers",
33
"header-news-btn": "Configurer maintenant",
4+
"sandbox-news": "Ceci est un environnement sandbox. Veuillez ne pas l'utiliser à des fins de production.",
45
"create-account": "Créer un compte",
56
"login": "Se Connecter",
67
"language": "Langue",
@@ -675,7 +676,7 @@
675676
"public-template-mssg-1": "Pour intégrer OpenSign dans votre projet React ou Next.js, exécutez simplement la commande suivante :",
676677
"public-template-mssg-2": "Assurez-vous que npm ou Yarn est configuré dans votre projet. Si vous utilisez Yarn, vous pouvez remplacer npm install par Yarn Add @opensign/react.",
677678
"public-template-mssg-3": "Besoin de plus de détails ou d'exemples ?",
678-
"public-template-mssg-4": "Visitez le",
679+
"public-template-mssg-4": "Visitez le ",
679680
"public-template-mssg-5": "npm pour les dernières mises à jour, une documentation détaillée et l'historique des versions.",
680681
"public-template-mssg-6": "Avant de pouvoir utiliser cet extrait de code, vous devez rendre ce modèle public.",
681682
"public-template-mssg-7": "Avant de pouvoir générer un lien public, vous devez rendre ce modèle public.",
@@ -980,5 +981,46 @@
980981
"finish-mssg": "Êtes-vous sûr de vouloir terminer le document ?",
981982
"review": "Revoir",
982983
"next-field": "Champ suivant",
983-
"required-mssg":"{{leftRequiredWidget}} champs sur {{totalWidget}} restants"
984+
"required-mssg":"{{leftRequiredWidget}} champs sur {{totalWidget}} restants",
985+
"verify-document-signature": "Vérifier la signature du document",
986+
"select-pdf-document": "Sélectionner le document PDF",
987+
"selected-file": "Fichier sélectionné",
988+
"verify-signature": "Vérifier la signature",
989+
"verification-status": "État de la vérification",
990+
"verification-in-progress": "Vérification en cours...",
991+
"verification-results-will-appear-here": "Les résultats de la vérification apparaîtront ici",
992+
"please-select-pdf": "Veuillez sélectionner un fichier PDF valide",
993+
"please-select-file-to-verify": "Veuillez sélectionner un fichier à vérifier",
994+
"no-signature-found": "Aucune signature trouvée dans le document",
995+
"error-verifying-pdf": "Erreur lors de la vérification du PDF",
996+
"signature-valid-basic": "La signature est valide",
997+
"signature-invalid-basic": "La signature est invalide",
998+
"all-signatures-verified-convincing": "Document vérifié : Toutes les signatures ont été validées avec succès.",
999+
"some-signatures-invalid-basic": "Certaines signatures sont invalides",
1000+
"no-signatures-processed": "Aucune signature traitée",
1001+
"unnamed-signature-field": "Champ de signature sans nom",
1002+
"error-processing-signature": "Erreur lors du traitement de la signature",
1003+
"signer-info-not-available": "Informations sur le signataire non disponibles",
1004+
"cert-validity-not-checked": "Validité du certificat non vérifiée",
1005+
"valid": "Valide",
1006+
"expired-or-not-yet-valid": "Expiré ou pas encore valide",
1007+
"valid-from": "Valide du",
1008+
"to": "au",
1009+
"signer": "Signataire",
1010+
"issuer": "Émetteur",
1011+
"not-available": "Non disponible",
1012+
"not-performed": "Non effectué",
1013+
"missing-acrofield-dict": "Dictionnaire Acrofield manquant",
1014+
"signature-dictionary-not-found-or-invalid": "Dictionnaire de signatures introuvable ou invalide",
1015+
"missing-or-invalid-byterange": "ByteRange manquant ou invalide",
1016+
"missing-or-invalid-contents": "Contenu manquant ou invalide",
1017+
"missing-signature-contents": "Contenu de la signature manquant",
1018+
"invalid-signature-hex-format": "Format hexadécimal de signature invalide",
1019+
"unsupported-signature-format-not-signeddata": "Format de signature non pris en charge - pas SignedData",
1020+
"signer-certificate-not-found": "Certificat du signataire introuvable",
1021+
"no-certificates-in-signature": "Aucun certificat dans la signature",
1022+
"no-signer-info-in-pkcs7": "Aucune information sur le signataire dans PKCS#7",
1023+
"could-not-parse-signer-info": "Impossible d'analyser les informations sur le signataire",
1024+
"not-calculated": "Non calculé",
1025+
"not-found-in-signature": "Introuvable dans la signature"
9841026
}

0 commit comments

Comments
 (0)