The ingest model
Vista Gateway accepts ISO 19848 data, other registered JSON data types, and attachments. They share the same concepts for identifying who sends the data, which customer it is for, and which asset it concerns.
Core concepts
| Concept | Meaning |
|---|---|
| Customer (tenant) | The customer on whose behalf data is sent. This is separate from the asset identifier. |
| Data provider | The party sending data on behalf of a customer. When sending your own data, you are both customer and provider. |
| Connection | The relationship between one customer and one data provider, authenticated by its API key. |
| Data governance policy | Defines the rights and restrictions governing how submitted data may be used and shared on behalf of a customer. |
| Asset | The ship or other unit the data concerns, identified by an asset ID. |
| Data type | A versioned definition of a JSON payload, such as a checklist or an ISO 19848 package type. |
| Package | An individual JSON submission. Successful ingest returns a Gateway-assigned packageId. |
| Attachment | A file uploaded separately and linked to an existing package. |
Customers, connections, and assets
The API key identifies the connection between a customer and a data provider. That connection is not scoped to a ship or a data type. The same connection can send different data types for multiple assets belonging to that customer. A provider serving another customer uses that customer's separate key, even if the payload structure is identical.
The asset ID describes which asset the data concerns; it does not determine
which customer the data is sent for. ISO 19848 packages carry the asset ID
in Package.Header.ShipID. The experimental data-type route carries it in the
URL as {assetId}.
For example, a provider can send measurements and checklists for several ships belonging to customer A through A's connection. Data for customer B must use B's connection instead. Both connections use keys issued for the target environment. See authentication for selecting and storing keys.
Data governance policies
Authentication and data governance answer different questions. The connection identifies who is sending data and which customer it is for. A data governance policy defines who may use that data and under what conditions. The API key remains scoped to the customer + data provider connection, not to the policy.
Each ingested package is associated with a data governance policy managed on behalf of the customer. Depending on the agreed rights, a policy can restrict access to specified applications, permit broader use within DNV with only anonymized and aggregated use externally, or allow unrestricted use and sharing. Sending data to the Gateway does not automatically make it available to every DNV service.
The Gateway uses these policies to control access to submitted data. Services that receive the data must also respect its usage and onward-sharing restrictions. Contact your DNV representative to clarify the rights that apply to your data or to arrange changes to them.
Data types and packages
A data type defines the format; a package is one submission in that format. Many packages can use the same data type and version. Registered types can have a JSON schema and additional validation rules that apply to incoming payloads.
An experimental data type supports an agreed format while it is being developed. The type must be registered before packages can be submitted. Its version identifies the payload contract, not an individual submission or an asset.
The Gateway's packageId identifies the accepted submission. Your optional
external ID connects it to a source-system record, while a correlation ID can
connect related requests. Those metadata fields are not a deduplication contract;
see delivery and batching.
Packages and attachments
A report, image, or raw export can be uploaded as an attachment after its parent
JSON package has been ingested. The parent package supplies the context, and its
Gateway-assigned packageId links the file to that submission.
The parent and attachment use the same connection. An attachment has its own
attachmentPackageId, separate from the parentPackageId. Accepting the parent
does not mean the file has also been uploaded: these are separate requests.
Why ISO 19848 uses two package types
ISO 19848 separates channel definitions from measurements. Vista Gateway accepts
both as JSON packages through POST /ISO19848/.
The DataChannelList describes what a measurement means: its identifier, format, units, and other metadata. TimeSeriesData carries the measurements or events themselves. Keeping the description separate avoids repeating that metadata in every measurement package.
| Package | Contents |
|---|---|
DataChannelList | Channel identifiers, mappings, and properties such as format, units, and range |
TimeSeriesData | Timestamped measurement rows (TabularData) or individual events (EventData) |
A channel's ShortID connects a source-system identifier to its standardized
LocalID. TimeSeriesData can therefore use source identifiers while retaining
the context supplied by the channel list.
Configuration references
The configuration reference (ID and TimeStamp) connects measurements to a
particular DataChannelList revision. Sending the list before the measurements
allows the Gateway to interpret the referenced channels. An explicit reference
also avoids ambiguity when channel definitions change.
The reference is defined in Package.Header.DataChannelListID in the
DataChannelList and repeated in DataConfiguration in the corresponding
TimeSeriesData entry. It is not the Gateway's packageId, which identifies an
individual submission.
The channel list and measurements referencing it are sent through the same connection.
Related
- Set up ISO 19848 ingest applies these concepts to an integration.
- Ingest other data types covers registered experimental JSON formats.
- Upload attachments links files to ingested packages.
- Delivery and batching explains acceptance, duplicates, and sampling frequency.
- ISO 19848 overview introduces the underlying standard.