Registr exportu dat a infrastruktury
Aktuální veřejný popis rozsahu, formátů, vazeb, omezení a zemí infrastruktury používané pro zákaznické exporty.
Stáhnout strojově čitelnou specifikaci exportu 1.1 (JSON)
1. Účel a rozsah registru
Registr popisuje standardní přenositelný export zákaznických dat z platformy Nodali. Je provozní specifikací, nikoli zveřejněním produkčního databázového schématu ani verzí právních podmínek. Rozsah konkrétního exportu závisí na aktivovaných modulech, právech zákazníka a ověřeném požadavku.
2. Aktuální způsob poskytnutí exportu
Standardní export se připravuje na žádost oprávněného zákazníka. Zákazník jej obdrží prostřednictvím bezpečného stažení v portálu nebo jiným předem dohodnutým bezpečným způsobem; konkrétní předání může záviset na rozsahu a objemu dat.
Samoobslužné exportní API není v aktuální verzi veřejně garantováno.
3. Kategorie exportovatelných dat
Podle aktivovaných modulů a oprávnění může export zahrnovat zejména:
Provozy a kapacity nemají ve verzi 1.1 samostatnou datovou sadu. Pokud jsou v účtu vedeny, přenášejí se v příslušných atributech, zdrojových datech nebo vlastních polích dep, tras, vozidel a dalších souvisejících objektů; manifest uvede, kde jsou zahrnuty.
- vstupní data dodaná zákazníkem;
- objednávky, zásilky a zákaznické identifikátory;
- dopravce, provozní statusy a jejich zákaznicky relevantní historii;
- trasy, depa, provozy a kapacity;
- nákladová a fakturační data;
- konfiguraci tenantu, mapování importů a konfiguraci konektorů;
- uživatele, role a oprávnění v bezpečně přenositelném rozsahu;
- výstupy, reporty a zákaznická metadata;
- zákazníkem nahrané soubory, pokud má zákazník právo je převzít.
- Technické duplicity se nemusejí exportovat opakovaně. Aktualizace stejného objektu není novým samostatným objektem, je-li zachována relevantní historie.
- Interní provozní a bezpečnostní data provozovatele nejsou součástí exportu.
Následující katalog je závaznou technickou specifikací standardního přenositelného balíčku. Konkrétní export obsahuje jen sady, pro které má zákazník data a oprávnění.
Účet, přístupy a aktivované služby
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
tenant |
account/tenant.ndjson |
id |
8 Poleid, slug, name, status, defaultCurrency, createdAt, updatedAt, deletedAt |
Bez vazeb |
users |
account/users.ndjson |
id |
6 Poleid, email, fullName, status, createdAt, updatedAt |
Bez vazeb |
memberships |
account/memberships.ndjson |
id |
6 Poleid, userId, roleCode, status, createdAt, updatedAt |
userId -> users.id |
entitlements |
account/entitlements.ndjson |
id |
6 Poleid, moduleCode, status, enabledAt, createdAt, updatedAt |
Bez vazeb |
Zákazníci a provozní kmenová data
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
customers |
master/customers.ndjson |
id |
11 Poleid, customerId, name, email, phone, status, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
sourceFeedId -> import-sources.id |
customer-locations |
master/customer-locations.ndjson |
id |
14 Poleid, customerId, locationCode, name, address, latitude, longitude, defaultUnloadingMinutes, accessNote, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
customerId -> customers.id; sourceFeedId -> import-sources.id |
depots |
master/depots.ndjson |
id |
12 Poleid, depotCode, name, address, latitude, longitude, type, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
sourceFeedId -> import-sources.id |
carriers |
master/carriers.ndjson |
id |
7 Poleid, code, name, type, customerSpecific, createdAt, updatedAt |
Bez vazeb |
drivers |
master/drivers.ndjson |
id |
10 Poleid, driverId, name, email, phone, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
sourceFeedId -> import-sources.id |
vehicles |
master/vehicles.ndjson |
id |
10 Poleid, vehicleId, registrationNumber, name, vehicleType, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
sourceFeedId -> import-sources.id |
Objednávky, zásilky, balíky a tracking
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
orders |
logistics/orders.ndjson |
id |
15 Poleid, orderId, customerId, customerLocationId, depotId, status, orderCreatedAt, promisedDeliveryAt, sourceFeedId, firstSeenAt, lastSeenAt, sourceData, createdAt, updatedAt, deletedAt |
customerId -> customers.id; customerLocationId -> customer-locations.id; depotId -> depots.id; sourceFeedId -> import-sources.id |
shipments |
logistics/shipments.ndjson |
id |
14 Poleid, shipmentId, status, carrierId, shippingMethod, originDepotId, promisedDeliveryAt, handedOverAt, deliveredAt, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
carrierId -> carriers.id; originDepotId -> depots.id; sourceFeedId -> import-sources.id |
order-shipments |
logistics/order-shipments.ndjson |
id |
5 Poleid, orderId, shipmentId, relationType, createdAt |
orderId -> orders.id; shipmentId -> shipments.id |
carrier-accounts |
logistics/carrier-accounts.ndjson |
id |
7 Poleid, carrierId, name, authType, status, createdAt, updatedAt |
carrierId -> carriers.id |
parcels |
logistics/parcels.ndjson |
id |
13 Poleid, shipmentId, carrierId, carrierAccountId, trackingNumber, status, lastTrackingEventAt, deliveredAt, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
shipmentId -> shipments.id; carrierId -> carriers.id; carrierAccountId -> carrier-accounts.id; sourceFeedId -> import-sources.id |
tracking-events |
logistics/tracking-events.ndjson |
id |
13 Poleid, parcelId, carrierId, carrierAccountId, trackingNumber, eventTime, rawStatus, normalizedStatus, location, countryCode, sourceFeedId, sourceData, createdAt |
parcelId -> parcels.id; carrierId -> carriers.id; carrierAccountId -> carrier-accounts.id; sourceFeedId -> import-sources.id |
Trasy, zastávky a telematika
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
routes |
operations/routes.ndjson |
id |
19 Poleid, routeId, routeCode, routeDate, depotId, driverId, vehicleId, status, plannedStartAt, plannedEndAt, actualStartAt, actualEndAt, plannedDistanceKm, actualDistanceKm, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
depotId -> depots.id; driverId -> drivers.id; vehicleId -> vehicles.id; sourceFeedId -> import-sources.id |
route-stops |
operations/route-stops.ndjson |
id |
17 Poleid, routeId, orderId, customerLocationId, sequence, stopType, plannedArrivalAt, actualArrivalAt, plannedDepartureAt, actualDepartureAt, address, latitude, longitude, status, sourceData, createdAt, updatedAt |
routeId -> routes.id; orderId -> orders.id; customerLocationId -> customer-locations.id |
telematics-activities |
operations/telematics-activities.ndjson |
id |
13 Poleid, driverId, vehicleId, activityDate, startedAt, finishedAt, distanceKm, durationSeconds, engineOnSeconds, sourceFeedId, sourceData, createdAt, updatedAt |
driverId -> drivers.id; vehicleId -> vehicles.id; sourceFeedId -> import-sources.id |
route-activity-matches |
operations/route-activity-matches.ndjson |
id |
12 Poleid, routeId, telematicsActivityId, driverId, vehicleId, matchMethod, confidence, allocatedDistanceKm, allocatedDurationSeconds, note, createdAt, updatedAt |
routeId -> routes.id; telematicsActivityId -> telematics-activities.id; driverId -> drivers.id; vehicleId -> vehicles.id |
Náklady a provozní výjimky
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
costs |
finance/costs.ndjson |
id |
19 Poleid, costId, relatedEntityType, relatedEntityId, orderId, shipmentId, parcelId, routeId, carrierId, depotId, customerId, costType, amount, currency, costDate, sourceFeedId, sourceData, createdAt, updatedAt |
orderId -> orders.id; shipmentId -> shipments.id; parcelId -> parcels.id; routeId -> routes.id; carrierId -> carriers.id; depotId -> depots.id; customerId -> customers.id; sourceFeedId -> import-sources.id |
exceptions |
quality/exceptions.ndjson |
id |
18 Poleid, entityType, entityId, orderId, shipmentId, parcelId, routeId, carrierId, type, severity, status, message, detectedAt, resolvedAt, source, details, createdAt, updatedAt |
orderId -> orders.id; shipmentId -> shipments.id; parcelId -> parcels.id; routeId -> routes.id; carrierId -> carriers.id |
Vlastní pole a externí reference
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
external-references |
extensions/external-references.ndjson |
id |
9 Poleid, entityType, entityId, sourceFeedId, sourceSystemName, externalKey, externalValue, createdAt, updatedAt |
sourceFeedId -> import-sources.id; entityId -> entity identified by entityType |
custom-field-definitions |
extensions/custom-field-definitions.ndjson |
id |
12 Poleid, entityType, key, label, description, dataType, visibleInReports, searchable, filterable, createdAt, updatedAt, deletedAt |
Bez vazeb |
custom-field-values |
extensions/custom-field-values.ndjson |
id |
7 Poleid, definitionId, entityType, entityId, value, createdAt, updatedAt |
definitionId -> custom-field-definitions.id; entityId -> entity identified by entityType |
Integrace, importy, mapování a matching
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
integrations |
integrations/integrations.ndjson |
id |
10 Poleid, type, name, status, billingStatus, activeFrom, activeTo, portableConfiguration, createdAt, updatedAt |
Bez vazeb |
import-sources |
integrations/import-sources.ndjson |
id |
18 Poleid, integrationId, name, description, connectorType, status, sourceLabel, rawRetentionDays, dependencyTimeoutHours, allowedSenders, expectedFrequency, lastReceivedAt, lastProcessedAt, activeFrom, activeTo, createdAt, updatedAt, deletedAt |
integrationId -> integrations.id |
import-file-rules |
integrations/import-file-rules.ndjson |
id |
12 Poleid, importSourceId, name, filenamePattern, fileType, targetEntity, mappingProfileId, required, enabled, sortOrder, createdAt, updatedAt |
importSourceId -> import-sources.id; mappingProfileId -> mapping-profiles.id |
import-runs |
integrations/import-runs.ndjson |
id |
13 Poleid, importSourceId, triggerType, status, startedAt, finishedAt, recordsReceived, recordsValid, recordsWarning, recordsFailed, message, createdAt, updatedAt |
importSourceId -> import-sources.id |
import-files |
integrations/import-files.ndjson |
id |
15 Poleid, importRunId, importSourceId, fileRuleId, originalFilename, fileType, contentType, sizeBytes, sha256, status, errorMessage, rawExpiresAt, rawDeletedAt, createdAt, updatedAt |
importRunId -> import-runs.id; importSourceId -> import-sources.id; fileRuleId -> import-file-rules.id |
import-row-results |
integrations/import-row-results.ndjson |
id |
13 Poleid, importFileId, rowNumber, status, targetEntity, targetEntityId, sourceData, mappedData, errors, dependencyWaitStartedAt, rawExpiresAt, rawDeletedAt, createdAt |
importFileId -> import-files.id; targetEntityId -> entity identified by targetEntity |
mapping-profiles |
integrations/mapping-profiles.ndjson |
id |
17 Poleid, importSourceId, name, targetEntity, status, version, delimiter, decimalSeparator, dateFormat, timezone, identityTargetField, identityRequired, identityConfiguration, dependencyConfiguration, activatedAt, createdAt, updatedAt |
importSourceId -> import-sources.id |
mapping-rules |
integrations/mapping-rules.ndjson |
id |
16 Poleid, mappingProfileId, sourceField, targetType, targetField, customFieldDefinitionId, externalKey, transformType, transformConfiguration, required, identity, defaultValue, visibleInReports, sortOrder, createdAt, updatedAt |
mappingProfileId -> mapping-profiles.id; customFieldDefinitionId -> custom-field-definitions.id |
matching-rules |
integrations/matching-rules.ndjson |
id |
17 Poleid, importSourceId, name, leftSource, leftEntityType, leftField, rightSource, rightEntityType, rightField, targetEntity, matchType, configuration, priority, confidenceThreshold, enabled, createdAt, updatedAt |
importSourceId -> import-sources.id |
Reporty a historie exportů
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
report-definitions |
reports/report-definitions.ndjson |
id |
9 Poleid, name, module, queryConfiguration, columnsConfiguration, filtersConfiguration, createdByUserId, createdAt, updatedAt |
createdByUserId -> users.id |
scheduled-reports |
reports/scheduled-reports.ndjson |
id |
9 Poleid, reportDefinitionId, frequency, recipients, format, enabled, lastSentAt, createdAt, updatedAt |
reportDefinitionId -> report-definitions.id |
export-jobs |
reports/export-jobs.ndjson |
id |
8 Poleid, reportDefinitionId, exportType, format, status, createdByUserId, createdAt, finishedAt |
reportDefinitionId -> report-definitions.id; createdByUserId -> users.id |
Předplatné, využití, faktury a platby
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
billing-profile |
billing/billing-profile.ndjson |
tenantId |
19 PoletenantId, billingName, companyId, vatId, billingEmail, contactEmail, contactPhone, billingPhone, billingAddress, registrationCountryCode, billingCountryCode, customerType, invoiceLanguage, taxRegime, paymentMode, currency, paymentTermsDays, createdAt, updatedAt |
tenantId -> tenant.id |
payment-methods |
billing/payment-methods.ndjson |
id |
13 Poleid, provider, type, cardBrand, cardLast4, cardExpiryMonth, cardExpiryYear, status, default, testMode, removedAt, createdAt, updatedAt |
Bez vazeb |
subscriptions |
billing/subscriptions.ndjson |
id |
17 Poleid, productType, productCode, status, quantity, unitPrice, currency, activeFrom, currentPeriodStart, currentPeriodEnd, cancelAtPeriodEnd, cancelRequestedAt, cancelledAt, endedAt, createdByUserId, createdAt, updatedAt |
createdByUserId -> users.id |
subscription-events |
billing/subscription-events.ndjson |
id |
10 Poleid, productType, productCode, action, activeTo, unitPrice, currency, prorated, createdByUserId, createdAt |
createdByUserId -> users.id |
monthly-usage |
billing/monthly-usage.ndjson |
id |
9 Poleid, periodStart, periodEnd, processedUnits, orders, shipments, parcels, createdAt, updatedAt |
Bez vazeb |
subscription-usage-segments |
billing/subscription-usage-segments.ndjson |
id |
15 Poleid, subscriptionId, periodStart, periodEnd, activeFrom, activeTo, billableDays, periodDays, monthlyUnitPrice, accruedAmount, currency, status, billingItemKey, createdAt, updatedAt |
subscriptionId -> subscriptions.id |
invoices |
billing/invoices.ndjson |
id |
29 Poleid, invoiceNumber, externalInvoiceId, invoiceType, status, subtotal, tax, total, currency, accountingCurrency, exchangeRate, issuedAt, dueAt, taxableSupplyAt, servicePeriodStart, servicePeriodEnd, paidAt, cancelledAt, variableSymbol, paymentReference, invoiceLanguage, taxRegime, reverseCharge, supplier, customer, vatValidationStatus, taxLegalNoteCode, taxReasonCode, createdAt |
Bez vazeb |
invoice-items |
billing/invoice-items.ndjson |
id |
21 Poleid, invoiceId, lineNumber, productType, productCode, description, servicePeriodStart, servicePeriodEnd, quantity, unit, unitPrice, netAmount, taxRate, taxAmount, grossAmount, currency, prorated, subscriptionId, subscriptionEventId, metadata, createdAt |
invoiceId -> invoices.id; subscriptionId -> subscriptions.id; subscriptionEventId -> subscription-events.id |
payments |
billing/payments.ndjson |
id |
15 Poleid, invoiceId, provider, providerPaymentId, type, status, amount, currency, description, testMode, paidAt, cancelledAt, failedAt, createdAt, updatedAt |
invoiceId -> invoices.id |
payment-refunds |
billing/payment-refunds.ndjson |
id |
14 Poleid, paymentId, invoiceId, provider, providerRefundId, status, amount, currency, reason, requestedByUserId, requestedAt, processedAt, createdAt, updatedAt |
paymentId -> payments.id; invoiceId -> invoices.id; requestedByUserId -> users.id |
Původní zákaznické soubory
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
file-index |
files/index.ndjson |
id |
9 Poleid, importFileId, originalFilename, packagePath, mediaType, sizeBytes, sha256, createdAt, rawExpiresAt |
importFileId -> import-files.id |
original-files |
files/original/* |
packagePath |
1 Polebinary content in the original retained format |
packagePath -> file-index.packagePath |
4. Výstupní soubory a formáty
Manifest uvádí verzi specifikace, rozsah, všechny zahrnuté a vynechané sady, počty záznamů, varování a kontrolní součty.
- Předávací balíček: ZIP.
- Manifest balíčku: manifest.json v UTF-8.
- Strukturované datové sady: JSON Lines (NDJSON), jeden objekt na řádek.
- Zachované původní zákaznické soubory: původní formát v adresáři files/original/.
- Datum a čas: RFC 3339 / ISO 8601 s časovým posunem; datum YYYY-MM-DD.
- Čísla s pevnou přesností jsou řetězce s desetinnou tečkou; peněžní hodnoty mají kód měny ISO 4217.
- Integrita každého souboru: SHA-256 v manifestu.
5. Vazby mezi objekty
Objekty jsou propojeny stabilními identifikátory a referencemi popsanými v manifestu. Manifest uvádí způsob vazby mezi objednávkami, zásilkami, zákazníky, dopravci, trasami, provozy a dalšími zahrnutými objekty. Relevantní historie se zachová, aniž by se každá technická aktualizace vydávala za nový objekt.
6. Verze exportního formátu
Verze registru a exportního formátu 1.1 platí od 22. 7. 2026 a je oddělena od verzí smluvních dokumentů. Změna názvů souborů, povinných polí, významu polí nebo vazeb vyžaduje novou verzi registru; rozšíření o volitelné pole může zůstat zpětně kompatibilní.
7. Známá omezení
- Export obsahuje jen data dostupná v aktivovaných modulech a v rozsahu práv zákazníka.
- Velké nebo složité exporty mohou vyžadovat individuálně dohodnutý bezpečný způsob předání.
- Samoobslužné API ani pevná doba přípravy nejsou veřejně garantovány.
- Export nezahrnuje zdrojový kód, algoritmy, interní bezpečnostní logy, přihlašovací údaje ani data jiných zákazníků.
- Registr není úplným produkčním databázovým schématem.
8. Infrastruktura a jurisdikce
Aplikace a PostgreSQL běží v Dockeru na VPS společnosti VEDOS (dříve WEDOS) v České republice. Zálohy se ukládají na vlastní NAS v sídle Progity v České republice. Veškeré uvedené zpracování tak podléhá české jurisdikci; IP adresy, přesná fyzická adresa, přístupové údaje a síťová topologie se nezveřejňují.
| Typ infrastruktury | Stát / jurisdikce | EU/EHP |
|---|---|---|
| Aplikace v Dockeru — VEDOS VPS | Česká republika | Ano |
| PostgreSQL v Dockeru — VEDOS VPS | Česká republika | Ano |
| Zálohy — vlastní NAS v sídle Progity | Česká republika | Ano |
Přístup je řízen rolemi a oprávněními a komunikace klient–server používá HTTPS.
Žádosti orgánů veřejné moci se právně posuzují. Data nejsou poskytována orgánům třetích států v rozporu s právem EU nebo příslušného členského státu; používají se přiměřená technická, organizační a smluvní opatření.
9. Historie změn registru
- 22. 7. 2026 — verze 1.1: zveřejněn konkrétní ZIP/JSONL formát, katalog datových sad, polí, vazeb a bezpečnostních výluk podle databázového modelu Nodali.
- 21. 7. 2026 — verze 1.0: první vydání registru.
10. Kontakt
Žádost o export nebo dotaz k registru zašlete z oprávněného účtu v portálu nebo na hello@noda.li. Požadavek může být před předáním dat přiměřeně ověřen.