Mergado Apps 0.3.18
Release date
27. červen 2018
Změny
-
Aplikace nyní mohou používat jiné úložiště, než je Mergado Appcloud.
- Většina dalších změn, které jsou uvedeny níže, vychází z této změny, která v některých oblastech zásadně mění paradigma, v jakém appky existují a fungují.
- U appky v Developers je nová stránka Úložiště, kterou může vývojář použít ke správě úložiště zvlášť vývojové a zvlášť produkční verze appky.
- Defaultní úložiště je vždy Appcloud. Potom lze každé verzi appky nastavovat jiné URL, které Mergado používá:
- Při odesílání hook requestů.
- Při posílání payloadů na endpointy pravidel appky.
- Pro zobrazení
IFRAME
ů (widget i plná verze) při zobrazování appky v UI.
- Pokud alespoň jedna verze appky nepoužívá Appcloud úložiště, pak při vytváření nového vydání na stránce Releases není možné spouštět tradiční release proces na Appcloudu.
- Hook URL musí začínat stejnou URL, jako je Základní URL appky.
- Lze nastavovat způsob routingu aplikace. Oproti stávajícímu pretty routingu ve stylu:
… lze nově nastavit i jednodušší routing přes GET parametry:.../eshop/1/project/2
.../?eshop=1&project=2
- Defaultní úložiště je vždy Appcloud. Potom lze každé verzi appky nastavovat jiné URL, které Mergado používá:
-
Přepracovaný a zjednodušený životní cyklus aplikace.
- Možnost “soběstačných” releasů aplikace.
- Umožňuje použití pokročilejších CI a CD nástrojů.
- Aplikace nově nepodléhá tradičnímu cyklickému
vývoj-žádost o release-potvrzení podporou-release-vývoj...
. - Nové verze si vývojář řeší a vydává sám, bez explicitního potvrzování podporou Mergada.
- Pokud vývojová i produkční verze aplikace užívá Appcloud úložiště, lze tradiční “appcloudovský” release spouštět i nadále - při vytvoření nového vydání na stránce Releases v Developers je k dispozici checkbox, který toto zajistí. (Více o této přepracované stránce níže.)
- Pokud alespoň jedna verze na Appcloudu nesídlí, celý releasovací proces si musí vývojáři řešit sami. To však zároveň vývojářům umožňuje integraci pokročilých build či CI systémů do jejich vývojové workflow. A toto vše je možné, protože…
- Nově má vývojář aplikace SSH přístup k oběma verzím appky (dříve byl přístup pouze k vývojové verzi).
- Autoři aplikace tak mají větší kontrolu nad tím, co se s aplikací děje - např. je potřeba mít přístup k logům, je potřeba urychleně vydat fix nějaké chyby, nebo si vývojáři chtějí nakonfigurovat složitější build procesy přes nějaké externí CI nástroje.
- Tradiční schvalovací proces toto zásadně brzdil či zcela znemožňoval.
- Informace v Mergado Store se nyní “přelévají” tlačítkem Aktualizovat Store, bez předchozí kontroly podpory (je však o tomto aktu notifikována).
- Poznámka: Informace se přelejí automaticky i při vytvoření nového release.
- Přes to všechno má naše podpora v případě potřeby stále možnost zasáhnout a “zlobivou” aplikaci např. skrýt z Mergado Store, či ji u některého subjektu přímo vypnout.
- Možnost “soběstačných” releasů aplikace.
-
Přepracovaná stránka Releases v Developers.
- Namísto historie stavů mezi
vývoj-žádost o release-potvrzení podporou-release-vývoj...
jsou nyní na stránce s výdánímí appky vypsané běžné záznamy s novými verzemi aplikace, které vývojář může vytvářet, editovat i mazat. - Zatím se tato historie ukazuje jen v Developers a momentálně je především pro interní účely, aby podpora Mergada měla přehled o tom, co se v aplikaci kdy a jak změnilo.
- V editoru “poznámek v vydání” lze používat Markdown.
- Namísto historie stavů mezi
-
Přepracované zabezpečení hook requestů ze strany Mergada.
- V minulosti se o autentizaci hook requestů staral samotný Appcloud. Ten - pro vývojáře zcela transparentně - kontroloval, zda požadavky z Mergada obsahují správnou hodnotu speciální HTTP hlavičky. Pokud request na URL, kde appka přijímala hooky (
.../_mergado/hook/
), neobsahoval správnou hodnotu příslušné hlavičky, požadavek server vůbec nepustil dál. Protože nově appky mohou sídlit i jinde, než na Appcloudu, tento magický mechanismus se musel přepracovat a zjednodušit. - Nově se o autentizaci hook requestů musí starat samotná appka (resp. její vývojáři).
- Jak to funguje:
- Každá stage appky má vlastní náhodně vygenerovaný a tajný klíč, tedy
Webhook Secret
. Tento klíč je k dispozici u appky v Developers. - Daný klíč zná jen Mergado a vývojáři appky.
- Mergado tento klíč posílá v HTTP hlavičce
Mergado-Apps-Webhook-Secret
u všech requestů, které na appku míří - tj. všechny požadavky na hook endpoint a na endpointy pravidel aplikace. - Aplikace by při přijímání requestů na těchto endpointech měla kontrolovat správnou hodnotu tajného klíče - a odmítnout ty požadavky, které ji neobsahují.
- Takto je zabráněno neoprávněným requestům od třetích stran.
- Každá stage appky má vlastní náhodně vygenerovaný a tajný klíč, tedy
- V minulosti se o autentizaci hook requestů staral samotný Appcloud. Ten - pro vývojáře zcela transparentně - kontroloval, zda požadavky z Mergada obsahují správnou hodnotu speciální HTTP hlavičky. Pokud request na URL, kde appka přijímala hooky (
-
Nový hook
ping
, kterým se v Developers dá jednoduše otestovat funkčnost hook endpointu aplikace.-
U appky na stránce Přehled v Developers jsou dvě nová tlačítka (pro každou stage jedno), kterým se na hook endpoint appky dá odeslat testovací hook (POST request) v tomto formátu:
{ "action": "ping" }
Pokud se na tento request vrátí odpověď ve formátu …
{ "message": "pong" }
… považuje se hook za úspěšně vyřízený. Vrátí-li se cokoliv jiného, je to považováno za neúspěch. V obou případech se tento výsledek ihned zobrazí v UI.
-
-
Na Appcloudu je implementovaná možnost spouštět pre-release skript.
- Tato možnost je k dispozici pouze v případě, že celý release appky probíhá v rámci Appcloudu. To znamená, že aby se pre-release spouštěl, musí obě stage appky musí jako úložiště používat Appcloud.
- Jak to funguje:
- Vývojová verze appky v rootu svého zdrojového kódu (např.
/srv/production/apps/app_logbook.dev/app/
) může obsahovat soubor s názvemmergado_pre_release
. - Tento soubor se před přepsáním produkční verze verzí vývojovou zkopíruje do root adresáře se zdrojovým kódu produkční verze (např.
/srv/production/apps/app_logbook/app/
). - Zde se soubor spustí, pod uživatelem produkční verze appky. Respektuje se shebang, takže tento skript může být napsaný jak v bashi, tak třeba i v PHP.
- Release pokračuje až po skončení tohoto skriptu (bez ohledu na výsledek). Pokud tento skript neskončí do jedné hodiny, ukončí se, výsledek se ignoruje a release pokračuje dál.
- Vývojová verze appky v rootu svého zdrojového kódu (např.
-
V Developers je nově k dispozici
anglická jazyková verze Mergado Store banneru.
-
Aplikace lze nově označit jako “deprecated”.
- U “deprecated” appky bude na její stránce v Mergado Store vidět hláška, že již není ve vývoji.
- Lze nastavit jinou appku, jakožto nástupce, na kterou se u dané hlášky v Mergado Store bude odkazovat.
- Je to marketing-friendly alternativa k úplnému smazání aplikace.
- Je k tomu potřeba kontaktovat podporu Mergada.