PDA

View Full Version : Sincronizzazione e Webhooks clouds


franksisca
24-08-2017, 12:26
Ciao a tutti.
Allora mi serve un aiuto a livello "ragionamento", diciamo che 4 menti sono meglio di 1!!!

Sto realizzando un aggregatore di cloud. Tralasciando i dettagli e lo sviluppo, vi pongo direttamente il mio dilemma.

Ho realizzato un servizio che mi "sincronizza" i vari cloud su una mia FAT interna. In questo modo, l'applicazione non deve andare ogni volta a verificare l'alberatura dei vari cloud ma deve semplicemente interrogare la mia FAT.

Fino a qui tutto ok, il problema (dubbio) sorge nel momento di "mantenere aggiornata la FAT"!

I cloud che ho scelto offrono tutti il meccanismo dei webhooks, in pratica io inserisco una chiamata all'interno dell'applicazione, e automaticamente quando viene cambiato un file, l'applicazione sul cloud in automatico chiama questo servizio messo a disposizione dalla mia applicazione, che fa partire i meccanismi di generazione della FAT.

La prima domanda è: vi sembra corretto come funzionamento?

Passiamo alla seconda parte della "questione".

Ovviamente ci sono dei meccanismi di messa in sicurezza dei dati, e ovviamente i metodi messi a disposizione dei webhooks (chiamiamole callback?) non possono essere sotto "security", altrimenti non sarebbero accessibili. Il problema è: se non sono sotto security, come faccio a dire alla mia applicazione, di quale utente aggiornare la FAT? Devo portarmi un token identificativo dell'utente nelle richieste?

tomminno
25-08-2017, 15:18
Per quanto riguarda la prima parte così ad occhio mi pare corretto.

Invece nella seconda parte aggiungi un'informazione non data precedentemente, ovvero che questi dati contenuti nella FAT sono catalogati per utente, è chiaro quindi che le callback dovranno riportare non solo il file modificato ma anche l'informazione dell'utente, poi questa informazione potrebbe anche essere già inclusa nel path del file modificato (es se il nome utente fa parte dell'alberatura delle cartelle) o necessitare di altri campi informativi.

In ogni caso avere una callback pubblica non autenticata non è una buona cosa :banned:
Chiunque potrebbe chiamare la tua callback e corromperti il contenuto della FAT

franksisca
26-08-2017, 01:36
Per quanto riguarda la prima parte così ad occhio mi pare corretto.

Invece nella seconda parte aggiungi un'informazione non data precedentemente, ovvero che questi dati contenuti nella FAT sono catalogati per utente, è chiaro quindi che le callback dovranno riportare non solo il file modificato ma anche l'informazione dell'utente, poi questa informazione potrebbe anche essere già inclusa nel path del file modificato (es se il nome utente fa parte dell'alberatura delle cartelle) o necessitare di altri campi informativi.

In ogni caso avere una callback pubblica non autenticata non è una buona cosa :banned:
Chiunque potrebbe chiamare la tua callback e corromperti il contenuto della FAT
Eh lo so, ma mi domandavo, a questo punto, come funzionano "realmente" queste cose. Oauth? e come gli passo i token di autenticazione? nell'header normalmente? Inoltre non rischio un "sovraccarico" di chiamate, per ogni modifica al drive?

tomminno
28-08-2017, 09:29
Eh lo so, ma mi domandavo, a questo punto, come funzionano "realmente" queste cose. Oauth? e come gli passo i token di autenticazione? nell'header normalmente? Inoltre non rischio un "sovraccarico" di chiamate, per ogni modifica al drive?

Sul come funzionano realmente dovresti leggere la documentazione del servizio che ti espone le callback :D
Devi vedere se puoi passare dei parametri personalizzabili, se possono essere diversi per ogni chiamata, oppure se devono essere statici (nel qual caso devi specificare un API Key nell'url configurato nelle varie callback), difficile che sia possibile specificare un header http custom, ma tutto può essere.
Un conto è se progetti tutto da te, un altro è se ti devi integrare con prodotti di terze parti (come mi pare sia il tuo caso), in questi casi l'unica è adattarsi.

Per il sovraccarico, devi stimare quante possono essere le modifiche apportate e quindi il numero di chiamate alle callback e dimensionare tutto di conseguenza, anche gestire a modo la tua FAT (es. come gestisci la concorrenza?)

franksisca
28-08-2017, 10:16
Sul come funzionano realmente dovresti leggere la documentazione del servizio che ti espone le callback :D
Devi vedere se puoi passare dei parametri personalizzabili, se possono essere diversi per ogni chiamata, oppure se devono essere statici (nel qual caso devi specificare un API Key nell'url configurato nelle varie callback), difficile che sia possibile specificare un header http custom, ma tutto può essere.
Un conto è se progetti tutto da te, un altro è se ti devi integrare con prodotti di terze parti (come mi pare sia il tuo caso), in questi casi l'unica è adattarsi.

Per il sovraccarico, devi stimare quante possono essere le modifiche apportate e quindi il numero di chiamate alle callback e dimensionare tutto di conseguenza, anche gestire a modo la tua FAT (es. come gestisci la concorrenza?)

Si sono tutte cose che sto valutando... per questo mi serve un "confronto"