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.2 (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:
Verze 1.2 přidává samostatné datové sady pro terénní pracovníky, zásahy, plánování, dispečerské změny, mobilní práci a GPS body. Export obsahuje jen data skutečně vedená pro daného zákazníka a dosud uchovaná podle jeho retenčního nastavení.
- 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 |
field-workers |
master/field-workers.ndjson |
id |
15 Poleid, workerId, userId, driverId, name, email, phone, status, homeDepotId, timeZone, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt |
userId -> users.id; driverId -> drivers.id; homeDepotId -> depots.id; sourceFeedId -> import-sources.id |
skills |
master/skills.ndjson |
id |
8 Poleid, code, name, description, status, createdAt, updatedAt, deletedAt |
Bez vazeb |
field-worker-skills |
master/field-worker-skills.ndjson |
id |
8 Poleid, fieldWorkerId, skillId, level, validFrom, validTo, createdAt, updatedAt |
fieldWorkerId -> field-workers.id; skillId -> skills.id |
field-worker-availability |
master/field-worker-availability.ndjson |
id |
8 Poleid, fieldWorkerId, availableFrom, availableTo, availabilityType, note, createdAt, updatedAt |
fieldWorkerId -> field-workers.id |
worker-resources |
master/worker-resources.ndjson |
id |
9 Poleid, fieldWorkerId, vehicleId, resourceType, resourceCode, validFrom, validTo, createdAt, updatedAt |
fieldWorkerId -> field-workers.id; vehicleId -> vehicles.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 |
21 Poleid, routeId, routeCode, routeDate, depotId, driverId, vehicleId, status, plannedStartAt, plannedEndAt, actualStartAt, actualEndAt, plannedDistanceKm, actualDistanceKm, sourceFeedId, sourceData, createdAt, updatedAt, deletedAt, dispatchPlanVersionId, planningRunId |
depotId -> depots.id; driverId -> drivers.id; vehicleId -> vehicles.id; sourceFeedId -> import-sources.id; dispatchPlanVersionId -> dispatch-plan-versions.id; planningRunId -> optimisation-runs.id |
route-stops |
operations/route-stops.ndjson |
id |
22 Poleid, routeId, orderId, customerLocationId, sequence, stopType, plannedArrivalAt, actualArrivalAt, plannedDepartureAt, actualDepartureAt, address, latitude, longitude, status, sourceData, createdAt, updatedAt, serviceVisitId, dispatchPlanVersionId, timeWindowStart, timeWindowEnd, plannedServiceDurationSeconds |
routeId -> routes.id; orderId -> orders.id; customerLocationId -> customer-locations.id; serviceVisitId -> service-visits.id; dispatchPlanVersionId -> dispatch-plan-versions.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 |
telematics-location-points |
operations/telematics-location-points.ndjson |
id |
20 Poleid, tenantId, occurredAt, receivedAt, fieldWorkerId, driverId, vehicleId, mobileDeviceId, trackingSessionId, routeId, serviceVisitId, latitude, longitude, accuracyM, speedMps, headingDegrees, altitudeM, source, sequenceNo, createdAt |
tenantId -> tenant.id; fieldWorkerId -> field-workers.id; driverId -> drivers.id; vehicleId -> vehicles.id; mobileDeviceId -> mobile-devices.id; trackingSessionId -> location-tracking-sessions.id; routeId -> routes.id; serviceVisitId -> service-visits.id |
derived-route-geometries |
operations/derived-route-geometries.ndjson |
id |
12 Poleid, trackingSessionId, routeId, fieldWorkerId, vehicleId, startedAt, endedAt, encodedGeometry, distanceKm, pointCount, calculationMethod, createdAt |
trackingSessionId -> location-tracking-sessions.id; routeId -> routes.id; fieldWorkerId -> field-workers.id; vehicleId -> vehicles.id |
Terénní zásahy, plánování a mobilní práce
| Datová sada | Soubor v balíčku | Primární klíč | Pole | Vazby |
|---|---|---|---|---|
service-jobs |
field/service-jobs.ndjson |
id |
14 Poleid, jobId, customerId, customerLocationId, orderId, title, description, priority, status, requiredSkills, requiredResources, createdAt, updatedAt, deletedAt |
customerId -> customers.id; customerLocationId -> customer-locations.id; orderId -> orders.id |
service-visits |
field/service-visits.ndjson |
id |
16 Poleid, visitId, serviceJobId, customerLocationId, status, priority, timeWindowStart, timeWindowEnd, plannedDurationSeconds, actualStartAt, actualEndAt, assignedFieldWorkerId, assignedVehicleId, createdAt, updatedAt, deletedAt |
serviceJobId -> service-jobs.id; customerLocationId -> customer-locations.id; assignedFieldWorkerId -> field-workers.id; assignedVehicleId -> vehicles.id |
dispatch-plans |
field/dispatch-plans.ndjson |
id |
9 Poleid, planId, serviceDate, status, timeZone, publishedVersionId, createdByUserId, createdAt, updatedAt |
publishedVersionId -> dispatch-plan-versions.id; createdByUserId -> users.id |
dispatch-plan-versions |
field/dispatch-plan-versions.ndjson |
id |
9 Poleid, dispatchPlanId, versionNumber, status, source, optimisationRunId, publishedAt, createdByUserId, createdAt |
dispatchPlanId -> dispatch-plans.id; optimisationRunId -> optimisation-runs.id; createdByUserId -> users.id |
dispatch-assignments |
field/dispatch-assignments.ndjson |
id |
12 Poleid, dispatchPlanVersionId, serviceVisitId, fieldWorkerId, vehicleId, routeId, sequence, plannedArrivalAt, plannedDepartureAt, status, createdAt, updatedAt |
dispatchPlanVersionId -> dispatch-plan-versions.id; serviceVisitId -> service-visits.id; fieldWorkerId -> field-workers.id; vehicleId -> vehicles.id; routeId -> routes.id |
dispatch-events |
field/dispatch-events.ndjson |
id |
9 Poleid, dispatchPlanId, dispatchPlanVersionId, eventType, actorUserId, actorFieldWorkerId, occurredAt, details, createdAt |
dispatchPlanId -> dispatch-plans.id; dispatchPlanVersionId -> dispatch-plan-versions.id; actorUserId -> users.id; actorFieldWorkerId -> field-workers.id |
dispatch-exceptions |
field/dispatch-exceptions.ndjson |
id |
14 Poleid, dispatchPlanId, serviceVisitId, fieldWorkerId, vehicleId, type, severity, status, message, detectedAt, resolvedAt, details, createdAt, updatedAt |
dispatchPlanId -> dispatch-plans.id; serviceVisitId -> service-visits.id; fieldWorkerId -> field-workers.id; vehicleId -> vehicles.id |
optimisation-runs |
field/optimisation-runs.ndjson |
id |
13 Poleid, runId, productCode, serviceDate, status, triggerType, matrixProvider, vehicleCount, visitCount, startedAt, finishedAt, requestedByUserId, createdAt |
requestedByUserId -> users.id |
optimisation-run-inputs |
field/optimisation-run-inputs.ndjson |
id |
6 Poleid, optimisationRunId, inputType, entityId, inputData, createdAt |
optimisationRunId -> optimisation-runs.id |
optimisation-run-results |
field/optimisation-run-results.ndjson |
id |
7 Poleid, optimisationRunId, resultType, entityId, sequence, resultData, createdAt |
optimisationRunId -> optimisation-runs.id |
visit-status-events |
field/visit-status-events.ndjson |
id |
9 Poleid, serviceVisitId, fieldWorkerId, status, occurredAt, latitude, longitude, note, createdAt |
serviceVisitId -> service-visits.id; fieldWorkerId -> field-workers.id |
work-logs |
field/work-logs.ndjson |
id |
10 Poleid, serviceVisitId, fieldWorkerId, startedAt, endedAt, durationSeconds, workType, note, createdAt, updatedAt |
serviceVisitId -> service-visits.id; fieldWorkerId -> field-workers.id |
checklist-responses |
field/checklist-responses.ndjson |
id |
10 Poleid, serviceVisitId, fieldWorkerId, checklistCode, itemCode, responseType, responseValue, answeredAt, createdAt, updatedAt |
serviceVisitId -> service-visits.id; fieldWorkerId -> field-workers.id |
visit-notes |
field/visit-notes.ndjson |
id |
8 Poleid, serviceVisitId, authorUserId, authorFieldWorkerId, note, visibility, createdAt, updatedAt |
serviceVisitId -> service-visits.id; authorUserId -> users.id; authorFieldWorkerId -> field-workers.id |
material-usages |
field/material-usages.ndjson |
id |
9 Poleid, serviceVisitId, fieldWorkerId, materialCode, description, quantity, unit, createdAt, updatedAt |
serviceVisitId -> service-visits.id; fieldWorkerId -> field-workers.id |
proof-of-service |
field/proof-of-service.ndjson |
id |
8 Poleid, serviceVisitId, type, fileId, capturedAt, capturedByFieldWorkerId, metadata, createdAt |
serviceVisitId -> service-visits.id; fileId -> original-files.id; capturedByFieldWorkerId -> field-workers.id |
customer-confirmations |
field/customer-confirmations.ndjson |
id |
8 Poleid, serviceVisitId, confirmationType, confirmedByName, confirmedAt, signatureFileId, note, createdAt |
serviceVisitId -> service-visits.id; signatureFileId -> original-files.id |
mobile-devices |
field/mobile-devices.ndjson |
id |
10 Poleid, fieldWorkerId, platform, appVersion, deviceModel, status, firstSeenAt, lastSeenAt, createdAt, updatedAt |
fieldWorkerId -> field-workers.id |
location-tracking-sessions |
field/location-tracking-sessions.ndjson |
id |
12 Poleid, fieldWorkerId, driverId, vehicleId, mobileDeviceId, routeId, startedAt, endedAt, status, pointIntervalSeconds, createdAt, updatedAt |
fieldWorkerId -> field-workers.id; driverId -> drivers.id; vehicleId -> vehicles.id; mobileDeviceId -> mobile-devices.id; routeId -> routes.id |
customer-notification-events |
field/customer-notification-events.ndjson |
id |
10 Poleid, serviceVisitId, channel, templateCode, status, recipientMasked, sentAt, deliveredAt, failedAt, createdAt |
serviceVisitId -> service-visits.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 |
14 Poleid, periodStart, periodEnd, processedUnits, orders, shipments, parcels, createdAt, updatedAt, serviceVisits, successfulPlanRuns, successfulRoutesRuns, activeVehicleDays, activeWorkerDays |
Bez vazeb |
subscription-usage-segments |
billing/subscription-usage-segments.ndjson |
id |
22 Poleid, subscriptionId, periodStart, periodEnd, activeFrom, activeTo, billableDays, periodDays, monthlyUnitPrice, accruedAmount, currency, status, billingItemKey, createdAt, updatedAt, quantity, unit, dailyUnitPrice, activeVehicleCount, activeWorkerCount, usageDate, productCode |
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.2 platí od 29. 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
- 29. 7. 2026 — verze 1.2: 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.