Release 20260503_04 — Element X w setup-chat, mass reset 81 haseł Matrix, skrypty admin

Filip Borkowski, Backend/Frontend/Fullstack Engineer

/setup-chat — przejście z FluffyChat na Element X

Strona logowania pracowników do komunikatora Matrix dostaje nową rekomendowaną aplikację mobilną. Element X (rewrite oparty na Matrix Rust SDK) zastępuje FluffyChat jako domyślny klient.

Konkretne zmiany w src/app/setup-chat/page.jsx:

  • Linki Play/App Store — wskazują teraz na io.element.android.x (Android) i id1631335820 (iOS).
  • QR kod — zamiast adresu serwera (chat.ai-cargo.app) prowadzi do https://element.io/download (smart-link wykrywa OS).
  • Sekcja QR rozwinięta domyślnie (<details open>) — to teraz główna ścieżka instalacji.
  • Tekst kroków zaktualizowany z „Otwórz FluffyChat" na „Otwórz Element X → Edytuj obok adresu serwera".

Mass reset 81 haseł Matrix via Conduit admin room

Wszystkie aktywne konta Matrix (matrix_users.is_active=true, oprócz bota @ai-agent) dostały świeże, losowe hasła. Reset wykonany przez wysłanie komendy @conduit:server: reset-password <username> w admin roomie Conduita (!j4okdlEDXH272pzRXGeUkN_chwmjPsNhRqUq4VLf6HM) — Conduit nie wystawia REST endpointu do reset hasła, jedyna ścieżka to admin commands.

Mechanizm:

  1. Skrypt loguje bota @ai-agent (login + hasło) → świeży access_token.
  2. Dla każdego z 81 kont: wysyła wiadomość w admin roomie z markdownową komendą.
  3. Pollingiem czeka na odpowiedź Successfully reset the password for user @<username>:<server>: <new_password>.
  4. Parsuje hasło i zapisuje do matrix_users.registration_token w Supabase.
  5. Eksportuje CSV z parami username,password do dalszej dystrybucji.

Czas wykonania: ~1m40s na 81 kont, 0 błędów. Wszystkie istniejące sesje (np. komunikator w dashboardzie używający matrix_access_token) pozostają ważne — Conduit nie unieważnia tokenów przy resecie hasła.

Skrypty PowerShell w scripts/

Dwa nowe narzędzia administracyjne (poza repo Vercel build, do uruchomienia lokalnie):

  • scripts/matrix-reset-all-passwords.ps1 — pełny mass reset opisany wyżej. Wymaga $env:SUPABASE_SERVICE_ROLE_KEY. Pomija bota.
  • scripts/matrix-generate-all-instructions.ps1 — generuje 81 spersonalizowanych plików MD (instrukcje-matrix/{username}.md) + master CSV z kolumnami: imię, nazwisko, login, hasło, link /setup-chat, telefon, email. Do mailingu / SMS / WhatsApp.

.gitignore rozszerzony o matrix-passwords-*.csv, matrix-instrukcje-master-*.csv, instrukcje-matrix/, .backup-matrix-users-*.json — pliki z hasłami i danymi osobowymi nigdy nie trafią do repo.

Co dalej

QR sign-in w Element X (MSC4108 / OIDC) nie zostało wdrożone — wymagałoby migracji Conduit → Conduwuit + konfiguracji OIDC providera + istniejącej sesji desktop u pracownika. Realna ścieżka logowania pozostaje: SMS/WhatsApp z linkiem /setup-chat?u=...&p=... → instalacja Element X przez QR → 3× kopiuj-wklej (serwer, login, hasło).

Paczka release

Pełny eksport produkcyjny (Next.js standalone + statyczne + public) dostępny lokalnie po npm run release w release/ai-cargo-v20260503_04_2021/ oraz archiwum .zip (katalog release/ pozostaje poza repozytorium zgodnie z .gitignore).


Podsumowanie: pełna rotacja haseł komunikatora, narzędzia admin do mass operacji na kontach Matrix, przejście na nowoczesną aplikację mobilną Element X.

Więcej artykułów

Release 20260510_01 — Matrix auto-spaces, BoxGrupy kolumn, mapa tras GPS, edycja statusów inline

Pierwszy release dnia: 3-warstwowa redundancja auto-tworzenia Matrix Space dla każdego nowego zlecenia (cron + Realtime + naprawa endpointu), 14 BoxGrup kolumn /zlecenia-baza spójnych z widokiem karty zlecenia, mapa MapLibre z auto-load tras dla pinnymi pojazdów w /trasy-gps, edycja statusów inline w Sheet (KLUCZ vs ETYKIETA + dziedziczenie koloru parent-a), Tree wg statusów głównych (podstatusy bez folderów), breadcrumb wg sidebara, IntegrationsPanel w ustawieniach, Plan TimeLine card, fix konwersji PDF→MD (unpdf + structured post-processing).

Czytaj więcej

Release 20260510_02 — refaktor UI dashboardu, akcje statusów, widoki kolumn

Drugi release dnia: refaktor UI 28 stron dashboardu (sidebar z motion layoutId, headers bez podtytułów, tabela trasy na DataTable29, MapControls, wszędzie spójne padding/borders). Parametry Logiki dostają trzy widoki (Tabela / Diagram / Akcje) z schemą akcji statusów (5 typów × 3 triggery × JSON config). Edycja klucza statusu z AlertDialog potwierdzającym + endpoint migracji DB. Nowy widoki kolumn w /zlecenia-baza (zapisz/wczytaj/usuń presety per-user). Edytowalne user-tabele w /tablica. Blokady ownerAccount w ustawieniach konta.

Czytaj więcej