Skip to content

Private Properties

Some software that implements the Frictionless Data specifications may need to store additional information on the various Frictionless Data descriptors.

For example, a data registry that provides metadata via datapackage.json may wish to set an internal version or identifier that is system-specific, and should not be considered as part of the user-generated metadata.

Properties to store such information should be considered “private”, and by convention, the names should be prefixed by an underscore _.

Implementations

There are no known implementations at present.

Specification

On any Frictionless Data descriptor, data that is not generated by the author/contributors, but is generated by software/a system handling the data, SHOULD be considered as “private”, and be prefixed by an underscore _.

To demonstrate, let’s take the example of a data registry that implements datapackage.json for storing dataset metadata.

A user might upload a datapackage.json as follows:

{
"name": "my-package",
"resources": [
{
"name": "my-resource",
"data": [ "my-resource.csv" ]
}
]
}

The registry itself may have a platform-specific version system, and increment versions on each update of the data. To store this information on the datapackage itself, the platform could save this information in a “private” _platformVersion property as follows:

{
"name": "my-package",
"_platformVersion": 7
"resources": [
{
"name": "my-resource",
"data": [ "my-resource.csv" ]
}
]
}

Usage of “private” properties ensures a clear distinction between data stored on the descriptor that is user (author/contributor) defined, and any additional data that may be stored by a 3rd party.