# Καταχώριση μιας εφαρμογής στο OpenPlatform

> Τα πεδία μιας εγγραφής εφαρμογής στο OpenPlatform: διεύθυνση, τα δύο κοινά tokens, οι σημαίες που αποφασίζουν πώς ανοίγει, τα δικαιώματά της και ποιος μπορεί να τη φτάσει.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: el
Content-SHA256: 842d838cca63f349341d6372bd20ca39c8cb0abac022c0edf9806b97df5aa011
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Μια εφαρμογή είναι μια εγγραφή που δημιουργεί ο διαχειριστής στην οθόνη **ρύθμισης** (`/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` (δείτε [ομάδες και δικαιώματα](/en/openplatform/groups-and-permissions/)) |

Ο πίνακας `tbl_app` έχει επίσης μια στήλη `allow` ("επιτρέπει μόνο συγκεκριμένες διευθύνσεις IP"): όταν περιέχει διευθύνσεις, η εφαρμογή μπορεί να καλεί τα endpoints του πρωτοκόλλου του OpenPlatform μόνο από αυτές. Το παραπάνω σχήμα ρύθμισης δεν την αναφέρει, άρα είναι μια στήλη της βάσης δεδομένων που συμπληρώνετε απευθείας.

## Τα δύο tokens

Τα `reqtoken` και `restoken` δεν στέλνονται ποτέ στον περιηγητή. Το OpenPlatform παράγει από αυτά, για κάθε εκκίνηση, τις τιμές που ταξιδεύουν: το token στη διεύθυνση της εφαρμογής και την κεφαλίδα που στέλνει πίσω η εφαρμογή. Η παραγωγή περιγράφεται στο [πώς συνδέεται μια εφαρμογή](/en/openplatform/how-an-app-connects/). Χρησιμοποιήστε μακριές τυχαίες τιμές και διαφορετικό ζεύγος για κάθε εφαρμογή.

## Αφαίρεση και αλλαγή

Μια εφαρμογή δεν διαγράφεται ποτέ από τον πίνακα: η αφαίρεσή της (`Apps/remove`) ορίζει το `isremoved` και την ημερομηνία αφαίρεσης και καθαρίζει την προσωρινή μνήμη των χρηστών που την είχαν, ενώ το `isdisabled` την απενεργοποιεί χωρίς να την αφαιρεί. Όταν αλλάζει η διεύθυνση της πλατφόρμας (η ρύθμιση `url`), το OpenPlatform καθαρίζει τους συνδέσμους ειδοποιήσεων κάθε χρήστη και διαγράφει τις ανοιχτές συνεδρίες εφαρμογών, επειδή και τα δύο περιέχουν αυτή τη διεύθυνση ([ρυθμίσεις και βάση δεδομένων](/en/openplatform/settings-and-database/)).

Θυμηθείτε τον κανόνα του README: μια καταχωρισμένη εφαρμογή δεν είναι ορατή σε κανέναν μέχρι να της ανατεθεί μια ομάδα.
