KENNIS IN VERBINDING / ANALYSE 03.10.2026
TRACEERBAARHEID

architecture.md

Feitelijke analyse op 3 oktober 2026. Codebevindingen zijn geen garantie voor foutloos of daadwerkelijk gebruikt runtimegedrag.

← Alle bronnen

Architectuur en dependencies zoals aangetroffen

Runtimegrens

/etc/apache2/sites-enabled/lmf-app-le-ssl.conf serveert /var/bestelsysteem/lmf-app, een symlink naar /mnt/storage/lmf_app/build. /api gaat naar XLSLMFHandler, /config.js naar ConfigLMFHandler, /map naar Map; /index.html gebruikt APPHandler. De React-app stelt in App.js:21 de Axios-basis in op https:// + window.BASE_URL + /api. ConfigLMFHandler rendert daarvoor de hostname in een JavaScript-template.

LMFSiteHandler en XLS::AanmeldenLMF zijn buurapplicaties voor de publieke website/aanmelding, geen React-logistiekservicelaag. XLS::Logistiek is een ouder HTML/logistieksysteem en moet niet met XLS::LMF worden vereenzelvigd.

XLSLMFHandler::handler maakt XLS::Base en params, leest de body, valideert login/token, roept LMF::handle_request aan, sluit Base en serialiseert JSON. Het endpoint is het tweede niet-lege URI-segment (/api/<request>). request_method, url_param en requests worden ook doorgegeven. LMF gebruikt vooral $args->{base}->{DBH}, params en $args->{user}; er is geen afzonderlijke ORM voor logistieke entiteiten.

Directe dependencies van LMF.pm

| Dependency | Soort | Werkelijk gebruik | |---|---|---| | strict, warnings; vervolgens no warnings | taal/infrastructuur | warnings voor de module weer uitgeschakeld | | Data::GUID | utility | GUID's voor pakbon/leveringsidentiteit, ook tijdens overzichten | | XML::TreePP | configuratie | XML uit klant-/leverancierkoppelingen naar loginconfig | | Data::Dumper | diagnose | logging/debug, onder meer webhook | | XLS::Datum | utility | vandaag/today, JSON-datum/tijdformaten | | XLS::Postcode | adresservice | postcode → lookup | | XLS::LMF::EmballageControl | business | live dispatch van emballage_hub_control | | XLS::LMF::RoutePlanImporter | business | geladen en factory aanwezig, geen actieve call vanuit route_plan | | Keana::API | externe businessintegratie | keana_webhook: authenticatie en tracking ophalen | | XLS::Base-object (geïnjecteerd) | infrastructuur | DBH en ip_info, geen use XLS::Base in LMF zelf |

Geen require in de onderzochte LMF-module. De exacte packagecalls en interne aanroepen staan per functie in backend. Directe DBI-methoden: prepare/execute/fetchrow(hashref/array), selectrow/selectall-helpers, do, commit/rollback/begin_work; SQL is PostgreSQL-specifiek.

Indirecte dependencies

  • XLSLMFHandler: Apache2/APR en CGI/cookies voor HTTP; JSON; XLS::Base/LMF; Crypt::Digest::SHA256 voor login; MIME::Base64 voor cookiecredentials; Redis-object voor gedeelde infrastructuur. Daarnaast imports HTTP::Date, HTML::Template::Expr, Perf::Stopwatch, Digest::MD5, Storable, Cache::Memcached. Een import bewijst geen gebruik in deze requestflow. Redis wordt in de handler geïnstantieerd, zonder lokale use Redis; dat veronderstelt preloading elders.
  • XLS::Base → XLS::Base::Connection → DBI/Apache::DBI/PostgreSQL. De algemene Base-module laadt ook Admin, AdminBaseClass, Ambassade, Besteller, Data, Leverancier, Lokatie, Partner, Overzicht, TemplateResolver en XLSCRUD::Form. Dat maakt ze transitive load-dependencies, geen aangetoonde logistieke functionele aanroepen. Verdere infra: XML::Simple, Storable, MIME::* , Geo::IPinfo, Encode, Sys::Hostname, Imager::QRCode, File::Read, LWP::UserAgent, JSON, cache/request-trace.
  • XLS::Datum → Time::Local, Date::Calc, Regexp::Common, Digest::SHA, POSIX.
  • XLS::Postcode → Net::PostcodeNL::WebshopAPI. Keana::API → URI, LWP::UserAgent, HTTP::Request, JSON.
  • EmballageControl → Digest::SHA voor ketenidentiteit, POSIX/Time::Local voor datumvalidatie; geen externe API of writes. RoutePlanImporter gebruikt de geïnjecteerde DBH, geen optimizerlibrary.
  • React: React/ReactDOM, React Router, Redux/React Redux/Redux Thunk, Axios, MUI, date-fns, chartcomponenten, react-html5-camera-photo, handtekeningcomponent, styled-components, @react-google-maps/api. Frontendregister bewaart de oorspronkelijke bronpaden.

Deze afbakening inventariseert de eigen directe imports en functioneel relevante transitieve ketens; niet de volledige CPAN/NPM-libraryimplementaties.

Drie routemodellen die niet hetzelfde zijn

  1. route + route_lokatie: vaste route met locatie/leverancier en nummer, gekoppeld via lmf_user.route.
  2. stops: response opgebouwd uit pakbonnen en route_lokatie, samengestelde string-ID en HUB/klantflags. Geen SELECT op lmf_stop.
  3. RoutePlanImporter: module voor gedateerde plannen in lmf_route + lmf_stop + lmf_stop_leverancier_pakbon; tests en schema bestaan, maar de huidige LMF-dispatch roept hem niet aan.

Dependencydiagram · Frontend/backend/database.

Legenda · bewijs en verbindingen

Bewijsstatus

CONFIRMED Aangetroffen in bron of catalogus; niet automatisch foutloos livegedrag.

LIKELY Gevolgtrekking met onderbouwing.

UNCLEAR Onvoldoende bewijs voor deze koppeling of werking.

NOT FOUND Niet aangetroffen binnen de onderzochte scope.

FUTURE / PROPOSED Voorstel; geen huidige functionaliteit.

Relaties

direct · Aangetroffen rechtstreekse referentie of aanroep.

derived · Afgeleid door selectie, groepering of berekening.

conditional · Alleen bij de genoemde voorwaarden of aanwezige bronverwijzing.

not active · Code/model aanwezig, niet aangesloten op het beschreven pad.

unclear · Verbinding niet vastgesteld.