AsyncAPI json definice ke stažení zde
Klienti zasílají zprávy na definovaný vstupní exchange IDM_Request, který je společný pro všechny klienty.
Klienti mají dále možnost vyčítat jednotlivé entity pomocí definované Queue IDM_Events_$KodExtSys.
Klienti mají dále možnost jednorázové synchronizace dat pomocí definované Queue IDM_Synchro_$KodExtSys.
Klienti mají dále možnost vyčítat jednotlivé entity pomocí definovaného Superstreamu IDM_Events_Superstram.
Klienti mají dále možnost jednorázové synchronizace dat pomocí definovaného Superstreamu IDM_Synchro_Superstram.
Správce externího systému vygeneruje privátní klíč s RSA 4096
Návod k vygenerování
Správce externího systém vygeneruje CSR soubor (certificate singing request) podepsaný privátním klíčem viz bod 1
Návod k vygenerování
Správce externího systému předá vygenerovaný CSR soubor provozovateli NIPEZ prostřednictvím ServiceDesku NIPEZ. Provozovatel NIPEZ podepíše CSR soubor interní certifikační autoritou NIPEZ a předá zpět správci externího systému. Pro aktualizaci certifikátu je nutné postupovat dle Aktualizace certifikátu
Správce externího systému si spáruje předaný certifikát se svým privátním klíčem. Takto vzniklý certifikát je připraven pro komunikaci s rozhraním message brokera.
Návod ke spárování
Pravidla pro potvrzení zpracování zpráv vychází ze standardu samotného protokolu AMQP viz odkaz . Níže jsou popsány spravné možnosti jak potvrdit přijetí zprávy.
Úspěšné přijetí a zpracování zprávy potvrdí externí systém ACK
Pokud zprávu nelze zpracovat ani při opětovném stažení zprávy např. z důvodu její nevalidity, zpráva se odmítne NACK s parametrem requeue = false
Na neúspěšné zpracování zprávy z důvodu dočasného problému na straně externího systému lze reagovat dvěma způsoby:
3.1. Žádná odpověd: Externí systém má 30 minut na potvrzení zpracování zprávy. Pokud do tohoto limitu nedojde k potvrzení nebo zamítnutí zpracování zprávy, dojde k odpojení externího systému a nepotvrzená zpráva se vrací do původní fronty, odkud ji lze po opětovném připojení znovu vyčíst. (tento časový limit je nakonfigurován na straně message brokera - jako tzv. consumer timeout).
3.2. Dočasné odmítnutí: Externí systém může zpracování zprávy odmítnout NACK s parametrem requeue = true. Je vhodné na straně externího systému zpracování zprávy pozdržet a odmítnout až po určité časové prodlevě. V případě, že dojde k takovému odmítnutí, zpráva je ihned opětovně zařazena do původní fronty. Limit na počet opakovaní čtení zprávy je nastaven na straně message brokera pomocí delivery limit na hodnotu 20 pokusů.
Jednotlivé streamy jsou implementovány až v N instancích a vždy jsou indexovány od 0. Superstreamy využívají Binary protokol, pro který je potřeba implementovat dll viz odkaz.
Instance IDM_Events_Superstream
Instance IDM_Synchro_Superstream
Kompletní kód pro správně nakonfigurovaného klienta v roli consumera superstreamů je ke stažení zde. Pro správnou funknčnost je potřeba validní konfigurace těchto parametrů:
Pro podrobnější informace jak vytvořit consumera pro čtení jednotlivých streamů příkládáme RabbitMQ dokumentaci.
Verze budou postupně inkrementovány a budou k dispozici současně vždy maximálně 2 verze:
Číslování verzí odpovídá specifikaci SemVer, tedy:
Seznam změn 🚀
První publikovaná verze API.
RabbitMQ_Cluster_Quorum server
Certifikát pro autentizaci k message brokeru.
Hodnota CN - Common name musí odpovídat $KodExtSys_$Prostredi. Pro produkční prostředí se _$Prostredi neuvádí.
Certifikát musí být vystaven interní certifikační autoritou NIPEZ.
RabbitMQ_Cluster_Superstream server
Certifikát pro autentizaci k message brokeru.
Hodnota CN - Common name musí odpovídat $KodExtSys_$Prostredi. Pro produkční prostředí se _$Prostredi neuvádí.
Certifikát musí být vystaven interní certifikační autoritou NIPEZ.
Accepts one of the following messages:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"osoby": [
{
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"uredniNazev": "string",
"pravniForma": 100,
"adresaSidla": {
"obec": "string",
"ulice": "string",
"cisloPopisne": "string",
"cisloOrientacni": "string",
"psc": "string",
"zeme": "CZ"
},
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"mandaty": [
{
"kodMandatu": "string",
"datumVzniku": "1901-01-23T14:30:00",
"datumZaniku": "1901-01-23T14:30:00",
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"nipezIdUzivatele": "string",
"nipezIdObjektuRVZ": "string",
"platny": true,
"zdrojMandatu": "string"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
$KodExtSys - Kód externího systému
Available only on servers:
Accepts one of the following messages:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"osoby": [
{
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"uredniNazev": "string",
"pravniForma": 100,
"adresaSidla": {
"obec": "string",
"ulice": "string",
"cisloPopisne": "string",
"cisloOrientacni": "string",
"psc": "string",
"zeme": "CZ"
},
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"uzivatele": [
{
"jmeno": "string",
"prijmeni": "string",
"datumNarozeni": "1901-01-23",
"statniObcanstvi": "CZ",
"nipezIdUzivatele": "string",
"titul": "string",
"titulZa": "string",
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"mandaty": [
{
"kodMandatu": "string",
"datumVzniku": "1901-01-23T14:30:00",
"datumZaniku": "1901-01-23T14:30:00",
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"nipezIdUzivatele": "string",
"nipezIdObjektuRVZ": "string",
"platny": true,
"zdrojMandatu": "string"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"ciselnikMandatu": [
{
"kod": "string",
"nazev": "string",
"platny": true,
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
$KodExtSys - Kód externího systému
Available only on servers:
Accepts one of the following messages:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"osoby": [
{
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"uredniNazev": "string",
"pravniForma": 100,
"adresaSidla": {
"obec": "string",
"ulice": "string",
"cisloPopisne": "string",
"cisloOrientacni": "string",
"psc": "string",
"zeme": "CZ"
},
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"uzivatele": [
{
"jmeno": "string",
"prijmeni": "string",
"datumNarozeni": "1901-01-23",
"statniObcanstvi": "CZ",
"nipezIdUzivatele": "string",
"titul": "string",
"titulZa": "string",
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"mandaty": [
{
"kodMandatu": "string",
"datumVzniku": "1901-01-23T14:30:00",
"datumZaniku": "1901-01-23T14:30:00",
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"nipezIdUzivatele": "string",
"nipezIdObjektuRVZ": "string",
"platny": true,
"zdrojMandatu": "string"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"ciselnikMandatu": [
{
"kod": "string",
"nazev": "string",
"platny": true,
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Available only on servers:
Accepts one of the following messages:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"osoby": [
{
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"uredniNazev": "string",
"pravniForma": 100,
"adresaSidla": {
"obec": "string",
"ulice": "string",
"cisloPopisne": "string",
"cisloOrientacni": "string",
"psc": "string",
"zeme": "CZ"
},
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"uzivatele": [
{
"jmeno": "string",
"prijmeni": "string",
"datumNarozeni": "1901-01-23",
"statniObcanstvi": "CZ",
"nipezIdUzivatele": "string",
"titul": "string",
"titulZa": "string",
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"mandaty": [
{
"kodMandatu": "string",
"datumVzniku": "1901-01-23T14:30:00",
"datumZaniku": "1901-01-23T14:30:00",
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"nipezIdUzivatele": "string",
"nipezIdObjektuRVZ": "string",
"platny": true,
"zdrojMandatu": "string"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"ciselnikMandatu": [
{
"kod": "string",
"nazev": "string",
"platny": true,
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Available only on servers:
Accepts one of the following messages:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"osoby": [
{
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"uredniNazev": "string",
"pravniForma": 100,
"adresaSidla": {
"obec": "string",
"ulice": "string",
"cisloPopisne": "string",
"cisloOrientacni": "string",
"psc": "string",
"zeme": "CZ"
},
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"uzivatele": [
{
"jmeno": "string",
"prijmeni": "string",
"datumNarozeni": "1901-01-23",
"statniObcanstvi": "CZ",
"nipezIdUzivatele": "string",
"titul": "string",
"titulZa": "string",
"telefon": "string",
"email": "user@example.com",
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
{
"mandaty": [
{
"kodMandatu": "string",
"datumVzniku": "1901-01-23T14:30:00",
"datumZaniku": "1901-01-23T14:30:00",
"identifikaceOsoby": {
"typOsoby": "POPS",
"ico": 44992785,
"dalsiRozliseni": "Městská část Brno-sever",
"nipezIdOsoby": "string"
},
"nipezIdUzivatele": "string",
"nipezIdObjektuRVZ": "string",
"platny": true,
"zdrojMandatu": "string"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
{
"ciselnikMandatu": [
{
"kod": "string",
"nazev": "string",
"platny": true,
"typ": "Dodavatel"
}
]
}
{
"Delivery mode": 2,
"Message ID": "string",
"User ID": "string",
"Type": "IDM_Osoby",
"Content type": "text/json",
"Subject": "IDM.IDM_Osoby.#IDObjektu",
"Headers": {
"Version": "1"
}
}
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby:
Primární identifikátor osoby nipezIdOsoby, jinak kombinace údajů dle typu osoby: