• Geeks' Blog

KS[e]F: Wielka improwizacja rządu i biznesu

Narzekanie na KSeF jest w większości uzasadnione, ale część firm sama sobie „pomogła”. Zwlekali z pracami do ostatniej chwili, nie przygotowali środowiska, które umożliwiłoby zarówno zmianę procesów jak i pozwoliło na wprowadzenie nowego oprogramowania. Często proces fakturowania już wcześniej działał kulawo, a systemy były cyfrowymi makietami. Teraz miały nagle zastosować się do dość restrykcyjnych standardów - to nie mogło zadziałać. Firmy oczekiwały, że „księgowy" sobie poradzi a dostawca programu zrobi wszystko za darmo i bez ich udziału.

Ministerstwo dorzuciło do pieca, dając bardzo mało czasu firmom na przygotowanie oprogramowania - wersja API, która miała finalnie obowiązywać na produkcji została udostępniona ledwie cztery miesiące przed startem KSeF. Dokumentacja była chaotyczna, nieprecyzyjna, rozproszona. Były w niej błędy lub niedopowiedzenia, brakowało przykładów. To, co Ministerstwo Finansów nazywa „wsparciem dla podatnika”, w rzeczywistości było cyfrowym torem przeszkód. KSeF może być znakomitym przykładem tego, jak nie projektować systemów o krytycznym znaczeniu dla gospodarki.

Architektura

Data is a liability, not an asset. Zbieraj tylko to, co jest Ci naprawdę potrzebne do realizacji zadania i nie przechowuj tego, na czego utratę nie możesz sobie pozwolić. KSeF zbiera wchodzi w posiadanie zbyt dużej ilości wrażliwej informacji. To ryzyko nie tylko dla firm, ale i dla całego państwa. KSeF to największa inwigilacja gospodarcza w historii III RP – państwo w czasie niemal rzeczywistym zna każdy twój zakup i sprzedaż. Dostaje nie tylko kwoty VAT, ale szczegółowe dane o marżach, cenach, kluczowych dostawcach i kontrahentach – czyli o tajemnicy przedsiębiorstwa. To realne ryzyko politycznego wykorzystania informacji („sprawdzanie” niewygodnych firm), korupcji urzędników, administratorów oraz przyszłego rozszerzenia zakresu tego systemu. KSeF gromadzi znacznie więcej niż to jest uzasadnione do pełnienia swojej roli.

Architektura jest monolityczna – wszystko idzie przez serwery MF, co oznacza single point of failure: jeśli padnie (a zdarzały się awarie, np. w e-PIT), to cała gospodarka praktycznie staje, bo obieg faktury nie będzie funkcjonować właściwie. Mamy co prawda tryb 'offline' ale jego stosowanie jest dość złożone i to raczej krótkie przerwy, spowolnienia będą bardziej dokuczliwe niż całkowita niedostępność.

Autoryzacja

W KSeF wybrano metodę autoryzacji, która nadmiernie obciąża infrastrukturę. Profil Zaufany wywracał się już do góry nogami w przeszłości; start Polskiego Ładu (2022), Wnioski 500+ / 800+, Wprowadzenie e-recept, testy KSeF. System jest skomplikowany i uciążliwy: użytkownik musi logować się do banku, potem do PfZ, a na końcu potwierdzać podpis kwalifikowany sekwencją SMS-ów i kodów z aplikacji. Wymuszanie takiego procesu przy wysyłce nawet jednej faktury to w 2026 roku technologiczny absurd.

Zamiast nowoczesnych, lekkich i rozproszonych mechanizmów dostępu, wybrano model centralny i ciężki. W efekcie system jest bardziej obciążający, wolniejszy i podatniejszy na awarie, niż musiałby być

Więcej…

Komunikacja z Krajowym Systemem e-Faktur (KSeF)

O tym czym jest KSeF napisano wiele artykułów, nagrano wiele materiałów video. Często niestety nie do końca prawdziwych. Jeśli chcesz zorientować się lepiej czym jest ten system, zacznij od kompendium wiedzy przygotowanego przez Ministerstwo Finansów: https://ksef.podatki.gov.pl/informacje-ogolne-ksef-20

Jeśli chcesz poznać szczegóły funkcjonwania KSeF, najlepszym pomysłem będzie przeczytać 'Podręcznik KSeF' który pobierzesz wchodząc kolejno:

https://ksef.podatki.gov.pl/ => "Pliki do pobrania" [dół strony] => "Podręczniki KSeF"

Wystawianie i odbieranie faktur w systemie KSeF

Jeśli nie korzystasz z programu księgowego który obsługuje komunikację z KSeF (popularne na rynku programy zapewniaja taką komunikację) masz dwie możliwości by przesłać fakturę do KSeF lub ją odebrać z KSeF.

Menu web KSeF

Połączenie ze stroną https://ap.ksef.mf.gov.pl i dostęp do menu które umożliwia przeglądanie, odbieranie i wysyłanie faktur. By mieć dostęp do tej strony Twoja firma musi wystąpić o dostęp a po jego nadaniu kolejne osoby są dodawane przez administratora i najczęściej logują się używając profilu zaufanego (inne formy to e-dowód i certyfikat).

Logowanie do tej aplikacji z wykorzystaniem profilu zaufanego jest wyjątkowo uciążliwe. By się tam dostać, musisz dwa razy zalogować się do banku i cztery razy zaakceptować podpisywanie dokumentu w bankowej aplikacji mobilnej. SZEŚĆ interakcji by zalogować sie do aplikacji! Dlatego też jeśli już tam jesteś, trzymaj sesję aktywną by aplikacja Cię nie wylogowała i byś nie musiał(a) logować sie ponownie.

Wystawianie faktur

Masz dwie możliwości przesłania faktury do KSeF. Możesz wczytać fakturę co oznacza przesłanie wcześniej przygotowanego pliku XLM. Możesz też wystawić fakturę. Ta druga opcja daje Ci możliwość skomponowania całej faktury w dość wygodnym menu.

Pobieranie faktur

W aplikacji tej możesz też przeglądać faktury i je pobierać. Pobieranie większej ilości niż jedna niestety jest bardzo niewygodne - możesz co prawda pobrać paczkę faktur ale musisz każdą z faktur zaznaczyć ręcznie a na stronie nie możesz wyświetlić wiecej faktur niż 10. Ta aplikacja jest dostępna dla jednoosobowych działalności gospodarczych i firm. W KSeF masz dostęp do 4 kategorii faktur:

  • Faktury sprzedażowe (Podmiot1): Twoje faktury przychodowe, gdzie występujesz jako sprzedawca.

  • Faktury zakupowe (Podmiot2): Twoje faktury kosztowe, gdzie występujesz jako nabywca.

  • Faktury podmiotu innego (Podmiot3): Dokumenty, w których jesteś stroną trzecią, np. płatnikiem, czynnikiem lub dodatkowym nabywcą.

  • Faktury podmiotu upoważnionego: Dokumenty wystawione w Twoim imieniu przez organy zewnętrzne, np. przez komornika lub przedstawiciela podatkowego.

Z KSeF możesz pobrać fakturę w formacie XML, HTML lub PDF.

E-mikrofirma

Aplikacja e-mikrofirma jest dostępna po zalogowaniu do e-Urzędu Skarbowego i jest przeznaczona wyłącznie dla osób na JDG. Ta druga jest znacznie lepsza dla małych firm, ponieważ działa jak klasyczny program do fakturowania: zapamiętuje listę Twoich klientów oraz usług, a dodatkowo automatycznie przygotowuje pliki JPK_VAT. Narzędzie to jest w pełni zintegrowane z KSeF, co pozwala na bezpośrednie wysyłanie wystawionych faktur do systemu krajowego oraz ich automatyczne odbieranie. Jeśli więc prowadzisz jednoosobową działalność, najwygodniej będzie Ci korzystać z e-mikrofirmy wewnątrz e-Urzędu Skarbowego.

Odbieranie wystawionych faktur przez firmy i osoby prywatne

Jeśli firma wystawia fakturę innej firmie, zostanie ona dostarczona pod właściwy adres dzięki numerowi NIP. NIP jest adresem dostarczenia tak jak w komunikacji SMTP takim adresem jest adres e-mail. Faktury bez NIP lub z błędnym NIP nigdy nie trafią do odbiorcy. To oznacza że niewielki jest sens wystawiania faktur dla osób prywatnych w systemie KSef ...ALE takie wystwienie jest możliwe (choć w ustawie VAT zapisano że takiego obowiązku nie ma). Z KSeF zatem muszą pobierać wszystkie firmy za wyjątkiem podmiotów zagranicznych - ich faktury jednak bezwzględnie muszą być zapisane w KSeF i dostarczone do nich uzgodnioną drogą. Jeśli będą chciały pobrać te faktury z KSeF, mogą to zrobić. Podmioty nie posiadające siedziby na terenie Polski nie będą Ci jednak dostarczać faktur do systemu KSeF.

Kody QR na fakturach

Na każdej fakturze papierowej powinien znaleźć się kod QR który prowadzi do strony KSeF umożliwiającej weryfikację faktury i jej pobranie: https://qr.ksef.mf.gov.pl - w kodzie zawarty jest unikalny link (skomponowany z hash xml faktury, daty wystawienia, nipu). Jeśli nawet wejdziesz w posiadanie kodu QR, nie pobierzesz faktury nie mając dostępu do informacji w niej zawartych (zabezpieczenie KSeF).

Automatyzacja komunikacji z KSeF

KSeF oferuje jednak bardzo proste menu i ograniczoną listę funkcji w stosunku do potrzeb nawet przeciętnej firmy. Jeśli chcesz zautomatyzować komunikację z KSeF, musisz wykorzystać API które oferuje ten system dostępne pod adresem https://api.ksef.mf.gov.pl

Więcej…

Odczyt i zapis danych podczas uruchamiania zadań Apache Spark w środowisku Kubernetes

Jeśli chcemy analizować dane w Apache Spark w środowisku Kubernetes musimy zadbać o odczyt danych i zapis rezultatu po wykonaniu zadania. Tego problemu nie ma kiedy używamy Apache Spark w formie Standalone i mamy tylko jeden worker; możemy odczytywać dane i je zapisywać na dysk bez dbałości o widoczność tego zaspobu przez wiele executorów Sparka.

Kiedy Apache Spark działa w klastrze 'standalone' i uruchamianych jest wiele workerów, najczęstszy scenariusz to kopiowanie danych do analiz na każdą maszynę workera i zapisywanie rezultatów na każdej z maszyn a po wykonanej pracy ich 'merge' z workerów do finalnego rezultatu. Wbrew powszechnemu marketingowi, Apache Spark nie pracuje najcześciej z danymi RAW/BRONZE czy SILVER na setkach Terrabajtów czy na Petabajtach danych. Najczęściej takie dane są dzielone i workery otrzymują tylko część danych lub danych w oknie czasowym jest stosunkowo niewiele. Dopiero zadania na danych GOLD wykonywane są na dużych wolumenach danych.

Pody Apache Spark w Kubernetes są tworzone dynamicznie i przestają istnieć po wykonaniu zadania. Dystrybuowanie do nich danych i ich zapis byłby problematyczne. Teoretycznie raczej mamy dwa scenariusze:

  • Dane lokalne w podzie – każdy pod widzi tylko swój lokalny filesystem. Mówimy tylko o zapisie danych do lokalnego poda bo skoro pod tworzony jest dynamicznie, problematyczne jest przesłanie do niego danych.
  • Sieciowy PersistentVolume (PV, PVC, ReadWriteMany, np. NFS, Ceph, EFS) – wszystkie pody (driver + executory) montują ten sam katalog, dane są widoczne wszędzie; Spark może odczytywać i zapisywać równolegle. Dane przesyła się po prostu zapisując je w PV; można też wstępnie wrzucić pliki do PV przed startem joba.

Oba scenariusze są trudne w produkcyjnym wykorzystaniu. Wskazane jest by wszystkie workery widziały ten sam zasób który jednocześnie jest łatwy do zarządzania. Dlatego używamy trzeciego rozwiązania:

  • Obiektowy storage (S3, GCS, Azure Blob) – wszystkie pody mają dostęp przez protokoły S3/HTTP, Spark odczytuje i zapisuje dane w formacie np. Parquet, CSV; dane przesyła się do bucketu przed startem joba, np. aws s3 cp /local/path s3://bucket/input.

Amazon Simple Storage Service (Amazon S3) lokalnie

Najprostszym, nie najbardziej wydajnym, jest używanie usługi która wykorzystuje właśnie S3 (protokół s3, s3a). Dzięki https://www.min.io/ taki serwis możesz mieć lokalnie. Oprogramownie jest proste do instalacji. Oprogramowanie udostępnia tę sama funkcjonalność która daje chmura AWS - za darmo. Istnieje też wersja bardziej rozbudowana, komercyjna oraz, a jakże, chmura MinIO.

Firma MinIO zrobiła co prawda klasyczny open-core shift i usuneła wiele funkcji ostatnio ze swojej darmowej wersji oprogramowania. I tak by zarządzać uprawnieniami potrzebny jest client który pobierzesz tutaj. Jednak do jeśli potrzebujesz serwisu S3 do stosunkowo niewielkich volumenów danych, MinIO jest wszystkim czego potrzebujesz. Możliwa jest także budowa trybu rozproszonego (distributed mode) w MinIO Community.

Więcej…

Jak działa Apache Spark w środowisku Kubernetes - uruchamianie zadań

W realnym, produkcyjnym scenariuszu użycia Spark w klastrze nie rezyduje on tam na stałe. Jego komponenty są instalowane dynamicznie wraz ze zlecaniem zadania i są usuwane po wykonaniu pracy.

Polecenie spark-submit jest używane do przesłania aplikacji (zadań) Spark do klastra Kubernetes. Wymagana ne jest byś miał(a) oprogramownie Spark lokalnie - twój lokalny Spark jest klientem.
Mechanizm przesyłania działa w następujący sposób:

  1. Spark tworzy proces drivera (Spark driver), który uruchamia się wewnątrz poda Kubernetes.

  2. Driver tworzy procesy executorów, które również działają jako pody w Kubernetes, łączy się z nimi i wykonuje kod aplikacji.

  3. Gdy aplikacja zakończy działanie, pody executorów są zatrzymywane i usuwane, natomiast pod drivera zachowuje logi i pozostaje w stanie „completed” (zakończony) w API Kubernetes, dopóki nie zostanie usunięty ręcznie lub przez mechanizm automatycznego czyszczenia (garbage collection).

Należy zauważyć, że w stanie „completed” pod drivera nie zużywa żadnych zasobów obliczeniowych ani pamięci.

Więcej…

Strona 1 z 29

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
© 2026
Powered by DataGeeks & Human Intelligence