tomas-kulhanek/czech-data-box

PHP library for connection to Integrated system of data box (ISDS) in Czech republic

Maintainers

Package info

github.com/tomas-kulhanek/czech-data-box

pkg:composer/tomas-kulhanek/czech-data-box

Transparency log

Fund package maintenance!

tomas-kulhanek

vojmani

Statistics

Installs: 7 157

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

v5.0.0 2024-05-24 12:05 UTC

README

DEV branch workflows Latest Stable Version Total Downloads Monthly Downloads License

POZOR!! Pokud implementujete napojení na ISDS, je potřeba aby jste se řídili dle PROVOZNÍHO ŘÁDU

Instalace

Composer

Pro instalaci balíčku je nutné jej instalovat skrze composer.

composer require tomas-kulhanek/czech-data-box

Dále je potřeba využít nějakého klienta. Buď je možné využít Guzzle nebo Symfony Http client

composer require tomas-kulhanek/czech-data-box guzzlehttp/guzzle:^7.0
composer require tomas-kulhanek/czech-data-box symfony/http-client

V případě využívání vlastního http klienta, stačí implementovat rozhraní TomasKulhanek\CzechDataBox\Provider\ClientProviderInterface a předat ho do konstruktoru třídy TomasKulhanek\CzechDataBox\Connector. Samozřejmostí je třeba zajistit správné nastavení hlaviček nebo SSL klientských certifikátů.

Popis

Tato knihovna slouží k základní komunikaci s Informačním systémem datových schránek ISDS nebo ISDS test

Základní použití

Pro každou operaci je potřebné zadat přístupové údaje

<?php
$account = new \TomasKulhanek\CzechDataBox\Account();
$account->setPassword('mojeTajneHeslo')
        ->setLoginName('mujLogin')
        ->setLoginType(\TomasKulhanek\CzechDataBox\Enum\LoginTypeEnum::NAME_PASSWORD)
        ->setProduction(false);

Využití s Symfony HTTP client

Instalace

composer require tomas-kulhanek/czech-data-box symfony/http-client

Instancování

$serializer = \TomasKulhanek\Serializer\SerializerFactory::create();
$guzzleProvider = \TomasKulhanek\CzechDataBox\Provider\SymfonyClientProvider::create();
$connector = new \TomasKulhanek\CzechDataBox\Connector($serializer, $guzzleProvider);

Využití s Guzzle 7

Instalace

composer require tomas-kulhanek/czech-data-box guzzlehttp/guzzle:^7.0

Instancování

$serializer = \TomasKulhanek\Serializer\SerializerFactory::create();
$guzzleProvider = \TomasKulhanek\CzechDataBox\Provider\GuzzleClientProvider::create();
$connector = new \TomasKulhanek\CzechDataBox\Connector($serializer, $guzzleProvider);

Povinnosti aplikace dle Provozního řádu ISDS

Knihovna řeší komunikaci s ISDS, ale některé povinnosti Provozního řádu musí zajistit až vaše aplikace:

  • Evidujte již stažené zprávy a stahujte jen nové (kap. II.17 „Dodržování přiměřenosti"). Aplikace nesmí opakovaně stahovat celé seznamy a obsahy zpráv — použijte filtry GetListOfReceivedMessages/GetListOfSentMessages (od–do, stavy) a vlastní evidenci zpracovaných dmID.
  • Lokální (desktopové) aplikace se smí přihlašovat pouze na manuální pokyn uživatele. Serverové aplikace se mohou přihlašovat automatizovaně, ale jen v nezbytné frekvenci.
  • Počítejte s omezením počtu dotazů. Při překračování denních limitů ISDS nejprve zasílá systémovou zprávu, poté odpovědi zdržuje o 3 sekundy a souběžný požadavek ze stejného účtu odmítá. Nespouštějte paralelní požadavky pod jedním účtem a implementujte přiměřený retry.
  • ⚠ Přístupové údaje nesmí opustit zařízení pod plnou kontrolou uživatele. Předání jména a hesla cloudové/webové aplikaci třetí strany je porušením § 9 odst. 2 zákona č. 300/2008 Sb. — Správce může takové údaje zneplatnit. Doporučená autentizace pro externí systémy je systémový certifikát (LoginTypeEnum::SPIS_CERT).
  • Doručení přihlášením (§ 17 odst. 3) způsobuje výhradně volání GetListOfReceivedMessages — ostatní operace doručení nezpůsobí.
  • Údržba ISDS probíhá zpravidla v pátek 0:00–1:00 (možná krátká nedostupnost); knihovna při HTTP 503 vyhazuje SystemExclusion.
  • Zprávy nad 20 MB odesílejte jako velkoobjemové (VoDZ, do 100 MB) přes uploadAttachment() + createBigMessage(); hromadné odeslání u VoDZ není podporováno.
  • Změny webových služeb oznamuje DIA zpravidla 2 měsíce předem na stránce pro dodavatele; dodavatelům aplikací se doporučuje registrace do pracovního prostoru.

Pomoc a řešní chyb

V případě že potřebujete poradit, nebo při implementaci Vám třída zobrazuje chybu vytvořte prosím nové Issues. Základní pomoc je poskytována zcela zdarma pomocí Issues.

Odkazy

Žádosti o zřízení datové schránky

Produkční prostředí

Testovací prostředí

Zřízení testovací schránky v prostředí datovka-test.gov.cz je možné skrze formulář na produkčním portálu www.datovka.gov.cz po přihlášení v nastavení