Odchozi IP adresa portalu

Kdyz cizi sluzba odmitne pristup, prvni otazka je, z jake adresy se vlastne
vola. Z containeru to videt neni, vidi to az protistrana, takze se zepta echo
sluzby podle EGRESS_IP_URL a vysledek se drzi v pameti po EGRESS_IP_TTL_MS.
Prazdna EGRESS_IP_URL funkci vypne, prepsat ji jde na vlastni echo pod svou
domenou.

Adresa je natvrdo na strance Konektory a u kazdeho odmitnuteho overeni v logu.
Pripojuje se jen u 401 a 403 - jinde nema co rict a nestoji za volani ven.

Neni to tajemstvi: kazda volana sluzba tuhle adresu stejne vidi.

Endpoint egress-ip je registrovany pred GET /:id, jinak by ho router vzal
jako id konektoru.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
JiriUhlir
2026-08-25 07:22:26 +02:00
co-authored by Claude Opus 5
parent ab88979627
commit 4545de8076
9 changed files with 283 additions and 0 deletions
+13
View File
@@ -129,6 +129,19 @@ export const config = {
servicesBaseUrl: (process.env.SERVICES_BASE_URL ?? 'https://services.csbot.cz/apps')
.trim()
.replace(/\/+$/, ''),
/**
* Odkud se zjistuje **odchozi IP adresa** tohoto containeru.
*
* Cizi sluzby maji seznamy povolenych IP a bez teto informace se neda rict,
* jestli je na nich prave nase adresa - z containeru neni videt, jak ho vidi
* protistrana. Vola se jen na vyzadani a vysledek se drzi v pameti.
*
* Prepisovatelne, aby se dalo ukazat na vlastni echo pod svou domenou misto
* na cizi sluzbu. Prazdna hodnota funkci vypne.
*/
egressIpUrl: (process.env.EGRESS_IP_URL ?? 'https://api.ipify.org?format=json').trim(),
/** Jak dlouho plati zjistena odchozi IP. Meni se nejvys pri presunu containeru. */
egressIpTtlMs: positiveNumber(process.env.EGRESS_IP_TTL_MS, 10 * 60_000),
/** Strop na jeden beh skriptu, kdyz si ho manifest neurci sam. */
scriptTimeoutMs: positiveNumber(process.env.SCRIPT_TIMEOUT_MS, 15_000),
/** Vetsi odpoved cizi sluzby se zahodi, misto aby snedla pamet procesu. */