Repository navigation
Releases: kprzybys/ksef-cli
Release list
ksef v0.1.4
Co nowego
macOS. Binarki dla Apple Silicon (osx-arm64) i Intela (osx-x64), macOS 12 lub nowszy. Bez Homebrew i bez pakietów — kryptografia, ICU i libxslt (podgląd show) są w systemie.
v=0.1.4 a=osx-arm64 # Intel: osx-x64
curl -LO https://github.com/kprzybys/ksef-cli/releases/download/v$v/ksef-$v-$a.tar.gz{,.sha256}
shasum -a 256 -c ksef-$v-$a.tar.gz.sha256 && tar -xzf ksef-$v-$a.tar.gz
mkdir -p ~/.local/bin && install -m755 ksef-$v-$a/ksef ~/.local/bin/ksef- Binarka nie jest jeszcze notaryzowana przez Apple: pobrana przez
curldziała od razu, pobrana przeglądarką zostaje zablokowana (zsh: killed) — wtedyxattr -d com.apple.quarantine ~/.local/bin/ksef. - Sesje na macOS w
$TMPDIR/ksef/(prywatny katalog użytkownika). - Logowanie kluczem z karty/tokenu (PKCS#11) na razie tylko na Linuksie; na macOS: certyfikat z pliku, token KSeF albo podpis zewnętrzny (
--request/--signed, np. Profil Zaufany).
Szczegóły: docs/INSTALL.md#macos.
Podpisany SBOM. Każde archiwum ma listę składników (CycloneDX: biblioteka MF, pakiety NuGet, środowisko .NET wkompilowane w binarkę) z podpisem — skanerem luk (np. grype) sprawdzisz, czy nowa podatność w zależności dotyczy ksef.
gh attestation verify ksef-$v-$a.tar.gz --repo kprzybys/ksef-cli \
--predicate-type https://cyclonedx.org/bom --bundle ksef-$v-$a.tar.gz.cdx.json.sigstore.jsonProjekt
- Odznaka OpenSSF Best Practices (passing), wynik OpenSSF Scorecard w README.
- Przegląd zależności w każdym PR; instalator .NET w
scripts/install-deps.shprzypięty commitem i skrótem SHA-256.
Na Linuksie program działa tak samo jak w 0.1.3.
Instalacja (Linux)
v=0.1.4 a=linux-x64 # arm64: linux-arm64
curl -LO https://github.com/kprzybys/ksef-cli/releases/download/v$v/ksef-$v-$a.tar.gz{,.sha256,.sigstore.json}
sha256sum -c ksef-$v-$a.tar.gz.sha256 && tar -xzf ksef-$v-$a.tar.gz
install -Dm755 ksef-$v-$a/ksef ~/.local/bin/ksef
gh attestation verify ksef-$v-$a.tar.gz --repo kprzybys/ksef-cli --bundle ksef-$v-$a.tar.gz.sigstore.jsonPełna lista zmian: v0.1.3...v0.1.4
ksef v0.1.3
Co nowego
Podpisane binarki. Każde archiwum ma teraz podpis pochodzenia (atestacja SLSA w otwartym standardzie Sigstore) — dowód, że plik zbudował workflow wydań z tego repozytorium, a nie ktoś inny. Plik podpisu ….tar.gz.sigstore.json jest w wydaniu obok archiwum, więc sprawdzenie nie wymaga GitHuba.
v=0.1.3 a=linux-x64 # arm64: linux-arm64
curl -LO https://github.com/kprzybys/ksef-cli/releases/download/v$v/ksef-$v-$a.tar.gz{,.sha256,.sigstore.json}
sha256sum -c ksef-$v-$a.tar.gz.sha256
gh attestation verify ksef-$v-$a.tar.gz --repo kprzybys/ksef-cli --bundle ksef-$v-$a.tar.gz.sigstore.jsonNiezależna weryfikacja przez cosign: docs/INSTALL.md.
Projekt
- Formularze zgłoszeń błędów i propozycji (z ostrzeżeniem, żeby nie wklejać tokenów, faktur ani prawdziwych NIP-ów), CONTRIBUTING.md.
- Automatyczne aktualizacje zależności (także biblioteki MF), akcje GitHub przypięte do konkretnych wersji, analiza bezpieczeństwa kodu CodeQL.
Program ksef działa tak samo jak w 0.1.2 — zmiany dotyczą sposobu wydawania i weryfikacji.
Instalacja
tar -xzf ksef-$v-$a.tar.gz
install -Dm755 ksef-$v-$a/ksef ~/.local/bin/ksefPełna lista zmian: v0.1.2...v0.1.3
ksef v0.1.2
Co nowego
send nie gubi numerów już wysłanych faktur przy awariach
- Gdy po kodzie 21184 nie da się otworzyć nowej sesji: przyjęte faktury są dalej sprawdzane i podawane z numerem KSeF, pozostałe oznaczone „nie wysłano”.
- Ctrl+C / SIGTERM (np.
timeoutw cronie):ksefkończy wysyłkę, wypisuje stan każdej faktury (numery referencyjne wysłanych), zamyka sesje i kończy kodem 130. - Błąd bramy 408/5xx bez kodu KSeF (np. 504) nie jest już traktowany jak pewne odrzucenie —
ksefszuka faktury w sesji po skrócie SHA-256. - Faktura, której stanu nie da się ustalić, ma na stderr „STATUS NIEZNANY” z numerem referencyjnym, a w
--jsonpolestatusUnknown— przed ponowną wysyłką sprawdź ją, bo może już być wystawiona.
Bezpieczeństwo
KSEF_API_URL(adres symulatora w testach) jest przyjmowany tylko na tym komputerze — zapomniana albo podstawiona zmienna nie wyśle tokenu ani faktur na obcy serwer.
Dokumentacja
- README: czym
ksefjest i czym nie, ścieżka „prawdziwa firma” z ostrzeżeniem o produkcji; COMMANDS: stany wynikusendi kod 130; poprawione linki.
Instalacja
v=0.1.2 a=linux-x64 # arm64: linux-arm64
curl -LO https://github.com/kprzybys/ksef-cli/releases/download/v$v/ksef-$v-$a.tar.gz{,.sha256}
sha256sum -c ksef-$v-$a.tar.gz.sha256 && tar -xzf ksef-$v-$a.tar.gz
install -Dm755 ksef-$v-$a/ksef ~/.local/bin/ksefPełna lista zmian: v0.1.1...v0.1.2
ksef v0.1.1
Co nowego
Pierwsze uruchomienie bez czytania dokumentacji
ksefbez komendy pokazuje trzy środowiska MF opisane słowami — produkcja (prawdziwe faktury), demo (próba generalna), test (piaskownica) — i pierwsze kroki.- Zmienna
KSEF_ENVzamiast-ew każdej komendzie (np.export KSEF_ENV=prod); jawne-ema pierwszeństwo, bez obu nadaltest. - Brak sesji:
ksefwskazuje sesję w innym środowisku (dodaj -e prod albo ustaw KSEF_ENV=prod) albo podaje gotową komendę logowania. - Token odrzucony kodem 450 poza produkcją: podpowiedź, że token z Aplikacji Podatnika działa tylko na produkcji.
ksef sessionbez-epokazuje sesje ze wszystkich środowisk, z opisem.sendna produkcji zostawia na stderr jedną linię śladu (PRODUKCJA, NIP …: wysyłam N faktur).
Poprawki
--key-via enginena OpenSSL 4 (który nie ma engine'ów): jasny komunikat „użyj providera” zamiast mylącego „zły PIN”.
Dokumentacja
- docs/COMMANDS.md: nowa sekcja „Środowiska”; docs/ROADMAP.md: plan kolejnych wersji.
Instalacja
v=0.1.1 a=linux-x64 # arm64: linux-arm64
curl -LO https://github.com/kprzybys/ksef-cli/releases/download/v$v/ksef-$v-$a.tar.gz{,.sha256}
sha256sum -c ksef-$v-$a.tar.gz.sha256 && tar -xzf ksef-$v-$a.tar.gz
install -Dm755 ksef-$v-$a/ksef ~/.local/bin/ksefPełna lista zmian: v0.1.0...v0.1.1