ministero-salute / it-dgc-verificac19-sdk-android

Digital Covid Certificate SDK
Apache License 2.0
57 stars 30 forks source link

Version 1.0.3 #64

Closed wolfAle closed 1 year ago

wolfAle commented 2 years ago

Buongiorno,

ho alcune domande per capire le best practices nell'uso dell'SDK.

  1. Poco fa le validazioni dei greenpass hanno iniziato a fallire. Dopo un po' di debug ho notato che nel repository il valore della chiave "CERTIFICATE_SHA" presente in build.gradle è cambiato. Era: "\"sha256/7cZJIDPacG8FS3pq6Mvxg+7yBDM/VYc2alOcbVe/e74=\"" E': "\"sha256/R0d+cI8vTcJ3sCbpfQCH0OmdBbulPH3deYhngzOqJVA=\"" Con il nuovo valore le validazioni passano. Qual è la politica in questo caso? Come facciamo noi utilizzatore dell'sdk a sapere quando viene aggiornato il valore? Esiste una mailiing list, o qualcosa di simile? dovremmo rilasciare una nuova versione dell'app aggiornando il valore appena viene cambiato? O dovrebbe arrangiarsi l'app a scaricarlo in qualche maniera?

  2. Avrei potuto recepire il nuovo valore di "CERTIFICATE_SHA" facendo pull del branch di develop, cosa che ho provato. Ma l'app ha iniziato a crashare: io.realm.exceptions.RealmException: 'class it.ministerodellasalute.verificaC19sdk.data.local.RevokedPass' is not part of the schema for this Realm. Anche noi utilizziamo Realm come database nella nostra app. Come dovremmo comportarci in questi casi? dobbiamo gestire la (vostra) migrazione in qualche maniera? o è gestita lato vostro?

  3. lato "client" dell'SDK in caso di validazione fallita del greenpass per problemi con i certificati il motivo non è evidente. Nell'observer arriva solo l'oggetto CertificateSimple che ha solo uno status CertificateStatus, ma non specifica il motivo del fallimento. Potrebbe essere possibile avere più info a riguardo?

Grazie, Alessandro

danyalberton commented 2 years ago

Buongiorno, non è scritto esplicitamente in nessun punto, ma ritengo sia una buona pratica integrare la libreria nei propri progetti utilizzando le "release" e ad oggi la più recente è la "release/1.0.2". Hai provato ad utilizzare questa versione? Ritieni che anche tale versione possa avere problemi?

wolfAle commented 2 years ago

@danyalberton

Aggiornamento: ho riverificato il punto 1 e gli sha non sono cambiati, avevo fatto confusione io.

Il problema principale per il quale la validazione dei greenpass fallisce è che il buildTypes di debug utilizza una configurazione apparentemente non funzionante:

debug {
            minifyEnabled false
            buildConfigField "String", "BASE_URL", "\"https://get.dgc.gov.it/v1/dgc/\""
            buildConfigField "String", "SERVER_HOST", "\"get.dgc.gov.it\""
            buildConfigField "String", "CERTIFICATE_SHA", "\"sha256/7cZJIDPacG8FS3pq6Mvxg+7yBDM/VYc2alOcbVe/e74=\""
            buildConfigField "String", "SDK_VERSION", "\"1.0.2\""
        }

Con questi server e sha la validazione fallisce. Per poter testare l'implementazione in debug devo modificare a mano i valori di BASE_URL, SERVER_HOST e CERTIFICATE_SHA, usando i valori della configurazione di release. È normale?

Ora ho riprovato utilizzando release/1.0.2 e il problema di cui sopra è confermato, devo aggiornare gli url e lo sha.

Grazie, Alessandro

danyalberton commented 2 years ago

@danyalberton

Aggiornamento: ho riverificato il punto 1 e gli sha non sono cambiati, avevo fatto confusione io.

Il problema principale per il quale la validazione dei greenpass fallisce è che il buildTypes di debug utilizza una configurazione apparentemente non funzionante:

debug {
            minifyEnabled false
            buildConfigField "String", "BASE_URL", "\"https://get.dgc.gov.it/v1/dgc/\""
            buildConfigField "String", "SERVER_HOST", "\"get.dgc.gov.it\""
            buildConfigField "String", "CERTIFICATE_SHA", "\"sha256/7cZJIDPacG8FS3pq6Mvxg+7yBDM/VYc2alOcbVe/e74=\""
            buildConfigField "String", "SDK_VERSION", "\"1.0.2\""
        }

Con questi server e sha la validazione fallisce. Per poter testare l'implementazione in debug devo modificare a mano i valori di BASE_URL, SERVER_HOST e CERTIFICATE_SHA, usando i valori della configurazione di release. È normale?

Ora ho riprovato utilizzando release/1.0.2 e il problema di cui sopra è confermato, devo aggiornare gli url e lo sha.

Grazie, Alessandro

Confermo che questo problema c'è sempre stato, pertanto per testare l'implementazione in debug occorre fare tale modifica "a mano".

wolfAle commented 2 years ago

Ok, capisco. La cosa è abbastanza delicata perché noi abbiamo importato i 3 repos come submodules di git, quindi su ogni computer dove lavoriamo la modifica va rifatta a mano. E in piu' non possiamo pushare la modifica per il nostro sistema di CI (Bitrise).

Altre soluzioni non ce ne sono? Grazie, Alessandro

danyalberton commented 2 years ago

Importare i sotto moduli di GIT crea non pochi problemi (ad esempio le librerie utilizzare da questi moduli possono andare in conflitto con quelle del proprio progetto, cosa che è già capitata) e in più, per non incorrere in eventuali problemi, si è "vincolati" ad utilizzare le versioni di Kotlin, Java e Gradle con cui sono implementati i moduli, per non parlare delle versioni target e di compilazione dell'SDK Android.

Penso che tutti qui, io in primis, ci auguriamo che rilascino presto una vera libreria da importare semplicemente nei propri progetti senza dover sconvolgere il progetto.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.