Ne nadarmo se říká, že je lepší dvakrát vyhořet než jednou stěhovat a já stěhuju #PHP autoloader...

Kdysi v dávno jsem v záchvadu náhlého šílenství dostal pocit, že když může být jako deb balíček zabalený phpmyadmin, tak může být zabalené i všechno ode mě.

Po několik pokusech jsem zjistil že drtivá většina php knihoven vůbec není v debianu k dispozici a tak vznikl můj kočkopes https://github.com/VitexSoftware/composer-debian kerý v postinstalu balíčků spouštěl #composer který z internetu stahoval co nebylo jako deb. Jeho nevýhodou však byla nutnost mít vlastní upravený composer.json

Po několika dlouhých letech jsem se naučil programovat tak dobře, že jsem odmítl vynalézat kolo a začal pro cli aplikace používat #Symfony. Mezitím se výrazně rozšířilo množství php balíčků přímo dostupných v #debian a #ubuntu

Tehdy přišlo rázné rozhodnutí nahradit stávající řešení, kdy se k sobě lepily knihovny stažené z netu a balíčkované. Ření bylo na snadě - tj. začít používat standartní debianí přístup který mezitím vyzrál v podobě pkg-php-tools

Těch několik málo php knihoven jichž nejsem autor bylo forknuto a zabaleno https://repo.vitexsoftware.com/pool/main/p/ jako deb balíčky.

Od té doby je většina mého software nefunkční a postupně jeden projekt za druhým je převádím na to co je v debianu standart. Sice je to na první pohled hafo "zbytečné" práce, ale na druhou stranu tím tak splácím technický dluh který se mi nahromadil z doby kdy jsem byl moc akční.

V současnosti probíhají paraelně práce jak na modernizacích autoloaderu, jehož výsledky jsou okamžitě dostupné na repo.vitexsoftware.com tak i na naplnění produkčního repozitáře https://repo.multiflexi.eu určeného již pro koncové uživatele projektu #MultiFlexi, který se tímto doufám vymaní z dětských let a stane se široce používáným běhovým prostředím pro všechny ty udělátka co jsem v průběhu let tak nadšeně stvořil.

#ZeŽivotaVývojáře

10 fresh images are published with #amd64 + #arm64 support:

#VitexSoftware (vitexsoftware/*):
#debian:bookworm, debian:trixie, debian:forky
#ubuntu:jammy, ubuntu:noble

#MultiFlexi (vitexsoftware/multiflexi-*):
• multiflexi-debian:bookworm, multiflexi-debian:trixie, multiflexi-debian:forky
• multiflexi-ubuntu:jammy, multiflexi-ubuntu:noble

Pull from https://hub.docker.com/r/vitexsoftware/

🚀 Nové vydání: Pohoda-Realpad v0.2.0

Právě jsme vydali novou verzi naší integrace mezi účetním systémem Pohoda a CRM Realpad s důležitými vylepšeními:

✨ Klíčové novinky: • Standardizované reporty - implementace MultiFlexi schema pro lepší kompatibilitu • Vylepšené zpracování chyb - robustnější handling připojení a API volání • Strukturované metriky - detailní sledování operací a výkonnosti • Automatické testování - nová testovací sada pro validaci (146 asercí)

📊 Nový formát reportů zahrnuje:

Status operace (success/error/warning)
Časové razítko v ISO8601 formátu
Artefakty (vygenerované soubory, endpointy)
Provozní metriky (počet plateb, HTTP kódy, statistiky)
🔧 Technické výhody:

Lepší integrace s MultiFlexi platformou
Strukturované monitorování operací
Konzistentní error handling
PHP 8.4+ kompatibilita s PSR-12 standardy
📦 Stažení: https://github.com/Spoje-NET/pohoda-realpad/releases/tag/v0.2.0

#PHP #Pohoda #Realpad #Integration #OpenSource #AccountingSoftware #CRM #MultiFlexi

Release v0.2.0 - MultiFlexi Report Format Compliance · Spoje-NET/pohoda-realpad

🚀 New Features MultiFlexi Report Format Compliance Updated report structure to conform to the MultiFlexi schema Enhanced error handling with proper exception handling for connection failures Compr...

GitHub

Konečně tu máme oficiální https://repo.multiflexi.eu/

Na rozdíl od svého předchůdce do kterého se nový balíček přidal po každém pushi do gitu, obsahuje nový repozitář pouze stabilní verze balíčků, tj. ty které byly ozkoušeny a zreleasovány.

Stávající http://repo.vitexsoftware.com/ tedy nyní začne plnit "testing" roli.

Pořádné rozdělení testovacího a produkčního prostředí je jedním ze základů stability produkovaného software a měl bych se stydět, že mi to trvalo tak dlouho se k tomu dokopat.

Je to další důležitý krok k oficiálnímu vydání #MultiFlexi 2.0

jehož hlavním přínosem bude že už mi konečně začne vydělávat nějaký prachy :D

#Debian #Ubunutu

Architektura #MultiFlexi aneb roztrhanl jsem bumbrlíčka

Ekosystém MultiFlexi se skládá z několika vzájemně propojených projektů, z nichž každý plní specifickou roli v celkové architektuře. Níže je uveden přehled hlavních členských projektů a jejich vztahů:
Základní komponenty

Základní knihovna PHP poskytující hlavní obchodní logiku, datové modely a sdílené nástroje pro platformu MultiFlexi. Všechny ostatní komponenty závisí na tomto balíčku pro základní funkcionalitu.

Obsahuje definice schémat databáze a migrační skripty pro MultiFlexi. Používá se serverem a dalšími komponentami k inicializaci a aktualizaci struktury databáze.

Rozhraní příkazového řádku pro správu zdrojů MultiFlexi (aplikace, společnosti, uživatelé, úlohy atd.). Spoléhá na základní knihovnu a interaguje s databází.

Hlavní backendový server poskytující REST API a webové uživatelské rozhraní pro MultiFlexi. Orchestruje plánování úloh, správu uživatelů a integruje se s hlavní knihovnou a databází.

Vyhrazená služba nebo agent zodpovědný za provádění úloh a úkolů podle plánu serveru. Komunikuje se serverem a může běžet v izolovaných prostředích.

Kolekce Ansible poskytující playbooky a role pro nasazení a správu komponent MultiFlexi v různých prostředích.

Meta-repozitář, který agreguje všechny výše uvedené projekty a poskytuje jednotný zdroj pro vývoj, nasazení a integraci.

Vztahy mezi projekty

Klíčová knihovna je závislostí pro CLI, server a exekutor.

Databázový projekt poskytuje schéma a migrace pro všechny komponenty, které vyžadují trvalé úložiště.

CLI a server interagují s databází i s knihovnou jádra, ale obsluhují různá uživatelská rozhraní (příkazový řádek vs. web/API).

Exekutor je spravován serverem a je zodpovědný za bezpečné a izolované spouštění úloh.

Kolekce ansible se používá k automatizaci nasazení a konfigurace všech komponent.

#ZeŽivotaVývojáře #OpenSource

Novinky ve vývoji #MultiFlexi za červen

Hlavní změny a funkce:

1. Aktualizace datového modelu společnosti

• V celé aplikaci nahrazen „code“ za „slug“ pro identifikaci společnosti
• Přidána podpora pro vyhledávání společnosti podle názvu a slugu
• Vylepšená manipulace s daty společnosti s více možnostmi identifikátoru

2. Vývoj nástroje CLI

• Přidány komplexní příkazy CLI pro správu entit MultiFlexi
• Zaveden nástroj multiflexi-cli s dokončovacími skripty
• Přidány příkazy pro:
• Správa úloh (včetně akce odstranění)
• Správa společnosti (s akcí odstranění)
• Správa šablon RunTemplate (s akcí plánování)
• Kontrola stavu aplikace
• Správa front

3. Vylepšení šablon RunTemplate

• Přidána funkce plánování pro spouštění šablon RunTemplate jako úloh
• Implementováno spuštění příkazu setup po uložení konfigurace
• Přidána kontrola aktivního plánování s ověřením a přepsáním
• Vylepšená manipulace s konfigurací pro aplikace

4. Vylepšení API

• Přidány koncové body ověřování (/logout, přihlášení s odpovědí tokenu)
• Vylepšené odpovědi JSON s ID šablony runtemplate pro konzistenci
• Vylepšená manipulace s chybami a ověřování dat

5. Databáze a infrastruktura

• Přidána podpora UUID v celém systému
• Aktualizované typy polí v tabulce conffield pro zajištění konzistence
• Vylepšená manipulace a identifikace databáze SQLite
• Vylepšená manipulace s pověřeními a logika dotazů

6. Vývoj a testování

• Přidáno ověření schématu JSON a závislosti
• Vylepšené standardy kódování a dokumentace
• Vylepšená robustnost testování
• Přidána podpora pro konfigurovatelná nastavení aplikace

7. Správa balíčků

• Aktualizovány závislosti na novější verze
• Přidány závislosti PHP pro intl a SimpleXML
• Vylepšená logika instalace artefaktů s prioritizací

8. Dokumentace

• Aktualizovaná dokumentace a návody k použití CLI
• Přidána dokumentace k instalaci RedHat
• Vylepšená dokumentace pro manipulaci s příkazy

#OpenSource #PHP

Pokud je vaše kasa povětšinou prázdná, toto je prográmek právě pro vás !
Peníze vám sice neušetří, ale ušetří vám čas a nervy, až se budete zase v dubnu snažit dát dokupy účetnictví před podáním přiznání.

Nový nástroj pro #AbraFlexi zajistí aby vám v pokladně nezbyly žádné peníze i účetně  

https://github.com/VitexSoftware/abraflexi-cashier/

Každý týden pro částku přijatou na pokladně vystaví výdajový doklad.

Nástroj je určen pro podnikatele kteří peníze z pokladny vybírají ale zapomínají ten výběr zapsat do účetnictví.

#OpenSource #FinTech #MultiFlexi

GitHub - VitexSoftware/abraflexi-cashier: Cash Tools for AbraFlexi

Cash Tools for AbraFlexi. Contribute to VitexSoftware/abraflexi-cashier development by creating an account on GitHub.

GitHub

Už to bude nějaký čas co jsem si zoufal že se neumím přihlásit do API Česká spořitelna . Podle pravidla "Leze, leze po železe nedá pokoj až tam vleze se mi povedlo pochopit jak to maj vlastně vymyšleno a vytvořit software který by připojení umožnil. Nyní je k dispozici nejen #PHP knihovna ale i aplikace csas-authorize, která má na starost získávanání přístupových tokenů.

Nyní jsem ve fázi vývoje kdy do běhového prostředí #MultiFlexi přidávám právě podporu pro csas-authorize. Díky tomu bude možné aby úlohy pracující s API spořky před spuštěním obdržely přístupový token.

Souběžně s tímto již běží vývoj aplikace https://github.com/Spoje-NET/pohoda-kb která má za úkol importovat bankovní výpisy do STORMWARE s.r.o. #Pohoda z Komerční banka

Práce komerčky s přístupovými tokeny je podobná tomu jak to má Erste a tudíž nejspíše zase vznikne aplikace která se o získávání a co půlroční prodlužování přístupových tokenu bude starat.

#ZeŽivotaVývojáře #OpenSource #FinTech #Komerčka #Spořka

GitHub - Spoje-NET/pohoda-kb

Contribute to Spoje-NET/pohoda-kb development by creating an account on GitHub.

GitHub

Zhruba před měsícem jsem se tu trápil nad přístupovými tokeny k #API Spořky. No nakonec metodou pokusu a omylu prokládaných v okamžicích nejvyššího zoufalství obětovnou četbou dokumentace se mi za pomoci několika internetových dobrodinců povedlo dobrat k funkčnímu prototypu. Ten je taktéž k dispozici všem odvážlivcům k prozkoumání:

https://github.com/Spoje-NET/csas-authorize

Udělátko pracuje se dvěmi sql tabulkami: application & token:

Do Aplikce překopírujete prakticky všechno z vašeho vývojářského účtu https://developers.erstegroup.com #ErsteGroup a s tímto nastavením je již možné si vyžádat přístupový doken a nechat jej potvrdit. Jakmile je autorizace (v produkci pomocí čipové karty paní účetní) potvrzena, je možné na jejím základě 180 dní vystavovat pět minut trvající přístupové tokeny.

Že to pak funguje a co to vlastně vrací je možné v odkazovaném prográmku také vyzkoušet.

No a když už se mnou #api začalo bavit, získal jsem odpovědi serveru pro přehled účtů, zůstatek, vypisy a transakce. (s platebními kartami nikde nepracujem, takže pokud by k nim příslušné endpointy někomu v knihovně chyběly, nechť pošle pull request)

Nyní už zbývají dvě drobosti: Tou první je napsat aplikaci, která stahne bankovní pohyby a výpisy a naimportuje je do Pohody a druhou "drobností" bude vytvoření mechanizmu který tomuto prográmku dodával čerstvé přístupové klíče. Zatím to vypadá že z toho vznikne nový specializovaný doplňek pro #MultiFlexi

#ZeŽivotaVývojáře #PHP #ČeskáSpořitelna #Automatizace #OpenSource #FinTech

GitHub - Spoje-NET/csas-authorize

Contribute to Spoje-NET/csas-authorize development by creating an account on GitHub.

GitHub
Command Line Utilities