Download the PHP package tomas-kulhanek/czech-data-box without Composer

On this page you can find all versions of the php package tomas-kulhanek/czech-data-box. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package czech-data-box

Czech Data Box — PHP knihovna pro datové schránky (ISDS)

Klient pro Informační systém datových schránek (ISDS) Digitální a informační agentury (DIA). Odesílá i přijímá datové zprávy, zvládá velkoobjemové datové zprávy (VoDZ) a odpovídá aktuálnímu rozhraní ISDS podle Provozního řádu účinného od 26. 06. 2026 (WSDL 3.11).

Run base actions Latest Stable Version Total Downloads Monthly Downloads PHP verze License

Obsah

Instalace

Balíček se instaluje přes composer spolu s HTTP klientem — Guzzle nebo Symfony HttpClient:

Knihovna vyžaduje PHP ^8.4 a rozšíření curl, dom, mbstring, openssl a xml. Povyšujete-li z verze 5.x, řiďte se návodem UPGRADE-6.0.md; přecházíte-li z jiné ISDS knihovny, viz Přechod z jiné ISDS knihovny.

Podrobnosti k oběma klientům jsou v sekci Volba HTTP klienta. 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ů. Poslední parametr sendRequest() nese maximální velikost odpovědi v bajtech (null = výchozí limit implementace); uplatněte ho ještě před načtením celého těla do paměti — hotové počítadlo i kontrolu hlavičky Content-Length nabízí TomasKulhanek\CzechDataBox\Provider\ResponseSizeLimit.

Volitelná validace požadavků

Request DTO nesou atributy #[Assert\*] ze symfony/validator, ale knihovna sama validátor nespouští — jsou to metadata pro vaši aplikaci. Pokud chcete požadavky validovat před odesláním, doinstalujte si validátor a zavolejte ho sami:

Knihovna si sama hlídá jen kontroly, které vyplývají z Provozního řádu (limity velikosti a počtu příloh, povolené formáty, povinná pověření). Regresní shodu serializovaných požadavků se schématy Provozního řádu hlídá XSD validace v testech.

Rychlý start

Knihovna nemá stavové přihlášení — přístupové údaje nese TomasKulhanek\CzechDataBox\Account a předávají se do každé operace. Connector je jediný vstupní bod ke všem operacím ISDS:

[!IMPORTANT] Napojení na ISDS se řídí Provozním řádem ISDS. Část povinností (evidence stažených zpráv, frekvence dotazů, nakládání s přístupovými údaji) musí zajistit vaše aplikace — viz Povinnosti aplikace dle Provozního řádu ISDS.

Kompatibilita s ISDS

Řada 6.x je sjednocená s Provozním řádem ISDS účinným od 26. 06. 2026 a s jeho přílohou 2, tedy WSDL verze 3.11. Rozsah pokrytých operací najdete v matici pokrytí, kterou generuje skript z WSDL v tests/_data/wsdl/ a kontroluje CI.

Prostředí (produkce/test) určuje EndpointProvider předaný HTTP providerovi — výchozí je produkce:

Prostředí Doména Zápis
Produkce datovka.gov.cz GuzzleClientProvider::create()
Test datovka-test.gov.cz GuzzleClientProvider::create(EndpointProvider::test())
Vlastní (KIVS) např. datovka.cms2.cz GuzzleClientProvider::create(new EndpointProvider('datovka.cms2.cz'))

Původní domény mojedatovaschranka.cz a czebox.cz zůstávají podle DIA funkční minimálně do

    1. 2027, knihovna je ale od verze 6.0 už nepoužívá.

[!WARNING] Vlastní doména musí pocházet z důvěryhodné konfigurace, nikdy z uživatelského vstupu. Na výslednou URL se posílají přihlašovací údaje (Basic Auth) i klientský certifikát, takže podvržená doména znamená jejich únik. EndpointProvider proto přijímá pouze holé jméno hostu — bez schématu, přihlašovacích údajů, portu a cesty (datovka.cms2.cz ano, https://datovka.cms2.cz/ ne). Neplatná hodnota skončí výjimkou TomasKulhanek\CzechDataBox\Exception\InvalidEndpointDomain.

Odeslání datové zprávy

Zprávu složíte ze tří částí: obálky (Envelope), jednoho či více příjemců (Recipient) a příloh (File, právě jedna z nich musí mít metaType main). Odesílá Connector::createMessage():

Dvě věci, které při odesílání překvapí nejčastěji — obojí plyne z toho, že Connector::createMessage() volá hromadnou operaci ISDS CreateMultipleMessage i pro jedinou zprávu (metoda createMultipleMessage() proto v knihovně neexistuje):

  1. Příjemci se zadávají mimo obálku, přes Recipient (dmRecipients/tRecipients). Organizační jednotku příjemce nastavíte Recipient::setOrgUnit() / setOrgUnitNum(), „k rukám" pak Recipient::setToHand(). Obálka (Envelope, XSD typ tMultipleMessageEnvelopeSub) žádný prvek o příjemci nemá.
  2. Odpověď nemá přímé dmID. Je typu tMultipleMessageCreateOutput, takže ID odeslané zprávy najdete až v dílčím stavu — getMultipleStatus() vrací pole MessageStatus (jeden na příjemce) a ID se čte z MessageStatus::getDataMessageId().

Před odesláním knihovna sama hlídá limity Provozního řádu: 1–50 příjemců, nejvýše 100 příloh (z toho 10 kontejnerových), součet příloh do 20 MiB, povolené formáty dle vyhlášky č. 194/2009 Sb. a délky polí obálky. Větší zprávy patří mezi velkoobjemové (VoDZ).

Načtení seznamu přijatých zpráv

Minimální příklad reálné operace — seznam přijatých zpráv s filtrem stavů a časovým rozsahem:

Odeslané zprávy vrací obdobná operace getListOfSentMessages() s GetListOfSentMessages (místo setRecipientOrgUnitNum() má setSenderOrgUnitNum()).

[!WARNING] Volání GetListOfReceivedMessages je podle § 17 odst. 3 zákona č. 300/2008 Sb. doručením přihlášením — žádná jiná operace doručení nezpůsobí. Seznamy proto nestahujte v kratších intervalech, než odpovídá potřebě aplikace.

Stažení obsahu zprávy

Seznam vrací jen obálky. Obsah zprávy včetně příloh stáhne messageDownload(); podepsanou variantu (dmSignature, dostupná přes getSignature()) pak signedMessageDownload(). Operace markMessageAsDownloaded() označí přijatou zprávu jako přečtenou:

Volba HTTP klienta

Knihovna žádného HTTP klienta nevyžaduje — komunikaci obstarává implementace TomasKulhanek\CzechDataBox\Provider\ClientProviderInterface. Přibalené jsou dvě:

Podporované rozsahy jsou guzzlehttp/guzzle ^8.0 a symfony/http-client 7.*|8.* — knihovna je tedy použitelná i v aplikacích na Symfony 8.

Velkoobjemové datové zprávy (VoDZ)

Zprávy s přílohami nad 20 MiB se odesílají jako velkoobjemové datové zprávy (VoDZ) s limitem 100 MiB (Connector::MAX_BIG_MESSAGE_ATTACHMENTS_SIZE; Provozní řád mluví o 100 MB, knihovna limit počítá binárně ve prospěch odesílatele). Komunikace probíhá přes SOAP 1.2 na endpointech ws2[c].…/DS/vodz — knihovna to řeší automaticky.

Oproti běžné zprávě je postup dvoufázový a příjemce je právě jeden (hromadné odeslání ISDS u VoDZ nepodporuje): každou přílohu nejprve nahrajte přes uploadAttachment(), poté odešlete zprávu přes createBigMessage(), kde na nahrané přílohy odkážete pomocí ExtFile a vráceného identifikátoru. Stahování obstarávají bigMessageDownload(), signedBigMessageDownload(), signedSentBigMessageDownload(), downloadAttachment() a ověření authenticateBigMessage().

Knihovna ještě před odesláním validuje vstupy a může vyhodit výjimky MissingRequiredField (chybějící popis, obsah, příjemce či anotace), MissingMainFile (žádná příloha s metaType main), DisallowedAttachmentFormat (přípona mimo whitelist vyhlášky č. 194/2009 Sb.), AttachmentCountOverflow (příliš mnoho příloh), FileSizeOverflow (překročení 100 MiB) a FieldLengthOverflow (překročení délkových limitů obálky dle XSD — dmAnnotation 255 znaků, dmSenderRefNumber/dmRecipientRefNumber a dmSenderIdent/dmRecipientIdent 50 znaků) — všechny z namespace TomasKulhanek\CzechDataBox\Exception.

Správa vlastní schránky (db_manipulations)

Operace služby db_manipulations (endpoint …/DS/DsManage) vyžadují oprávnění PRIVIL_OWNER_ADM. Knihovna pokrývá správu pověřených osob — getDataBoxUsers2(), addDataBoxUser2(), updateDataBoxUser2(), deleteDataBoxUser2() — a nově i tyto tři operace vlastníka schránky:

Ostatní operace služby (CreateDataBox2, DeleteDataBox2, EnableOwnDataBox2, DisableOwnDataBox2, UpdateDataBoxDescr2, DisableDataBoxExternally2) jsou určeny pro OVM/správce a knihovna je zatím nepokrývá.

Pokrytí webových služeb ISDS

Tabulka ukazuje, které operace rozhraní ISDS knihovna umí — pro každou operaci z WSDL uvádí odpovídající metodu Connector, nebo důvod, proč pokrytá není. Slouží jako kontrola před nasazením: než začnete integraci psát, ověříte si v ní, že operace, kterou potřebujete, existuje.

Matici generuje php tools/wsdl-coverage.php z WSDL v tests/_data/wsdl/ (příloha 2 Provozního řádu, verze 3.11) a z reflexe třídy TomasKulhanek\CzechDataBox\Connector — čísla proto nemohou zastarat vůči kódu. Soulad matice se skutečností hlídá CI (composer check:wsdl-coverage), matici proto needitujte ručně.

Legenda: ✅ implementováno · ⛔ záměrně vynecháno (operaci nahradila novější varianta) · ❌ neimplementováno (skutečná mezera).

Souhrn

WSDL Operací ✅ ⛔ ❌
db_access.wsdl 6 6 0 0
db_search.wsdl 14 11 3 0
db_manipulations.wsdl 23 7 10 6
dm_operations.wsdl 8 8 0 0
dm_info.wsdl 17 16 1 0
dm_VoDZ.wsdl 7 7 0 0
dm_arch.wsdl 1 1 0 0
Celkem 76 56 14 6

db_access.wsdl

služby související s přístupem do ISDS

Operace Metoda Connector Stav Poznámka
GetOwnerInfoFromLogin getOwnerInfoFromLogin() ✅ v knihovně označeno #[Deprecated]
GetOwnerInfoFromLogin2 getOwnerInfoFromLogin2() ✅ —
GetUserInfoFromLogin getUserInfoFromLogin() ✅ v knihovně označeno #[Deprecated]
GetUserInfoFromLogin2 getUserInfoFromLogin2() ✅ —
ChangeISDSPassword changeIsdsPassword() ✅ —
GetPasswordInfo getPasswordExpirationInfo() ✅ —

db_search.wsdl

vyhledávání datových schránek

Operace Metoda Connector Stav Poznámka
FindDataBox — ⛔ starší varianta, ISDS ji nahradilo operací FindDataBox2; z API odstraněno v 6.0.0, viz CHANGELOG.md
FindDataBox2 findDataBox2() ✅ —
CheckDataBox checkDataBox() ✅ —
GetDataBoxList getDataBoxList() ✅ —
PDZInfo pdzInfo() ✅ —
DataBoxCreditInfo dataBoxCreditInfo() ✅ —
ISDSSearch2 — ⛔ starší varianta, ISDS ji nahradilo operací ISDSSearch3
ISDSSearch3 isdsSearch3() ✅ —
GetDataBoxActivityStatus getDataBoxActivityStatus() ✅ —
FindPersonalDataBox — ⛔ zrušeno v ISDS 2018, nahrazeno FindDataBox2; z API odstraněno v 6.0.0, viz CHANGELOG.md
DTInfo dtInfo() ✅ —
PDZSendInfo pdzSendInfo() ✅ —
GetConstants getConstants() ✅ —
GetDataBoxAddress getDataBoxAddress() ✅ —

db_manipulations.wsdl

manipulace s datovou schránkou a její uživatelé

Operace Metoda Connector Stav Poznámka
CreateDataBox — ⛔ starší varianta, ISDS ji nahradilo operací CreateDataBox2
CreateDataBox2 — ❌ zřízení datové schránky (jen pro OVM s příslušnou rolí)
DeleteDataBox — ⛔ starší varianta, ISDS ji nahradilo operací DeleteDataBox2
DeleteDataBox2 — ❌ znepřístupnění datové schránky
UpdateDataBoxDescr — ⛔ starší varianta, ISDS ji nahradilo operací UpdateDataBoxDescr2
UpdateDataBoxDescr2 — ❌ změna popisných údajů schránky
AddDataBoxUser — ⛔ starší varianta, ISDS ji nahradilo operací AddDataBoxUser2
AddDataBoxUser2 addDataBoxUser2() ✅ —
DeleteDataBoxUser — ⛔ starší varianta, ISDS ji nahradilo operací DeleteDataBoxUser2
DeleteDataBoxUser2 deleteDataBoxUser2() ✅ —
UpdateDataBoxUser — ⛔ starší varianta, ISDS ji nahradilo operací UpdateDataBoxUser2
UpdateDataBoxUser2 updateDataBoxUser2() ✅ —
NewAccessData — ⛔ starší varianta, ISDS ji nahradilo operací NewAccessData2
NewAccessData2 newAccessData2() ✅ —
DisableDataBoxExternally — ⛔ starší varianta, ISDS ji nahradilo operací DisableDataBoxExternally2
DisableDataBoxExternally2 — ❌ znepřístupnění cizí schránky (agenda OVM)
DisableOwnDataBox — ⛔ starší varianta, ISDS ji nahradilo operací DisableOwnDataBox2
DisableOwnDataBox2 — ❌ znepřístupnění vlastní schránky
EnableOwnDataBox — ⛔ starší varianta, ISDS ji nahradilo operací EnableOwnDataBox2
EnableOwnDataBox2 — ❌ zpřístupnění vlastní schránky
SetOpenAddressing setOpenAddressing() ✅ —
ClearOpenAddressing clearOpenAddressing() ✅ —
GetDataBoxUsers2 getDataBoxUsers2() ✅ —

dm_operations.wsdl

odesílání a stahování datových zpráv

Operace Metoda Connector Stav Poznámka
CreateMessage createMessage() ✅ knihovna posílá obálku CreateMultipleMessage, která pokrývá i jednoho příjemce
MessageDownload messageDownload() ✅ —
SignedMessageDownload signedMessageDownload() ✅ —
SignedSentMessageDownload signedSentMessageDownload() ✅ —
DummyOperation dummyOperation() ✅ —
CreateMultipleMessage createMessage() ✅ hromadné odeslání (více příjemců v jednom volání)
AuthenticateMessage authenticateMessage() ✅ —
Re-signISDSDocument resignIsdsDocument() ✅ —

dm_info.wsdl

informace o datových zprávách

Operace Metoda Connector Stav Poznámka
VerifyMessage verifyMessage() ✅ v knihovně označeno #[Deprecated]
MessageEnvelopeDownload messageEnvelopeDownload() ✅ —
MarkMessageAsDownloaded markMessageAsDownloaded() ✅ —
GetDeliveryInfo getDeliveryInfo() ✅ —
GetSignedDeliveryInfo getSignedDeliveryInfo() ✅ —
GetListOfSentMessages getListOfSentMessages() ✅ —
GetListOfReceivedMessages getListOfReceivedMessages() ✅ —
GetMessageStateChanges getMessageStateChanges() ✅ —
GetMessageAuthor — ⛔ starší varianta, ISDS ji nahradilo operací GetMessageAuthor2
GetMessageAuthor2 getMessageAuthor2() ✅ —
EraseMessage eraseMessage() ✅ —
GetListOfErasedMessages getListOfErasedMessages() ✅ —
PickUpAsyncResponse pickUpAsyncResponse() ✅ —
GetListForNotifications getListForNotifications() ✅ —
RegisterForNotifications registerForNotifications() ✅ —
SentMessageEnvelopeDownload sentMessageEnvelopeDownload() ✅ —
SuspMessageReport suspMessageReport() ✅ —

dm_VoDZ.wsdl

velkoobjemové datové zprávy (VoDZ, do 100 MiB)

Operace Metoda Connector Stav Poznámka
UploadAttachment uploadAttachment() ✅ —
DownloadAttachment downloadAttachment() ✅ —
CreateBigMessage createBigMessage() ✅ —
AuthenticateBigMessage authenticateBigMessage() ✅ —
SignedBigMessageDownload signedBigMessageDownload() ✅ —
SignedSentBigMessageDownload signedSentBigMessageDownload() ✅ —
BigMessageDownload bigMessageDownload() ✅ —

dm_arch.wsdl

archivace (přerazítkování) ZFO

Operace Metoda Connector Stav Poznámka
ArchiveISDSDocument archiveIsdsDocument() ✅ —

Mimo záběr knihovny

Následující WSDL přílohy 2 knihovna vědomě neimplementuje, nejde tedy o mezery v pokrytí:

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:

Přechod z jiné ISDS knihovny

Migrujete-li existující integraci z balíčku dfridrich/czech-data-box, projděte si Přechod z dfridrich/czech-data-box — obsahuje mapu API obou knihoven, dva úplné příklady „před → po“ (přihlášení se seznamem přijatých zpráv a odeslání zprávy) a checklist migrace.

Povyšujete-li z verze 5.x této knihovny, řiďte se návodem UPGRADE-6.0.md.

Pomoc a řešení 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.

⚠ Bezpečnostní chybu prosím nehlaste veřejným Issue — postup najdete v SECURITY.md.

Odkazy

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

Produkční prostředí

Formuláře žádostí pro orgány veřejné moci i ostatní typy schránek vydává DIA na stránce Zřízení datové schránky. Původní odkazy na datoveschranky.info už nefungují, portál se přesunul na datovka.gov.cz.

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í


Používáte knihovnu v produkci? Budu rád za ⭐ na GitHubu — pomáhá ostatním vývojářům najít aktuálně udržovanou implementaci ISDS.


All versions of czech-data-box with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
ext-curl Version *
ext-dom Version *
ext-mbstring Version *
ext-openssl Version *
ext-xml Version *
composer/ca-bundle Version ^1.5
jms/serializer Version ^3.32
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package tomas-kulhanek/czech-data-box contains the following files

Loading the files please wait ...