Coder Social home page Coder Social logo

lovasoa / sanipasse Goto Github PK

View Code? Open in Web Editor NEW
175.0 7.0 40.0 5.77 MB

Vérificateur de passe sanitaire open-source

Home Page: https://sanipasse.fr

License: GNU Affero General Public License v3.0

JavaScript 3.42% HTML 0.47% Svelte 66.52% TypeScript 29.24% Dockerfile 0.34%

sanipasse's Introduction

Sanipasse

Application opensource de vérification de passeport sanitaire et d'organisation d'événements zéro-COVID.

Cette application sait lire les codes 2D-DOC français ainsi que les "digital green certificates" européens (sous forme de QR code).

Screenshots

Héberger son instance Sanipasse

La manière recommandée d'auto-héberger une instance de sanipasse est d'utiliser l'image docker officielle lovasoa/sanipasse.

L'image écoute en HTTP sur le port 3000 et stocke ses données persistentes dans le répertoire /data/.

Pour lancer le service sur le port 80 sur un serveur, en conservant les données dans un volume docker, on peut utiliser la commande suivante :

docker run -d -p 80:3000 -v sanipasse_data:/data/ --name sanipasse --rm lovasoa/sanipasse

L'image expose uniquement un serveur HTTP, mais pour fonctionner correctement, l'application doit être servie en HTTPS. Il vous faudra donc mettre un place un reverse proxy (nginx, par exemple) et obtenir un certificat SSL (avec letsencrypt, par exemple). Une manière simple et automatisée de mettre cela en place sur un serveur personnel est d'utiliser dokku avec dokku-letsencrypt.

Developing

Sanipasse supports Node.js v16+.

Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Running

Build the app

SVELTEKIT_ADAPTER=node npm run build

Then run it:

node build

sanipasse's People

Contributors

aldarone avatar gilbsgilbs avatar landswellsong avatar liamjack avatar lovasoa avatar manuel-odesser avatar tchoupinax avatar xternalsoft avatar zoobab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sanipasse's Issues

Mention "zero-covid" sur sanipasse.fr

Merci pour cette alternative libre, auditable à tousanticovid-verif !

Je ne savais pas trop où te faire ce retour, je crée du coup une issue ici.
Concernant le site sanipass.fr où tu écris :
"Vous pouvez également Créer un événement, pour construire une liste d'invités zéro-COVID. "
Dans un soucis "d'exactitude sanitaire", la mention "zéro-COVD" n'est pas appropriée, c'est une liste d'invités aux certificats vérifiés, pas une "garantie" de zéro-COVID.

erreur 500: Cannot read property 'default' of null

Merci de bien vouloir décrire ici votre appareil, votre navigateur, et les circonstances d'apparition du bug.

Informations techniques

{
    "stack": "TypeError: Cannot read property 'default' of null\n    at eval (C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\src\\routes\\index.svelte:25:61)\n    at Object.$$render (C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\node_modules\\svelte\\internal\\index.js:1677:22)\n    at Object.default (/C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\.svelte-kit\\dev/generated/root.svelte:59:127)\n    at Object.default (C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\src\\routes\\__layout.svelte:62:50)\n    at eval (/node_modules/sveltestrap/src/Container.svelte:38:195)\n    at Object.$$render (C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\node_modules\\svelte\\internal\\index.js:1677:22)\n    at eval (C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\src\\routes\\__layout.svelte:61:124)\n    at Object.$$render (C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\node_modules\\svelte\\internal\\index.js:1677:22)\n    at eval (/C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\.svelte-kit\\dev/generated/root.svelte:57:122)\n    at $$render (C:\\Users\\mam'script\\Documents\\GitHub\\sanipasse\\node_modules\\svelte\\internal\\index.js:1677:22)"
}

Enregistrement du certificat

Tout d'abord déjà, merci pour l'application 👍

Je me demandais si il était prévu d'avoir une fonction d'enregistrement (en local bien sûr) d'un certificat après un scan car pour le moment ce n'est que de la vérification/consultation.

Fonctionnement avec les anciens navigateurs

Bonjour,

J’aime beaucoup l’idée de Sanipasse et suis intéressé par le fait d’y enregistrer mon passe santaire ainsi que ceux de ma famille.
Malheureusement, j’ai un téléphone qui tourne sous le système KaiOS (dérivé de Firefox OS) et dont le navigateur (sauf erreur de ma part, en gros, un Firefox 48) n’est pas supporté.
Penses-tu qu’il soit envisageable d’adapter le code de Sanipasse pour le rendre compatible avec une telle vieillerie (quitte à avoir ma propre instance) ?
J’ai essayé de regarder moi-même mais je suis une quiche en « JavaScript moderne »…

pass sanitaire validé avec 2 ième dose de vaccins de moins de 7 Jours

Bonjour,

Tout d'abord merci pour ce très bon boulot et cette outil très pratique.
Je viens de voir un petit soucis avec un invité qui aura son pass sanitaire "officiel" vendredi prochain:
schéma vaccinal complet + 7 jours.

Il a réussi a enregistré son QR code avec sanipass et de mon côté il est validé.

Dans mon cas ce n'est pas important car l'événement à lieu samedi prochain.
Mais pour certains lieux public celà peut être ennuyeux:

d'après le site du gouvenement : https://www.gouvernement.fr/pass-sanitaire-toutes-les-reponses-a-vos-questions

  1. La vaccination, à la condition que les personnes disposent d'un schéma vaccinal complet et du délai nécessaire après l’injection finale, soit :

    7 jours après la 2e injection pour les vaccins à double injection (Pfizer, Moderna, AstraZeneca) ;
    28 jours après l'injection pour les vaccins avec une seule injection (Johnson & Johnson) ;
    7 jours après l'injection pour les vaccins chez les personnes ayant eu un antécédent de Covid (1 seule injection).

Merci et bon courage pour la suite

Import de certificat de vaccination au format 2d-doc (datamatrix)

Bonjour,

Lors de l'import d'un certificat de vaccination au format 2d-Doc, Sanipasse génère le QR-Code du lien https://bonjour.tousanticovid.gouv.fr présent sur le certificat.
Or le QR-Code de ce lien n'est pas reconnu par l'application TAC Verif, il faut présenter le code au format 2D-Doc pour que le certificat soit reconnu.

En l'état, l'import de ce type de certificat dans le carnet Sanipasse n'a aucun intérêt étant donné qu'il sera systématiquement refusé par l'application TAC Vérif.

Bien que je ne pense pas que l'ajout de la fonctionnalité de génération de 2d-code soit pertinente vu que ces certificats ne sont plus distribués depuis juillet et que l'on peut télécharger la nouvelle version sur ameli.fr, un petit message lors de l'import ou bien même refuser l'import de ces certificats dans Sanipasse pourrait être une solution.

Possibilité de désactiver l'affichage des données personnelles lors du scan

Actuellement, lors du scan, toutes les données personnelles sont affichées.

Il serait bon de fournir une configuration pour désactiver l'affichage des données personnelles lors du scan, laissant uniquement la vérification de validité du certificat comme feedback direct (éventuellement en cachant les données personnelles dans un spoiler tag type <details>).

Possibilité de double scan d'une même personne

Bonjour
Sur la fonction borne, il est possible pour une personne de valider 2 fois son pass sanitaire même si la fonction "avant réutilisation du même passe" a été activée.

Sur le papier "certificat covid numerique UE" que j'ai, il y a 2 QR codes différents.

  • le certificat Covid Numerique UE
  • le QR code pour ajouter dans "TousAntiCovid".

Les 2 sont reconnus valide par la borne.
Ils concernent la même personne.
Mais le "doublon" n'est pas identifié par la borne (j'imagine que c'est normal puisque ce n'est pas les même QR code).

Y a t il un moyen pour éviter ca?
j'ai pensé à ca (sans être exhaustif) :

  • identifier que les 2 codes sont sur la même personne
  • ne pas prendre en compte le QR code "ajouter a ToutAntiCovid" comme un QR code valide?

Pass 2DOC renvoie valide avec un seul vaccin PFIZER

Bonjour,

J'ai un pass sanitaire qui est marqué comme valide avec votre outil, alors qu'il ne contient qu'un seul vaccin (datant du 10 mai 2021) (et n'a pas eu le COVID19)

Je veux bien vous passer le code pour que vous testiez, mais pas en public (données de la personne)

Merci

performance is not defined

Hi, once i've run npm run dev or yarn run dev

i've this issue:

ReferenceError: performance is not defined
    at Object.handle (/Users/xxx/Documents/GitHub/sanipasse/src/hooks.ts:4:27)
    at respond (file:///Users/xxx/Documents/GitHub/sanipasse/node_modules/@sveltejs/kit/dist/ssr.js:1637:30)
    at Immediate.<anonymous> (file:///Users/xxx/Documents/GitHub/sanipasse/node_modules/@sveltejs/kit/dist/chunks/index.js:3484:28)

Thanks

QRCodes DCC ne respectent pas tous le schéma européen

L'Europe a ouvert depuis peu la création de QRCode de vaccination européen pour ceux qui ont été vaccinés dans des pays étrangés.

Le problème :
Les données ne sont pas formatées proprement et on se retrouve avec des qrcodes avec une signature valide mais un schéma ne respectant pas la norme européenne.

J'ai donc un QRCode d'une personne vaccinée en Chine.
Je ne poste pas le QRCode car ce n'est pas le mien et pour des raisons de confidentialité, mais je mets le payload json du QRCode :

{
    "dob": "19XX-XX-XX",
    "nam": {
        "fn": "Antoine, Fabrice",
        "fnt": "ANTOINE,<FABRICE",
        "gn": "MARTIN",
        "gnt": "MARTIN"
    },
    "v": [
        {
            "ci": "URN:UVCI:V1:FR:CMKPB---------------------",
            "co": "CN",
            "dn": 2,
            "dt": "2021-0X-0X",
            "is": "DGS",
            "ma": "ORG-100030215",
            "mp": "EU/1/20/1528",
            "sd": 2,
            "tg": "840539006",
            "vp": "1119349007"
        }
    ],
    "ver": "1.2.1"
}

Le problème se pose donc sur la présence de la virgule dans le champ fnt qui est normalement validé par le regex ^[A-Z<]*$ .

Je mets une capture d'écran de la réponse de l'application à ce QRCode.
Appli

Je n'ai pas de solution à proposer dans l'immédiat, mise à part de mettre un warning plutôt que faire une erreur.

@lovasoa Je peux donner le qrcode en privé si vraiment il y a besoin de preuve (j'ai l'autorisation de la personne à qui il appartient, il ne faut juste pas que ce soit public)

EDIT : Il y a aussi l'inversion prénom / nom dans ce qrcode, mais je pense que ce n'est pas un problème que sanipasse doit régler
(cf https://twitter.com/elise_eliz/status/1422356353759158284 )

2D-DOC et QR Code

Bonjour,

Sanipasse gère-t-il également les QR codes car il semblerait que ce soit le nouveau format qui sera utilisé à l'échelle européenne et remplacera le 2D-DOC.
Sur le site de test sanipasse.fr, il semble que les QR code ne sont pas reconnus (tester en essayant d'utiliser la caméra de l'appareil avec un QR code papier).

Code mode frontière?

L'application TousAntiCovid montre maintenant des informations supplémentaires en activant le "mode frontière". L'une de ces infos est un code en bas de page, qui ressemble à un hash:

Screenshot_20210802_192403_fr gouv android stopcovid2

(J'ai caché certaines parties du code pour des raisons de confidentialité).

J'ai cherché dans les données brutes décodées par Sanipasse mais il n'y est pas.

D'où vient ce code et à quoi sert-il? Pourrait-il être rajouté dans Sanipasse au cas où celui-ci vient à être utilisé lors de vérifications?

Liste noire de certificats

L'application TousAntiCovid Verif a intégré dans sa version 1.8.0 un système de révocation de certificats.

D'après le code source disponible pour l'application Android, ça fonctionne de la même façon que dans TousAntiCovid :

  • DCC : sha256(country_code + uvci) cherché dans une liste de certificats révoqués
  • 2D-DOC : sha256(2D-DOC sans signature) cherché dans une autre liste de certificats révoqués

Pour le moment ces deux listes sont vides : ils attendent probablement un feu vert de la CNIL ou quelque chose…

La liste peut se trouver facilement dans la liste de synchronisation qui est déjà utilisée par Sanipasse pour synchroniser les DSC (specificValues->blacklist->blacklistDCC et specificValues->blacklist->blacklist2DDOC). À noter qu'ils ont aussi ajouté le même système que dans sanipasse pour détecter les double utilisations d'un même passe, mais désactivé pour le moment (ça alimente juste les statistiques).

sanipasse.db Docker

Bonjour,

Bravo pour ce travail hyper bien fait.
Juste un point, le docker "exite" immédiatement avec la commande : "docker run -d -p 80:3000 -v /your-volume/sanipasse/:/data/ --name sanipasse --rm lovasoa/sanipasse" car le fichier sanipasse.db n est plus accessible et pas encore crée dans le répertoire de l hote. Démarrer le docker sans "-v /your-volume/sanipasse/:/data/" puis "docker cp sanipasse:/data/sanipasse.db /your-volume/sanipasse" puis arrêter le docker supprimez le et redémarrez le avec la commande suggérée.
Bonne Soirée.

API

Bonjour,
Peut-on envisager un fonctionnement "hybride", à mi-chemin entre la borne et l'appli web, afin de soumettre à l'appli (par une API quelconque) le contenu du QRCode, et d'obtenir une réponse ?

Originally posted by @hgshoggins in #29 (comment)

erreur 500: HTMLElement is not defined

Merci de bien vouloir décrire ici votre appareil, votre navigateur, et les circonstances d'apparition du bug.

Informations techniques

{
    "name": "ReferenceError",
    "message": "HTMLElement is not defined",
    "stack": "ReferenceError: HTMLElement is not defined"
}

firefox ubuntu not working

I test the app with firefox (66.0.3) on ubuntu.
The borne page or the test page did not ask to allow the camera.
So i can't start scanning qr code

i test the webcam with https://fr.webcamtests.com/ and it's working

how can i allow the webcam on sanipasse?

Mise à jour des certificats

Est-ce qu’il ne serait pas pertinent de récupérer les certificats dynamiquement ? Ou bien on peut se contenter de les mettre manuellement à jour…

Actuellement je vois que dans le code de l’INRIA il y a une nouvelle clé qui n’est pas dans ce dépôt

Faute d'orthographe

Bonjour,

Dans le fichier /src/routes/index.svelte

  • Ligne 44 : Votre passe sanitaire est <a href="apropos#donnees">strictement privée</a>. Il ne sera
    -> Votre passe sanitaire est strictement privé. Il ne sera

Support du pass Européen (Digital Covid Certificate)

Depuis hier, le site d'AMELI (et probablement SI-DEP) ne fournit plus de 2D-DOC en guise de pass sanitaire mais seulement le pass sanitaire européen (DCC) sous la forme d'un QR-Code. Toutes les spécifications techniques de ce certificat sont disponibles publiquement : https://ec.europa.eu/health/ehealth/covid-19_fr et différents supports et implémentations de référence sont disponibles sur deux groupes GitHub :

Ce repo propose une vue synthétique de l'encodage du QR Code et met un lien vers un PoC d'implémentation en JS.

Le trust model, en plus d'être une gros point faible de ce DGC en général, pose un problème pour créer une implémentation open-source. En effet, les certificats de signature sont partagés sur une gateway européenne qui, à ma connaissance, n'est pas accessible publiquement : https://github.com/eu-digital-green-certificates/dgc-gateway/blob/main/docs/software-design-dgc-gateway.md#context-view . Il est néanmoins assez simple de récupérer les certificats renvoyés par le back-end des applications des pays membres (par exemple, ici pour ceux renvoyés à date par le backend de l'application TousAntiCovid Verif : dccCerts.json.gz ; à noter que le back-end de TAC-Verif renvoie également plein de clés publiques pour les 2D-DOC qui ne sont pas supportées par sanipasse 🤔).

On peut envisager différentes solutions :

  • Régulièrement mettre à jour une liste de DSC dans sanipasse en fonction de ce que les différents backends des applications nationales renvoient
  • Régulièrement mettre à jour une liste des CSCA nationaux (ou juste le CSCA français qui est l'ANTS) dans sanipasse et :
    • Ignorer les révocations de DSC
    • Régulièrement mettre à jour une liste des DSC révoqués (même si on pourrait facilement en louper)
  • Créer une réimplementation publique de cette gateway qu'on mettrait à jour en fonction des informations glanées dans les backends des applications nationales
  • Autre chose ?

Chargement sans fin

Bonjour,
à l'ouverture de la page, notification de "Chargement" (truc bleu qui tourne) sans fin
Android 7.1.1
Firefox 57.0.4
En navigation "normale" comme en navigation privée

Branche borne

Cette branche est-elle terminée ? Je viens de cloner le repo pour tester cette branche afin de proposer de mettre sanipasse à l'entrée d'un établissement pour automatiser un minimum le processus mais il semble que le scan video n'est pas fonctionnel sur cette route ?

[BORNE CONFIG] Faute de frappe

Bonjour,
Cette issue n'a rien de technique et serait même du pinaillage.

En effet, sur la page de configuration de la borne, la catégorie d'interfaçage avec des services externes via HTTP affiche deux fois le même placeholder concernant le valid-pass-endpoint.

Comme je l'ai dit, cela n'empêche pas la borne de fonctionner, c'est une simple faute de frappe.

Bonne soirée,
LProgead 👋

TypeError: Key is not of type 'CryptoKey'

Bonjour,
j'essaie de mettre en place sanipasse pour nos évenements,
lors de la confirmation de présence sur un évenement j'ai une erreur :
Internal Server Error : Key is not of type 'CryptoKey'
La machine tourne sous ubuntu 20.04 server et j'utilise votre container docker
Merci à vous pour votre aide et votre travail sur ce projet

Legislation quant au remplacement de tous anti covid verif par sanipasse

Bonjour,

J'essaye de trouver les textes de loi de la CNIL par rapport à l'utilisation de sanipasse mais le seul bout de texte que j'ai trouvé est :

TousAntiCovid Verif est l’unique application autorisée en France pour effectuer le contrôle sanitaire.

Trouvé dans le PDF "FAQ - Le « pass sanitaire » pour les professionnels" FAQ - Le « pass sanitaire » pour les professionnels disponible sur https://www.gouvernement.fr/info-coronavirus/pass-sanitaire

Avez vous pris contact ou même eu des retours avec les organisations compétentes quant à l'autorisation d'utiliser l'application pour la vérification des pass sanitaire ?

disparition des passes enregistrés dans "mon carnet"

Bonjour, j'utilise votre application depuis le mois de Juin. Cependant je rencontre un problème depuis quelques jours : le passe que j'ai enregistré s'efface tout seul. J'ai eu beau le réenregistrer plusieurs, le bug persiste il s'efface tout seul au bout de quelques heures (voire même quelques minutes parfois).
Je constate cette erreur simplement en ouvrant l'application (je suis sur Android 10 et j'utilise un Xiaomi Mi 9 Lite)

Calcul nombre de jours écoulés

Bonjour,

Lors de l'import d'un certificat, le résultat obtenu est invalide car le test aurait plus de 6 mois sauf que le nombre de jours calculés 53 910 est erroné.
Ci-dessous la photo des détails obtenus. Les détails semblent correctent mais le calcul du nombre de jours écoulés et l'interprétation en statut invalide semblent incorrects.

test

Comment ajouter le clef d'API?

Bonjour
J'installe votre projet sur notre serveur, comment on peut ajouter le clef d'API dans le serveur?

Merci d'avance.

when a guest RSVP's to an event, its name should not be fully seen

Hi

Use case :

My "problem" : the guest is listed as accepted, but its name does not match Test ABCD (of course), so the UI will display its real name, with status accepted but was not invited

This is a special case where I do set an event at a place, but I do not want to know the real name of some of my guests

hint : no it's not a partouze 🐖

Erreur ... (novice)

Bonjour,
Je suis novice et n'ai pas une grande expérience de Docker. J'arrive bien à faire tourner le script en localhost:80 mais je n'arrive à rien d'autre ...

$ npm run dev me donne une erreur :

Last login: Sat Nov 20 17:22:36 on ttys002
renaud@mbp-de-renaud-2 ~ % docker exec -it 7f8803596bf7071fdf92d0e8343aec2de07a2a21d1766fc612b6ebc91dc5fb67 /bin/sh
/code $ npm run dev

> [email protected] dev
> svelte-kit dev

> EACCES: permission denied, mkdir '/code/.svelte-kit/dev/components'
Error: EACCES: permission denied, mkdir '/code/.svelte-kit/dev/components'
    at Object.mkdirSync (node:fs:1334:3)
    at mkdirp (file:///code/node_modules/@sveltejs/kit/dist/cli.js:221:15)
    at copy (file:///code/node_modules/@sveltejs/kit/dist/cli.js:250:3)
    at file:///code/node_modules/@sveltejs/kit/dist/cli.js:247:18
    at Array.forEach (<anonymous>)
    at copy (file:///code/node_modules/@sveltejs/kit/dist/cli.js:246:33)
    at file:///code/node_modules/@sveltejs/kit/dist/cli.js:247:18
    at Array.forEach (<anonymous>)
    at copy (file:///code/node_modules/@sveltejs/kit/dist/cli.js:246:33)
    at copy_assets (file:///code/node_modules/@sveltejs/kit/dist/cli.js:293:4)
file:///code/node_modules/@sveltejs/kit/dist/chunks/index.js:4409
			throw new Error('Cannot close server before it is initialized');
			      ^

Error: Cannot close server before it is initialized
    at Watcher.close (file:///code/node_modules/@sveltejs/kit/dist/chunks/index.js:4409:10)
    at process.<anonymous> (file:///code/node_modules/@sveltejs/kit/dist/chunks/index.js:4235:9)
    at process.emit (node:events:390:28)
    at process.emit (node:domain:475:12)
    at process.exit (node:internal/process/per_thread:184:15)
    at handle_error (file:///code/node_modules/@sveltejs/kit/dist/cli.js:798:10)
    at file:///code/node_modules/@sveltejs/kit/dist/cli.js:869:4
/code $ 

Comment accéder localement au localhost ou exporter le contenu du centenaire ?

MILLES MERCI !

Problématique 2D-DOC à partir d'un scanner de code barre

Bonjour,

Tentant de mettre en place une borne équipée d'une tête de lecture Datalogic Magellan 1500i, je rencontre un souci de lecture des 2D-DOC, aucun souci pour les QR-Code.

En effet, malgré un paramétrage complet, tout 2D-DOC scanné depuis la douchette me donne un résultat invalide ("certificat invalide"), là où le scan du même 2D-DOC depuis une caméra est OK.

Après analyse des données remontées par les deux méthodes, une seule différence ; une balise de contrôle est interprétée par la caméra mais pas la douchette. Les autres balises sont interprétées dans les deux cas.

D'autres personnes ont-elles rencontré ce souci ?

Merci d'avance, et bon courage pendant cette période encore difficile.

'npm run build' en mode 'static' donne une erreur 404

Bonjour,

J'essaye de déployer sanipasse sur mon site web sur lequel je ne dispose pas de node. Après avoir cloné sanipasse puis fait "npm install", j'ai tenté :
npm run build
puis j'ai uploadé le contenu du dossier build/ sur mon serveur. Le résultat est ici :
https://sani.alexisfles.ch/

Cependant, j'ai une erreur dans la console :

service-worker.js:35 Uncaught (in promise) bad-precaching-response: bad-precaching-response :: [{"url":"https://sani.alexisfles.ch/import/video","status":404}]
    at PrecacheStrategy._handleInstall (https://sani.alexisfles.ch/service-worker.js:1261:13)
    at async PrecacheStrategy._handle (https://sani.alexisfles.ch/service-worker.js:1230:14)
    at async PrecacheStrategy._getResponse (https://sani.alexisfles.ch/service-worker.js:554:18)

Même si le site semble fonctionner, je ne peux pas accéder aux pages directement, par exemple :
https://sani.alexisfles.ch/apropos

Cela me gêne car j'aimerais utiliser l'API.

Cependant, quand je test en local tout fonctionne avec
npm run dev

J'imagine que j'ai mal configuré quelque chose mais je ne sais pas quoi et mes recherches n'ont rien donné.

Erreur à la soumission d'un certificat

Bonjour,
J'obtiens l'erreur suivante à la soumission d'un certificat :
⚠️ Erreur
Unexpected end of JSON input

image

Néanmoins, le certificat est bien envoyé et traité par le serveur puisqu'il apparait ensuite dans la liste des participants à l'évènement.

Testé depuis Vivaldi 3.3.2022.47 sur Windows 10

Etapes pour reproduire :

  • Créer un évènement
  • Accèder à la page d'imort d'un certificat par QR Code
  • Scanner un certificat de vaccination
  • Cliquer sur "Envoyer mon certificat"

Rajouter de la doc sur comment tourner le containeur Docker

Rajouter de la doc sur comment tourner le containeur Docker.

J'ai fait une version autobuildée ici sur le DockerHub:

$ docker run zoobab/sanipasse
Listening on port 3000
Executing (default): CREATE TABLE IF NOT EXISTS `events` (`public_code` VARCHAR(9) PRIMARY KEY, `private_code` VARCHAR(9), `na
me` VARCHAR(255), `date` DATETIME NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL);
Executing (default): PRAGMA INDEX_LIST(`events`)
Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_events_1`)
Executing (default): CREATE UNIQUE INDEX `events_private_code` ON `events` (`private_code`)
Executing (default): CREATE TABLE IF NOT EXISTS `people` (`key` VARCHAR(255) NOT NULL, `eventPublicCode` VARCHAR(255) NOT NULL
 REFERENCES `events` (`public_code`) ON DELETE CASCADE ON UPDATE CASCADE, `validated` TINYINT(1) NOT NULL DEFAULT 0, `invited`
 TINYINT(1) NOT NULL DEFAULT 0, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`key`, `eventPublic
Code`));
Executing (default): PRAGMA INDEX_LIST(`people`)
Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_people_1`)

Documenter l'option pour monter le /data ?

Et pointer son navigateur vers http://localhost:3000.

"Installer" avec Firefox Android ne fonctionne pas

En ouvrant Sanipasse dans Firefox Android, si je clique sur "Installer" dans le menu de l'application, le menu se ferme et rien ne se passe.

Il s'agit peut-être d'un bug de Firefox, mais étant donné que sur les autres sites que j'ai pu essayer, le libellé du menu devient "Ajouter à l'écran d'accueil" au lieu d'"Installer", je ne suis pas arrivé à reproduire ce comportement.

Wrong decoding of certificate subject name

When decoding the signing certificate subject, backslashes are not taken into account. The organisation emettrice in the below example should say "NIJZ, National Institute of Public Health of Slovenia - NIJZ eHealth"

See example:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.