Ρυθμίσεις, υπηρεσίες και πίνακες βάσης δεδομένων του OpenPlatform
Οι ρυθμίσεις
Το OpenPlatform κρατά τη διαμόρφωσή του στον πίνακα cl_config και τη φορτώνει στο CONF του Total.js κατά την εκκίνηση και κάθε οκτώ ώρες (definitions/init.js). Η οθόνη ρύθμισης διαβάζει και αποθηκεύει αυτά τα κλειδιά (plugins/setup/schemas/settings.js):
| Κλειδί | Σημασία |
|---|---|
name, icon, color | το όνομα, το λογότυπο και το χρώμα της πλατφόρμας |
url | η δημόσια διεύθυνση της πλατφόρμας (χωρίς το τελικό /). Η αλλαγή της καθαρίζει τους συνδέσμους ειδοποιήσεων και τις ανοιχτές συνεδρίες εφαρμογών |
language | η προεπιλεγμένη γλώσσα |
mail_smtp, mail_smtp_options, mail_from | ο διακομιστής SMTP, οι επιλογές του (JSON) και ο αποστολέας· η οθόνη ρύθμισης μπορεί να τα δοκιμάσει |
$tms, secret_tms | δημοσίευση των γεγονότων μέσω TMS και το μυστικό αυτής της σύνδεσης |
allow_token, token | ενεργοποίηση του δημόσιου API GET /users/ και του token του |
newtab | άνοιγμα κάθε εφαρμογής σε νέα καρτέλα |
sync, sync_token | αποδοχή του socket /sync/ άλλων στιγμιοτύπων, με το token του |
Η πρώτη εκκίνηση (database.sql) δημιουργεί επίσης, μέσα στο cl_config, τιμές που η οθόνη ρύθμισης δεν επεξεργάζεται: το id της εγκατάστασης, το secret ταυτοποίησης, το όνομα του cookie, το salt των κωδικών, το saltchecksum των αθροισμάτων ελέγχου και το μυστικό της σύνδεσης TMS. Δημιουργεί τα κλειδιά με αυτές τις προεπιλογές:
| Κλειδί | Προεπιλογή | Σημασία |
|---|---|---|
auth_cookie_expire | 1 month | πόσο ζει το cookie συνεδρίας |
auth_expire | 5 minutes | πόσο κρατιέται στη μνήμη ο συνδεδεμένος χρήστης πριν διαβαστεί ξανά |
auth_cookie_options | {"httponly":true,"security":"lax"} | οι επιλογές του cookie συνεδρίας |
auth_strict | false | αυστηρές συνεδρίες |
app_session_expire | 1 day | πόσο διαρκεί μια συνεδρία εφαρμογής |
cdn | https://cdn.componentator.com/ | το CDN της διεπαφής |
language | eu | η προεπιλεγμένη γλώσσα |
token, sync_token | παράγεται | το token του API χρηστών και του socket συγχρονισμού (και οι δύο λειτουργίες είναι απενεργοποιημένες από προεπιλογή) |
Το κλειδί servicetoken, με το οποίο το endpoint μεταφόρτωσης εικόνων συγκρίνει το token ερωτήματός του, δεν δημιουργείται από το σενάριο και η οθόνη ρύθμισης δεν το επεξεργάζεται: υπάρχει μόνο αν το προσθέσετε εσείς στο cl_config.
Το σενάριο δημιουργεί επίσης την ομάδα Admin και τον πρώτο χρήστη (info@totaljs.com, διαχειριστής, επιβεβαιωμένος) που ανήκει σε αυτήν· δείτε εγκατάσταση.
Οι υπηρεσίες παρασκηνίου
Το Total.js εκτελεί μια υπηρεσία κάθε λεπτό. Το OpenPlatform τη χρησιμοποιεί (definitions/init.js) για να:
- καθαρίζει την προσωρινή μνήμη των επαληθεύσεων (κάθε 2 λεπτά)·
- αποθηκεύει τα ημερήσια στατιστικά: χρήστες online, το μέγιστο και ο αριθμός ανά συσκευή (κάθε 3 λεπτά)·
- ξαναφορτώνει τη διαμόρφωση από τη βάση δεδομένων (κάθε 8 ώρες)·
- διαγράφει τις ληγμένες συνεδρίες εφαρμογών και πλατφόρμας (κάθε 12 ώρες)·
- στέλνει τις συνόψεις με email των μη αναγνωσμένων ειδοποιήσεων (κάθε 11 λεπτά, όταν η αλληλογραφία είναι διαμορφωμένη).
Η βάση δεδομένων
Όλα βρίσκονται στο σχήμα PostgreSQL op:
| Πίνακας | Τι περιέχει |
|---|---|
cl_config | η διαμόρφωση (κλειδί, τιμή, τύπος) |
tbl_user | οι χρήστες: προφίλ, hash κωδικού, σημαίες, μετρητές και τα αποθηκευμένα στην cache δικαιώματα |
tbl_group | οι ομάδες |
tbl_user_group | ποιος χρήστης ανήκει σε ποια ομάδα |
tbl_session | οι συνεδρίες των χρηστών στην πύλη (συσκευή, διεύθυνση, λήξη) |
tbl_app | οι εφαρμογές: διεύθυνση, μυστικά, σημαίες και επιτρεπόμενες διευθύνσεις |
tbl_app_permission | τα δικαιώματα που δηλώνει κάθε εφαρμογή |
tbl_group_permission | ποια δικαιώματα (ή απλώς ποιες εφαρμογές) χορηγεί κάθε ομάδα |
tbl_app_session | οι συνεδρίες εκκίνησης των εφαρμογών και τα παράγωγα tokens τους |
tbl_user_app | ανά χρήστη και εφαρμογή: οι σύνδεσμοι ειδοποιήσεων και αν δέχονται ειδοποιήσεις |
tbl_notification | οι ειδοποιήσεις |
tbl_visitor | τα ημερήσια στατιστικά επισκεπτών |
tbl_feedback | τα σχόλια που στέλνουν οι χρήστες από την πύλη |
Τα χρονολογημένα αρχεία database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql και database-2024-10-30.sql στο αποθετήριο είναι οι αλλαγές του σχήματος στον χρόνο και το database.sql είναι το πλήρες σενάριο που εκτελεί η πρώτη εκκίνηση. Κρατήστε αντίγραφα ασφαλείας αυτού του σχήματος όπως κάθε άλλη βάση PostgreSQL.