KPAR Archive Validation
This page summarizes requirements for uploaded .kpar archives accepted by
Sysand Index.
Project Metadata¶
publisheris set in.project.jsonand conforms to Sysand Index publisher rules.publisherin.project.jsonmatches a username or organization in Sysand Index.nameis set in.project.jsonand conforms to Sysand Index project name rules.licenseis set in.project.jsonand is a valid SPDX license expression.All other fields are valid for their respective types. Most of these fields are IRIs.
Archive Layout¶
.project.jsonand.meta.jsonare present in the root of the ZIP file..meta.jsoncontains ametamodelfield matchinghttps://www.omg.org/spec/KerML/YYYYMMXXorhttps://www.omg.org/spec/SysML/YYYYMMXX. TheYYYYMMportion must be a valid year/month; the final two digits are not calendar-day validated.
LICENSES/is present and contains a.txtfile for each mentioned license.LICENSES/contains no additional.txtfiles other than those for the mentioned licenses.The KPAR contains no additional unknown files other than:
LICENSES/*.txtfiles,README.md,CHANGELOG.md,.sysmland.kermlfiles mentioned in.meta.json.
Paths and ZIP Structure¶
The ZIP uses the DEFLATE compression method.
The ZIP contains no nested ZIP archives.
The ZIP is not a ZIP bomb.
The ZIP contains no symlinks.
ZIP entry paths do not contain relative path components such as
.or...
File Integrity¶
Hashes of all source files are included in
.meta.json.Hashes use SHA256.
Hashes match the referenced file contents.
The
indexfield in.meta.jsondoes not mention files that are absent from the checksum field in.meta.json.All files referenced in
checksumandindexin.meta.jsonare present in the archive.Files referenced in
indexuse the extension that matches themetamodelkind:.sysmlfor SysML and.kermlfor KerML.
File Safety¶
Files in the KPAR do not have extra permissions, such as executable bits.
The archive contains no executable files, such as Windows, macOS, or Linux binaries.
Files do not masquerade as another type. For example, a
.sysml,.kerml, or.mdfile must actually contain that kind of content rather than a script or binary in disguise.
Model Validity¶
All symbols included in the
.meta.jsonindexfield are present in their respective files.Packaged
.sysmland.kermlfiles are legal models and produce no model errors.