FrontFoo / share code

Néhány friss fejlesztésem:

?share? pass parancsot elhelyezve bárhol a HTML kódban megosztásra kerül a kód jelszavas védelemmel, melyet ?include? codeuuid pass paranccsal tudnak beilleszteni mások (itt nem elég a kód név hanem az uuid kell). Saját csoporton belüli user-hez elég az ?include? codename parancs is.

?server? paranccsal szerver oldalon fut le az adott kód kliens oldal helyett. Egyelőre meghatároztam szigorúan dedikált user-eket akik használhatják a parancsot. Viszont szükségem van más user név alól is a kód futtatására kihelyezett kliensről úgy, hogy a user ne tudja megváltoztatni a szerver oldali kódot (szép nagy tervezési hiba lenne), illetve hogy ne kelljen a saját user-em authentikációját kiadni. Auth kulcsokkal meg nem kívánok szórakozni, lévén annyi user-t és úgy hozok létre, ahogy tetszik, illetve minél alacsonyabban akarom tartani a komplexitás szintjét.

Ezért is tehát a jelszavas megosztás lehetősége. Figyelnem kellett még arra, hogy mikor sok include van, rekurzívan olvassam fel a beillesztéseket és önmagára hivatkozást ne engedjek (és többszöri beillesztését ugyanannak a kódnak se, több kód is használhatja ugyanazt a lib-et), illetve szerver oldali kódnál csak olyan include-okat engedjek, ahol minden esetben a dedikált user-eim a kód tulajdonosai (csak ők módosíthatják a kódot). És ha ez nem teljesül, akkor dobjak hibaüzit.

doksi

Ezenkívül további fejlesztésem még, hogy ha a webes felületről kérem a szerver oldali kód futását a futtatás gombbal például teszteléshez, akkor a visszadobott HTML kimenetbe visszaírom a legenerált szerver oldali kódot a hibakeresés támogatásáért (oldal forrás megtekintése). Ugye akkor generálódik kód (változik meg), ha nem JS-t írok, hanem másik támogatott fordítandó dialektusát (coffeescript, typescript, babel).

Továbbá megvalósítottam visszavonás funkciót a rest API-ban "undo" parancs hívásával. Vissza lehet vonni ezáltal adat feltöltést, módosítást, törlést, tömeges módosítást és tömeges törlést. Akár többet is egyébként, az adatkezelőmben alapból 10 műveletet tárolok alapértelmezetten. Ennyi a hívás:


request { command: "undo", table: "sales" }

Múltkorokban csináltam egy diff output lehetőséget, lásd a videót itt.

Illetve hozzáadtam a naplózáshoz az adatmódosításokon túl a kód módosításokat is (ki mikor mit) illetve most a felhasználók kezelését (hozzáadás, módosítás, törlés) és a táblák import és exportját is:

Hozzászólások