# Registrera en applikation i OpenPlatform

> Fälten i en applikationspost i OpenPlatform: adress, de två delade tokens, flaggorna som avgör hur den öppnas, dess behörigheter och vem som kan nå den.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: sv
Content-SHA256: 17602d136f7bb32981e7339a44162810b74882cfdd4d4aed73f48c721996ffd2
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

En applikation är en post som administratören skapar på **setup**-skärmen (`/setup/`, app-API:et i pluginet `setup`). Posten är kontraktet mellan OpenPlatform och din applikation: var den bor, hur de två bevisar vilka de är och vad användaren får göra i den. Postens schema är `@Apps` i `plugins/setup/schemas/apps.js`.

| Fält | Obligatoriskt | Betydelse |
|---|---|---|
| `name` | ja | namnet som visas i portalen |
| `url` | ja | adressen som OpenPlatform öppnar |
| `reqtoken` | ja | en hemlighet som du väljer och som **båda sidor känner till**: den signerar begäran |
| `restoken` | ja | en andra hemlighet, också delad: applikationen använder den för att signera sitt svar |
| `color`, `icon` | nej | hur applikationen ser ut i portalen |
| `meta` | nej | en adress (URL) som returnerar applikationens metadata: setup-skärmen kan ladda ner den (`Apps/download`) för att fylla i posten |
| `sortindex` | nej | ordningen i listan (en ny applikation hamnar sist) |
| `notifications` | nej | om applikationen får skicka notiser |
| `isexternal` | nej | applikationen öppnas **inte** i portalens ram: svaret till applikationen säger `iframe: false` |
| `isbookmark` | nej | applikationen är en vanlig länk: ingen tokenhandskakning, bara en sessionsidentifierare i query-strängen |
| `isnewtab` | nej | öppna den i en ny webbläsarflik i stället för i portalens ram (inställningen `newtab` gör det för varje applikation) |
| `isscrollbar` | nej | applikationens ram i portalen behåller sin rullningslist (portalen sätter `scrolling` till `yes` eller `no`) |
| `isdisabled` | nej | stäng av den för alla: användaren får "App has been temporary disabled" |
| `permissions` | nej | listan över applikationens behörigheter: var och en har ett `id`, ett `name` och ett `value` (se [grupper och behörigheter](/en/openplatform/groups-and-permissions/)) |

Tabellen `tbl_app` har också en kolumn `allow` ("tillåter bara specifika IP-adresser"): när den innehåller adresser kan applikationen bara anropa OpenPlatforms protokollslutpunkter från dem. Setup-schemat ovan listar den inte, så det är en databaskolumn som du fyller i direkt.

## De två tokens

`reqtoken` och `restoken` skickas aldrig till webbläsaren. OpenPlatform härleder från dem, för varje start, de värden som färdas: token i applikationens adress och headern som applikationen skickar tillbaka. Härledningen finns i [hur en app ansluter](/en/openplatform/how-an-app-connects/). Använd långa slumpmässiga värden och ett olika par för varje applikation.

## Ta bort och ändra

En applikation raderas aldrig ur tabellen: att ta bort den (`Apps/remove`) sätter `isremoved` och borttagningsdatumet och rensar cachen för de användare som hade den, och `isdisabled` stänger av den utan att ta bort den. När plattformens adress (inställningen `url`) ändras rensar OpenPlatform varje användares notislänkar och raderar de öppna applikationssessionerna, eftersom båda innehåller den adressen ([inställningar och databas](/en/openplatform/settings-and-database/)).

Kom ihåg regeln i README: en registrerad applikation är osynlig för alla tills en grupp tilldelas den.
