slovensko-digital / autogram

Nový, krajší a lepší nástroj na podpisovanie.
European Union Public License 1.2
109 stars 20 forks source link

Javascript SDK #357

Open MarekBodingerBA opened 10 months ago

MarekBodingerBA commented 10 months ago

Ahojte,

super práca! Sme radi, že niečo užívateľsky (a developersky) príjemnejšie vzniká.

Radi by sme okrem autogram-extension integrovali Autogram na podpisovanie aj napriamo.

Avšak, pri momentálnom riešení nemáme kapacitu Autogram integrovať. Spustenie pomocou protokolu a následné volanie pomocou HTTP requestov je fajn, ale vychádzajúc z vášho kódu na extensione (ktorý túto logiku zastrešuje):

https://github.com/slovensko-digital/autogram-extension/blob/master/src/dbridge_js/ditecx/autogram-implementation.ts https://github.com/slovensko-digital/autogram-extension/blob/master/src/autogram-api/lib/apiClient.ts

každý kto chce integrovať Autogram (aspoň v prehliadačovom svete) musí mať a udržiavať tento kód u seba. Preto by mi dávalo zmysel ak by ste zvážili vytvoriť aj Javascriptové SDK, ktoré by mohlo túto logiku riešiť. Pre integrátorov by sa API surface znížil na minimum – jediné čo prakticky potrebujeme je metóda sign. Ako bonus by bol aj spôsob pred spustením podpisovača zistiť či má užívateľ Autogram nainštalovaný (vyzerá to, že momentálne vieme iba počkať na error pri spúštaní).

Ďakujeme!

jsuchal commented 10 months ago

@MarekBodingerBA na zistenie ci bezi Autogram sa da pomocou endpointu /info https://generator3.swagger.io/index.html?url=https://raw.githubusercontent.com/slovensko-digital/autogram/main/src/main/resources/digital/slovensko/autogram/server/server.yml#/

JS libka dava zmysel avsak bola nateraz out of scope.

MarekBodingerBA commented 10 months ago

Ale keď ešte nebeží tak nevieme povedať či je nainštalovaná, nie? (Ani neviem či to je spolahlivo možné.) Vieme triggernúť spustenie a potom sa opýtať na status.

Pointa je vedieť ukázať nejaké info predtým ako užívateľ na hocičo klikne a čaká na error.

jsuchal commented 10 months ago

@MarekBodingerBA nie, ci je instalovana sa zistit neda (a napriec platformami urcite nie).

Bezny scenar je taky, ze:

  1. skusi sa pustit cez custom url schemu
  2. pocuva sa na info endpointe - ak neodpoveda, tak sa povie, ze "nemas autogram alebo nebezi".
  3. ak odpovie, ide sa dalej.

Tu by som vyvolal @pomali, mozno nieco vyhackuje.

pomali commented 10 months ago

Áno, tak ako hovorí Jano, vieme spustiť otvorenie a pýtať sa na stav, podobne to robí aj dsigner.

Tldr: iný lepší spôsob nepoznám

Viem predstaviť riešenie cez localStorage kde pri prvom načítaní by bol banner s upozornením/test buttonom ktorým vieš zistiť či máš funkčný autogram, a nabudúce to už vieme.

Alebo cez filesystem api, pozrieť default install location, ale to je riadna 🐷.

A ešte som mal taký pokus v redirect.html/.ts s presmerovaním - nehandlovaná uri schéma nefunguje, takže zbehne timeout, čo rieši iba potrebu dopytovania, ale neviem na koľko je to spoľahlivé a aj tak to vyvolá otvorenie.

A posledná možnosť je zisťovať či je extension nainštalovaný, čo sa dá a vtedy pravdepodobne má aj autogram.

pomali commented 10 months ago

a ku JS SDK, extension ma autogram-api https://github.com/slovensko-digital/autogram-extension/blob/master/src/autogram-api co je trochu customizovany https://github.com/octosign/white-label-client s automatizovanym generovanim typov z OpenAPI spec Autogramu. Mozeme to releasnut do npm, len treba vyriesit strukturu npm packageov/workspaces alebo to vytiahnut do samostatneho repa.

MarekBodingerBA commented 10 months ago

Mozeme to releasnut do npm, len treba vyriesit strukturu npm packageov/workspaces alebo to vytiahnut do samostatneho repa.

@pomali To by bolo skvelé!

MarekBodingerBA commented 10 months ago

https://github.com/octosign/white-label-client

Toto nie je public.