-
Mark Ohlau authoredMark Ohlau authored
To find the state of this project's repository at the time of any of these versions, check out the tags.
changelog.html 72.94 KiB
<!DOCTYPE html>
<html lang="et">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mittefunktsionaalsed nõuded arendustele</title>
</head>
<body>
<h1 class="header">Mittefunktsionaalsed nõuded arendustele<br>Versioon 1.4</h1>
<h2>Changelog</h2>
<table class="intro" style="text-align:left" aria-label="table-view">
<thead>
<!-- Version nr of MFN -->
<th id="version">Versioon: 1.4</th>
</thead>
<tbody>
<tr><td>
<h2> - 4 points added in MFN</h2>
<h2> - 8 points modified in MFN</h2>
<h2> - 4 points removed MFN</h2>
</td></tr>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Uus</h1>
<tr class="new">
<td>Lähtekood</td>
<td></td>
<td>Rakenduse koodikontrolli teostab tellija arenduspartner, kus arenduspartner vaatab üle tehtud koodi ja kinnitab enda poolt enne kui kood tarnitakse. </td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Arhitektuur</td>
<td></td>
<td>Uue rakenduse loomisel peavad komponendid olema modulaarselt arendatud.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Paigaldus</td>
<td></td>
<td>Kubernetesel orkestreeritavate lahenduste paigalduste jaoks tuleb luua Helm chart</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Lähtekood</td>
<td></td>
<td>Lähtekoodi kommentaarid peavad kõigis lahenduse kihtides (rakenduse enda kood, andmebaas jne) olema kirjutatud inglise keeles.
</td>
<td>NB! Nõuet ei arvestata arendustarkvara poolt automaatselt genereeritavate koodilõikude puhul – neid ei ole vaja tõlkida. Samuti ei rakendata nõuet kolmandate osapoolte poolt toodetud lähtekoodile – nt igasugu erinevad lahtise koodiga koodilõigud jms. Kui tegu on olemasoleva süsteemi edasiarendusega,siis peaks kommentaarides kasutama eelnevalt kasutatud keelt.
</td>
<td>kohustus</td>
</tr>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Muudetud</h1>
<tr>
<td>Turvalisus (olemasolev)</td>
<td>3.4</td>
<td>Kui andmebaasis olevate andmete ISKE tervikluse klass on 2 (E-ITS rakendamisel IS) või kõrgem, siis tuleb kõik klass 2 infot sisaldavad andmebaasi kirjed versioneerida.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td>3.4</td>
<td>Kui andmebaasis olevate andmete E-ITS tervikluse (I ehk integrity) turvaosaklass on S või VS, siis tuleb kõik andmebaasi kirjed/tabelid versioneerida.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Üldine (Olemasolev)</td>
<td>1.3</td>
<td>Rakendus peab olema kirjutatud arvestades selle rakenduse poolt töödeldavatele andmetele määratud hetkel kehtivaid ISKE turvaklassi nõudeid </td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.3 </td>
<td>Rakendus peab olema kirjutatud arvestades selle rakenduse poolt töödeldavatele andmetele määratud hetkel kehtivaid E-ITS ja ISKE turvaklassi nõudeid </td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Üldine (olemasolev)</td>
<td>1.4</td>
<td>Veebirakenduse kasutajaliides peab vastama vähemalt WCAG 2.1 tasemele AA.</td>
<td>http://www.w3.org/TR/WCAG20/</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.4</td>
<td>Veebirakenduse kasutajaliides peab vastama vähemalt WCAG 2.2 tasemele AA.</td>
<td>https://www.w3.org/TR/WCAG22/</td>
<td>kohustus</td>
</tr>
<tr>
<td>Arhitektuur (olemasolev)</td>
<td>2.1</td>
<td>Rakenduse, andmebaasi ja kolmanda osapoole komponendid peavad olema sellised, mille eluea lõpp (EOL) pole teadaolevalt vähem kui 5 aasta pärast.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.1</td>
<td>Rakenduse, andmebaasi ja kolmanda osapoole komponendid peavad olema sellised, mille eluea lõpp (EOL) pole teadaolevalt vähem kui 3 aasta pärast.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Üldine (olemasolev)</td>
<td>1.13</td>
<td>Avalike e-teenuste koomisel peab arvestama HTM stiiliraamatu nõuetega</td>
<td></td>
<td>ootus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.13</td>
<td>Avalike e-teenuste loomisel peab arvestama Veera disainisüsteemiga.</td>
<td>https://veera.eesti.ee/ https://e-gov.github.io/cvi/</td>
<td>ootus</td>
</tr>
<tr>
<td>Üldine (olemasolev)</td>
<td>1.11</td>
<td>Avalike e-teenuste loomisel peab arvestama riigis olemasolevate disainisüsteemidega</td>
<td>https://riigikantselei.ee/valitsuse-too-planeerimine-ja-korraldamine/valitsuskommunikatsioon/visuaalne-identiteet</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.11</td>
<td>Avalike e-teenuste loomisel peab arvestama valitsusasutusele kehtestatud visuaalse identiteedi stiilijuhiseid.</td>
<td>https://riigikantselei.ee/valitsuslogo</td>
<td>kohustus</td>
</tr>
<tr>
<td>Logimine (olemasolv)</td>
<td>4.2</td>
<td>Rakendus peab pakkuma monitooringu lehte, kus leidub informatsioon rakenduse funktsionaalsuse toimimise kohta.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Monitooring (uus)</td>
<td>4.2</td>
<td>Rakendus peab pakkuma monitooringu lehte, kus leidub informatsioon rakenduse funktsionaalsuse toimimise kohta.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Lähtekood (olemasolv)</td>
<td>5.11</td>
<td>Koodi valideerimiseks kasutatakse minimaalselt HTM-i Sonarqube teenust.</td>
<td>https://www.sonarqube.org/</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Lähtekood (uus)</td>
<td>5.11</td>
<td>Koodi valideerimiseks kasutatakse minimaalselt HTM-i Sonarqube teenust.</td>
<td>Üleantavas koodis ei tohi olla kriitilisi ja kõrgemaid probleeme. https://www.sonarqube.org/</td>
<td>kohustus</td>
</tr>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Kustutatud</h1>
<tr>
<td>Turvalisus (eemaldamisele)</td>
<td>3.19</td>
<td>Kui rakenduse tervikluse turvaosaklass on T3, peavad tõestusväärtust omavad andmed olema kas ajatembeldatud, digiallkirjastatud või digitembeldatud.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Turvalisus (eemaldamisele)</td>
<td>3.20</td>
<td>Kui lahendus peaks kasutama ajatempli teenust, siis tuleks eelistada Guardtime lahendust.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Turvalisus (eemaldamisele)</td>
<td>3.21</td>
<td>Kui rakenduses on S3 salastuse astmega andmeid, peavad need olema nii transpordi ajal ja ka salvestatult alati krüpteeritult.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Andmekvaliteet ja standard (eemaldamisele)</td>
<td>6.4</td>
<td>Kui rakendusele on kehtestatud vastav ISKE klass ja see on vajalik, siis andmete kustutamine ei tohi kustutada tegelikke kirjeid andmebaasist, välja arvatud, kui kirjed pole mittefunktsionaalsed, ehk ei oma ärilist seost.</td>
<td>Kustutamine peaks olema kustutamise lipuga või juhul, kui andmed peavad päriselt kaduma, siis need obfuskeerida taastamatult. Unikaalne ID, mis erinevates teistes logides võib olla talletunud, peab aga jääma alles.</td>
<td>kohustus</td>
</tr>
</table>
<table class="intro" style="text-align:left" aria-label="table-view">
<thead>
<!-- Version nr of MFN -->
<th id="version">Versioon: 1.3</th>
</thead>
<tbody>
<tr><td>
<h2> - Added 5 points to MFN</h2>
<h2> - 5 points modified in MFN</h2>
</td></tr>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Uus</h1>
<tr class="new">
<td>Testimine (uus)</td>
<td></td>
<td>Rakenduse koormustestid valmistab arendaja.</td>
<td>Koormustestid peavad olema loodud nii, et nad koormavad igakülgselt süsteemi jõudlust eeldatavates koormustingimustes, keskendudes keerukamate päringutele ja integreerimistaotluste testimisele.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td></td>
<td>Koostalitusvõime rakendustel peab võimaldama integratsiooni kolmanda osapoolte süsteemidega kasutades tööstusstandardi protokolle.</td>
<td></td>
<td>ootus</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td></td>
<td>API loomisel tuleb arvestada parimatest praktikatest ja tagada turvalisust. Tuleb veenduda, et kaitse on olemas SQL Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF) vastu.</td>
<td>API turvalisuse kohta saab ka lähemalt lugeda OWASPi API Security TOP 10 kohta lähemalt (https://owasp.org/www-project-api-security/)</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td></td>
<td>API loomisel on oluline rakendada unit ja integratsiooni teste.</td>
<td>Neid teste vajatakse eriti keerukamate API-de puhul, kus võib olla näiteks mitmeid endpointe, omab keerulist äri- või andmehaldusloogikat. Automaattestides unit testid tagavad API funktsionaalsuse korrektsust ning integratsioontestid kontrollivad, kas erinevad koodikomponendid suhtlevad omavahel ja toimivad ootuspäraselt. Lihtsamate API-de puhul on testid ka kasulikud, sest need aitavad tagada toimimise soovitud viisil.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Lähtekood (uus)</td>
<td></td>
<td>Lähtekood, mida tarnitakse HTMile antakse üle HTMi koodihoidlasse (Gituja).</td>
<td>Viide: https://gituja.eenet.ee/</td>
<td>kohustus</td>
</tr>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Muudetud</h1>
<tr>
<td>Üldine (olemasolev)</td>
<td>1.2</td>
<td>Lahendus peab vastama HTM IT-profiilile</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.2</td>
<td>Lahendus peab vastama HTM IT-profiilile</td>
<td>Viide: https://gituja.eenet.ee/Nouded-arendustele/htm-it-profile</td>
<td>kohustus</td>
</tr>
<tr>
<td>Üldine (olemasolev)</td>
<td>1.7</td>
<td>Veebirakendus peab probleemiteta läbima OWASP ASVS baasil põhineva testi</td>
<td>Kui pole arenduse eraldi kokku lepitud teisiti, siis on OWASP ASVS tasemeks 2 (https://www.owasp.org/index.php/Category: OWASP_Application_Security_Verification_Standard_Project). Kinnise lähtekoodiga kommertstoote kasutamisel ei eeldata ligipääsu kinnisele lähtekoodile. HTMi poolset turvatestimist teostab kolmas sõltumatu pool.Selline esmane kolmanda poole turvatestimine tellitakse HTMi finantseeringul. Ilmnenud vigade korral ja peale nende parandamist peab järeltestimise rahaliselt kompenseerima arendaja, kui HTMi vastava nõudmise esitab.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.7</td>
<td>Veebirakendus peab probleemiteta läbima OWASP ASVS baasil põhineva testi</td>
<td>Kui pole arenduse eraldi kokku lepitud teisiti, siis on OWASP ASVS tasemeks 2 (https://owasp.org/www-project-application-security-verification-standard/). Kinnise lähtekoodiga kommertstoote kasutamisel ei eeldata ligipääsu kinnisele lähtekoodile. HTMi poolset turvatestimist teostab kolmas sõltumatu pool.Selline esmane kolmanda poole turvatestimine tellitakse HTMi finantseeringul. Ilmnenud vigade korral ja peale nende parandamist peab järeltestimise rahaliselt kompenseerima arendaja, kui HTMi vastava nõudmise esitab.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Üldine (olemasolev)</td>
<td>1.12 </td>
<td>Avalike e-teenuste loomisel peab arvestama valitsusasutustele iseteeninduskeskkonna raamistikuga</td>
<td>https://www.mkm.ee/sites/default/files/iseteeninduskeskkondade_raamistik_08.07.2015.pdf https://www.mkm.ee/sites/default/files/iseteeninduskeskkondade_raamistiku_kasutatavuse_nouded_dets.pdf</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.12 </td>
<td>Avalike e-teenuste loomisel peab arvestama valitsusasutustele iseteeninduskeskkonna raamistikuga</td>
<td>https://mkm.ee/digiriik-ja-uhenduvus/digiteenused/digiteenuste-arendamine</td>
<td>kohustus</td>
</tr>
<tr>
<td>Arhitektuur (olemasolev)</td>
<td>2.15</td>
<td>Sorteerimisreeglistik peab olema Eesti tähestikule vastav. Tõusutundlikkus peab olema välja lülitatud. Accent peab olema sisse lülitatud.</td>
<td>Näiteks, PostgreSQL puhul et_EE.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.15</td>
<td>Sorteerimisreeglistik peab olema Eesti tähestikule vastav. Tõusutundlikkus peab olema välja lülitatud. Kaldkiri peab olema sisse lülitatud.</td>
<td>Näiteks, PostgreSQL puhul et_EE.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Kasutajaliides (olemasolev)</td>
<td>7.4</td>
<td>Avalikuks kasutamiseks tehtav rakendus peab olema graafiliselt skaleeruv ja mugavalt kasutatav kõigi enamlevinud arvutite monitoride resolutsioonidega.</td>
<td>Toetatud peavad olema vähemalt resolutsioonid: 1920x1200, 1920x1080, 1680x1050, 1600x1200, 1440x900, 1360x768, 1280x1024, 1280x960, 1280x800, 1280x768, 1152x864, 1024x768. Ühegi nimetatud resolutsiooni korral ei tohi tekkida horisontaalset kerimisriba.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Kasutajaliides (uus)</td>
<td>7.4</td>
<td>Avalikuks kasutamiseks tehtav rakendus peab olema graafiliselt skaleeruv ja mugavalt kasutatav kõigi seadmete (arvutite monitorite, sülearvuti, tableti ja mobiili) resolutsioonidega.</td>
<td>Rakendus peab olema loodud kasutades "Responsive web design (RWD)" põhimõtet ja toetub kõikide seadmete resolutsioonidele. (Viide: <a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design">https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design)</a></td>
<td>kohustus</td>
</tr>
</table>
<table class="intro" style="text-align:left" aria-label="table-view">
<thead>
<!-- Version nr of MFN -->
<th id="version">Versioon: 1.2</th>
</thead>
<tbody>
<tr><td>
<h2> - Added 5 points to MFN</h2>
<h2> - 11 points modified in MFN</h2>
<h2> - Removed 1 point from MFN </h2>
</td></tr>
</tbody>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Uus</h1>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td></td>
<td>Rakendus peab olema loodud nii, et kasutatakse orkestreerimiseks kubernetese süsteemi.</td>
<td></td>
<td>ootus</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td></td>
<td>Kui rakenduse infoturbeklass ei ole määratud, tuleks lähtuda ISKE K2T2S2 nõuetest (E-ITS rakendamisel - samaväärsele turbetasemele) vastavate süsteemide loomisel.</td>
<td>Turvameetmetega tutvu <a href="https://iske.ria.ee/">ISKE portaalis</a>, E-ITS rakendamisel - <a href="https://eits.ria.ee/">E-ITS portaalis</a>.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td></td>
<td>Fondid, laadilehed ja Javascripti failid serveerida rakendusest endast.</td>
<td>Aitab tagada turvalisust, et kui õnnestub kaaperdada välist scripti, siis me seda ei serveeri seda lõppkasutajatele ette.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Logimine (uus)</td>
<td></td>
<td>Kui logikirje ei ole JSON formaadis, siis ühe ja sama sündmuse väljad peavad olema erinevates logikirjetes samas kohas.</td>
<td>Logikirje eelistatavalt võiks olla JSON formaadis, kui ei lepita kokku teisiti.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Paigaldus (uus)</td>
<td></td>
<td>Toodangusse evitatavas tarkvaras peavad sõltuvuste versioonid olema fikseeritud.</td>
<td>Eesmärgiks on ehitamise korratavus (repeatable build). Näiteks: Node.js platvormil toodangusse evitatavate moodulite package.json failis, jaotises dependencies ei tohi olla versioonimärkeid ^, ~, *, x.</td>
<td>kohustus</td>
</tr>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Muudetud</h1>
<tr>
<td>Üldine (olmasolev)</td>
<td>1.4</td>
<td>Veebirakenduse kasutajaliides peab vastama vähemalt WCAG 2.0 tasemele AA</td>
<td></td>
<td>ootus</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.4</td>
<td>Veebirakenduse kasutajaliides peab vastama vähemalt WCAG 2.1 tasemele AA.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<tr>
<td>Arhitektuur (olmasolev)</td>
<td>2.7</td>
<td>Kui rakendusel või mõnel selle komponendil on tihti kasutatav teenus ning sellel teenusel on aeglaselt laetav konfiguratsioon, siis tuleb: a) laadida konfiguratsioon ühekordselt ja korduvkasutada seda; b) konfiguratsiooni automaatselt ja regulaarselt värskendada; regulaarsuse tarbeks peab saama määrata intervalli, millise aja järel või täpsed kellaajad, millal konfiguratsiooni värskendatakse; c) luua võimalus värskendada konfiguratsiooni käsitsi.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.7</td>
<td>Kui rakendusel või mõnel selle komponendil on tihti kasutatav teenus ning sellel teenusel on aeglaselt laetav konfiguratsioon, siis tuleb: a) laadida konfiguratsioon ühekordselt ja korduvkasutada seda; b) luua võimalus värskendada konfiguratsiooni käsitsi.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr>
<td>Turvalisus (olmasolev)</td>
<td>3.4</td>
<td>Kui andmebaasis olevate andmete ISKE tervikluse turvaosaklass on 3 (kõrge), siis tuleb kõik andmebaasi kirjed/tabelid versioneerida.</td>
<td>St kõik andmemuudatused peavad baasis säilima. Andmete muutmisel andmeid ei kustutata, vaid tehakse uus kirje uute andmetega. Vana muudetakse kehtetuks. Iga uus kirje peab sisaldama järgmist informatsiooni: *viide kirjele, mille ta kehtetuks muutis (kui on) *kasutaja, kes kirje lõi *kirje loomise aeg *sessiooni-ID (kui on olemas). Iga kehtetuks tunnistatud kirje peab omama järgmist informatsiooni: *kasutaja, kes kirje kehtetuks tunnistas *kirje kehtetuks tunnistamise aeg.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td>3.4</td>
<td>Kui andmebaasis olevate andmete ISKE tervikluse klass on 2 (E-ITS rakendamisel IS) või kõrgem, siis tuleb kõik klass 2 infot sisaldavad andmebaasi kirjed versioneerida.</td>
<td>St kõik andmemuudatused peavad baasis säilima. Andmete muutmisel andmeid ei kustutata, vaid tehakse uus kirje uute andmetega. Vana muudetakse kehtetuks. Iga uus kirje peab sisaldama järgmist informatsiooni: *viide kirjele, mille ta kehtetuks muutis (kui on) *kasutaja, kes kirje lõi *kirje loomise aeg *sessiooni-ID (kui on olemas). Iga kehtetuks tunnistatud kirje peab omama järgmist informatsiooni: *kasutaja, kes kirje kehtetuks tunnistas *kirje kehtetuks tunnistamise aeg.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Logimine (olmasolev)</td>
<td>4.3</td>
<td>Rakenduse kõik üleantavad versioonid peavad enne HTMile üle andmist olema testitud</td>
<td>Testitulemused tuleb edastada HTMile koos rakenduse üleandmisega. Vaata lisaks nõuet 4.21 ja 4.22.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Testimine (uus)</td>
<td>4.3</td>
<td>Rakenduse kõik üleantavad versioonid peavad enne HTMile üle andmist olema testitud.</td>
<td>Testitulemused tuleb edastada HTMile koos rakenduse üleandmisega.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Logimine (olmasolev)</td>
<td>4.16</td>
<td>Lahendus peab olema minimaalselt 75% ulatuses kaetud automaatsete unit ja komponenditestidega. Vastuvõtu testimisel peab olema minimaalselt 50% ulatuses kaetud.</td>
<td>Käivitatakse tellija pideva integreerimise (CI) keskkonnas (nt Gitlab) ja kaetust raporteeritakse lähtekoodi analüsaatoris (nt SonarQube).</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Testimine (uus)</td>
<td>4.16</td>
<td>Lahendus peab olema minimaalselt 75% ulatuses kaetud automaatsete unit ja komponenditestidega. Vastuvõtu testimisel peab olema minimaalselt 50% ulatuses kaetud.</td>
<td>Käivitatakse tellija pideva integreerimise (CI) keskkonnas (nt Gitlab) ja kaetust raporteeritakse lähtekoodi analüsaatoris (nt SonarQube).</td>
<td>kohustus</td>
</tr>
<tr>
<td>Andmekvaliteet ja standard (olmasolev)</td>
<td>6.4</td>
<td>Andmete kustutamine ei tohi kustutada tegelikke kirjeid andmebaasist, välja arvatud, kui kirjed pole mittefunktsionaalsed, ehk ei oma ärilist seost.</td>
<td>Kustutamine peaks olema kustutamise lipuga või juhul, kui andmed peavad päriselt kaduma, siis need obfuskeerida taastamatult. Unikaalne ID, mis erinevates teistes logides võib olla talletunud, peab aga jääma alles.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Andmekvaliteet ja standard (uus)</td>
<td>6.4</td>
<td>Kui rakendusele on kehtestatud vastav ISKE klass ja see on vajalik, siis andmete kustutamine ei tohi kustutada tegelikke kirjeid andmebaasist, välja arvatud, kui kirjed pole mittefunktsionaalsed, ehk ei oma ärilist seost.</td>
<td>Kustutamine peaks olema kustutamise lipuga või juhul, kui andmed peavad päriselt kaduma, siis need obfuskeerida taastamatult. Unikaalne ID, mis erinevates teistes logides võib olla talletunud, peab aga jääma alles.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Andmekvaliteet ja standard (olmasolev)</td>
<td>6.5</td>
<td>Objektid identifitseerida registrikoodide abil.</td>
<td>Riiklikesse registritesse kantavad objektid (isikud, katastriüksused jne) kantakse andmebaasi nende registrikoodiga, mida täiendab riigiprefiks vastavalt ISO3166-1 Alpha 2 standardile. Näiteks isikute sidumiseks süsteemi kasutajakontoga peab kasutama isikukoodi rahvastikuregistrist. Eesti Vabariigi kodanik identifitseeritakse Eesti Vabariigi poolt väljastatud eIDga. Igasuguse muu identifitseerimisevahendi kasutamine peab olema selgelt põhjendatud. Mittekodanike isikuidentifikaator saadakse järgmisel viisil: riigikood + sookood + sünniaeg + [ dok_nr | id_riigis ], kus riigikood - kolmekohaline ISO 3166-1 Alpha-3 standardile vastav riigi kood sookood - soo identifikaator nii nagu Eesti Vabariigi isikukoodis sünniaeg - sünniaeg formaadis YYYYMMDD id_riigis - kui see on olemas, tuleb kasutada isiku koduriigi isikuidentifikaatorit. 16 kohta, 0-polsterdatud vasakult dok_nr - kui isiku koduriigis isikuidentifikaatorit ei ole, siis kasutatakse isiku dokumendi numbrit. Dokumendi number, 16 kohta, 0-polsterdatud vasakult.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Andmekvaliteet ja standard (uus)</td>
<td>6.5</td>
<td>Objektid identifitseerida registrikoodide abil.</td>
<td>Riiklikesse registritesse kantavad objektid (isikud, katastriüksused jne) kantakse andmebaasi nende registrikoodiga, mida täiendab riigiprefiks vastavalt ISO3166-1 Alpha 2 standardile. Näiteks isikute sidumiseks süsteemi kasutajakontoga peab kasutama isikukoodi rahvastikuregistrist. Eesti Vabariigi kodanik identifitseeritakse Eesti Vabariigi poolt väljastatud eIDga. Igasuguse muu identifitseerimisevahendi kasutamine peab olema selgelt põhjendatud. Mittekodanike isikuidentifikaator saadakse järgmisel viisil: riigikood + sookood + sünniaeg + [ dok_nr | id_riigis ], kus riigikood - kolmekohaline ISO 3166-1 Alpha-3 standardile vastav riigi kood sookood - soo identifikaator nii nagu Eesti Vabariigi isikukoodis sünniaeg - sünniaeg formaadis YYYYMMDD id_riigis - kui see on olemas, tuleb kasutada isiku koduriigi isikuidentifikaatorit. 16 kohta, 0-polsterdatud vasakult dok_nr - kui isiku koduriigis isikuidentifikaatorit ei ole, siis kasutatakse isiku dokumendi numbrit. Dokumendi number, 16 kohta, 0-polsterdatud vasakult.</td>
<td>ootus</td>
</tr>
<tr>
<td>Kasutajaliides (olmasolev)</td>
<td>7.9</td>
<td>Kasutajaliides peab olema ilma rakenduse koodi muutmata tõlgitav teise keelde.</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Kasutajaliides (uus)</td>
<td>7.9</td>
<td>Kasutajaliides peab olema ilma rakenduse koodi muutmata tõlgitav teise keelde, välja arvatud, kui ei ole kokkulepitud teisiti.</td>
<td>Uue keele lisamine peab olema teostatav konfiguratsiooni failist või administreerimisliidesest.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Versioneerimine (olmasolev)</td>
<td>9.1</td>
<td>Kogu rakenduse testimiseks, koolituseks või implementeerimiseks üle antav lähtekood ja tarkvarapaketid peavad olema versioneeritud. Kasutama peab HTMi versioonihalduse ja tehiste (artifaktide) repositooriumi.</td>
<td>Arendajale antakse selleks õigused HTM versioonihalduse repositooriumi, kus ta peab hoidma oma erinevaid versioone.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Versioneerimine (uus)</td>
<td>9.1</td>
<td>Kogu rakenduse testimiseks, koolituseks või implementeerimiseks üle antav lähtekood ja tarkvarapaketid peavad olema versioneeritud. Kasutama peab HTMi versioonihalduse repositooriumi.</td>
<td>Arendajale antakse selleks õigused HTM versioonihalduse repositooriumi, kus ta peab hoidma oma erinevaid versioone.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Paigaldus (olmasolev)</td>
<td>10.3</td>
<td>Kooste kirjelduste alusel valmiv paigalduspakett tohib sisaldada ainult minimaalse rakenduse käitamiseks vajamineva failikomplekti.</td>
<td>Näiteks: kompileeritavate keelte puhul ei tohi sisaldada lähtekoodi, kui see pole vajalik rakenduse käitamiseks.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Paigaldus (uus)</td>
<td>10.3</td>
<td>Kooste kirjelduste alusel valmiv paigalduspakett tohib sisaldada ainult minimaalse rakenduse käivitamiseks vajamineva failikomplekti.</td>
<td>Näiteks: kompileeritavate keelte puhul ei tohi sisaldada lähtekoodi, kui see pole vajalik rakenduse käivitamiseks.</td>
<td>kohustus</td>
</tr>
<tr>
<td>Paigaldus (olmasolev)</td>
<td>10.8</td>
<td>Rakenduse lähtekoodi juures peab leiduma skriptid rakenduse lokaalselt mõnes konteinerlahenduses (Docker) käivitamiseks.</td>
<td>Vajadusel peab konteinerlahendus käivitama ka rakenduse muud sõltuvused (näiteks andmebaas). See on Täitjale uue meeskonnaliikme liitumise lihtsustamiseks ja Tellijale võimalus suuri pingutusi tegemata süsteemi testimiseks.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Paigaldus (uus)</td>
<td>10.8</td>
<td>Kui rakendus kasutab konteinerlahendust, siis rakenduse lähtekoodi juures peab leiduma skriptid rakenduse lokaalselt konteinerlahenduses Dockeri käivitamiseks ja võimaldama orkestreerimist Kuberneteses.</td>
<td>Vajadusel peab konteinerlahendus käivitama ka rakenduse muud sõltuvused (näiteks andmebaas). See on Täitjale uue meeskonnaliikme liitumise lihtsustamiseks ja Tellijale võimalus suuri pingutusi tegemata süsteemi testimiseks.</td>
<td>kohustus</td>
</tr>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Kustutatud</h1>
<tr>
<td>Paigaldus (eemaldamisele)</td>
<td>10.5</td>
<td>Rakenduse kõik sõltuvused peavad olema kompileerimisel saadavad HTM tehiste repositooriumist.</td>
<td></td>
<td>kohustus</td>
</tr>
</table>
<table class="intro" style="text-align:left" aria-label="table-view">
<thead>
<!-- Version nr of MFN -->
<th id="version">Versioon: 1.1</th>
</thead>
<tbody>
<tr><td>
<h2> - New style </h2>
<h2> - New demand type categories ("Kohustus", "ootus", "soovitus")</h2>
<h2> - Phrasing adjustments to various MFN points</h2>
<h2> - Removed "Koostamise eest vastutav"</h2>
<h2> - Removed "Testimise läbi viib või kinnitab"</h2>
<h2> - Added new column to the beginning of the table "Tüüp"</h2>
<h2> - Removed 28 points from MFN </h2>
<h2> - Added 7 points to MFN</h2>
</td></tr>
</tbody>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
</tr>
<h1 class="subject">Uus</h1>
<tr class="new">
<td>Üldine (uus)</td>
<td></td>
<td>Teenuse rakendusele eksisteerivad ajakohased taasteplaanid</td>
<td></td>
<td>ootus</td>
</tr>
<tr class="new">
<td>Testimine (uus)</td>
<td></td>
<td>Rakendused on läbinud koormustestid vähemalt kahekordse eeldatava kasutajamahuga enne toodangusse minekut.</td>
<td></td>
<td>soovitus</td>
</tr>
<tr class="new">
<td>Testimine (uus)</td>
<td></td>
<td>Toodangu keskkondades on rakendused automaatselt monitooritud</td>
<td></td>
<td>kohustus</td>
</tr>
<tr class="new">
<td> Andmekvaliteet ja standard (uus)</td>
<td></td>
<td>Andmete kustutamine ei tohi kustutada tegelikke kirjeid andmebaasist, välja arvatud, kui kirjed pole mittefunktsionaalsed, ehk ei oma ärilist seost.</td>
<td>Kustutamine peaks olema kustutamise lipuga või juhul, kui andmed peavad päriselt kaduma, siis need obfuskeerida taastamatult. Unikaalne ID, mis erinevates teistes logides võib olla talletunud, peab aga jääma alles.</td>
<td>kohustus</td>
</tr>
<tr class="new">
<td>Andmekvaliteet ja standard (uus)</td>
<td></td>
<td>Objektid identifitseerida registrikoodide abil.</td>
<td>Riiklikesse registritesse kantavad objektid (isikud, katastriüksused jne) kantakse andmebaasi nende registrikoodiga, mida täiendab riigiprefiks vastavalt ISO3166-1 Alpha 2 standardile. Näiteks isikute sidumiseks süsteemi kasutajakontoga peab kasutama isikukoodi rahvastikuregistrist.
Eesti Vabariigi kodanik identifitseeritakse Eesti Vabariigi poolt väljastatud eIDga. Igasuguse muu identifitseerimisevahendi kasutamine peab olema selgelt põhjendatud.
Mittekodanike isikuidentifikaator saadakse järgmisel viisil: riigikood + sookood + sünniaeg + [ dok_nr | id_riigis ], kus
riigikood - kolmekohaline ISO 3166-1 Alpha-3 standardile vastav riigi kood
sookood - soo identifikaator nii nagu Eesti Vabariigi isikukoodis
sünniaeg - sünniaeg formaadis YYYYMMDD
id_riigis - kui see on olemas, tuleb kasutada isiku koduriigi isikuidentifikaatorit. 16 kohta, 0-polsterdatud vasakult
dok_nr - kui isiku koduriigis isikuidentifikaatorit ei ole, siis kasutatakse isiku dokumendi numbrit. Dokumendi number, 16 kohta, 0-polsterdatud vasakult.</td>
<td>kohustus</td>
</tr>
</table>
<table aria-label="table-view">
<tr>
<th class="type" style="text-align:left" id="th">Tüüp</th>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
<th class="extention" style="text-align:left" id="th">Nõue</th>
<th class="responsible" style="text-align:left" id="th">Koostamise eest vastutav</th>
<th class="tester" style="text-align:left" id="th">Testimise läbi viib või kinnitab</th>
</tr>
<h1 class="subject">Muudetud</h1>
<tr>
<td>(olemasolev)</td>
<td>1.5</td>
<td>Veebipõhine kasutajaliides peab ühilduma täielikult standarditega HTML 5 ja CSS 3. Kokkuleppel HTM arhitektiga on lubatud erandid.</td>
<td>Valideerimiseks kasutatakse vastavaid validaatoreid: http://validator.w3.org/ Kui on tegu olemasoleva süsteemi edasiarendusega, siis tuleb järgida olemasolevat HTML ja CSS versiooni.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.5</td>
<td>Veebipõhine kasutajaliides peab ühilduma täielikult standardite HTML 5 ja CSS 3 või vastavate ajakohaste versioonidega, mil on tagatud jätkusuutlik tugi.</td>
<td>Valideerimiseks kasutatakse vastavaid validaatoreid: http://validator.w3.org/ Kui on tegu olemasoleva süsteemi edasiarendusega, siis tuleb järgida olemasolevat HTML ja CSS versiooni.</td>
<td>ootus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>1.7</td>
<td>Veebirakendus peab probleemiteta läbima OWASP ASVS baasil põhineva testi</td>
<td>Kui pole arenduse eraldi kokku lepitud teisiti, siis on OWASP ASVS tasemeks 2 (https://www.owasp.org/index.php/Category: OWASP_Application_Security_Verification_Standard_Project). Kinnise lähtekoodiga kommertstoote kasutamisel ei eeldata ligipääsu kinnisele lähtekoodile. Tellija poolset turvatestimist teostab kolmas sõltumatu pool. Selline esmane kolmanda poole turvatestimine tellitakse tellija finantseeringul. Ilmnenud vigade korral ja peale nende parandamist peab järeltestimise rahaliselt kompenseerima arendaja, kui tellija vastava nõudmise esitab.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.7</td>
<td>Veebirakendus peab probleemiteta läbima OWASP ASVS baasil põhineva testi</td>
<td>Kui pole arenduse eraldi kokku lepitud teisiti, siis on OWASP ASVS tasemeks 2 (https://www.owasp.org/index.php/Category: OWASP_Application_Security_Verification_Standard_Project). Kinnise lähtekoodiga kommertstoote kasutamisel ei eeldata ligipääsu kinnisele lähtekoodile. HTMi poolset turvatestimist teostab kolmas sõltumatu pool.Selline esmane kolmanda poole turvatestimine tellitakse HTMi finantseeringul. Ilmnenud vigade korral ja peale nende parandamist peab järeltestimise rahaliselt kompenseerima arendaja, kui HTMi vastava nõudmise esitab.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<td>(olemasolev)</td>
<td>1.9</td>
<td>Andmete edastus peab olema kaitstud kasutades turvalisi ja üldteada andmeedastusprotokolle. Kokkuleppel HTM arendusnõukoguga on lubatud erandid.</td>
<td></td>
<td></td>
<td>Arendaja</td>
<td>Turvatestija</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.9</td>
<td>Andmete edastus peab olema kaitstud kasutades turvalisi ja üldteada andmeedastusprotokolle.</td>
<td></td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>1.14</td>
<td>Avalike e-teenuste loomisel peab arvestama valitsusasutustele kehtestatud iseteeninduskeskkonna raamistikuga</td>
<td>https://www.mkm.ee/sites/default/files/iseteeninduskeskkondade_raamistik_08.07.2015.pdf https://www.mkm.ee/sites/default/files/iseteeninduskeskkondade_raamistiku_kasutatavuse_nouded_dets.pdf</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Üldine (uus)</td>
<td>1.14</td>
<td>Avalike e-teenuste loomisel peab arvestama valitsusasutustele iseteeninduskeskkonna raamistikuga</td>
<td>https://www.mkm.ee/sites/default/files/iseteeninduskeskkondade_raamistik_08.07.2015.pdf https://www.mkm.ee/sites/default/files/iseteeninduskeskkondade_raamistiku_kasutatavuse_nouded_dets.pdf</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>2.21</td>
<td>Sorteerimisreeglistik peab olema Eesti tähestikule vastav. Tõusutundlikkus peab olema välja lülitatud. Accent peab olema sisse lülitatud.</td>
<td>Näiteks PostgreSQL puhul et_EE.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.21</td>
<td>Sorteerimisreeglistik peab olema Eesti tähestikule vastav. Tõusutundlikkus peab olema välja lülitatud. Accent peab olema sisse lülitatud.</td>
<td>Näiteks, PostgreSQL puhul et_EE.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>2.22</td>
<td>Kui infosüsteemid saadavad e-kirju, peavad nad kasutama välist e-mailiserverit. Kirja saatmisel peab rakendus veenduma, et e-mailiserver võttis meili vastu. E-kirjade vormindamine peab järgima interneti standardeid (RFC 5322).</td>
<td>Saatja ja adressaadid, pealkiri ja sisu ei tohi olla rakendusse kodeeritud, vaid on muudetavad konfiguratsioonifaili kaudu. Genereeritud kirjade puhul peab tagama kirjade jälitatavuse (näiteks lisada X-päise kodeeritud kirje, milles on kirjeldatud, mis protsess/skriptifail/kasutaja kirja genereeris jms abistav info).</td>
<td></td>
<td>Arendaja</td>
<td>Administraator</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.22</td>
<td>Kui infosüsteemid saadavad e-kirju, peavad nad kasutama rakendusserveri välist e-mailiserverit. Kirja saatmisel peab rakendus veenduma, et e-mailiserver võttis meili vastu. E-kirjade vormindamine peab järgima interneti standardeid (RFC 5322).</td>
<td></td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>2.24</td>
<td>Infosüsteemides on eessüsteemid (front end; presentatsiooni kiht) ja tagasüsteemid (back end; äriloogika kiht) arhitektuuriliselt selgelt lahutatud ja eraldi paigaldatavad.</td>
<td>Koostöövõime raamistik 2011. Punkt 3.1. Tagasüsteemide ülesanneteks on andmete haldamine ja võrguteenuste pakkumine. Tagasüsteemid ei tegele lõppkasutaja autentimise ja autoriseerimisega. Lõppkasutaja autoriseerimise tagavad eessüsteemid. Välise süsteemi tõrge tohib mõjutada ainult sellest otseselt sõltuvate kasutuslugude toimimist. Välise süsteemi taastumisel peab süsteem olema suuteline oma tööd jatkama taaskäivitamata.</td>
<td></td>
<td>Arendaja</td>
<td>Arhitekt</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.24</td>
<td>Infosüsteemides on eessüsteemid (front end; presentatsiooni kiht) ja tagasüsteemid (back end; äriloogika kiht) arhitektuuriliselt selgelt lahutatud.</td>
<td></td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>2.26</td>
<td>Rakenduse failid, mida kasutaja näha ei tohi, peavad olema kaitstud kaustades ja ei tohi olla veebi juurkaustas.</td>
<td>Näiteks: IIS: Bin,App_Code, App_Data, App_Browsers, App_GlobalResources, App_LocalResources, App_Themes, App_Webtds</td>
<td></td>
<td>Arendaja</td>
<td>Administraator</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.26</td>
<td>Rakenduse failid, mida kasutaja näha ei tohi, peavad olema kaitstud kaustas.</td>
<td>Näiteks: IIS: Bin,App_Code, App_Data, App_Browsers, App_GlobalResources, App_LocalResources, App_Themes, App_Webtds</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>2.30</td>
<td>Keskkonnapõhised muutujad peavad olema konfiguratsioonifailist seadistatavad.</td>
<td></td>
<td></td>
<td>Arendaja</td>
<td>
<ul>
<li>Administraator</li>
<li>Testija</li>
</ul>
</td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.30</td>
<td>Keskkonnapõhised muutujad peavad olema konfiguratsioonifailist seadistatavad.</td>
<td>Näiteks kasutada .env faili, kus saab keskkonnamuutujaid muuta.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>2.36</td>
<td>Veebiteenuseid (REST, SOAP) pakkuv rakendus peab olema üles ehitatud nii, et see toetaks teenuste versioneerimist.</td>
<td>Näiteks WSDL puhul: Alajaotis definitions/types/schema:</td>
<td></td>
<td>Arendaja</td>
<td>Arhitekt</td>
</tr>
<tr class="new">
<td>Arhitektuur</td>
<td>2.36</td>
<td>Veebiteenuseid (REST, SOAP) pakkuv rakendus peab olema üles ehitatud nii, et see toetaks teenuste versioneerimist.</td>
<td></td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>2.40</td>
<td>Kui ajastatult käivitatav taustatöö, ei ole mõeldud käima paralleelselt, peab selles olema realiseeritud kontrollmehhanism, mis tagab, et sama taustatööd ei ole võimalik käivitada uuesti enne, kui eelmisena käivitatud instants on oma töö lõpetanud.</td>
<td></td>
<td>Arendaja</td>
<td><ul>
<li>Administraator</li>
<li>Testija</li>
</ul></td>
<td></td>
</tr>
<tr class="new">
<td>Arhitektuur (uus)</td>
<td>2.40</td>
<td>Kui ajastatult käivitatav taustatöö, ei ole mõeldud käima paralleelselt, peab selles olema realiseeritud kontrollmehhanism, mis tagab, et sama taustatööd ei ole võimalik käivitada uuesti enne, kui eelmisena käivitatud instants on oma töö lõpetanud.</td>
<td></td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>3.6</td>
<td>Rakendusega peab kaasas olema lahendus, mis suudab toota toodangu andmetest testandmed, mis ei sisalda konfidentsiaalset informatsiooni.</td>
<td>Testandmed peavad säilitama kõik toodangu andmete omadused (pikkuse, tüübi) ja omavahelised suhted. Täpsem vajadus ja tegevusplaan tuleb koostada HTM arhitekti ja tooteomanikuga.</td>
<td></td>
<td>Arendaja</td>
<td>Arhitekt</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td>3.6</td>
<td>Rakendusega peab kaasas olema lahendus, mis suudab toota toodangu andmetest testandmed, mis ei sisalda konfidentsiaalset informatsiooni.</td>
<td>On ka võimalus, et ei genereerita toodangu andmetest testandmeid, vaid nt automaattestimise protseduuri käigus tekivad vajalikud testandmed või andmed on avalikud andmed, ehk need ei ole konfidentsiaalsed.</td>
<td>ootus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>3.8</td>
<td>Rakendusse ja andmetele tohib olla ligipääs vaid dokumenteeritud ja tellimuses kirjeldatud teid mööda ning dokumenteeritud autentimisprotseduure kasutades.</td>
<td>St rakendustes ega andmebaasides ei tohi olla ligipääsemiseks teisi võimalusi.</td>
<td></td>
<td>Arendaja</td>
<td>Turvatestija</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td>3.8</td>
<td>Andmetele ligipääs peab vastama kasutaja rollile.</td>
<td>St rakendustes ega andmebaasides ei tohi olla ligipääsemiseks teisi võimalusi.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>3.9</td>
<td>Kõik paroolid ja salaküsimuste vastused peab rakendus salvestama vaid räsitud+soolatud. Kui räsimise asemel valitakse krüpteerimine, siis tuleb kirjeldada krüptovõtme turvalise hoidmise protseduur.</td>
<td>Hetkel kehtivad nõuded saab HTM arhitektilt. Arendaja loodud lahenduse dokumentatsioonis (nt detailanalüüs vms) peab olema ära toodud kasutatavad räsi ja krüptoalgoritmid, võtmepikkused ja nende kasutuskohad (vt nõue p 1.10)</td>
<td></td>
<td>Arendaja</td>
<td>Turvatestija</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td>3.9</td>
<td>Kõik paroolid ja salaküsimuste vastused peab rakendus salvestama vaid räsitud+soolatud. Kui räsimise asemel valitakse krüpteerimine, siis tuleb kirjeldada krüptovõtme turvalise hoidmise protseduur.</td>
<td>Hetkel kehtivad nõuded saab HTM arhitektilt. Arendaja loodud lahenduse dokumentatsioonis (nt detailanalüüs vms) peab olema ära toodud kasutatavad räsi ja krüptoalgoritmid, võtmepikkused ja nende kasutuskohad</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>3.33</td>
<td>Rakenduse input väljale või mõne muul viisil edastatud informatsioonile teha XSS filtri puhastus/eemaldada HTML-tag'id.</td>
<td>Hea oleks seda rakendada enne andmebaasi salvestamist, kuid kindlasti enne väljakuvamist. Kui on mõni spetsiifiline väli, mis kindlasti vajab HTML'i sisendit, siis on see lubatud.</td>
<td></td>
<td>Arendaja</td>
<td>Turvatestija</td>
</tr>
<tr class="new">
<td>Turvalisus (uus)</td>
<td>3.33</td>
<td>Rakenduse input väljale või mõne muul viisil edastatud informatsioonile teha XSS filtri puhastus/eemaldada HTML-tag'id.</td>
<td>Soovitatavalt rakendada enne andmebaasi salvestamist, kuid kindlasti enne väljakuvamist.</td>
<td>ootus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>4.3</td>
<td>Rakenduse kõik üleantavad versioonid peavad enne tellijale üle andmist olema testitud</td>
<td>Testitulemused tuleb edastada tellijale koos rakenduse üleandmisega. Vaata lisaks nõuet 4.21 ja 4.22.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Logimine (uus)</td>
<td>4.3</td>
<td>Rakenduse kõik üleantavad versioonid peavad enne HTMile üle andmist olema testitud</td>
<td>Testitulemused tuleb edastada HTMile koos rakenduse üleandmisega. Vaata lisaks nõuet 4.21 ja 4.22.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>4.5</td>
<td>Erinevate logifailide kirjeid peab olema võimalik seotud komponentide logidega loogiliselt kokku viia.</td>
<td>Tegevuste sidumiseks peab olema võimalik logikirjeid siduda ühise välja abil. Selleks ei sobi kellaaeg ega IP. Sobib näiteks unikaalne ID, mis ei tohi olla sessiooni ID, sest seda saaks logist välja lugeda ja rünnakuks ära kasutada. Võib olla sessiooni ID räsi koos transaktsiooni ID'ga. Konkreetne lahendus tuleb valideerida HTM arhitektiga.</td>
<td></td>
<td>Arendaja</td>
<td>
<ul>
<li>Arhitekt</li>
<li>Testija</li>
</ul>
</td>
</tr>
<tr class="new">
<td>Logimine (uus)</td>
<td>4.5</td>
<td>Erinevate logifailide kirjeid peab olema võimalik seotud komponentide logidega loogiliselt kokku viia.</td>
<td>Tegevuste sidumiseks peab olema võimalik logikirjeid siduda ühise välja abil. Selleks ei sobi kellaaeg ega IP. Sobib näiteks unikaalne ID, mis ei tohi olla sessiooni ID, sest seda saaks logist välja lugeda ja rünnakuks ära kasutada. Võib olla sessiooni ID räsi koos transaktsiooni ID'ga.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>5.2</td>
<td>Lähtekoodi funktsioonid, klassid, meetodid, konstandid ning keerulisemad koodi osad peavad olema kommenteeritud selgelt, arusaadaval ja sisuliselt ära seletama, mis nende funktsioon või eesmärk on. NB! Keerulisema koodi osa all on mõeldud koodi, mis on keerulise või pika ülesehitusega, mille sees on omakorda mitu funktsiooni.</td>
<td>Rakenduse lähtekood ja kommentaarid peavad olema kirjutatud selgusega, mis võimaldab erialast ettevalmistust omaval tarkvaraarendajal süsteemi edasi arendada. Keerulisema koodi osa all on mõeldud koodi, mis on keerulise või pika ülesehitusega, mille sees on omakorda mitu funktsiooni</td>
<td></td>
<td>Arendaja</td>
<td>Arhitekt</td>
</tr>
<tr class="new">
<td>Lähtekood (uus)</td>
<td>5.2</td>
<td>Lähtekoodi funktsioonid, klassid, meetodid, konstandid ning keerulisemad koodi osad peavad olema kommenteeritud selgelt, arusaadaval ja sisuliselt ära seletama, mis nende funktsioon või eesmärk on.</td>
<td>Rakenduse lähtekood ja kommentaarid peavad olema kirjutatud selgusega, mis võimaldab erialast ettevalmistust omaval tarkvaraarendajal süsteemi edasi arendada. Keerulisema koodi osa all on mõeldud koodi, mis on keerulise või pika ülesehitusega, mille sees on omakorda mitu funktsiooni</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>5.8</td>
<td>Andmebaasi väljade pikkused tuleb kirjeldada sümbolites, mitte baitides.</td>
<td>NB! Nõuet ei arvestata arendustarkvara poolt automaatselt genereeritavate koodilõikude puhul – neid ei ole vaja tõlkida. Samuti ei rakendata nõuet kolmandate osapoolte poolt toodetud lähtekoodile – nt igasugu erinevad lahtise koodiga koodilõigud jms. Kui on tegu olemasoleva süsteemi edasiarendusega, siis peaks kommentaarides kasutama eelnevalt kasutatud keelt.</td>
<td></td>
<td>Arendaja</td>
<td>Arhitekt</td>
</tr>
<tr class="new">
<td>Lähtekood (uus)</td>
<td>5.8</td>
<td>Andmebaasi väljade pikkused tuleb kirjeldada sümbolites, mitte baitides.</td>
<td>Selle asemel, et eraldada väljale x baiti, tuleb eraldada x tähemärki. (Instead of allocating x bytes of storage for the field, x chars of storage must be allocated)</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>5.13</td>
<td>Koodi valideerimiseks kasutatakse minimaalselt HTM-i Sonarqube teenust.</td>
<td> ( https://www.sonarqube.org/ )</td>
<td></td>
<td>Arendaja</td>
<td>Arhitekt</td>
</tr>
<tr class="new">
<td>Lähtekood (uus)</td>
<td>5.13</td>
<td>Koodi valideerimiseks kasutatakse minimaalselt HTM-i Sonarqube teenust.</td>
<td> https://www.sonarqube.org/</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>7.3</td>
<td>Rakenduse värviskeem ja logo kasutamine peab vastama Tellija ametlikule visuaalsele identiteedile ja disainijuhistele.</td>
<td>Kui tegemist on struktuurfondide projektiga on lisaks nõutud ka vastav SF sümboolika. Tellija ametlikud visuaalse identiteedi esitluspõhjad, logo kasutusjuhend ja kõik logod küsida tellijalt.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Kasutajaliides (uus)</td>
<td>7.3</td>
<td>Rakenduse värviskeem ja logo kasutamine peab vastama HTMi ametlikule visuaalsele identiteedile ja disainijuhistele.</td>
<td>Kui tegemist on struktuurfondide projektiga on lisaks nõutud ka vastav SF sümboolika. HTMi ametlikud visuaalse identiteedi esitluspõhjad, logo kasutusjuhend ja kõik logod küsida HTMilt.</td>
<td>ootus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>7.5</td>
<td>Avalikuks kasutamiseks tehtav rakendus peab olema graafiliselt skaleeruv ja mugavalt kasutatav kõigi enamlevinud arvutite monitoride resolutsioonidega.</td>
<td>Toetatud peavad olema vähemalt resolutsioonid: 1920x1200, 1920x1080, 1680x1050, 1600x1200, 1440x900, 1360x768, 1280x1024, 1280x960, 1280x800, 1280x768, 1152x864, 1024x768, 1024x600. Ühegi nimetatud resolutsiooni korral ei tohi tekkida horisontaalset kerimisriba.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Kasutajaliides (uus)</td>
<td>7.5</td>
<td>Avalikuks kasutamiseks tehtav rakendus peab olema graafiliselt skaleeruv ja mugavalt kasutatav kõigi enamlevinud arvutite monitoride resolutsioonidega.</td>
<td>Toetatud peavad olema vähemalt resolutsioonid: 1920x1200, 1920x1080, 1680x1050, 1600x1200, 1440x900, 1360x768, 1280x1024, 1280x960, 1280x800, 1280x768, 1152x864, 1024x768. Ühegi nimetatud resolutsiooni korral ei tohi tekkida horisontaalset kerimisriba.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>7.10</td>
<td>Kasutajaliides peab olema ilma rakenduse koodi muutmata tõlgitav teise keelde, v.a kui ei ole kokkulepitud teisiti.</td>
<td>Uue keele lisamine peab olema teostatav konfiguratsiooni failist või administreerimisliidesest.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Kasutajaliides (uus)</td>
<td>7.10</td>
<td>Kasutajaliides peab olema ilma rakenduse koodi muutmata tõlgitav teise keelde.</td>
<td></td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>7.11</td>
<td>Rakenduse tausta, menüüde ja teksti värvid peavad olema ilma rakenduse koodi muutmata vahetatavad.</td>
<td>Template põhjal lähenemine. Hoiame HTMLi ja koodi lahus.</td>
<td></td>
<td>Arendaja</td>
<td>Testija</td>
</tr>
<tr class="new">
<td>Kasutajaliides (uus)</td>
<td>7.11</td>
<td>HTML (ka genereeritud) ei tohi sisaldada JavaScripti ega CSSi.</td>
<td>Mõeldud on serverist serveeritavat HTMLi. Kasutame "seperation of concerns" põhimõtet.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>8.3</td>
<td>Rakenduse dokumentatsioon peab vastama ka dokumendis "Nõuded infosüsteemi dokumentatsioonile" kirjeldatud nõuetele</td>
<td>Dokumentatsioon peab olema versioneeritud, muutmiskuupäevadega, autori nimedega, korrektse keelekasutusega, selge struktuuriga. Dokumentatsiooni detailsus peab olema piisav, et sõltumatu kolmas tehnliste IT baasteadmistega isik suudaks dokumendist vajalikke järeldusi teha (st dokument peab olema arusaadav sellele isikule, kuid näiteks paigaldusjuhise järgi toimetades ei pea ta ebaõnnestunud tarnele teostama veaanalüüsi). Nõuded infosüsteemi dokumentatsioonile</td>
<td></td>
<td>Arendaja</td>
<td>
<ul>
<li>Projektijuht</li>
<li>Arhitekt</li>
<li>Administraator</li>
<li>Testija</li>
<li>Infoturbejuht</li>
</ul>
</td>
</tr>
<tr class="new">
<td>Dokumentatsioon (uus)</td>
<td>8.3</td>
<td>Rakenduse dokumentatsioon peab vastama ka dokumendis "Nõuded infosüsteemi dokumentatsioonile" kirjeldatud nõuetele</td>
<td>Dokumentatsioon peab olema versioneeritud, muutmiskuupäevadega, autori nimedega, korrektse keelekasutusega, selge struktuuriga. Dokumentatsiooni detailsus peab olema piisav, et sõltumatu kolmas tehnliste IT baasteadmistega isik suudaks dokumendist vajalikke järeldusi teha. Nõuded infosüsteemi dokumentatsioonile</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>9.1</td>
<td>Kogu rakenduse testimiseks, koolituseks või implementeerimiseks üle antav lähtekood ja tarkvarapaketid peavad olema versioneeritud. Kasutama peab Tellija versioonihalduse ja tehiste (artifaktide) repositooriumi.</td>
<td>Arendajale antakse selleks õigused Tellija versioonihalduse repositooriumi, kus ta peab hoidma oma erinevaid versioone. Versioonihalduse repositooriumi juurdepääsutaotlus esitatakse Tellija kasutajatoele läbi projektijuhi.</td>
<td></td>
<td>Arendaja</td>
<td>
<ul>
<li>Arhitekt</li>
<li>Administraator</li>
</ul>
</td>
</tr>
<tr class="new">
<td>Versioneerimine (uus)</td>
<td>9.1</td>
<td>Kogu rakenduse testimiseks, koolituseks või implementeerimiseks üle antav lähtekood ja tarkvarapaketid peavad olema versioneeritud. Kasutama peab HTMi versioonihalduse ja tehiste (artifaktide) repositooriumi.</td>
<td>Arendajale antakse selleks õigused HTM versioonihalduse repositooriumi, kus ta peab hoidma oma erinevaid versioone.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>9.3</td>
<td>Nii arendamisel kui ka hoolduslepingute korral kasutatakse Tellija tööde ja veahalduse keskkonda.</td>
<td>Arendajale antakse selleks õigused Tellija tööde ja veahalduse keskkonda. Juurdepääsutaotlus esitatakse Tellija kasutajatoele läbi projektijuhi.</td>
<td></td>
<td>Arendaja</td>
<td>Projektijuht</td>
</tr>
<tr class="new">
<td>Versioneerimine (uus)</td>
<td>9.3</td>
<td>Nii arendamisel kui ka hoolduslepingute korral kasutatakse HTM tööde ja veahalduse keskkonda.</td>
<td>Arendajale antakse selleks õigused HTM tööde ja veahalduse keskkonda. Juurdepääsutaotlus esitatakse Tellija kasutajatoele läbi projektijuhi.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>10.5</td>
<td>Rakenduse kõik sõltuvused peavad olema kompileerimisel saadavad Tellija tehiste repositooriumist.</td>
<td></td>
<td></td>
<td>Arendaja</td>
<td>Administraator</td>
</tr>
<tr class="new">
<td>Paigaldus (uus)</td>
<td>10.5</td>
<td>Rakenduse kõik sõltuvused peavad olema kompileerimisel saadavad HTM tehiste repositooriumist.</td>
<td></td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
<tr>
<td>(olemasolev)</td>
<td>10.7</td>
<td>Rakenduse lähtekoodi juures peab leiduma skriptid rakenduse keskkonnast sõltumatult (konteinerlahenduses) kokku kompileerimiseks.</td>
<td>Tellijal peab olema võimalik suuri pingutusi tegemata ja keskkonna erinevusi vältides teha rakendusest paigaldatav pakk.</td>
<td></td>
<td>Arendaja</td>
<td>Arhitekt</td>
</tr>
<tr class="new">
<td>Paigaldus (uus)</td>
<td>10.7</td>
<td>Rakenduse lähtekoodi juures peab leiduma skriptid rakenduse keskkonnast sõltumatult (konteinerlahenduses) kokku kompileerimiseks.</td>
<td>HTMil peab olema võimalik suuri pingutusi tegemata ja keskkonna erinevusi vältides teha rakendusest paigaldatav pakk.</td>
<td>kohustus</td>
<td></td>
<td></td>
</tr>
</table>
<h1 class="subject">Kustutatud</h1>
<table aria-label="table-view">
<tr>
<th class="nr" style="text-align:left" id="th">Nõude nr.</th>
<th class="content" style="text-align:left" id="th">Nõude sisu</th>
<th class="addition" style="text-align:left" id="th">Seletused</th>
</tr>
<tr>
<tr>
<td>1.10</td>
<td>Infosüsteem peab kasutama serveri kellaaega ja ajatsooni.</td>
<td></td>
<tr>
<td>1.11</td>
<td>Süsteemi edasiarendamisel/loomisel peaks arvestama süsteemi skaleeritavust nii andmekihi kui ka rakenduse võimsuse osas, et teenindada rohkem kliente.</td>
<td></td>
</tr>
<tr>
<td>2.2</td>
<td>Tulevase ja olemasolevate infosüsteemide platvormid (rakendusserver, andmebaas, kolmanda osapoole komponendid) ja topoloogia peab olema enne reaalse arenduse algust TJO valdkonnajuhtidega kooskõlastatud.</td>
<td>Süsteemi jõudlus peab vastama kokkulepitud topoloogial eelanalüüsi ja lähteülesande käigus välja toodud jõudlusnäitajatele.</td>
</tr>
<tr>
<td>2.9</td>
<td>Rakendus peab kasutama 64-bitist arvutiarhitektuuri kui ei ole kokku lepitud teisiti.</td>
<td></td>
</tr>
<tr>
<td>2.12</td>
<td>Ühest andmetabelist teise viitamisel tuleb kasutada väliseid võtmeid (Foreign key).</td>
<td></td>
</tr>
<tr>
<td>2.13</td>
<td>Välised võtmed (Foreign Key) peavad olema indekseeritud.</td>
<td>Andmebaasis peab kasutama indekseid või muid meetmeid, et nõuded rakenduse jõudlusele oleksid täidetud ka tulevikus. (1, 3, 5 või 10 aasta pärast – vastavalt planeeritud kasutusajale).</td>
</tr>
<tr>
<td>2.17</td>
<td>Failide hoidmise asukoht lepitakse igakord kokku.</td>
<td>Failide hoidmine klassikalises andmebaasis on kulukas ja seab kõrgendatud nõudmised ja piirangud andmebaasiserveritele. Lahenduse dokumentatsioonis tuleb ära tuua failide hoidmise asukoht.</td>
</tr>
<tr>
<td>2.19</td>
<td>Rakendus peab olema võimeline kasutama keskkonnamuutujaid (serverinimi, kuu, päev jne).</td>
<td>Näiteks logifailides.</td>
</tr>
<tr>
<td>2.27</td>
<td>Konfiguratsiooniparameetrite taaskasutus. Korduvaid sama tähendusega parameetreid ei tohi konfiguratsioonis eksisteerida.</td>
<td>Kõiki parameetreid tuleks konfiguratsioonis kirjeldada vaid korra, mitte nii, et igas lõigus kirjeldatakse samu asju uuesti.</td>
</tr>
<tr>
<td>2.34</td>
<td>Kui rakendus eeldab eraldi kasutajate, rollide ja õiguste registri pidamist, siis peab rakendus kasutama Tellija tsentraalseid autoriseerimislahendusi.</td>
<td></td>
</tr>
<tr>
<td>2.42</td>
<td>Uue toote arenduse ja olemasolevate infosüsteemide versiooniuuendustel kasutusele võetavate tehnoloogiate ja standardite valik tuleb kooskõlastada Tellija poolse arhitektiga</td>
<td></td>
</tr>
<tr>
<td>3.4</td>
<td>Rakendus tohib kasutada vaid sessiooni küpsiseid (cookies). Muude küpsiste kasutamine on keelatud.</td>
<td>Olulised küpsised ehk sessiooniküpsised, mis tagab rakenduse töötamist peavad eksisteerima. Kõik muud küpsised, mis ei ole vajalikud, peaksid olema reguleeritavad küpsise mooduli/plugina kaudu (nt cookiebot või mõnda muud sarnast kasutatavat lahendust), mis on kooskõlas GDPRiga. </td>
</tr>
<tr>
<td>3.13</td>
<td>Veebipõhised välise veebilehega rakendused peavad kasutama vahendeid kaitsmaks rakendust lubamatute päringute eest.</td>
<td>IIS puhul peab kasutama näiteks URL scan, apache puhul modsecurity või vastavat tööriista. Lubamatud päringud on kõik päringud, mis ei ole detailanalüüsi käigus vastavalt kasutusjuhtudele ette nähtud. Kasutama peab whitelisting põhimõtet, mitte blacklisting.</td>
</tr>
<tr>
<td>3.19</td>
<td>Tagada tuleb rakenduse rollide lahusus.</td>
<td>Peakasutajal ja tavakasutajal on erinevad tööülesanded. Rollide/õiguste kirjeldus peab lähtuma detailanalüüsist ja kasutusjuhtudest.</td>
</tr>
<tr>
<td>3.20</td>
<td>ID-kaardiga autentimisel, peab rakendus suutma vastu võtta ID-kaardi sertifikaati ka päises.</td>
<td>Proxy tugi</td>
</tr>
<tr>
<td>3.22</td>
<td>Arendus peab olema orienteeritud toodangukeskkonnas toimimiseks.</td>
<td>Toodangukeskkonna rakendus ei tohi sisaldada osiseid, mis toodangu keskkonnas on ebavajalikud või segavad (näiteks kasutuseta funktsionaalsus ja komponendid, mõeldud testimiseks testkeskkonnas, arendusabiks arenduskeskkonnas jne).</td>
</tr>
<tr>
<td>3.26</td>
<td>Kui rakenduse tervikluse turvaosaklass on T3, peavad tõestusväärtust omavad andmed olema krüptoaheldatud, et tagada et tõestusväärtusega andmeid ei saaks märkamatult kustutada.</td>
<td>Täpsustuseks vt ISKE nõue HT.10. Krüptoahela kasutamise vajadus lepitakse eraldi kokku Tellija infrastrktuuri juhiga ja infoturbejuhiga. See sõltub Tellija keskse krüptoahela kasutamise võimalustest.</td>
</tr>
<tr>
<td>3.28</td>
<td>Veebirakendus ei tohi jätta sulgemisel kasutaja tööjaama maha ajutisi faile. Paksu kliendi korral ei tohi rakendus kasutaja tööjaama jätta maha krüpteerimata kujul ajutisi faile, mis sisaldavad või võivad sisaldada konfidentsiaalse või kõrget terviklust nõudvat informatsiooni.</td>
<td>Kui paks klient kasutab ajutisi faile, tuleb tagada nende perioodiline kustutamine tagamaks, et ei koormata liigselt kasutaja arvutit. Nõude eesmärk on tagada, et rakenduse sulgemisel ei jääks kasutaja arvutisse maha informatsiooni, mida sinna jääda ei tohiks, sh pääsuandmeid, isikuandmeid, andmekogu sisulisi andmeid jms</td>
</tr>
<tr>
<td>3.31</td>
<td>Rakenduse andmebaasi krüpteerimisega seotud andmeväljad peavad olema muudetava pikkusega.</td>
<td>Andmebaasides kasutatavad krüpteerimisfunktsioonidest tingitud lisaväljad peaksid olema muudetava pikkusega, et formaati muutmata saaks kasutada teistsuguste parameetritega krüpteerimisalgoritme.</td>
</tr>
<tr>
<td>4.10</td>
<td>Kui parameetri väärtus on tühi, tuleb see logis märkida asendusväärtusega.</td>
<td>Näiteks NULL</td>
</tr>
<tr>
<td>4.12</td>
<td>Logides peab olema maksimaalselt üks sündmus ühel real.</td>
<td>Mitme realiste sündmuste puhul kasutada kodeerimist või JSON formaati. Mitme realiste sündmused võivad olla tehnilises-, vea- või silumislogis kui rakendusserver ei oska seda kodeerida.</td>
</tr>
<tr>
<td>4.18</td>
<td>Rakenduse funktsionaalsuse kirjeldusega tuleb luua ka logimise dokumentatsioon ja loginäidised. Koos funktsionaalsuse arendamisega tuleb luua ka loodava funktsionaalsuse logimine ja selle dokumentatsioon.</td>
<td>Mida logitakse, kuidas sündmused on logifailidesse jagatud, logiridade näited.</td>
</tr>
<tr>
<td>5.3</td>
<td>Muutujate, tüüpide ja funktsioonide nimed peavad olema sisulised ja andma aimu nende otstarbest.</td>
<td>Parim praktika</td>
</tr>
<tr>
<td>5.8</td>
<td>Andmebaasi väljade pikkused tuleb kirjeldada sümbolites, mitte baitides.</td>
<td>Selle asemel, et eraldada väljale x baiti, tuleb eraldada x tähemärki. (Instead of allocating x bytes of storage for the field, x chars of storage must be allocated)</td>
</tr>
<tr>
<td>5.16</td>
<td>Üleantavas koodis ei tohi olla paroole, mida on kasutatud arenduse käigus</td>
<td>Kehtib ka siis, kui need on välja kommenteeritud. Kõik sellised paroolid tuleb asendada fraasiga "<password>" .</td>
</tr>
<tr>
<td>7.1</td>
<td>Kasutajaliidese kõik disainiotsused peavad olema kooskõlastatud tellijaga enne nende realiseerimist</td>
<td></td>
</tr>
<tr>
<td>7.18</td>
<td>Nutiseadmetele tuleb luua eraldi kohaldatud kasutajaliides.</td>
<td>See vajadus spetsifitseeritakse arenduse tellimisel.</td>
</tr>
<tr>
<td>8.4</td>
<td>Rakenduse dokumentatsioon peab sisaldama tabelite-andmete-logide mahu kasvu arvestuslikku hinnangut rakenduse sihipärase kasutamise korral ettenähtud arvu kasutajate poolt. (MB/GB kuus/aastas).</td>
<td>Esialgne kirjete mahu hinnang peab tulema lähteülesandest, ning täpsustuma eel- ja detailanalüüsi käigus. Mahuhinnang peab sisaldama ka logide säilitamise, arhiveerimise tähtaegu.</td>
</tr>
</table>
<style>
html {
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
body {
font-size: 14px;
background: #1f2739;
}
h1 {
font-size: 24px;
margin: 10px;
white-space: nowrap;
color:white;
}
h2 {
font-size: 18px;
margin: 10px;
white-space: nowrap;
color:white;
}
.header {
margin-top: 20px;
margin-bottom: 50px;
text-align: center;
}
.header-xml {
margin-bottom: 50px;
}
p {
margin: 10px;
}
ul {
padding-inline-start: 0px;
}
li {
display: block;
margin-inline-start: inherit;
}
a {
font-size: 14px;
color: white;
}
table {
margin: 20px 0;
width: 100%;
border-spacing: 0;
}
table.intro {
border-collapse: collapse;
}
table.intro tr {
background: transparent;
border: 1px solid #c1c7d0;
}
table.intro td {
border: 1px solid #c1c7d0;
}
tr:nth-child(even) {
padding: 10px;
background-color: #2c3446;
}
tr:nth-child(odd) {
padding: 10px;
background-color: #323c50;
}
tr.new:nth-child(odd), tr.new:nth-child(even) {
background-color:#648564;
}
tr:hover {
background-color: #4c517e;
}
tr #subject {
display: flex;
width: 100%;
}
th {
padding: 10px;
font-size: 14px;
color: white;
border: 1px solid white;
}
td {
padding: 10px;
line-height: 22px;
font-size: 14px;
border: 1px solid #cecece;
color: white;
}
td:first-child {
/*color: #8dbff3;*/
color:#ffffff;
}
td:nth-child(2) {
font-size: 14px;
line-height: 20px;
}
.subject {
margin-top: 30px;
}
.nr {
width: 2%;
}
.addition {
width: 55%;
}
.responsible {
width: 4%;
}
.tester {
width: 4%;
}
</style>