diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index 5c1fa5d001849541f991608c60758fa2672cd4e7..76788c4099ffb4a672f8594da321f2dd78e1791a 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -80,6 +80,8 @@ services: container_name: dbrepo-auth-service hostname: auth-service image: bitnami/keycloak:26.0.0-debian-12-r1 + ports: + - "8080:8080" volumes: - ./config/import-realms.sh:/docker-entrypoint-initdb.d/import-realms.sh - ./config/master-realm.json:/opt/keycloak/data/import/master-realm.json diff --git a/.docs/changelog.md b/.docs/changelog.md index ddf83cb7a4c6cfd3cd899ef9d0590c12fe71d1a9..7dd4f8a2e74b17a604219f5b64beb1a08e034a6e 100644 --- a/.docs/changelog.md +++ b/.docs/changelog.md @@ -8,7 +8,9 @@ author: Martin Weise !!! warning "Contains Breaking Changes" - This release updates the Metadata Database schema which is incompatible to v1.4.6! + This release updates the Metadata Database schema which is incompatible to v1.4.6! Use the migration + script [`schema_1.4.5-to-1.5.0.sql`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/release-1.5/dbrepo-metadata-db/migration/schema_1.4.5-to-1.5.0.sql) + to apply the changes manually. ### What's Changed diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba28ae50d6c7722368cad2fc93ccd9844fe94c4f..fe38a063c3a685e21b6c30e926c6b8a6d534347f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -419,6 +419,7 @@ release-docs: - "pip install pipenv" - "pipenv install --dev --system --deploy" - "mkdir -p ./final/${DOC_VERSION}/rest" + - "mkdir -p ./final/${APP_VERSION}" script: - "make gen-lib-doc gen-docs-doc package-config" - "cp -r ./lib/python/docs/build/html ./final/${DOC_VERSION}/python" # sphinx @@ -427,6 +428,7 @@ release-docs: - "cp .docs/.swagger/custom.css ./final/${DOC_VERSION}/rest/custom.css" # swagger - "cp -r ./site/* ./final/${DOC_VERSION}" # mkdocs - "cp .docker/dist.tar.gz ./final/${DOC_VERSION}/dist.tar.gz" # dist + - "cp .docs/redirect.html ./final/${APP_VERSION}/index.html" # redirect patch docs - "bash ./.gitlab/gen-badge.sh" - eval $(ssh-agent -s) - "mkdir -p /root/.ssh" diff --git a/dbrepo-metadata-db/migration/schema_1.4.5-to-1.5.0.sql b/dbrepo-metadata-db/migration/schema_1.4.5-to-1.5.0.sql new file mode 100644 index 0000000000000000000000000000000000000000..9b8e055aa28c3db8ba554b985fe870748e86a2f3 --- /dev/null +++ b/dbrepo-metadata-db/migration/schema_1.4.5-to-1.5.0.sql @@ -0,0 +1,153 @@ +ALTER TABLE mdb_image_types + DROP SYSTEM VERSIONING; +TRUNCATE mdb_image_types; +ALTER TABLE mdb_image_types + DROP + COLUMN hint; +ALTER TABLE mdb_image_types + ADD COLUMN type_hint TEXT; +ALTER TABLE mdb_image_types + ADD COLUMN data_hint TEXT; +ALTER TABLE mdb_image_types + ADD COLUMN is_generated BOOLEAN NOT NULL; +ALTER TABLE mdb_image_types + ADD SYSTEM VERSIONING; + +INSERT INTO `mdb_image_types` (image_id, display_name, value, size_min, size_max, size_default, size_required, + size_step, d_min, d_max, d_default, d_required, d_step, type_hint, data_hint, + documentation, is_quoted, is_buildable, is_generated) +VALUES (1, 'BIGINT(size)', 'bigint', 0, null, null, false, 1, null, null, null, null, null, null, null, + 'https://mariadb.com/kb/en/bigint/', false, true, false), + (1, 'BINARY(size)', 'binary', 0, 255, 255, true, 1, null, null, null, null, null, 'size in Bytes', null, + 'https://mariadb.com/kb/en/binary/', false, true, false), + (1, 'BIT(size)', 'bit', 0, 64, null, false, 1, null, null, null, null, null, null, null, + 'https://mariadb.com/kb/en/bit/', false, true, false), + (1, 'BLOB(size)', 'blob', 0, 65535, null, false, 1, null, null, null, null, null, 'size in Bytes', null, + 'https://mariadb.com/kb/en/blob/', false, false, false), + (1, 'BOOL', 'bool', null, null, null, null, null, null, null, null, null, null, null, null, + 'https://mariadb.com/kb/en/bool/', false, true, false), + (1, 'CHAR(size)', 'char', 0, 255, 255, false, 1, null, null, null, null, null, null, null, + 'https://mariadb.com/kb/en/char/', false, true, false), + (1, 'DATE', 'date', null, null, null, null, null, null, null, null, null, null, + 'min. 1000-01-01, max. 9999-12-31', 'e.g. YYYY-MM-DD, YY-MM-DD, YYMMDD, YYYY/MM/DD', + 'https://mariadb.com/kb/en/date/', true, true, false), + (1, 'DATETIME(fsp)', 'datetime', 0, 6, null, null, 1, null, null, null, null, null, + 'fsp=microsecond precision, min. 1000-01-01 00:00:00.0, max. 9999-12-31 23:59:59.9', + 'e.g. YYYY-MM-DD HH:MM:SS, YY-MM-DD HH:MM:SS, YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, YYMMDD', + 'https://mariadb.com/kb/en/datetime/', true, true, false), + (1, 'DECIMAL(size, d)', 'decimal', 0, 65, null, false, 1, 0, 38, null, false, null, null, null, + 'https://mariadb.com/kb/en/decimal/', false, true, false), + (1, 'DOUBLE(size, d)', 'double', null, null, null, false, null, null, null, null, false, null, null, null, + 'https://mariadb.com/kb/en/double/', false, true, false), + (1, 'ENUM(v1,v2,...)', 'enum', null, null, null, null, null, null, null, null, null, null, null, + 'e.g. value1, value2, ...', 'https://mariadb.com/kb/en/enum/', true, true, false), + (1, 'FLOAT(size)', 'float', null, null, null, false, null, null, null, null, null, null, null, null, + 'https://mariadb.com/kb/en/float/', false, true, false), + (1, 'INT(size)', 'int', null, null, null, false, null, null, null, null, null, null, 'size in Bytes', null, + 'https://mariadb.com/kb/en/int/', false, true, false), + (1, 'LONGBLOB', 'longblob', null, null, null, null, null, null, null, null, null, null, 'max. 3.999 GiB', null, + 'https://mariadb.com/kb/en/longblob/', false, true, false), + (1, 'LONGTEXT', 'longtext', null, null, null, null, null, null, null, null, null, null, 'max. 3.999 GiB', null, + 'https://mariadb.com/kb/en/longtext/', true, true, false), + (1, 'MEDIUMBLOB', 'mediumblob', null, null, null, null, null, null, null, null, null, null, 'max. 15.999 MiB', + null, 'https://mariadb.com/kb/en/mediumblob/', false, true, false), + (1, 'MEDIUMINT', 'mediumint', null, null, null, null, null, null, null, null, null, null, 'size in Bytes', null, + 'https://mariadb.com/kb/en/mediumint/', false, true, false), + (1, 'MEDIUMTEXT', 'mediumtext', null, null, null, null, null, null, null, null, null, null, 'size in Bytes', + null, 'https://mariadb.com/kb/en/mediumtext/', true, true, false), + (1, 'SERIAL', 'serial', null, null, null, null, null, null, null, null, null, null, null, + null, 'https://mariadb.com/kb/en/bigint/', true, true, true), + (1, 'SET(v1,v2,...)', 'set', null, null, null, null, null, null, null, null, null, null, null, + 'e.g. value1, value2, ...', 'https://mariadb.com/kb/en/set/', true, true, false), + (1, 'SMALLINT(size)', 'smallint', 0, null, null, false, null, null, null, null, null, null, 'size in Bytes', + null, 'https://mariadb.com/kb/en/smallint/', false, true, false), + (1, 'TEXT(size)', 'text', 0, null, null, false, null, null, null, null, null, null, 'size in Bytes', null, + 'https://mariadb.com/kb/en/text/', true, true, false), + (1, 'TIME(fsp)', 'time', 0, 6, 0, false, null, null, null, null, null, null, + 'fsp=microsecond precision, min. 0, max. 6', 'e.g. HH:MM:SS, HH:MM, HHMMSS, H:M:S', + 'https://mariadb.com/kb/en/time/', true, true, false), + (1, 'TIMESTAMP(fsp)', 'timestamp', 0, 6, 0, false, null, null, null, null, null, null, + 'fsp=microsecond precision, min. 0, max. 6', + 'e.g. YYYY-MM-DD HH:MM:SS, YY-MM-DD HH:MM:SS, YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, YYMMDD', + 'https://mariadb.com/kb/en/timestamp/', true, true, false), + (1, 'TINYBLOB', 'tinyblob', null, null, null, null, null, null, null, null, null, null, null, + 'fsp=microsecond precision, min. 0, max. 6', 'https://mariadb.com/kb/en/timestamp/', false, true, false), + (1, 'TINYINT(size)', 'tinyint', 0, null, null, false, null, null, null, null, null, null, null, + 'size in Bytes', 'https://mariadb.com/kb/en/tinyint/', false, true, false), + (1, 'TINYTEXT', 'tinytext', null, null, null, null, null, null, null, null, null, null, null, + 'max. 255 characters', 'https://mariadb.com/kb/en/tinytext/', true, true, false), + (1, 'YEAR', 'year', 2, 4, null, false, 2, null, null, null, null, null, 'min. 1901, max. 2155', 'e.g. YYYY, YY', + 'https://mariadb.com/kb/en/year/', false, true, false), + (1, 'VARBINARY(size)', 'varbinary', 0, null, null, true, null, null, null, null, null, null, null, + null, 'https://mariadb.com/kb/en/varbinary/', false, true, false), + (1, 'VARCHAR(size)', 'varchar', 0, 65532, 255, true, null, null, null, null, null, null, null, + null, 'https://mariadb.com/kb/en/varchar/', false, true, false); + +ALTER TABLE mdb_related_identifiers + DROP SYSTEM VERSIONING; +ALTER TABLE mdb_related_identifiers + MODIFY type ENUM ('DOI','URL','URN','ARK','ARXIV','BIBCODE','EAN13','EISSN','HANDLE','IGSN','ISBN','ISTC','LISSN','LSID','PMID','PURL','UPC','W3ID') NOT NULL; +ALTER TABLE mdb_related_identifiers + MODIFY relation ENUM ('IS_CITED_BY','CITES','IS_SUPPLEMENT_TO','IS_SUPPLEMENTED_BY','IS_CONTINUED_BY','CONTINUES','IS_DESCRIBED_BY','DESCRIBES','HAS_METADATA','IS_METADATA_FOR','HAS_VERSION','IS_VERSION_OF','IS_NEW_VERSION_OF','IS_PREVIOUS_VERSION_OF','IS_PART_OF','HAS_PART','IS_PUBLISHED_IN','IS_REFERENCED_BY','REFERENCES','IS_DOCUMENTED_BY','DOCUMENTS','IS_COMPILED_BY','COMPILES','IS_VARIANT_FORM_OF','IS_ORIGINAL_FORM_OF','IS_IDENTICAL_TO','IS_REVIEWED_BY','REVIEWS','IS_DERIVED_FROM','IS_SOURCE_OF','IS_REQUIRED_BY','REQUIRES','IS_OBSOLETED_BY','OBSOLETES') NOT NULL; +ALTER TABLE mdb_related_identifiers + ADD SYSTEM VERSIONING; + +CREATE TABLE IF NOT EXISTS `mdb_image_operators` +( + id + SERIAL, + image_id + BIGINT + NOT + NULL, + display_name + varchar(255) NOT NULL, + value varchar(255) NOT NULL, + documentation TEXT NOT NULL, + PRIMARY KEY + ( + id + ), + FOREIGN KEY + ( + image_id + ) REFERENCES `mdb_images` + ( + `id` + ), + UNIQUE + ( + value + ) +) WITH SYSTEM VERSIONING; + +INSERT INTO `mdb_image_operators` (image_id, display_name, value, documentation) +VALUES (1, 'Equal operator', '=', 'https://mariadb.com/kb/en/assignment-operators-assignment-operator/'), + (1, 'NULL-safe equal operator', '<=>', 'https://mariadb.com/kb/en/null-safe-equal/'), + (1, 'Less-than operator', '<', 'https://mariadb.com/kb/en/less-than/'), + (1, 'Less than or equal operator', '<=', 'https://mariadb.com/kb/en/less-than-or-equal/'), + (1, 'Greater-than operator', '>', 'https://mariadb.com/kb/en/greater-than/'), + (1, 'Greater than or equal operator', '>=', 'https://mariadb.com/kb/en/greater-than-or-equal/'), + (1, 'Not equal operator', '!=', 'https://mariadb.com/kb/en/not-equal/'), + (1, 'Addition operator', '+', 'https://mariadb.com/kb/en/addition-operator/'), + (1, 'Division operator', '/', 'https://mariadb.com/kb/en/division-operator/'), + (1, 'Modulo operator', '%', 'https://mariadb.com/kb/en/modulo-operator/'), + (1, 'Multiplication operator', '*', 'https://mariadb.com/kb/en/multiplication-operator/'), + (1, 'Subtraction operator', '-', 'https://mariadb.com/kb/en/subtraction-operator-/'), + (1, 'LIKE', 'LIKE', 'https://mariadb.com/kb/en/like/'), + (1, 'NOT LIKE', 'NOT LIKE', 'https://mariadb.com/kb/en/not-like/'), + (1, 'IN', 'IN', 'https://mariadb.com/kb/en/in/'), + (1, 'NOT IN', 'NOT IN', 'https://mariadb.com/kb/en/not-in/'), + (1, 'IS', 'IS', 'https://mariadb.com/kb/en/is/'), + (1, 'IS NOT', 'IS NOT', 'https://mariadb.com/kb/en/is-not/'), + (1, 'IS NOT NULL', 'IS NOT NULL', 'https://mariadb.com/kb/en/is-not-null/'), + (1, 'IS NULL', 'IS NULL', 'https://mariadb.com/kb/en/is-null/'), + (1, 'ISNULL', 'ISNULL', 'https://mariadb.com/kb/en/isnull/'), + (1, 'REGEXP', 'REGEXP', 'https://mariadb.com/kb/en/regexp/'), + (1, 'NOT REGEXP', 'NOT REGEXP', 'https://mariadb.com/kb/en/not-regexp/'), + (1, 'Bitwise AND', '&', 'https://mariadb.com/kb/en/bitwise_and/'), + (1, 'Bitwise OR', '|', 'https://mariadb.com/kb/en/bitwise-or/'), + (1, 'Bitwise XOR', '^', 'https://mariadb.com/kb/en/bitwise-xor/'), + (1, 'Bitwise NOT', '~', 'https://mariadb.com/kb/en/bitwise-not/'), + (1, 'Left shift', '<<', 'https://mariadb.com/kb/en/shift-left/'), + (1, 'Right shift', '>>', 'https://mariadb.com/kb/en/shift-right/'); \ No newline at end of file