From 22c722bf59e59246f47491c7229b17f9ef783614 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Wed, 15 Jun 2022 11:09:58 +0200 Subject: New upstream version 1.1~beta1 --- .../1.x/api_mapping_description-1.0.1.schema.json | 21 ++ ...i_mapping_description-1.0.1.schema.json.license | 5 + .../schemas/1.x/api_query_result-1.0.1.schema.json | 25 ++ .../1.x/api_query_result-1.0.1.schema.json.license | 5 + .../1.x/api_resource_description-1.0.1.schema.json | 26 +++ ..._resource_description-1.0.1.schema.json.license | 5 + .../1.x/api_source_description-1.0.1.schema.json | 66 ++++++ ...pi_source_description-1.0.1.schema.json.license | 5 + .../1.x/common_definitions-1.0.1.schema.json | 233 +++++++++++++++++++ .../common_definitions-1.0.1.schema.json.license | 5 + .../schemas/1.x/package_source-1.0.1.schema.json | 56 +++++ .../1.x/package_source-1.0.1.schema.json.license | 5 + .../2.x/api_mapping_description-2.schema.json | 25 ++ .../api_mapping_description-2.schema.json.license | 5 + .../schemas/2.x/api_query_result-2.schema.json | 25 ++ .../2.x/api_query_result-2.schema.json.license | 5 + .../2.x/api_resource_description-2.schema.json | 35 +++ .../api_resource_description-2.schema.json.license | 5 + .../2.x/api_source_description-2.schema.json | 66 ++++++ .../api_source_description-2.schema.json.license | 5 + .../schemas/2.x/common_definitions-2.schema.json | 254 +++++++++++++++++++++ .../2.x/common_definitions-2.schema.json.license | 5 + .../schemas/2.x/package_source-2.schema.json | 166 ++++++++++++++ .../2.x/package_source-2.schema.json.license | 5 + .../api_mapping_description-1.0.1.schema.json | 21 -- ...i_mapping_description-1.0.1.schema.json.license | 5 - .../schemas/api_query_result-1.0.1.schema.json | 25 -- .../api_query_result-1.0.1.schema.json.license | 5 - .../api_resource_description-1.0.1.schema.json | 26 --- ..._resource_description-1.0.1.schema.json.license | 5 - .../api_source_description-1.0.1.schema.json | 66 ------ ...pi_source_description-1.0.1.schema.json.license | 5 - .../schemas/common_definitions-1.0.1.schema.json | 233 ------------------- .../common_definitions-1.0.1.schema.json.license | 5 - .../schemas/package_source-1.0.1.schema.json | 56 ----- .../package_source-1.0.1.schema.json.license | 5 - 36 files changed, 1058 insertions(+), 457 deletions(-) create mode 100644 src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json create mode 100644 src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json.license create mode 100644 src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json create mode 100644 src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json.license create mode 100644 src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json create mode 100644 src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json.license create mode 100644 src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json create mode 100644 src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json.license create mode 100644 src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json create mode 100644 src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json.license create mode 100644 src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json create mode 100644 src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json.license create mode 100644 src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json create mode 100644 src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json.license create mode 100644 src/hydrilla/schemas/2.x/api_query_result-2.schema.json create mode 100644 src/hydrilla/schemas/2.x/api_query_result-2.schema.json.license create mode 100644 src/hydrilla/schemas/2.x/api_resource_description-2.schema.json create mode 100644 src/hydrilla/schemas/2.x/api_resource_description-2.schema.json.license create mode 100644 src/hydrilla/schemas/2.x/api_source_description-2.schema.json create mode 100644 src/hydrilla/schemas/2.x/api_source_description-2.schema.json.license create mode 100644 src/hydrilla/schemas/2.x/common_definitions-2.schema.json create mode 100644 src/hydrilla/schemas/2.x/common_definitions-2.schema.json.license create mode 100644 src/hydrilla/schemas/2.x/package_source-2.schema.json create mode 100644 src/hydrilla/schemas/2.x/package_source-2.schema.json.license delete mode 100644 src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json delete mode 100644 src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json.license delete mode 100644 src/hydrilla/schemas/api_query_result-1.0.1.schema.json delete mode 100644 src/hydrilla/schemas/api_query_result-1.0.1.schema.json.license delete mode 100644 src/hydrilla/schemas/api_resource_description-1.0.1.schema.json delete mode 100644 src/hydrilla/schemas/api_resource_description-1.0.1.schema.json.license delete mode 100644 src/hydrilla/schemas/api_source_description-1.0.1.schema.json delete mode 100644 src/hydrilla/schemas/api_source_description-1.0.1.schema.json.license delete mode 100644 src/hydrilla/schemas/common_definitions-1.0.1.schema.json delete mode 100644 src/hydrilla/schemas/common_definitions-1.0.1.schema.json.license delete mode 100644 src/hydrilla/schemas/package_source-1.0.1.schema.json delete mode 100644 src/hydrilla/schemas/package_source-1.0.1.schema.json.license (limited to 'src/hydrilla/schemas') diff --git a/src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json b/src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json new file mode 100644 index 0000000..880a5c4 --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_mapping_description-1.0.1.schema.json", + "title": "Mapping description", + "description": "Definition of a Hydrilla mapping, as served through HTTP API", + "allOf": [{ + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/mapping_definition_base" + }, { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/item_definition" + }, { + "type": "object", + "required": ["$schema"], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to mapping description schema 1.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_mapping_description-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + } + } + }] +} diff --git a/src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json.license b/src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_mapping_description-1.0.1.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json b/src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json new file mode 100644 index 0000000..89c5428 --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_query_result-1.0.1.schema.json", + "title": "Query result", + "description": "Object with a list of references to mappings that contain payloads for requested URL", + "type": "object", + "required": ["$schema", "mappings"], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to query result schema 1.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_query_result-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "mappings": { + "description": "References to mappings using at least one pattern that matches the requested URL", + "type": "array", + "items": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/item_ref" + } + }, + "generated_by": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/generated_by" + } + } +} diff --git a/src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json.license b/src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_query_result-1.0.1.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json b/src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json new file mode 100644 index 0000000..7459394 --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_resource_description-1.0.1.schema.json", + "title": "Resource description", + "description": "Definition of a Hydrilla resource, as served through HTTP API", + "allOf": [{ + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/resource_definition_base" + }, { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/item_definition" + }, { + "type": "object", + "required": ["$schema"], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to resource description schema 1.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_resource_description-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "scripts": { + "description": "Which files are resource's scripts and need to be installed", + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list_sha256", + "default": [] + } + } + }] +} diff --git a/src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json.license b/src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_resource_description-1.0.1.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json b/src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json new file mode 100644 index 0000000..0744d1a --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json @@ -0,0 +1,66 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_source_description-1.0.1.schema.json", + "title": "Source description", + "description": "Built description of a Hydrilla source package", + "type": "object", + "required": [ + "$schema", + "source_name", + "source_copyright", + "source_archives", + "upstream_url", + "definitions" + ], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to source description schema 1.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_source_description-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "source_name": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/source_name" + }, + "source_copyright": { + "description": "Which files indicate license terms of the source package", + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list_sha256" + }, + "source_archives": { + "description": "What archive extensions are available for this package's sources", + "type": "object", + "required": ["zip"], + "additionalProperties": { + "description": "What is the SHA256 sum of given source archive", + "type": "object", + "required": ["sha256"], + "properties": { + "sha256": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/sha256" + } + } + }, + "examples": [{ + "zip": { + "sha256": "688461da362ffe2fc8e85db73e709a5356d41c8aeb7d1eee7170c64ee21dd2a2" + } + }] + }, + "upstream_url": { + "description": "Where this software/work initially comes from", + "type": "string" + }, + "comment": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/comment" + }, + "definitions": { + "description": "References to site resources and pattern->payload mappings", + "type": "array", + "items": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/typed_item_ref" + } + }, + "generated_by": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/generated_by" + } + } +} diff --git a/src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json.license b/src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/1.x/api_source_description-1.0.1.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json b/src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json new file mode 100644 index 0000000..b803188 --- /dev/null +++ b/src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json @@ -0,0 +1,233 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/common_definitions-1.0.1.schema.json", + "title": "Common definitions", + "description": "Definitions used by other Hydrilla schemas", + "definitions": { + "version": { + "description": "Version expressed as an array of integers", + "type": "array", + "minItems": 1, + "items": { + "type": "integer", + "minimum": 0 + }, + "contains": { + "type": "integer", + "minimum": 1 + }, + "minItems": 1 + }, + "source_name": { + "description": "Unique identifier of this source package", + "type": "string", + "pattern": "^[-0-9a-z.]+$" + }, + "comment": { + "description": "An optional comment", + "type": "string" + }, + "file_ref_list": { + "description": "List of simple file references", + "type": "array", + "items": { + "type": "object", + "required": ["file"], + "properties": { + "file": { + "description": "Filename relative to source package main directory; separator is '/'", + "type": "string", + "pattern": "^[^/]" + } + } + } + }, + "sha256": { + "description": "An SHA256 sum, in hexadecimal", + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "file_ref_list_sha256": { + "description": "List of file references with files' SHA256 sums included", + "allOf": [{ + "$ref": "#/definitions/file_ref_list" + }, { + "type": "array", + "items": { + "type": "object", + "required": ["sha256"], + "properties": { + "sha256": { + "$ref": "#/definitions/sha256" + } + } + } + }] + }, + "item_identifier": { + "description": "Identifier of an item (shared with other versions of the item, otherwise unique)", + "type": "string", + "pattern": "^[-0-9a-z]+$" + }, + "item_dep_specifier": { + "description": "Simple reference to an item as a dependency", + "type": "object", + "required": ["identifier"], + "properties": { + "identifier": { + "$ref": "#/definitions/item_identifier" + } + } + }, + "item_ref": { + "description": "An object containing a subset of fields from full item definition", + "type": "object", + "required": ["identifier", "long_name", "version"], + "properties": { + "identifier": { + "$ref": "#/definitions/item_identifier" + }, + "long_name": { + "description": "User-friendly alternative to the identifier", + "type": "string" + }, + "version": { + "$ref": "#/definitions/version" + } + } + }, + "typed_item_ref": { + "description": "An object containing a subset of fields from full item definition, including type", + "allOf": [{ + "$ref": "#/definitions/item_ref" + }, { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "description": "What kind of item is it (resource or mapping)", + "enum": ["resource", "mapping"] + } + } + }] + }, + "item_definition_base": { + "description": "Definition of a resource/mapping (fields common to source definitions and built definitions)", + "allOf": [{ + "$ref": "#/definitions/typed_item_ref" + }, { + "type": "object", + "required": ["description"], + "properties": { + "uuid": { + "description": "UUIDv4 of this item (shared with other versions of this item, otherwise unique)", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "description": { + "description": "Item's description", + "type": "string" + }, + "comment": { + "$ref": "#/definitions/comment" + } + } + }] + }, + "resource_definition_base": { + "description": "Definition of a resource (fields common to source definitions and built definitions)", + "allOf": [{ + "$ref": "#/definitions/item_definition_base" + }, { + "type": "object", + "required": ["type", "revision"], + "properties": { + "type": { + "description": "Identify this item as a resource", + "const": "resource" + }, + "revision": { + "description": "Which revision of a packaging of given version of an upstream resource is this", + "type": "integer", + "minimum": 1 + }, + "scripts": { + "description": "What scripts are included in the resource", + "$ref": "#/definitions/file_ref_list", + "default": [] + }, + "dependencies": { + "description": "Which other resources this resource depends on", + "type": "array", + "items": { + "$ref": "#/definitions/item_dep_specifier" + }, + "default": [] + } + } + }] + }, + "mapping_definition_base": { + "description": "Definition of a mapping (fields common to source definitions and built definitions)", + "allOf": [{ + "$ref": "#/definitions/item_definition_base" + }, { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "description": "Identify this item as a mapping", + "const": "mapping" + }, + "payloads": { + "description": "Which payloads are to be applied to which URLs", + "additionalProperties": { + "$ref": "#/definitions/item_dep_specifier" + }, + "default": {}, + "examples": [{ + "https://hydrillabugs.koszko.org/***": { + "identifier": "helloapple" + }, + "https://*.koszko.org/***": { + "identifier": "hello-potato" + } + }] + } + } + }] + }, + "generated_by": { + "description": "Describe what software generated this instance", + "type": "object", + "required": ["name"], + "properties": { + "name": { + "type": "string", + "description": "Instance generator software name, without version" + }, + "version": { + "type": "string", + "description": "Instance generator software version, in arbitrary format" + } + } + }, + "item_definition": { + "description": "Definition of a resource/mapping (fields specific to built definitions)", + "type": "object", + "required": ["source_name", "source_copyright"], + "properties": { + "source_name": { + "$ref": "#/definitions/source_name" + }, + "source_copyright": { + "description": "Which files indicate license terms of the source package and should be installed", + "$ref": "#/definitions/file_ref_list_sha256" + }, + "generated_by": { + "$ref": "#/definitions/generated_by" + } + } + } + } +} diff --git a/src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json.license b/src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/1.x/common_definitions-1.0.1.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json b/src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json new file mode 100644 index 0000000..2f9482e --- /dev/null +++ b/src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json @@ -0,0 +1,56 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/package_source-1.0.1.schema.json", + "title": "Package source", + "description": "Definition of a Hydrilla source package", + "type": "object", + "required": [ + "$schema", + "source_name", + "copyright", + "upstream_url", + "definitions" + ], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to package source schema 1.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/package_source-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "source_name": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/source_name" + }, + "copyright": { + "description": "Which files from the source package indicate its license terms and should be included in the distribution packages", + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list" + }, + "upstream_url": { + "description": "Where this software/work initially comes from", + "type": "string" + }, + "comment": { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/comment" + }, + "definitions": { + "description": "Definitions of site resources and pattern->payload mappings", + "type": "array", + "items": { + "anyOf": [{ + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/resource_definition_base" + }, { + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/mapping_definition_base" + }] + } + }, + "additional_files": { + "description": "Files which should be included in the source archive produced by Hydrilla builder in addition to script and copyright files", + "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list", + "default": [] + }, + "reuse_generate_spdx_report": { + "description": "Should report.spdx be automatically generated for the package using REUSE tool", + "type": "boolean", + "default": false + } + } +} diff --git a/src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json.license b/src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/1.x/package_source-1.0.1.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json b/src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json new file mode 100644 index 0000000..e444180 --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_mapping_description-2.schema.json", + "title": "Mapping description", + "description": "Definition of a Hydrilla mapping, as served through HTTP API", + "allOf": [{ + "$ref": "./common_definitions-2.schema.json#/definitions/mapping_definition_base" + }, { + "$ref": "./common_definitions-2.schema.json#/definitions/item_definition" + }, { + "type": "object", + "required": ["$schema", "type"], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to mapping description schema 2.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_mapping_description-2\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "type": { + "description": "Identify this item as a mapping", + "const": "mapping" + } + } + }] +} diff --git a/src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json.license b/src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_mapping_description-2.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/2.x/api_query_result-2.schema.json b/src/hydrilla/schemas/2.x/api_query_result-2.schema.json new file mode 100644 index 0000000..727531c --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_query_result-2.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_query_result-2.schema.json", + "title": "Query result", + "description": "Object with a list of references to mappings that contain payloads for requested URL", + "type": "object", + "required": ["$schema", "mappings"], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to query result schema 2.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_query_result-2\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "mappings": { + "description": "References to mappings using at least one pattern that matches the requested URL", + "type": "array", + "items": { + "$ref": "./common_definitions-2.schema.json#/definitions/item_ref" + } + }, + "generated_by": { + "$ref": "./common_definitions-2.schema.json#/definitions/generated_by" + } + } +} diff --git a/src/hydrilla/schemas/2.x/api_query_result-2.schema.json.license b/src/hydrilla/schemas/2.x/api_query_result-2.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_query_result-2.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/2.x/api_resource_description-2.schema.json b/src/hydrilla/schemas/2.x/api_resource_description-2.schema.json new file mode 100644 index 0000000..1157977 --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_resource_description-2.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_resource_description-2.schema.json", + "title": "Resource description", + "description": "Definition of a Hydrilla resource, as served through HTTP API", + "allOf": [{ + "$ref": "./common_definitions-2.schema.json#/definitions/resource_definition_base" + }, { + "$ref": "./common_definitions-2.schema.json#/definitions/item_definition" + }, { + "type": "object", + "required": ["$schema", "type"], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to resource description schema 2.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_resource_description-2\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "type": { + "description": "Identify this item as a resource", + "const": "resource" + }, + "scripts": { + "description": "Which files are resource's scripts and need to be installed", + "$ref": "./common_definitions-2.schema.json#/definitions/file_ref_list_sha256", + "default": [] + }, + "dependencies": { + "description": "Which other resources this resource depends on", + "$ref": "./common_definitions-2.schema.json#/definitions/item_dep_specifier_array", + "default": [] + } + } + }] +} diff --git a/src/hydrilla/schemas/2.x/api_resource_description-2.schema.json.license b/src/hydrilla/schemas/2.x/api_resource_description-2.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_resource_description-2.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/2.x/api_source_description-2.schema.json b/src/hydrilla/schemas/2.x/api_source_description-2.schema.json new file mode 100644 index 0000000..5bc0095 --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_source_description-2.schema.json @@ -0,0 +1,66 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/api_source_description-2.schema.json", + "title": "Source description", + "description": "Built description of a Hydrilla source package", + "type": "object", + "required": [ + "$schema", + "source_name", + "source_copyright", + "source_archives", + "upstream_url", + "definitions" + ], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to source description schema 2.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_source_description-2\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "source_name": { + "$ref": "./common_definitions-2.schema.json#/definitions/source_name" + }, + "source_copyright": { + "description": "Which files indicate license terms of the source package", + "$ref": "./common_definitions-2.schema.json#/definitions/file_ref_list_sha256" + }, + "source_archives": { + "description": "What archive extensions are available for this package's sources", + "type": "object", + "required": ["zip"], + "additionalProperties": { + "description": "What is the SHA256 sum of given source archive", + "type": "object", + "required": ["sha256"], + "properties": { + "sha256": { + "$ref": "./common_definitions-2.schema.json#/definitions/sha256" + } + } + }, + "examples": [{ + "zip": { + "sha256": "688461da362ffe2fc8e85db73e709a5356d41c8aeb7d1eee7170c64ee21dd2a2" + } + }] + }, + "upstream_url": { + "description": "Where this software/work initially comes from", + "type": "string" + }, + "comment": { + "$ref": "./common_definitions-2.schema.json#/definitions/comment" + }, + "definitions": { + "description": "References to site resources and pattern->payload mappings", + "type": "array", + "items": { + "$ref": "./common_definitions-2.schema.json#/definitions/typed_item_ref" + } + }, + "generated_by": { + "$ref": "./common_definitions-2.schema.json#/definitions/generated_by" + } + } +} diff --git a/src/hydrilla/schemas/2.x/api_source_description-2.schema.json.license b/src/hydrilla/schemas/2.x/api_source_description-2.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/2.x/api_source_description-2.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/2.x/common_definitions-2.schema.json b/src/hydrilla/schemas/2.x/common_definitions-2.schema.json new file mode 100644 index 0000000..1700f34 --- /dev/null +++ b/src/hydrilla/schemas/2.x/common_definitions-2.schema.json @@ -0,0 +1,254 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/common_definitions-2.schema.json", + "title": "Common definitions", + "description": "Definitions used by other Hydrilla schemas", + "definitions": { + "version": { + "description": "Version expressed as an array of integers", + "type": "array", + "minItems": 1, + "items": { + "type": "integer", + "minimum": 0 + }, + "contains": { + "type": "integer", + "minimum": 1 + }, + "minItems": 1 + }, + "source_name": { + "description": "Unique identifier of this source package", + "type": "string", + "pattern": "^[-0-9a-z.]+$" + }, + "comment": { + "description": "An optional comment", + "type": "string" + }, + "file_ref_list": { + "description": "List of simple file references", + "type": "array", + "items": { + "type": "object", + "required": ["file"], + "properties": { + "file": { + "description": "Filename relative to source package main directory; separator is '/'", + "type": "string", + "pattern": "^[^/]" + } + } + } + }, + "sha256": { + "description": "An SHA256 sum, in hexadecimal", + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "file_ref_list_sha256": { + "description": "List of file references with files' SHA256 sums included", + "allOf": [{ + "$ref": "#/definitions/file_ref_list" + }, { + "type": "array", + "items": { + "type": "object", + "required": ["sha256"], + "properties": { + "sha256": { + "$ref": "#/definitions/sha256" + } + } + } + }] + }, + "item_identifier": { + "description": "Identifier of an item (shared with other versions of the item, otherwise unique)", + "type": "string", + "pattern": "^[-0-9a-z]+$" + }, + "item_dep_specifier": { + "description": "Simple reference to an item as a dependency", + "type": "object", + "required": ["identifier"], + "properties": { + "identifier": { + "$ref": "#/definitions/item_identifier" + } + } + }, + "item_dep_specifier_array": { + "description": "Array of references to items as dependencies", + "type": "array", + "items": { + "$ref": "#/definitions/item_dep_specifier" + } + }, + "item_ref": { + "description": "An object containing a subset of fields from full item definition", + "type": "object", + "required": ["identifier", "long_name", "version"], + "properties": { + "identifier": { + "$ref": "#/definitions/item_identifier" + }, + "long_name": { + "description": "User-friendly alternative to the identifier", + "type": "string" + }, + "version": { + "$ref": "#/definitions/version" + } + } + }, + "typed_item_ref": { + "description": "An object containing a subset of fields from full item definition, including type", + "allOf": [{ + "$ref": "#/definitions/item_ref" + }, { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "description": "What kind of item is it (resource or mapping)", + "enum": ["resource", "mapping"] + } + } + }] + }, + "item_definition_base": { + "description": "Definition of a resource/mapping (fields common to source definitions and built definitions)", + "allOf": [{ + "$ref": "#/definitions/item_ref" + }, { + "type": "object", + "required": ["description"], + "properties": { + "uuid": { + "description": "UUIDv4 of this item (shared with other versions of this item, otherwise unique)", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "description": { + "description": "Item's description", + "type": "string" + }, + "min_haketilo_version": { + "description": "Specify that this item should not be used with Haketilo versions older than specified here", + "$ref": "#/definitions/version", + "default": [1] + }, + "max_haketilo_version": { + "description": "Specify that this item should not be used with Haketilo versions newer than specified here", + "$ref": "#/definitions/version", + "default": [65536] + }, + "permissions": { + "description": "What privileges should be granted on pages where this resource/mapping is used", + "type": "object", + "properties": { + "cors_bypass": { + "description": "Specify if a page should be allowed to perform cross-origin requests", + "type": "boolean", + "default": false + }, + "eval": { + "description": "Specify if scripts added to the page should be allowed to use eval() (and related mechanisms)", + "type": "boolean", + "default": false + } + } + }, + "required_mappings": { + "description": "Which mappings this item requires to be enabled", + "$ref": "#/definitions/item_dep_specifier_array", + "default": [] + }, + "comment": { + "$ref": "#/definitions/comment" + } + } + }] + }, + "resource_definition_base": { + "description": "Definition of a resource (fields common to source definitions and built definitions)", + "allOf": [{ + "$ref": "#/definitions/item_definition_base" + }, { + "type": "object", + "required": ["type", "revision"], + "properties": { + "revision": { + "description": "Which revision of a packaging of given version of an upstream resource is this", + "type": "integer", + "minimum": 1 + }, + "scripts": { + "description": "What scripts are included in the resource", + "$ref": "#/definitions/file_ref_list", + "default": [] + } + } + }] + }, + "mapping_definition_base": { + "description": "Definition of a mapping (fields common to source definitions and built definitions)", + "allOf": [{ + "$ref": "#/definitions/item_definition_base" + }, { + "type": "object", + "properties": { + "payloads": { + "description": "Which payloads are to be applied to which URLs", + "additionalProperties": { + "$ref": "#/definitions/item_dep_specifier" + }, + "default": {}, + "examples": [{ + "https://hydrillabugs.koszko.org/***": { + "identifier": "helloapple" + }, + "https://*.koszko.org/***": { + "identifier": "hello-potato" + } + }] + } + } + }] + }, + "generated_by": { + "description": "Describe what software generated this instance", + "type": "object", + "required": ["name"], + "properties": { + "name": { + "type": "string", + "description": "Instance generator software name, without version" + }, + "version": { + "type": "string", + "description": "Instance generator software version, in arbitrary format" + } + } + }, + "item_definition": { + "description": "Definition of a resource/mapping (fields specific to built definitions)", + "type": "object", + "required": ["source_name", "source_copyright"], + "properties": { + "source_name": { + "$ref": "#/definitions/source_name" + }, + "source_copyright": { + "description": "Which files indicate license terms of the source package and should be installed", + "$ref": "#/definitions/file_ref_list_sha256" + }, + "generated_by": { + "$ref": "#/definitions/generated_by" + } + } + } + } +} diff --git a/src/hydrilla/schemas/2.x/common_definitions-2.schema.json.license b/src/hydrilla/schemas/2.x/common_definitions-2.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/2.x/common_definitions-2.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/2.x/package_source-2.schema.json b/src/hydrilla/schemas/2.x/package_source-2.schema.json new file mode 100644 index 0000000..4d8249d --- /dev/null +++ b/src/hydrilla/schemas/2.x/package_source-2.schema.json @@ -0,0 +1,166 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://hydrilla.koszko.org/schemas/package_source-2.schema.json", + "title": "Package source", + "description": "Definition of a Hydrilla source package", + "type": "object", + "required": [ + "$schema", + "source_name", + "copyright", + "upstream_url", + "definitions" + ], + "properties": { + "$schema": { + "description": "Mark this instance as conforming to package source schema 2.x", + "type": "string", + "pattern": "^https://hydrilla\\.koszko\\.org/schemas/package_source-2\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" + }, + "source_name": { + "$ref": "./common_definitions-2.schema.json#/definitions/source_name" + }, + "copyright": { + "description": "Which files from the source package indicate its license terms and should be included in the distribution packages", + "$ref": "./common_definitions-2.schema.json#/definitions/file_ref_list" + }, + "upstream_url": { + "description": "Where this software/work initially comes from", + "type": "string" + }, + "piggyback_on": { + "description": "Specify packages from other software system that should be used for constructing this package", + "anyOf": [{ + "$ref": "#/definitions/piggyback_apt" + }] + }, + "comment": { + "$ref": "./common_definitions-2.schema.json#/definitions/comment" + }, + "definitions": { + "description": "Definitions of site resources and pattern->payload mappings (possibly combined together)", + "type": "array", + "items": { + "$ref": "#/definitions/item_definition" + } + }, + "additional_files": { + "description": "Files which should be included in the source archive produced by Hydrilla builder in addition to script and copyright files", + "$ref": "./common_definitions-2.schema.json#/definitions/file_ref_list", + "default": [] + }, + "reuse_generate_spdx_report": { + "description": "Should report.spdx be automatically generated for the package using REUSE tool", + "type": "boolean", + "default": false + } + }, + "definitions": { + "piggyback_apt": { + "description": "Specify packages from APT software system that should be used for constructing this package", + "type": "object", + "required": [ + "system", + "packages", + "dependencies" + ], + "properties": { + "system": { + "description": "Which software system to use", + "const": "apt" + }, + "distribution": { + "description": "Which pre-defined APT-based distribution to use (currently the only available one is Trisquel 10 Nabia)", + "const": "nabia" + }, + "sources_list": { + "description": "What lines should be added to the sources.list file that will be generated; those will be used together with pre-defined lines for chosen distribution (if any)", + "type": "array", + "items": { + "description": "A sources.list line like \"deb-src http://archive.trisquel.info/trisquel/ nabia main\"", + "type": "string", + "pattern": "^deb(-src)?(\\s+[^\\s]+){3}$" + }, + "default": [] + }, + "trusted_keys": { + "description": "Fingerprints of additional PGP keys that should be used with supplied sources.list entries", + "type": "array", + "items": { + "description": "A PGP fingerprint (40 hexadecimal characters)", + "type": "string", + "pattern": "^[0-9A-E]{40}$" + }, + "default": [] + }, + "packages": { + "description": "Specifiers of packages that should be used, can include version constraints", + "type": "array", + "items": { + "description": "A package specifier like \"libjs-jquery=3.3.1~dfsg-3\"", + "type": "string" + }, + "minItems": 1 + }, + "dependencies": { + "description": "Boolean indicating whether dependent APT packages should also be downloaded and used", + "type": "boolean" + }, + "depend_on_base_packages": { + "description": "Boolean indicating whether the resulting resource packages should depend on 'apt-common-licenses' Haketilo package", + "type": "boolean", + "default": true + } + } + }, + "item_definition": { + "description": "Definition of either a site resource, a pattern->payload mapping or both combined together", + "if": { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "const": "resource" + } + } + }, + "then": { + "$ref": "./common_definitions-2.schema.json#/definitions/resource_definition_base" + }, + "else": { + "if": { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "const": "mapping" + } + } + }, + "then": { + "$ref": "./common_definitions-2.schema.json#/definitions/mapping_definition_base" + }, + "else": { + "allOf": [{ + "type": "object", + "required": ["type"], + "properties": { + "type": { + "const": "mapping_and_resource" + } + } + }, { + "$ref": "#/definitions/combined_mapping_resource_definition" + }] + } + } + }, + "combined_mapping_resource_definition": { + "allOf": [{ + "$ref": "./common_definitions-2.schema.json#/definitions/mapping_definition_base" + }, { + "$ref": "./common_definitions-2.schema.json#/definitions/resource_definition_base" + }] + } + } +} diff --git a/src/hydrilla/schemas/2.x/package_source-2.schema.json.license b/src/hydrilla/schemas/2.x/package_source-2.schema.json.license new file mode 100644 index 0000000..f41d511 --- /dev/null +++ b/src/hydrilla/schemas/2.x/package_source-2.schema.json.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2022 Wojtek Kosior + +Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json b/src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json deleted file mode 100644 index 880a5c4..0000000 --- a/src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://hydrilla.koszko.org/schemas/api_mapping_description-1.0.1.schema.json", - "title": "Mapping description", - "description": "Definition of a Hydrilla mapping, as served through HTTP API", - "allOf": [{ - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/mapping_definition_base" - }, { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/item_definition" - }, { - "type": "object", - "required": ["$schema"], - "properties": { - "$schema": { - "description": "Mark this instance as conforming to mapping description schema 1.x", - "type": "string", - "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_mapping_description-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" - } - } - }] -} diff --git a/src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json.license b/src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json.license deleted file mode 100644 index f41d511..0000000 --- a/src/hydrilla/schemas/api_mapping_description-1.0.1.schema.json.license +++ /dev/null @@ -1,5 +0,0 @@ -SPDX-License-Identifier: CC0-1.0 - -Copyright (C) 2022 Wojtek Kosior - -Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/api_query_result-1.0.1.schema.json b/src/hydrilla/schemas/api_query_result-1.0.1.schema.json deleted file mode 100644 index 89c5428..0000000 --- a/src/hydrilla/schemas/api_query_result-1.0.1.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://hydrilla.koszko.org/schemas/api_query_result-1.0.1.schema.json", - "title": "Query result", - "description": "Object with a list of references to mappings that contain payloads for requested URL", - "type": "object", - "required": ["$schema", "mappings"], - "properties": { - "$schema": { - "description": "Mark this instance as conforming to query result schema 1.x", - "type": "string", - "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_query_result-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" - }, - "mappings": { - "description": "References to mappings using at least one pattern that matches the requested URL", - "type": "array", - "items": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/item_ref" - } - }, - "generated_by": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/generated_by" - } - } -} diff --git a/src/hydrilla/schemas/api_query_result-1.0.1.schema.json.license b/src/hydrilla/schemas/api_query_result-1.0.1.schema.json.license deleted file mode 100644 index f41d511..0000000 --- a/src/hydrilla/schemas/api_query_result-1.0.1.schema.json.license +++ /dev/null @@ -1,5 +0,0 @@ -SPDX-License-Identifier: CC0-1.0 - -Copyright (C) 2022 Wojtek Kosior - -Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/api_resource_description-1.0.1.schema.json b/src/hydrilla/schemas/api_resource_description-1.0.1.schema.json deleted file mode 100644 index 7459394..0000000 --- a/src/hydrilla/schemas/api_resource_description-1.0.1.schema.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://hydrilla.koszko.org/schemas/api_resource_description-1.0.1.schema.json", - "title": "Resource description", - "description": "Definition of a Hydrilla resource, as served through HTTP API", - "allOf": [{ - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/resource_definition_base" - }, { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/item_definition" - }, { - "type": "object", - "required": ["$schema"], - "properties": { - "$schema": { - "description": "Mark this instance as conforming to resource description schema 1.x", - "type": "string", - "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_resource_description-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" - }, - "scripts": { - "description": "Which files are resource's scripts and need to be installed", - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list_sha256", - "default": [] - } - } - }] -} diff --git a/src/hydrilla/schemas/api_resource_description-1.0.1.schema.json.license b/src/hydrilla/schemas/api_resource_description-1.0.1.schema.json.license deleted file mode 100644 index f41d511..0000000 --- a/src/hydrilla/schemas/api_resource_description-1.0.1.schema.json.license +++ /dev/null @@ -1,5 +0,0 @@ -SPDX-License-Identifier: CC0-1.0 - -Copyright (C) 2022 Wojtek Kosior - -Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/api_source_description-1.0.1.schema.json b/src/hydrilla/schemas/api_source_description-1.0.1.schema.json deleted file mode 100644 index 0744d1a..0000000 --- a/src/hydrilla/schemas/api_source_description-1.0.1.schema.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://hydrilla.koszko.org/schemas/api_source_description-1.0.1.schema.json", - "title": "Source description", - "description": "Built description of a Hydrilla source package", - "type": "object", - "required": [ - "$schema", - "source_name", - "source_copyright", - "source_archives", - "upstream_url", - "definitions" - ], - "properties": { - "$schema": { - "description": "Mark this instance as conforming to source description schema 1.x", - "type": "string", - "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_source_description-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" - }, - "source_name": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/source_name" - }, - "source_copyright": { - "description": "Which files indicate license terms of the source package", - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list_sha256" - }, - "source_archives": { - "description": "What archive extensions are available for this package's sources", - "type": "object", - "required": ["zip"], - "additionalProperties": { - "description": "What is the SHA256 sum of given source archive", - "type": "object", - "required": ["sha256"], - "properties": { - "sha256": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/sha256" - } - } - }, - "examples": [{ - "zip": { - "sha256": "688461da362ffe2fc8e85db73e709a5356d41c8aeb7d1eee7170c64ee21dd2a2" - } - }] - }, - "upstream_url": { - "description": "Where this software/work initially comes from", - "type": "string" - }, - "comment": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/comment" - }, - "definitions": { - "description": "References to site resources and pattern->payload mappings", - "type": "array", - "items": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/typed_item_ref" - } - }, - "generated_by": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/generated_by" - } - } -} diff --git a/src/hydrilla/schemas/api_source_description-1.0.1.schema.json.license b/src/hydrilla/schemas/api_source_description-1.0.1.schema.json.license deleted file mode 100644 index f41d511..0000000 --- a/src/hydrilla/schemas/api_source_description-1.0.1.schema.json.license +++ /dev/null @@ -1,5 +0,0 @@ -SPDX-License-Identifier: CC0-1.0 - -Copyright (C) 2022 Wojtek Kosior - -Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/common_definitions-1.0.1.schema.json b/src/hydrilla/schemas/common_definitions-1.0.1.schema.json deleted file mode 100644 index b803188..0000000 --- a/src/hydrilla/schemas/common_definitions-1.0.1.schema.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://hydrilla.koszko.org/schemas/common_definitions-1.0.1.schema.json", - "title": "Common definitions", - "description": "Definitions used by other Hydrilla schemas", - "definitions": { - "version": { - "description": "Version expressed as an array of integers", - "type": "array", - "minItems": 1, - "items": { - "type": "integer", - "minimum": 0 - }, - "contains": { - "type": "integer", - "minimum": 1 - }, - "minItems": 1 - }, - "source_name": { - "description": "Unique identifier of this source package", - "type": "string", - "pattern": "^[-0-9a-z.]+$" - }, - "comment": { - "description": "An optional comment", - "type": "string" - }, - "file_ref_list": { - "description": "List of simple file references", - "type": "array", - "items": { - "type": "object", - "required": ["file"], - "properties": { - "file": { - "description": "Filename relative to source package main directory; separator is '/'", - "type": "string", - "pattern": "^[^/]" - } - } - } - }, - "sha256": { - "description": "An SHA256 sum, in hexadecimal", - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "file_ref_list_sha256": { - "description": "List of file references with files' SHA256 sums included", - "allOf": [{ - "$ref": "#/definitions/file_ref_list" - }, { - "type": "array", - "items": { - "type": "object", - "required": ["sha256"], - "properties": { - "sha256": { - "$ref": "#/definitions/sha256" - } - } - } - }] - }, - "item_identifier": { - "description": "Identifier of an item (shared with other versions of the item, otherwise unique)", - "type": "string", - "pattern": "^[-0-9a-z]+$" - }, - "item_dep_specifier": { - "description": "Simple reference to an item as a dependency", - "type": "object", - "required": ["identifier"], - "properties": { - "identifier": { - "$ref": "#/definitions/item_identifier" - } - } - }, - "item_ref": { - "description": "An object containing a subset of fields from full item definition", - "type": "object", - "required": ["identifier", "long_name", "version"], - "properties": { - "identifier": { - "$ref": "#/definitions/item_identifier" - }, - "long_name": { - "description": "User-friendly alternative to the identifier", - "type": "string" - }, - "version": { - "$ref": "#/definitions/version" - } - } - }, - "typed_item_ref": { - "description": "An object containing a subset of fields from full item definition, including type", - "allOf": [{ - "$ref": "#/definitions/item_ref" - }, { - "type": "object", - "required": ["type"], - "properties": { - "type": { - "description": "What kind of item is it (resource or mapping)", - "enum": ["resource", "mapping"] - } - } - }] - }, - "item_definition_base": { - "description": "Definition of a resource/mapping (fields common to source definitions and built definitions)", - "allOf": [{ - "$ref": "#/definitions/typed_item_ref" - }, { - "type": "object", - "required": ["description"], - "properties": { - "uuid": { - "description": "UUIDv4 of this item (shared with other versions of this item, otherwise unique)", - "type": "string", - "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" - }, - "description": { - "description": "Item's description", - "type": "string" - }, - "comment": { - "$ref": "#/definitions/comment" - } - } - }] - }, - "resource_definition_base": { - "description": "Definition of a resource (fields common to source definitions and built definitions)", - "allOf": [{ - "$ref": "#/definitions/item_definition_base" - }, { - "type": "object", - "required": ["type", "revision"], - "properties": { - "type": { - "description": "Identify this item as a resource", - "const": "resource" - }, - "revision": { - "description": "Which revision of a packaging of given version of an upstream resource is this", - "type": "integer", - "minimum": 1 - }, - "scripts": { - "description": "What scripts are included in the resource", - "$ref": "#/definitions/file_ref_list", - "default": [] - }, - "dependencies": { - "description": "Which other resources this resource depends on", - "type": "array", - "items": { - "$ref": "#/definitions/item_dep_specifier" - }, - "default": [] - } - } - }] - }, - "mapping_definition_base": { - "description": "Definition of a mapping (fields common to source definitions and built definitions)", - "allOf": [{ - "$ref": "#/definitions/item_definition_base" - }, { - "type": "object", - "required": ["type"], - "properties": { - "type": { - "description": "Identify this item as a mapping", - "const": "mapping" - }, - "payloads": { - "description": "Which payloads are to be applied to which URLs", - "additionalProperties": { - "$ref": "#/definitions/item_dep_specifier" - }, - "default": {}, - "examples": [{ - "https://hydrillabugs.koszko.org/***": { - "identifier": "helloapple" - }, - "https://*.koszko.org/***": { - "identifier": "hello-potato" - } - }] - } - } - }] - }, - "generated_by": { - "description": "Describe what software generated this instance", - "type": "object", - "required": ["name"], - "properties": { - "name": { - "type": "string", - "description": "Instance generator software name, without version" - }, - "version": { - "type": "string", - "description": "Instance generator software version, in arbitrary format" - } - } - }, - "item_definition": { - "description": "Definition of a resource/mapping (fields specific to built definitions)", - "type": "object", - "required": ["source_name", "source_copyright"], - "properties": { - "source_name": { - "$ref": "#/definitions/source_name" - }, - "source_copyright": { - "description": "Which files indicate license terms of the source package and should be installed", - "$ref": "#/definitions/file_ref_list_sha256" - }, - "generated_by": { - "$ref": "#/definitions/generated_by" - } - } - } - } -} diff --git a/src/hydrilla/schemas/common_definitions-1.0.1.schema.json.license b/src/hydrilla/schemas/common_definitions-1.0.1.schema.json.license deleted file mode 100644 index f41d511..0000000 --- a/src/hydrilla/schemas/common_definitions-1.0.1.schema.json.license +++ /dev/null @@ -1,5 +0,0 @@ -SPDX-License-Identifier: CC0-1.0 - -Copyright (C) 2022 Wojtek Kosior - -Available under the terms of Creative Commons Zero v1.0 Universal. diff --git a/src/hydrilla/schemas/package_source-1.0.1.schema.json b/src/hydrilla/schemas/package_source-1.0.1.schema.json deleted file mode 100644 index 2f9482e..0000000 --- a/src/hydrilla/schemas/package_source-1.0.1.schema.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://hydrilla.koszko.org/schemas/package_source-1.0.1.schema.json", - "title": "Package source", - "description": "Definition of a Hydrilla source package", - "type": "object", - "required": [ - "$schema", - "source_name", - "copyright", - "upstream_url", - "definitions" - ], - "properties": { - "$schema": { - "description": "Mark this instance as conforming to package source schema 1.x", - "type": "string", - "pattern": "^https://hydrilla\\.koszko\\.org/schemas/package_source-1\\.(([1-9][0-9]*|0)\\.)*schema\\.json$" - }, - "source_name": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/source_name" - }, - "copyright": { - "description": "Which files from the source package indicate its license terms and should be included in the distribution packages", - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list" - }, - "upstream_url": { - "description": "Where this software/work initially comes from", - "type": "string" - }, - "comment": { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/comment" - }, - "definitions": { - "description": "Definitions of site resources and pattern->payload mappings", - "type": "array", - "items": { - "anyOf": [{ - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/resource_definition_base" - }, { - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/mapping_definition_base" - }] - } - }, - "additional_files": { - "description": "Files which should be included in the source archive produced by Hydrilla builder in addition to script and copyright files", - "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list", - "default": [] - }, - "reuse_generate_spdx_report": { - "description": "Should report.spdx be automatically generated for the package using REUSE tool", - "type": "boolean", - "default": false - } - } -} diff --git a/src/hydrilla/schemas/package_source-1.0.1.schema.json.license b/src/hydrilla/schemas/package_source-1.0.1.schema.json.license deleted file mode 100644 index f41d511..0000000 --- a/src/hydrilla/schemas/package_source-1.0.1.schema.json.license +++ /dev/null @@ -1,5 +0,0 @@ -SPDX-License-Identifier: CC0-1.0 - -Copyright (C) 2022 Wojtek Kosior - -Available under the terms of Creative Commons Zero v1.0 Universal. -- cgit v1.2.3