Last updated / Utolsó frissítés: 2026-10-11
This document is written to be hostable as-is (e.g. at a /privacy URL) and covers both languages. It describes what the JorKonvo app itself does, and — because JorKonvo is a Matrix client, not a standalone service — what the Matrix homeserver you connect to can and cannot see. These are two different things and this policy is explicit about which is which.
JorKonvo is a Matrix client application — like a web browser is a client for websites, JorKonvo is a client for the Matrix chat protocol. It does not run its own chat service that all users share. When you sign in, you choose (or type) the address of a Matrix homeserver, and that homeserver — not JorKonvo's developer — hosts your account, your messages, and your media.
By default the sign-in screen is prefilled with https://matrix.org, a large public homeserver not operated by JorKonvo's developer (a second public server, https://matrix.tchncs.de, is offered alongside it in a quick-pick list). This is a convenience default, not a requirement — the homeserver field is a plain, editable text box. You can sign in to any Matrix homeserver you already have an account on, or run your own (the developer publishes a self-hosting stack, see deploy/README.md in the source repository, and separately offers managed, individually-hosted Matrix servers as a paid service — deploy/RENTAL.md). Whichever homeserver you use, that homeserver operator — which may or may not be JorKonvo's developer — is the actual data controller for your account.
Regardless of which homeserver you use, standard Matrix protocol metadata is visible to whoever operates it, because the server has to process it to route your messages and calls:
lk-jwt-service, coturn) see call metadata (who is in a call, call duration) and, for group calls via the SFU, route the encoded media streams — group calls are not end-to-end encrypted media today (this matches how LiveKit-based Matrix calls generally work); 1:1 calls are direct peer-to-peer WebRTC and only pass through TURN relays that can't read the encrypted media itselfFor any room marked encrypted in JorKonvo:
@matrix-org/matrix-sdk-crypto-wasm, the same "rust-crypto" engine used by Element and other mainstream Matrix clients). Only devices you have verified — or that were present in the room when the message was sent and are trusted by the room's key-sharing rules — can decrypt this content.matrix.szabotar.dev (not the sign-in screen's default, but still available by typing it in), cannot read the content of encrypted messages or attachments. This is independently verifiable: the app's own server-side message search returns zero results in encrypted rooms, because the search index on the server is built from content the server can actually read — and for encrypted rooms, it has none. JorKonvo works around this with a local, on-device fallback search over messages already decrypted and loaded on your device.The mobile apps only request an OS permission when a specific, shipped feature actually needs it — never speculatively "just in case." As of this writing (checked directly against AndroidManifest.xml and Info.plist in the source repository):
MODIFY_AUDIO_SETTINGS, used only to route call audio to the correct output, e.g. speakerphone — it does not grant any additional access to audio content beyond the Microphone permission above).FOREGROUND_SERVICE and FOREGROUND_SERVICE_MEDIA_PROJECTION, for a mediaProjection-type foreground service). The Android WebView cannot capture the screen by itself, so on Android JorKonvo uses the system's native MediaProjection API for this one feature. Capture starts only after you tap "Share screen" during a call and accept Android's own system consent prompt; while sharing is active, Android shows an ongoing notification (with a Stop action). Capture ends when you turn sharing off, leave the call, or tap Stop in the notification. The captured screen images are sent only into the call you are sharing to — like camera video, they go through that call's infrastructure (see "What the homeserver operator can see" above for group calls) — and are not recorded or stored by the app. Screen audio is not captured. On desktop and in the browser, screen sharing uses the browser's/OS's own capture prompt instead.JorKonvo does not request access to your contacts, Bluetooth, broad photo/file storage, or background location, and it never captures your screen in the background or without an active screen share you started yourself as described above. None of the permissions above let JorKonvo's developer see anything the app doesn't already handle as part of a feature you actively used — a photo you chose to attach, a call you chose to join, a location you chose to share. See "What is end-to-end encrypted" above for how that content is protected once captured, and "What JorKonvo (the app) stores locally on your device" below for what stays on-device.
localStorage/device storage) and are never sent anywhere except where a setting (like room mute) is itself a server-side Matrix feature.While JorKonvo is open, notifications are created locally on your device from what your session already receives from your homeserver.
To notify you while the app is closed, JorKonvo uses push notifications: on iPhone/iPad through Apple Push Notification service (APNs), on Android through Google Firebase Cloud Messaging (FCM), and in a web browser through that browser's Web Push service. You can turn this off per device in Settings → Notifications → Background notifications, or in your phone's system settings. The desktop app does not use push.
How it works: the app gets a push token from your device and registers it with your homeserver (a Matrix "pusher": the token, the app type, a device name and the push gateway's address). When a new event matches your notification settings, your homeserver sends a notification to JorKonvo's push gateway at push.szabotar.dev (operated by JorKonvo's developer, running the open-source Matrix gateway Sygnal), which hands it to Apple, Google or your browser vendor for delivery to your device.
What a notification contains depends on where you use JorKonvo.
iPhone/iPad and Android apps. The pusher uses Matrix's "event_id_only" format, so your homeserver sends the push gateway — and the gateway sends Apple / Google — only:
On iPhone/iPad the notification sent to Apple also carries a fixed "New message" text as a placeholder. No sender name, room name, message text or encrypted message passes through the push gateway or through Apple / Google.
Your phone then builds the notification itself: it fetches the message from your homeserver over HTTPS using your account's access token, and — in an encrypted room — decrypts it on the device with the room keys the app saved to the device while it was running (see "What JorKonvo (the app) stores locally on your device" above). Decryption happens only on your device; nothing is sent to anyone else.
What the notification shows is a per-device setting (Settings → Notifications → Notification content):
Honest limits: if a message uses a room key that arrived after you last opened the app, the phone doesn't have that key yet, so the notification shows "Encrypted message". If your homeserver can't be reached (no connection, expired sign-in), the notification falls back to "New message" or the sender only — it is not lost.
On iPhone/iPad, notifications also show the sender's or the space's picture (Apple's Communication Notifications). For this the app records the message as a conversation locally on the device (an INSendMessageIntent). This stays on your device; as with other messaging apps, iOS may use it for features such as Siri suggestions or share-sheet suggestions. Nothing is sent to Apple beyond normal iOS behaviour.
Web browser. Web Push is unchanged and uses the full format:
The push gateway does not store notifications. It forwards them and keeps short-lived technical logs (time, push token, room/event ID, delivery result — no message text) for troubleshooting, rotated after a few megabytes. (For the phone apps, a notification contains nothing but such identifiers in the first place.) On Android, Google's Firebase Messaging library also creates a Firebase installation ID that Google uses to deliver messages; JorKonvo does not use Firebase Analytics or any other Firebase service.
Questions about this policy, or about a specific homeserver's data practices if the developer operates it: szabotar@szabotar.dev
A JorKonvo egy Matrix kliens alkalmazás — ahogy egy böngésző kliens a weboldalakhoz, úgy a JorKonvo kliens a Matrix csevegési protokollhoz. Nem üzemeltet saját, minden felhasználó által megosztott csevegő- szolgáltatást. Bejelentkezéskor kiválasztod (vagy beírod) egy Matrix szerver címét, és ez a szerver — nem a JorKonvo fejlesztője — tárolja a fiókodat, az üzeneteidet és a médiáidat.
A bejelentkező képernyő alapértelmezetten a https://matrix.org címet mutatja, egy nagy nyilvános szervert, amit nem a JorKonvo fejlesztője üzemeltet (egy második nyilvános szerver, a https://matrix.tchncs.de is választható a gyorsválasztó listából). Ez csak egy kényelmi alapérték, nem kötelező — a szerver-mező egy sima, szabadon szerkeszthető szövegmező. Bejelentkezhetsz bármely Matrix szerverre, amin már van fiókod, vagy futtathatsz sajátot (a fejlesztő közzétesz egy önálló üzemeltetéshez szükséges csomagot, l. a forráskód deploy/README.md fájlját, és külön, fizetős szolgáltatásként egyedi, kezelt Matrix szervereket is kínál — deploy/RENTAL.md). Bármelyik szervert használod, annak üzemeltetője — aki lehet, hogy nem a JorKonvo fejlesztője — a tényleges adatkezelő a fiókodra nézve.
Attól függetlenül, melyik szervert használod, a Matrix protokoll szokásos metaadatai láthatók az üzemeltető számára, mert a szervernek fel kell dolgoznia ezeket az üzenetek/hívások továbbításához:
lk-jwt-service, coturn) látják a hívás metaadatait (ki van bent, meddig tartott), és csoportos hívásnál az SFU-n át a kódolt médiafolyamot is továbbítják — a csoportos hívások médiája ma NEM végpontok közötti titkosítású (ez a LiveKit-alapú Matrix hívások általános jellemzője); az 1:1 hívások közvetlen peer-to-peer WebRTC-n mennek, a TURN relay csak továbbít, a titkosított médiát nem tudja elolvasniMinden, a JorKonvóban titkosítottként jelölt szobában:
@matrix-org/matrix-sdk-crypto-wasm — az "rust-crypto" motor — végzi, amit az Element és más elterjedt Matrix kliensek is használnak). Csak az általad ellenőrzött eszközök — vagy azok, amik az üzenetküldéskor a szobában voltak és a szoba kulcsmegosztási szabályai szerint megbízhatók — tudják visszafejteni ezt a tartalmat.matrix.szabotar.dev-et üzemelteti (ez nem a bejelentkező képernyő alapértéke, de kézzel beírva továbbra is elérhető) — nem tudja elolvasni a titkosított üzenetek/csatolmányok tartalmát. Ez önállóan is ellenőrizhető: az app szerver-oldali üzenetkeresése titkosított szobában mindig 0 találatot ad, mert a szerveren futó keresési index csak olyan tartalomból épül, amit a szerver ténylegesen el tud olvasni — titkosított szobáknál ilyen nincs. A JorKonvo ezt egy helyi, eszközön futó tartalék-kereséssel hidalja át, a már visszafejtett és betöltött üzenetek közt.A mobil alkalmazások csak akkor kérnek egy operációs rendszeri engedélyt, amikor egy konkrét, ténylegesen elérhető funkcióhoz tényleg szükség van rá — sosem "biztos, ami biztos" alapon. A jelen állapot szerint (közvetlenül az AndroidManifest.xml és az Info.plist fájlok ellenőrzésével):
MODIFY_AUDIO_SETTINGS, kizárólag a hívás hangjának megfelelő kimenetre - pl. hangszóróra - irányításához; a fenti Mikrofon engedélyen túl semmilyen extra hozzáférést nem ad).FOREGROUND_SERVICE és FOREGROUND_SERVICE_MEDIA_PROJECTION, egy mediaProjection típusú előtérszolgáltatáshoz). Az Android WebView magától nem tudja rögzíteni a képernyőt, ezért Androidon a JorKonvo ehhez az egy funkcióhoz a rendszer natív MediaProjection API-ját használja. A rögzítés csak akkor indul el, ha hívás közben megérinted a "Képernyőmegosztás" gombot, és elfogadod az Android saját, rendszerszintű hozzájárulás-kérő ablakát; amíg a megosztás aktív, az Android egy folyamatos értesítést mutat (Leállítás gombbal). A rögzítés véget ér, ha kikapcsolod a megosztást, kilépsz a hívásból, vagy az értesítésben a Leállításra koppintasz. A rögzített képernyőképek csak abba a hívásba kerülnek, ahová megosztod őket — a kamera videójához hasonlóan az adott hívás infrastruktúráján mennek át (a csoportos hívásokról l. fentebb a "Mit lát a szerver üzemeltetője" szakaszt) —, az app nem rögzíti és nem tárolja őket. Hangot a képernyőmegosztás nem rögzít. Asztali gépen és böngészőben a képernyőmegosztás a böngésző/ operációs rendszer saját rögzítés-engedélyező ablakán megy.A JorKonvo nem kér hozzáférést a névjegyeidhez, Bluetooth-hoz, széles körű fotó-/fájltárolóhoz vagy háttér-helyadathoz, és sosem rögzíti a képernyődet a háttérben, vagy egy általad, a fent leírt módon elindított, aktív képernyőmegosztás nélkül. A fenti engedélyek egyike sem ad a JorKonvo fejlesztőjének olyan hozzáférést, amit az app már ne kezelne egy általad ténylegesen használt funkció részeként — egy fénykép, amit csatoltál, egy hívás, amihez csatlakoztál, egy helyadat, amit megosztottál. Lásd fentebb a "Mi van végpontok között titkosítva" szakaszt arról, hogyan van védve ez a tartalom, és lentebb a "Mit tárol a JorKonvo (az app) helyben" szakaszt arról, mi marad az eszközön.
localStorage/eszköz- tároló) vannak, és sehova nem kerülnek elküldésre, kivéve ha egy beállítás (pl. szoba némítása) maga is szerver-oldali Matrix funkció.Amíg a JorKonvo nyitva van, az értesítések helyben, az eszközödön készülnek abból, amit a munkamenet amúgy is megkap a szerveredtől.
Hogy bezárt appnál is értesítést kapj, a JorKonvo push-értesítést használ: iPhone/iPad esetén az Apple Push Notification service-en (APNs), Androidon a Google Firebase Cloud Messagingen (FCM), böngészőben pedig az adott böngésző Web Push szolgáltatásán keresztül. Eszközönként kikapcsolható: Beállítások → Értesítések → Háttér-értesítések, vagy a telefon rendszerbeállításaiban. Az asztali app nem használ pusht.
Hogyan működik: az app push-tokent kér az eszköztől, és regisztrálja a szervereden (Matrix „pusher”: a token, az app típusa, egy eszköznév és a push-átjáró címe). Ha egy új esemény az értesítési beállításaid szerint értesítést ér, a szervered elküldi azt a JorKonvo push-átjárójának (push.szabotar.dev; a JorKonvo fejlesztője üzemelteti, a nyílt forráskódú Sygnal Matrix-átjáróval), ami továbbadja az Apple-nek, a Google-nek vagy a böngésző gyártójának, és ők juttatják el az eszközödre.
Hogy mit tartalmaz egy értesítés, az attól függ, hol használod a JorKonvót.
iPhone/iPad és Android app. A pusher a Matrix „event_id_only” formátumát használja, így a szervered a push-átjárónak — az átjáró pedig az Apple-nek / a Google-nek — csak ezt küldi el:
iPhone/iPad esetén az Apple-nek küldött értesítésben ezen felül egy fix „Új üzenet” helyőrző szöveg is szerepel. Sem a feladó neve, sem a szoba neve, sem az üzenet szövege, sem a titkosított üzenet nem megy át a push-átjárón, sem az Apple / a Google push-szolgáltatásán.
Az értesítést ezután maga a telefon állítja össze: HTTPS-en lekéri az üzenetet a szerveredtől a fiókod hozzáférési tokenjével, titkosított szobában pedig az eszközön fejti vissza, azokkal a szobakulcsokkal, amiket az app futás közben elmentett az eszközre (l. fentebb a „Mit tárol a JorKonvo (az app) helyben” szakaszt). A visszafejtés kizárólag az eszközödön történik; senki máshoz nem kerül semmi.
Hogy mit mutasson az értesítés, azt eszközönként állíthatod be (Beállítások → Értesítések → Értesítés tartalma):
A korlátok, őszintén: ha egy üzenet olyan szobakulcsot használ, ami azután érkezett, hogy utoljára megnyitottad az appot, a telefonon még nincs meg ez a kulcs, így az értesítésben „Titkosított üzenet” áll. Ha a szervered nem érhető el (nincs kapcsolat, lejárt a bejelentkezés), az értesítés „Új üzenet”-re vagy csak a feladóra egyszerűsödik — de nem vész el.
iPhone/iPaden az értesítésen a feladó vagy a tér képe is megjelenik (az Apple „Communication Notifications” funkciója). Ehhez az app az eszközön, helyben beszélgetésként rögzíti az üzenetet (egy INSendMessageIntent formájában). Ez az eszközödön marad; ahogy más üzenetküldő appoknál, az iOS felhasználhatja például Siri-javaslatokhoz vagy a megosztási lap javaslataihoz. Az iOS szokásos működésén túl ebből semmi nem jut el az Apple-höz.
Webböngésző. A Web Push nem változott, a teljes formátumot használja:
A push-átjáró nem tárolja az értesítéseket. Továbbítja őket, és hibakereséshez rövid ideig technikai naplót vezet (időpont, push-token, szoba-/eseményazonosító, kézbesítés eredménye — üzenetszöveg nélkül), amit néhány megabájt után felülír. (A telefonos appoknál az értesítés eleve csak ilyen azonosítókat tartalmaz.) Androidon a Google Firebase Messaging könyvtára egy Firebase-telepítésazonosítót is létrehoz, amit a Google a kézbesítéshez használ; a JorKonvo nem használ Firebase Analyticset vagy más Firebase-szolgáltatást.
Kérdés ezzel a szabályzattal, vagy — ha a fejlesztő üzemelteti — egy konkrét szerver adatkezelési gyakorlatával kapcsolatban: szabotar@szabotar.dev