-
Notifications
You must be signed in to change notification settings - Fork 0
Zadání
Současný systém konfigurace všech aplikací CIS na všech instancích na všech strojích je nevyhovující.
- část konfigurace je pro všechny instance aplikací shodná
- administrátor musí jednotlivé soubory editovat ručně a stejnou položku rozkopírovat
- je málo odolný vůči chybám (překlepům).
- v některých případech administrátor neví, který soubor je ten správný
- konfiguraci není možné spravovat "transakčně korektně"
- Konfigurace bude uložená v databázi
- Uživatel s patřičným oprávněním bude smět vypsat konfiguraci
- Uživatel s patřičným oprávněním bude smět měnit konfiguraci
- Uživatel bez oprávnění nebude ani vědět, že nějaká konfigurace existuje.
- Změna konfigurace bude transakční a bude možné si uložit neaktivní nastavení.
- Jednotlivým částem aplikací budou poskytovány jim příslušející části jako POJO.
- Intuitivní ovládání
- Jednotlivé aplikace si při spuštění budou schopny ověřit, zda mají k dispozici kompletní nastavení (logika nemusí být triviální).
- Hodnoty položek konfigurace budou v databázi šifrované (není součástí semestrální práce).
JEE 7, JPA 2.1, JSF 2.2, Maven, GIT, Eclipse, REST, jQuery. Konkrétně: Glassfish 4, EclipseLink 2.5.1.
Vznikne evolučně na základě seznámení uživatele s první funkčně kompletní verzí aplikace. (poznámka: v praxi jakékoliv zadání dopadne přesně takto).
Po vybrání kategorie se vypíší záznamy z tabulky ConfigurationItemKey s možností přidat další. Klíče uživatel měnit také může, může je i přidávat, případně i mazat, pokud nejsou použité v ConfigurationItem. Pokud jsou použité v ConfigurationProfileItem, uživatel by měl být varován a musí se smazáním (kaskádově) výslovně souhlasit.
V podstatě výpis tabulky ConfigurationItem. Uživatel s patřičným oprávněním bude smět jednotlivé položky označit ke smazání, po stisku tlačítka bude požádán o potvrzení a po něm se akce provede. Bude možná označit i odznačit všechny položky najednou.
Bude možné vypsat seznam profilů, resp. ConfigurationProfile, a ze seznamu bude možné se dostat na detail profilu, kde bude jeho stručný popis a seznam jeho položek. Obrazovka bude aktivní, čili:
- Hodnoty bude možné měnit.
- Při přidání položky se první vybere kategorie a klíč, čímž bude daný typ a validace položky.
- Při mazání položky není nutné nic kontrolovat ani uživatele žádat o potvrzení
- Profil odsud bude možné tlačítkem smazat nebo aplikovat, obojí po potvrzení.
- Aplikace bude poskytovat přístup ke konfiguraci po kategoriích přes REST službu, zabezpečenou HTTPS, loginem a heslem. (ověření triviálně z browseru).
- Některé aplikace budou načítat konfiguraci přímo z databáze, což už tuto aplikaci zajímat nebude.
Kategorie konfigurační položky. Množina klíčů nějakého zaměření, např. "Nastavení připojení k Základním registrům" Kategorie uživatel měnit nemůže, ty si spravuje aplikace sama, automaticky.
- id; generovaný číselný primární klíč
- name; český název kategorie (varchar)
Identifikátor konfigurační položky.
- id; generovaný číselný primární klíč
- idCategory; cizí klíč, kategorie, do které položka spadá
- itemType; typ hodnoty (varchar, enum)
- key; unikátní klíč (varchar)
- description; lidsky srozumitelný popis položky (varchar)
Aktivní konfigurační položka. Aplikace požadující konfiguraci budou používat jen tuto tabulku, kde najdou, co potřebují.
- id; generovaný číselný primární klíč
- idKey; unikátní cizí klíč
- itemValue; hodnota (varchar)
- udate; čas poslední změny (timestamp)
- uuser; id uživatele, který položku naposledy změnil
Konfigurační profil. Uživatel může aplikovat profil, čímž dojde k zapsání (a příp. přepsání existujících) položek v ConfigurationItem. Uživatel může kdykoliv profil uložit, aniž by přepsal aktivní konfiguraci. Uživatel může kdykoliv profil smazat, aniž by to mělo vliv na aktivní konfiguraci. Profily se mohou vzájemně překrývat.
- id; generovaný číselný primární klíč
- name; název profilu (varchar)
- description; lidsky srozumitelný popis profilu (varchar)
- udate; čas poslední změny (timestamp)
- uuser; id uživatele, který profil naposledy změnil
Konfigurační položka profilu. Uživatel přidává, mění a maže položky profilu.
- id; generovaný číselný primární klíč
- idProfile; cizí klíč, profil
- idKey; cizí klíč, kombinace idKey a idProfile je unikátní (int)
- itemValue; hodnota (varchar)
- id; generovaný číselný primární klíč
- login; uživatelské jméno (varchar)
- birthDate; datum narození (date)
- firstName; jméno (varchar)
- lastName; příjmení (varchar)