mirror of
https://github.com/gocsaf/csaf.git
synced 2025-12-22 05:40:11 +01:00
* Create ROLIE feed if summaries are empty * Formatting, Remove sorting of 0 elements * Handle minimum entry length error as warning in checker * Use empty array instead of creating an empty array to reference * Change schema to allow for empty entry arrays * Use https://raw.githubusercontent.com/oasis-tcs/csaf/81b2663697958bc5f85d14372712a40028fb8338/csaf_2.0/json_schema/ROLIE_feed_json_schema.json as schema for ROLIE feeds * Change label name from empty to undefined * Change default of create_service_document for csaf_provider to true * Config * Count entries in csaf-checker, warn if there are none. * Add Comments to csaf/rolie.go's CountEntries function * Delete index.txt and changes.csv in aggregator if there are no entries. * Create an empty ROLIE feed document when setting up folders during create * nit: set update time stamp in structure init. * Instantiate label checker only once. * Ignore domain not having roles. * provider: Create empty entry section in ROLIE feed. * Stop check for domain if PMD check fails * Add missing continue statement * Report missing ROLIE feed entries in ROLIE feed, not Provider Metadata * Do not ommit empty entries in ROLIE feeds. * Fixed error handling problem introduced by faulty merge. Removed unused errStop handling while there. --------- Co-authored-by: JanHoefelmeyer <hoefelmeyer.jan@gmail.com> Co-authored-by: Sascha L. Teichmann <sascha.teichmann@intevation.de> Co-authored-by: JanHoefelmeyer <Jan Höfelmeyer jhoefelmeyer@intevation.de>
291 lines
9.2 KiB
JSON
291 lines
9.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://raw.githubusercontent.com/oasis-tcs/csaf/master/csaf_2.0/json_schema/ROLIE_feed_json_schema.json",
|
|
"title": "ROLIE Feed auxiliary Schema",
|
|
"description": "Representation of CSAF ROLIE feed as a JSON document.",
|
|
"$defs": {
|
|
"json_link_t": {
|
|
"title": "JSON Link",
|
|
"description": "Contains the URL of the JSON file.",
|
|
"type": "string",
|
|
"format": "uri",
|
|
"pattern": "^https://.+\\.json$"
|
|
},
|
|
"link_t": {
|
|
"title": "List of Links",
|
|
"description": "Contains a list of links related to the current context.",
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"title": "Link",
|
|
"description": "Specifies the JSON link.",
|
|
"type": "object",
|
|
"required": [
|
|
"rel",
|
|
"href"
|
|
],
|
|
"properties": {
|
|
"href": {
|
|
"title": "Hyper reference",
|
|
"description": "Contains the URL of the JSON file.",
|
|
"$ref": "#/$defs/json_link_t"
|
|
},
|
|
"rel": {
|
|
"title": "Relationship",
|
|
"description": "Contains the relationship value of the link.",
|
|
"type": "string",
|
|
"enum": [
|
|
"self"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"minItems": 1,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"title": "Link",
|
|
"description": "Specifies a single link.",
|
|
"type": "object",
|
|
"required": [
|
|
"rel",
|
|
"href"
|
|
],
|
|
"properties": {
|
|
"href": {
|
|
"title": "Hyper reference",
|
|
"description": "Contains the URL of the link.",
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"rel": {
|
|
"title": "Relationship",
|
|
"description": "Contains the relationship value of the link.",
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"feed": {
|
|
"title": "CSAF ROLIE feed",
|
|
"description": "Contains all information of the feed.",
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"link",
|
|
"category",
|
|
"updated",
|
|
"entry"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"title": "ID",
|
|
"description": "Contains a unique identifier for this ROLIE feed.",
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z0-9+\\-_\\.]+$",
|
|
"minLength": 1
|
|
},
|
|
"title": {
|
|
"title": "Feed title",
|
|
"description": "Contains the title for this ROLIE feed.",
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"link": {
|
|
"title": "List of Links",
|
|
"description": "Contains a list of links related to this feed.",
|
|
"$ref": "#/$defs/link_t"
|
|
},
|
|
"category": {
|
|
"title": "List of Categories",
|
|
"description": "Contains a list of categories related to this feed.",
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"title": "CSAF ROLIE category",
|
|
"description": "Contains the required ROLIE category value.",
|
|
"type": "object",
|
|
"required": [
|
|
"scheme",
|
|
"term"
|
|
],
|
|
"properties": {
|
|
"scheme": {
|
|
"title": "Scheme",
|
|
"description": "Contains the URI of the scheme to use.",
|
|
"type": "string",
|
|
"enum": [
|
|
"urn:ietf:params:rolie:category:information-type"
|
|
]
|
|
},
|
|
"term": {
|
|
"title": "Term",
|
|
"description": "Contains the term that is valid in the context of the scheme.",
|
|
"type": "string",
|
|
"enum": [
|
|
"csaf"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"minItems": 1,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"title": "Category",
|
|
"description": "Specifies a single category.",
|
|
"type": "object",
|
|
"required": [
|
|
"scheme",
|
|
"term"
|
|
],
|
|
"properties": {
|
|
"scheme": {
|
|
"title": "Scheme",
|
|
"description": "Contains the URI of the scheme to use.",
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"term": {
|
|
"title": "Term",
|
|
"description": "Contains the term that is valid in the context of the scheme.",
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"updated": {
|
|
"title": "Updated",
|
|
"description": "Contains the date and time this feed was updated the last time.",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"entry": {
|
|
"title": "List of Entries",
|
|
"description": "Contains a list of feed entries.",
|
|
"type": "array",
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"title": "Entry",
|
|
"description": "Contains all information for a single feed entry.",
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"link",
|
|
"published",
|
|
"updated",
|
|
"content",
|
|
"format"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"title": "ID",
|
|
"description": "Contains the document tracking ID of the CSAF document.",
|
|
"type": "string",
|
|
"pattern": "^[\\S](.*[\\S])?$",
|
|
"minLength": 1
|
|
},
|
|
"title": {
|
|
"title": "Title",
|
|
"description": "Contains the document title of the CSAF document.",
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"link": {
|
|
"title": "List of Links",
|
|
"description": "Contains a list of links related to this entry.",
|
|
"$ref": "#/$defs/link_t"
|
|
},
|
|
"published": {
|
|
"title": "Published",
|
|
"description": "Contains the date and time this entry was initially added to the feed.",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updated": {
|
|
"title": "Updated",
|
|
"description": "Contains the date and time this entry was the last time updated in the feed.",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"summary": {
|
|
"title": "Summary",
|
|
"description": "Contains the summary of the CSAF document.",
|
|
"type": "object",
|
|
"properties": {
|
|
"content": {
|
|
"title": "Content",
|
|
"description": "Contains the actual text of the summary.",
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"title": "Content of the entry",
|
|
"description": "Contains information about the content.",
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"src"
|
|
],
|
|
"properties": {
|
|
"src": {
|
|
"title": "Source Code",
|
|
"description": "Contains a link to the source code of the file",
|
|
"$ref": "#/$defs/json_link_t"
|
|
},
|
|
"type": {
|
|
"title": "MIME type",
|
|
"description": "Contains the MIME type of the content.",
|
|
"type": "string",
|
|
"enum": [
|
|
"application/json"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"format": {
|
|
"title": "Format",
|
|
"description": "Contains information about the format of the entry.",
|
|
"type": "object",
|
|
"required": [
|
|
"schema",
|
|
"version"
|
|
],
|
|
"properties": {
|
|
"schema": {
|
|
"title": "Schema of the entry",
|
|
"description": "Contains the schema the CSAF document is valid against.",
|
|
"type": "string",
|
|
"enum": [
|
|
"https://docs.oasis-open.org/csaf/csaf/v2.0/csaf_json_schema.json"
|
|
]
|
|
},
|
|
"version": {
|
|
"title": "CSAF Version",
|
|
"description": "Contains the CSAF version the document was written in.",
|
|
"type": "string",
|
|
"enum": [
|
|
"2.0"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|