Rejestracja aplikacji w OpenPlatform
Aplikacja to rekord, który administrator tworzy na ekranie konfiguracji (/setup/, API aplikacji wtyczki setup). Rekord jest umową między OpenPlatform a Twoją aplikacją: gdzie działa, jak obie strony dowodzą, kim są, i co użytkownik może w niej robić. Schemat rekordu to @Apps w plugins/setup/schemas/apps.js.
| Pole | Wymagane | Znaczenie |
|---|---|---|
name | tak | nazwa wyświetlana w portalu |
url | tak | adres, który otwiera OpenPlatform |
reqtoken | tak | sekret, który wybierasz i który znają obie strony: podpisuje żądanie |
restoken | tak | drugi sekret, również wspólny: aplikacja używa go do podpisania odpowiedzi |
color, icon | nie | wygląd aplikacji w portalu |
meta | nie | adres (URL) zwracający metadane aplikacji: ekran konfiguracji może je pobrać (Apps/download), aby wypełnić rekord |
sortindex | nie | kolejność na liście (nowa aplikacja trafia na koniec) |
notifications | nie | czy aplikacja może wysyłać powiadomienia |
isexternal | nie | aplikacja nie jest otwierana w ramce portalu: odpowiedź dla aplikacji zawiera iframe: false |
isbookmark | nie | aplikacja jest zwykłym odnośnikiem: bez wymiany tokenów, tylko identyfikator sesji w query string |
isnewtab | nie | otwórz ją w nowej karcie przeglądarki zamiast w ramce portalu (ustawienie newtab robi to dla każdej aplikacji) |
isscrollbar | nie | ramka aplikacji w portalu zachowuje pasek przewijania (portal ustawia scrolling na yes lub no) |
isdisabled | nie | wyłącz ją dla wszystkich: użytkownik otrzymuje "App has been temporary disabled" |
permissions | nie | lista uprawnień aplikacji: każde ma id, name i value (zobacz grupy i uprawnienia) |
Tabela tbl_app ma też kolumnę allow ("zezwala tylko na określone adresy IP"): gdy zawiera adresy, aplikacja może wywoływać endpointy protokołu OpenPlatform tylko z nich. Powyższy schemat konfiguracji jej nie wymienia, więc jest to kolumna bazy danych, którą wypełniasz bezpośrednio.
Dwa tokeny
reqtoken i restoken nigdy nie są wysyłane do przeglądarki. OpenPlatform wyprowadza z nich przy każdym uruchomieniu wartości, które podróżują: token w adresie aplikacji i nagłówek odsyłany przez aplikację. Wyprowadzenie opisano w jak łączy się aplikacja. Używaj długich losowych wartości i innej pary dla każdej aplikacji.
Usuwanie i zmiana
Aplikacja nigdy nie jest usuwana z tabeli: jej usunięcie (Apps/remove) ustawia isremoved i datę usunięcia oraz czyści pamięć podręczną użytkowników, którzy ją mieli, a isdisabled wyłącza ją bez usuwania. Gdy zmienia się adres platformy (ustawienie url), OpenPlatform czyści odnośniki powiadomień każdego użytkownika i usuwa otwarte sesje aplikacji, ponieważ oba zawierają ten adres (ustawienia i baza danych).
Pamiętaj o regule z README: zarejestrowana aplikacja nie jest widoczna dla nikogo, dopóki nie zostanie do niej przypisana grupa.