Google na letošní online konferenci Cloud Next #OnAir představil v týdnu věnovanému produktivitě a spolupráci novinku Alternate Runtimes pro vývoj Google Workspace (dříve G Suite) Rozšíření (Add-ons). V AppSatori jsme dostali přístup k této novince před několika měsíci, bohužel NDA nám nedovolí sdílet další detaily, takže shrneme jen veřejné informace.
Google Workspace je etablované řešení pro komunikaci mezi týmy, pro sdílení dat a spolupráci nad obsahem. Podle posledních statistik má tato platforma 2 miliardy uživatelů a přes 6 milionů platících firem. Jako správně postavená platforma dovoluje externím vývojářům integrovat své produkty do Google služeb (např. Gmailu, Kalendáře, Tabulek) formou API (rozhraní pro programátory).
Jedním ze způsobů integrace jsou Rozšíření (Google Workspace Add-on). Ty dovolují přidat do Google aplikací např. vlastní položku v menu, uživatelské rozhraní nebo pracovat s daty uživatele. To vše pomocí technologie Google Apps Script, která je založená na JavaScriptu (nově včetně V8 runtime).
V Google Apps Scriptu programujeme většinu automatizací pro naše klienty a je to vhodný nástroj pro začátečníky. Pokud vás Apps Script zajímá, tak se přihlašte na náš workshop. Existují firmy nebo startupy, které mají svůj technologický stack ve vybrané technologii (GO, Python, node.js) a mít další technologii by mohlo být složitější na rozvoj a udržování.
Pro tyto případy představil Google tzv. Alternate Runtimes, které dovolují psát Google Workspace Add-on v libovolném server-side jazyku. Na vašem serveru vytvoříte HTTP endpoint (např. https://vase-firma.cz/gsuite/addon), který vrací uživatelské rozhraní jako JSON. Pro definici tohoto uživatelského rozhraní se používá Card-based framework (Card-based interfaces | Google Workspace Add-ons). Ten využívá připravené prvky (tlačítko, vstupní pole, atd.) a widgety pro organizaci. Stejná Card Service je použita i v Apps Script pro Gmail Add-on nebo v Google Chatu (dokumentace https://developers.google.com/hangouts/chat/reference/message-formats/cards)
I v případě použití Alternate Runtimes potřebujete i nadále Apps Script projekt, který slouží jako obálka s nastavením (definice dělá v manifest.json souboru ) a nasazením v Google Workspace.
Pro srovnání se můžete podívat na výpis kódu níže. V levé části je uživatelského rozhraní CardService v Apps Script a napravo je stejné rozhraní v node.js (JSON).
Hlavní motivací Google pro využití Card-based frameworku je bezpečnost. Připravené elementy a widgety mají pevnou strukturu a nedovolí tak podvrhnutí zákeřného kódu. Obecně na webu občas existují kreativní způsoby jak pomocí JavaScriptu, HTML či CSS dostat data bez vědomí uživatele. (např. Cross-site scripting – Wikipedie)
Dalším prvkem zabezpečení je OAuth 2.0 autorizace a autentifikace. Každý request na váš HTTP endpoint má parameter token, kterým na serveru ověříte, že jde o platného uživatele (více informací na
Alternate Runtimes je zajímavá alternativa k Apps Scriptu. Jeho pozice na poli automatizace Google Workspace však není ohrožená, protože i nadále zůstává jako volba číslo jedna pokud potřebujete mezi sebou propojit různé aplikace a data v Google. Naopak si myslím, že tímto krokem vznikne ještě více Google Workspace Add-onů, které obohatí platformu o nové možnosti.
Comments