Καταχώριση μιας εφαρμογής στο OpenPlatform
Μια εφαρμογή είναι μια εγγραφή που δημιουργεί ο διαχειριστής στην οθόνη ρύθμισης (/setup/, το API εφαρμογών του πρόσθετου setup). Η εγγραφή είναι το συμβόλαιο ανάμεσα στο OpenPlatform και την εφαρμογή σας: πού ζει, πώς αποδεικνύουν οι δύο ποιοι είναι και τι μπορεί να κάνει ο χρήστης σε αυτήν. Το σχήμα της εγγραφής είναι το @Apps στο plugins/setup/schemas/apps.js.
| Πεδίο | Υποχρεωτικό | Σημασία |
|---|---|---|
name | ναι | το όνομα που εμφανίζεται στην πύλη |
url | ναι | η διεύθυνση που ανοίγει το OpenPlatform |
reqtoken | ναι | ένα μυστικό που επιλέγετε εσείς και που γνωρίζουν και οι δύο πλευρές: υπογράφει το αίτημα |
restoken | ναι | ένα δεύτερο μυστικό, επίσης κοινό: η εφαρμογή το χρησιμοποιεί για να υπογράψει την απάντησή της |
color, icon | όχι | πώς φαίνεται η εφαρμογή στην πύλη |
meta | όχι | μια διεύθυνση (URL) που επιστρέφει τα μεταδεδομένα της εφαρμογής: η οθόνη ρύθμισης μπορεί να τα κατεβάσει (Apps/download) για να συμπληρώσει την εγγραφή |
sortindex | όχι | η σειρά στη λίστα (μια νέα εφαρμογή πάει στο τέλος) |
notifications | όχι | αν η εφαρμογή μπορεί να στέλνει ειδοποιήσεις |
isexternal | όχι | η εφαρμογή δεν ανοίγει μέσα στο πλαίσιο της πύλης: η απάντηση προς την εφαρμογή λέει iframe: false |
isbookmark | όχι | η εφαρμογή είναι ένας απλός σύνδεσμος: χωρίς ανταλλαγή tokens, μόνο ένα αναγνωριστικό συνεδρίας στο query string |
isnewtab | όχι | ανοίγει σε νέα καρτέλα του περιηγητή αντί για το πλαίσιο της πύλης (η ρύθμιση newtab το κάνει για κάθε εφαρμογή) |
isscrollbar | όχι | το πλαίσιο της εφαρμογής στην πύλη κρατά τη γραμμή κύλισής του (η πύλη ορίζει το scrolling σε yes ή no) |
isdisabled | όχι | απενεργοποιείται για όλους: ο χρήστης λαμβάνει "App has been temporary disabled" |
permissions | όχι | η λίστα δικαιωμάτων της εφαρμογής: το καθένα έχει id, name και value (δείτε ομάδες και δικαιώματα) |
Ο πίνακας tbl_app έχει επίσης μια στήλη allow ("επιτρέπει μόνο συγκεκριμένες διευθύνσεις IP"): όταν περιέχει διευθύνσεις, η εφαρμογή μπορεί να καλεί τα endpoints του πρωτοκόλλου του OpenPlatform μόνο από αυτές. Το παραπάνω σχήμα ρύθμισης δεν την αναφέρει, άρα είναι μια στήλη της βάσης δεδομένων που συμπληρώνετε απευθείας.
Τα δύο tokens
Τα reqtoken και restoken δεν στέλνονται ποτέ στον περιηγητή. Το OpenPlatform παράγει από αυτά, για κάθε εκκίνηση, τις τιμές που ταξιδεύουν: το token στη διεύθυνση της εφαρμογής και την κεφαλίδα που στέλνει πίσω η εφαρμογή. Η παραγωγή περιγράφεται στο πώς συνδέεται μια εφαρμογή. Χρησιμοποιήστε μακριές τυχαίες τιμές και διαφορετικό ζεύγος για κάθε εφαρμογή.
Αφαίρεση και αλλαγή
Μια εφαρμογή δεν διαγράφεται ποτέ από τον πίνακα: η αφαίρεσή της (Apps/remove) ορίζει το isremoved και την ημερομηνία αφαίρεσης και καθαρίζει την προσωρινή μνήμη των χρηστών που την είχαν, ενώ το isdisabled την απενεργοποιεί χωρίς να την αφαιρεί. Όταν αλλάζει η διεύθυνση της πλατφόρμας (η ρύθμιση url), το OpenPlatform καθαρίζει τους συνδέσμους ειδοποιήσεων κάθε χρήστη και διαγράφει τις ανοιχτές συνεδρίες εφαρμογών, επειδή και τα δύο περιέχουν αυτή τη διεύθυνση (ρυθμίσεις και βάση δεδομένων).
Θυμηθείτε τον κανόνα του README: μια καταχωρισμένη εφαρμογή δεν είναι ορατή σε κανέναν μέχρι να της ανατεθεί μια ομάδα.