Registrované požadavky

Umožňují zaregistrovat XML požadavek a ten pak spustit prostřednictvím běžného HTTP GET požadavku. Tento HTTP GET požadavek nevyžaduje žádné ověření a je proveden v kontextu uživatele, který požadavek registroval (admin může registrovat požadavky i na jiné uživatele). Výsledné URL může být odesláno uživateli, který jej má zavolat například emailem, uživatel jej může následně vyvolat a provést tak nějakou operaci (uložit dokument, změnit heslo, ...).


Parametrizace požadavků

Registrované požadavky mohou využívat parametry. Při volání požadavku register (vytváření registrace) jsou v registrovaném požadavku uvedeny názvy parametru v hranatých závorkách. Při následném voláni registrace prostřednicvím HTTP GET requesty jsou parametry nahrazeny hodnotami předanými v HTTP GET requestu.

Pokud je v registrovaném požadavku uveden parametr, ale v HTTP GET requestu není uveden, pak je v následném volání nahrazen prázdným řetězcem.

Názvy parametrů musí splňovat následující pravidla:

Maximální délka 8 znaků

Přípustné jsou alfanumerické znaky, dále pak znaky ".-_#"

Názvy parametrů jsou case sensitive

Hodnota předávaná parametrem je vkládána do XML nezměněná, t.j. případné použití escape sekvencí je plně v režiji tvúrce HTTP GET requestu. Důvodem je, aby mohlo být vkládáno jak do hodnot, tak také celé atributy, či uzly.


Formát HTTP GET requestu

HTTP GET requesty mají jednoduchý formát, sestávající z klíčového slova request a parametru RID, který nabývá hodnoty regID (viz níže).

Základní formát HTTP GET requestu je následující:

http://hostname/request?RID=regID

Kde regID je alfanumerický (ve skutečnosti hexadecimální řetězec) o délce 32 znaků (16 bajtů). Tento řetězec je vracen některými požadavky, především požadavkem register. Viz níže v požadavcích souvisejících s registrací.

Parametrizovaný HTTP GET request:

http://hostname/request?RID=regID&PARNAME1=Parametr+value1&PARNAME2=Parametr+value2

V tomto požadavku jsou navíc oproti předchozímu použity parametry z předchozí kapitoly. Každý parametr má strukturu klíče a hodnoty, kde klíč je jméno parametru uvedené při registraci a hodnota je to, čím bude v prováděném požadavku nahrazen.


Průběh provádění požadavku

Při zpracovávání HTTP GET requestu bylo třeba počítat, že tento request může přijít, jak od autentifikovaného uživatele, tak od uživatele neautentifikovaného. K prvnímu případu dojde v okamžiku, kdy má uživatel flexideo zapnuté a vyvolá registrovaný požadavek (třepa po té, co mu přišel emailem), k druhé situaci dojde pokud je požadavek vyvolán uživatelem, který flexideo právě nepoužívá. Tyto dvě situace je třeba brát v úvahu při čtení postupu provádění HTTP GET požadavku.

Nahrazení parametrů

V registrovaném požadavku jsou nahrazeny parametry dle klíčů a hodnot uvedených v HTTP GET requestu. Neuvedené parametry jsou nahrazeny prázdným řetězcem.

Provedení registrovaného požadavku

Je vytvořeno dočasné přihlášení uživatele, pod nímž má být požadavek proveden. Následně je proveden poždavek.

Příprava odpovědi

Je zjištěno, zda má registrace nastavenu vlastní odpovědní stránku (viz požadavek register). Pokud ano, pak je zvolena tato. Pokud ne, pak je zjištěno, zda je nastavena výchozí odpovědní stránka. Pokud ano, pak je zvolena tato. Není-li zvolena žádná stránka, zpracovávání odpovědi končí a je vrácena HTTP odpověď 200 OK.

Jelikož i ve zvolené odpovědi mohou být uvedeny další parametry (za otazníkem - viz požadavek register), jsou parametry z požadavku a zvolené odpovědní stránky sloučeny. Dále jsou připraveny proměnné pro použitelné případnou *.fsp stránkou. Jedná se o následující proměnné v kolekci inter (viz FSP):

$inter{'result'} - obsahuje bool hodnotu, zda byl požadavek proveden správně - ukazuje, jestli během provádění něco selhalo, nikoli jestli se udělalo, co mělo (stejně jako při provádění akcí)

$inter{'xml'} - obsahuje celé xml odpovědi na provedený požadavek

Zpracování odpovědi

Odpověď je zpracovávána stejně, jako běžná statická stránka. V případě, že je odpovědí *.fsp stránka, jsou jí předány veškeré parametry uvedené HTTP GET i v parametrech odpovědní stránky. Zde je potřeba upozornit, že do stránky jako takové se parametry uvedené u odpovědní stránky nedostanou, proto je není možné zpracovat ze stránky například JavaScriptem. Původní HTTP GET request samozřejmě prostřednictvím JavaScriptu na stránce zpracovat lze.

V případě zpracování odpovědi prostřednicvím *.fsp stránky, je této stránce předána kromě výše zmiňované kolekce inter, také běžná sada informací "jako vždycky" (viz FSP).

Odpověď jezaslána i v případě, kdy registrovaný požadavek selže (o čemž se statická stránka nijak nedozví, ale *.fsp stránka to zjistí z kolekce inter, viz výše).

Chybové odpovědi

V případě selhání jsou vždy vraceny HTTP chyby. Vráceny mohou být následující chyby:

400 Bad Request - tato chyba je vracena za následujících okolností:

nebylo zadáno regID příslušná registrace nebyla nalezena nebo je neplatná (vypršela, nebo byla smazána) použitý parametr docílil neplatnosti XML (rozboural ho)

403 Forbidden - uživatel, který měl požadavek provést byl smazán

404 Not Found - vybraná odpovědní stránka neexistuje

500 Internal Server Error - selhání spojení s databází


Správa registrovaných požadavků a úklid

Registrované požadavky jsou spravovány jednak automatizovaně systémem a dále mohou být spravovány prostřednictvím níže uvedených požadavků - zejména register-del. Automatizovaná správa je prováděna periodicky, dle níže uvedených pravidel.

Požadavky, které pozbyly platnost (vypršela doba dle atributu till nebo atributu count viz níže požadavek register) jsou automaticky vymazány. Výmaz probíhá pouze logicky, fyzicky v databázi zůstávají - jsou tedy za smazané pouze označeny. Takto logicky smazané požadavky zajišťují, že jejich regID nemůže být znovu použito a nemůže dojít záměně požadavku na základě shodného regID v dřívější a stávající registraci. Z důvodu rozšíření bezpečnosti je možné, na základě volby konfigurace nastavit, aby u smazaných požadavků byl vynulován vlastní požadavek. Tím, lze zajistit, aby nebylo možné dohledat, co registrace dříve dělala.

K fyzickému mazání registrací může, je-li tato volba v konfiguraci povolena (viz níže), docházet také. Registrace jsou pak automaticky mazány po uplynutí určené doby od jejich logického výmazu.

Pomocí požadavku register-del dojde k okamžitému logickému výmazu registrace.


Vazby registrovaných požadavků na konfigurační soubor

Registrované požadavky umožňují nastavit své chování prostřednictvím několika voleb v konfiguračním souboru.

Konfigurační volba REGISTERPREFIX

Umožňuje nahradit defaultní klíčové slovo request v HTTP GET requestu jiným.

Možné hodnoty: řetězec Vychozí hodnota: neuvedeno - request

Konfigurační volba REGISTER_DISPOSE_REQUEST

Určuje, zda je po logickém výmazu fyzicky zničena "požadavková část", tedy vlastní registrovaný požadavek. Tato volba byla přidána v souvislosti s GDPR a slouží jako rozšířené zabezpečení proti úniku informací.

Možné hodnoty: TRUE | FALSE

Výchozí hodnota: FALSE

Konfigurační volba REGISTER_DEL_PERIOD

Určuje, jak často v sekundách je prováděn logický výmaz požadavků, které již pozbyly platnost. Je-li parametr nastaven na hodnotu 0, pak dochází k výmazu pouze po startu aplikace.

Možné hodnoty: kladné číslo

Výchozí hodnota je každých 24 hodin.

Konfigurační volba REGISTER_DEL_TIME

Určuje od jakého času v seknudách se má začít počítat perioda z konfigurační volby REGISTER_DEL_PERIOD. Čas je určován, jako počet sekund od půlnoci. Jejím nastavením na více než 24 hodin, oddálíte okamžik prvního spuštění.

Možné hodnoty: kladné číslo

Výchozí hodnota je půlnoc (0).

Konfigurační volba REGISTER_REALDEL

Určuje po jaké době v sekundách od logického výmazu má proběhnout fyzický výmaz registrace. Hodnota 0 znamená, že k výmazu dojde bezprostředně (v nejkratší možné době) po logickém výmazu. Záporná hodnotta znamená, že k výmazu nedojde nikdy.

Možné hodnoty: číslo

Výchozí hodnota je nikdy (-1)

Konfigurační volba REGISTER_DEFAULT_RESPONSE

Určuje stránku, která se vrátí jako odpověď na registrovaný požadavek, pokud při jeho registraci nebyla uvedena jiná. Stejně jako v atributu response požadavku register se jedná se o absolutní cestu, kde na začátku není uvedeno lomítko. Při jejím zpracování se berou v úvahu virtuální adresáře i nice URL.

Možné hodnoty: řetězec

Výchozí hodnota: nic


Požadavky související s registrací

Požadavek register

Požadavek register-list

Požadavek register-del


Architektura flexideo serveruKomunikaceObecná syntaxe požadavkůPřihlášení a odhlášení uživateleZápis více požadavků v jedné obálceNastavení plánovače úloh (validity, repeat aj.)Registrované požadavkyStatistikyVerze pro oblasti (hodnoty) intranet a comexNapojení vlastních aplikacíChybová hlášení v odpovědích