diff --git a/CHANGELOG.md b/CHANGELOG.md index 10652f17f2f515bb408d91ffc2f18564c7452f1d..5f7f14fe7acbd998efbb1b30f63778447784a055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,16 +5,47 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.1] 2021-11-08 +(Timm Fitschen) + +The initial release contains two separate GRPC APIs, one for transactions of +entities (Entity API) and one for general information about the server. + +Note that the authentication of clients (and/or servers) is not defined as +a protobuf API. Instead, the server should provide authentication schemes based +on the transport protocols (usually HTTP/2) and indicate the options in its own +documentation. ### Added -### Changed +#### Entity API (v1) + +The Entity API defines entities, the first-class citizens of CaosDB and the +transactions for insertion, updates, retrieval and deletion of entities and the +upload and download of binary files. + +Entities can be retrieved by id or by query. Several entities can be processed +in a single transaction and the transaction types (insertion, update, deletion, +retrieval) can be mixed in a single transaction. + +Notable current limitations of the API: + + * The error handling is still not perfect. Properties cannot have messages + right now and only a few error messages are defined in the API. + * The version message can only represent the version id of an entity. The + history cannot be retrieved. + * The entity's access control lists cannot be changed or retrieved. + * The entity state cannot be changed or retrieved. + * A lot of flags (e.g. inheritance among other things) which are implemented + in the REST API of CaosDB are not supported. -### Deprecated +The current release is designed in a way that these limitation can be be +overcome in future releases of the API without breaking backwards compatibility. -### Removed +#### Info API (v1) -### Fixed +The Info API is strict read-only API which provides useful non-confidential +information about the server. -### Security +The initial release of this API is quite limited. Only the server version can +be retrieved. diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f4e90751de80e4ba4d15a40abf599f03119d9e4..f7dc3f92231f8d450013eddade871952aa699f3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ cmake_minimum_required(VERSION 3.13) -set(CAOSDB_PROTO_VERSION 0.0.10) +set(CAOSDB_PROTO_VERSION 0.1.0) project("caosdb-proto" VERSION ${CAOSDB_PROTO_VERSION} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9de921c9981572e001ee41e37f4ef7a36ccd30d8..ca5a13a3949c295fc980ecd3e9173d5315e4a9b6 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -55,13 +55,14 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at **t.fitschen (AT) indiscale.com**, -**d.hornung (AT) indiscale.com**, **a.schlemmer (AT) indiscale.com**, or -**h.tomwoerden (AT) indiscale.com**. All complaints will be -reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. +reported by contacting the project team at **s.rohde (AT) indiscale.com**, +**t.fitschen (AT) indiscale.com**, **d.hornung (AT) indiscale.com**, +**a.schlemmer (AT) indiscale.com**, or **h.tomwoerden (AT) indiscale.com**. +All complaints will be reviewed and investigated and will result in a response +that is deemed necessary and appropriate to the circumstances. The project team +is obligated to maintain confidentiality with regard to the reporter of an +incident. Further details of specific enforcement policies may be posted +separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index 15b3e417102aa64e1c46208d609e5a1415d6080b..fb4f36a908730c83db79e41453fef3ea1aa3bd93 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -1,5 +1,6 @@ # GENERAL +No dependencies. # BUILD DOCS @@ -12,7 +13,8 @@ # LINTING -* >=buf-0.43.2 +* Dependencies from BUILD DOCS +* >=buf-0.43.2 (install via pip) # FORMATTING diff --git a/HUMANS.md b/HUMANS.md index 3104ed33f893da734c04d97b694bc2c1126ac519..9f62dadda4f90cfb968b689ce66066a3ed5f2666 100644 --- a/HUMANS.md +++ b/HUMANS.md @@ -1,3 +1,4 @@ # Active Contributors * Timm Fitschen <t.fitschen@indiscale.com> +* Daniel Hornung <d.hornung@indiscale.com> diff --git a/RELEASE_GUIDELINES.md b/RELEASE_GUIDELINES.md index a4ef6e55a76bb0eeca84d814f46b9c5161217595..6dc4fafcb338ed88b7fa03798b09624d8c51f538 100644 --- a/RELEASE_GUIDELINES.md +++ b/RELEASE_GUIDELINES.md @@ -7,7 +7,6 @@ guidelines of the CaosDB Project ## General Prerequisites * All tests are passing. -* FEATURES.md is up-to-date and a public API is being declared in that document. * CHANGELOG.md is up-to-date. * DEPENDENCIES.md is up-to-date. @@ -28,5 +27,3 @@ guidelines of the CaosDB Project 6. Tag the latest commit of the main branch with `v<VERSION>`. 7. Delete the release branch. - -8. TODO... diff --git a/proto/caosdb/CMakeLists.txt b/proto/caosdb/CMakeLists.txt index 2c820d599a8bcdc05fb3d058123f7e5299f7c3e0..f7fa61531e3c135afc139c41337d8a59a3cca39f 100644 --- a/proto/caosdb/CMakeLists.txt +++ b/proto/caosdb/CMakeLists.txt @@ -19,8 +19,8 @@ # set(CAOSDB_API_PACKAGES - caosdb.info.v1alpha1 - caosdb.entity.v1alpha1 + caosdb.info.v1 + caosdb.entity.v1 caosdb.acm.v1alpha1 ) diff --git a/proto/caosdb/entity/v1alpha1/main.proto b/proto/caosdb/entity/v1/main.proto similarity index 71% rename from proto/caosdb/entity/v1alpha1/main.proto rename to proto/caosdb/entity/v1/main.proto index 605711e0e3378449eed4b44d6cb220b003899d5e..db89ef5fb57d31c16608a71300251318fca5b2e3 100644 --- a/proto/caosdb/entity/v1alpha1/main.proto +++ b/proto/caosdb/entity/v1/main.proto @@ -18,12 +18,12 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. // -// This is the main file of the caosdb.entity.v1alpha1 package. +// This is the main file of the caosdb.entity.v1 package. syntax = "proto3"; option java_multiple_files = true; -option java_package = "org.caosdb.api.entity.v1alpha1"; +option java_package = "org.caosdb.api.entity.v1"; option cc_enable_arenas = true; -package caosdb.entity.v1alpha1; +package caosdb.entity.v1; // Data type for references to other entities. message ReferenceDataType { @@ -137,258 +137,195 @@ enum MessageCode { // code was not in this list. An unknown error code is a sign of a wrong otr // out-dated implementation on either side. MESSAGE_CODE_UNKNOWN = 1; + // The requested entity (retrieve, delete, or update) does not exist. MESSAGE_CODE_ENTITY_DOES_NOT_EXIST = 2; + // The entity has no properties. MESSAGE_CODE_ENTITY_HAS_NO_PROPERTIES = 3; - // TODO(tf) This entity has been deleted successfully. - MESSAGE_CODE_ENTITY_HAS_BEEN_DELETED_SUCCESSFULLY = 5; - - // TODO(tf) Entity has unqualified properties. - MESSAGE_CODE_ENTITY_HAS_UNQUALIFIED_PROPERTIES = 6; - - // TODO(tf) Entity has unqualified parents. - MESSAGE_CODE_ENTITY_HAS_UNQUALIFIED_PARENTS = 7; - - // TODO(tf) DESCRIPTION!!! - MESSAGE_CODE_PARSING_FAILED = 8; - - // TODO(tf) Unknown datatype. - MESSAGE_CODE_UNKNOWN_DATATYPE = 9; - - // TODO(tf) Unknown importance. - MESSAGE_CODE_UNKNOWN_IMPORTANCE = 10; - - // TODO(tf) Entity has no ID. - MESSAGE_CODE_ENTITY_HAS_NO_ID = 11; - - // TODO(tf) Entity is required by other entities which are not to be deleted. - MESSAGE_CODE_REQUIRED_BY_PERSISTENT_ENTITY = 12; - - // TODO(tf) Property has no datatype. - MESSAGE_CODE_NO_DATATYPE = 13; - - // TODO(tf) Entity has no description. - MESSAGE_CODE_ENTITY_HAS_NO_DESCRIPTION = 14; - - // TODO(tf) Entity has no name. - MESSAGE_CODE_ENTITY_HAS_NO_NAME = 15; - - // TODO(tf) An obligatory property is missing. - MESSAGE_CODE_OBLIGATORY_PROPERTY_MISSING = 16; + // This entity has been deleted successfully. + MESSAGE_CODE_ENTITY_HAS_BEEN_DELETED_SUCCESSFULLY = 4; - // TODO(tf) Entity has no parents. - MESSAGE_CODE_ENTITY_HAS_NO_PARENTS = 17; + // On insert or update: Entity has unqualified properties. + MESSAGE_CODE_ENTITY_HAS_UNQUALIFIED_PROPERTIES = 5; - // TODO(tf) Entity can not be identified due to name duplicates. - MESSAGE_CODE_NAME_DUPLICATES = 18; + // On insert or update: Entity has unqualified parents. + MESSAGE_CODE_ENTITY_HAS_UNQUALIFIED_PARENTS = 6; - // TODO(tf) Entity has no name and no ID. - MESSAGE_CODE_ENTITY_HAS_NO_NAME_AND_NO_ID = 19; + // On update: Entity, Property or Parent has no ID and the server is + // configured to require a valid ID for all entities which are to be updated + // and for their properties and parents as well. + MESSAGE_CODE_ENTITY_HAS_NO_ID = 7; - // TODO(tf) Reference property has no refid. - MESSAGE_CODE_REFERENCE_HAS_NO_REFID = 20; + // On delete: Entity is required by other entities which are not to be + // deleted. + MESSAGE_CODE_REQUIRED_BY_PERSISTENT_ENTITY = 8; - // TODO(tf) No target path specified. - MESSAGE_CODE_NO_TARGET_PATH = 21; + // Property has no datatype. + MESSAGE_CODE_PROPERTY_HAS_NO_DATA_TYPE = 9; - // TODO(tf) This target path is not allowed. - MESSAGE_CODE_TARGET_PATH_NOT_ALLOWED = 22; + // Entity has no description. + MESSAGE_CODE_ENTITY_HAS_NO_DESCRIPTION = 10; - // TODO(tf) This target path does already exist. - MESSAGE_CODE_TARGET_PATH_EXISTS = 23; + // Entity has no name. + MESSAGE_CODE_ENTITY_HAS_NO_NAME = 11; - // TODO(tf) Entity has no unit. - MESSAGE_CODE_ENTITY_HAS_NO_UNIT = 24; + // On insert or update: An obligatory property is missing. + MESSAGE_CODE_OBLIGATORY_PROPERTY_MISSING = 12; - // TODO(tf) Cannot parse value. - MESSAGE_CODE_CANNOT_PARSE_VALUE = 25; + // On insert or update: Entity has no parents. + MESSAGE_CODE_ENTITY_HAS_NO_PARENTS = 13; - // TODO(tf) Checksum test failed. File is corrupted. - MESSAGE_CODE_CHECKSUM_TEST_FAILED = 26; + // No target path specified. + MESSAGE_CODE_FILE_HAS_NO_TARGET_PATH = 14; - // TODO(tf) Size test failed. File is corrupted. - MESSAGE_CODE_SIZE_TEST_FAILED = 27; + // This target path is not allowed. + MESSAGE_CODE_TARGET_PATH_NOT_ALLOWED = 15; - // TODO(tf) Could not create parent folder in the file system. - MESSAGE_CODE_CANNOT_CREATE_PARENT_FOLDER = 28; + // This target path does already exist. + MESSAGE_CODE_TARGET_PATH_EXISTS = 16; - // TODO(tf) File has not been uploaded. - MESSAGE_CODE_FILE_HAS_NOT_BEEN_UPLOAED = 29; + // Property has no unit. + MESSAGE_CODE_PROPERTY_HAS_NO_UNIT = 17; - // TODO(tf) Thumbnail has not been uploaded. - MESSAGE_CODE_THUMBNAIL_HAS_NOT_BEEN_UPLOAED = 30; + // Cannot parse value. + MESSAGE_CODE_CANNOT_PARSE_VALUE = 18; - // TODO(tf) Could not move file to it's target folder. - MESSAGE_CODE_CANNOT_MOVE_FILE_TO_TARGET_PATH = 31; + // Checksum test failed. File is corrupted. + MESSAGE_CODE_CHECKSUM_TEST_FAILED = 19; - // TODO(tf) Cannot parse value to datetime format - // (yyyy-mm-dd'T'hh:mm:ss[.fffffffff][TimeZone]). - MESSAGE_CODE_CANNOT_PARSE_DATETIME_VALUE = 32; + // Size test failed. File is corrupted. + MESSAGE_CODE_SIZE_TEST_FAILED = 20; - // TODO(tf) Cannot parse value to double. - MESSAGE_CODE_CANNOT_PARSE_DOUBLE_VALUE = 33; + // Cannot create parent folder in the file system. + MESSAGE_CODE_CANNOT_CREATE_PARENT_FOLDER = 21; - // TODO(tf) Cannot parse value to integer. - MESSAGE_CODE_CANNOT_PARSE_INT_VALUE = 34; + // File has not been uploaded. + MESSAGE_CODE_FILE_HAS_NOT_BEEN_UPLOAED = 22; - // TODO(tf) Cannot parse value to boolean (either 'true' or 'false', ignoring - // case). - MESSAGE_CODE_CANNOT_PARSE_BOOL_VALUE = 35; + // Cannot move file to it's target folder. + MESSAGE_CODE_CANNOT_MOVE_FILE_TO_TARGET_PATH = 23; - // TODO(tf) Could not connect to MySQL server. - MESSAGE_CODE_CANNOT_CONNECT_TO_DATABASE = 36; + // Cannot parse value as datetime value. + MESSAGE_CODE_CANNOT_PARSE_DATETIME_VALUE = 24; - // TODO(tf) Please check if your MySQL has all required procedures installed. - MESSAGE_CODE_MYSQL_PROCEDURE_EXCEPTION = 37; + // Cannot parse value as double value. + MESSAGE_CODE_CANNOT_PARSE_DOUBLE_VALUE = 25; - // TODO(tf) This error occurred while parsing the xml. Probably it has a wrong - // encoding. - MESSAGE_CODE_REQUEST_HAS_WRONG_ENCODING = 38; + // Cannot parse value as integer value. + MESSAGE_CODE_CANNOT_PARSE_INT_VALUE = 26; - // TODO(tf) Request body didn't contain the expected Elements. - MESSAGE_CODE_REQUEST_DOESNT_CONTAIN_EXPECTED_ELEMENTS = 39; + // Cannot parse value as boolean value (either 'true' or 'false', case + // insensitive). + MESSAGE_CODE_CANNOT_PARSE_BOOL_VALUE = 27; - // TODO(tf) File is not in drop-off box. - MESSAGE_CODE_FILE_NOT_IN_DROPOFFBOX = 40; + // File could not be found. + MESSAGE_CODE_FILE_NOT_FOUND = 28; - // TODO(tf) File could not be found. - MESSAGE_CODE_FILE_NOT_FOUND = 41; + // A warning occured while processing an entity with the strict flag. + MESSAGE_CODE_WARNING_OCCURED = 29; - // TODO(tf) Could not move file to tmp folder. - MESSAGE_CODE_CANNOT_MOVE_FILE_TO_TMP = 42; + // On insert or update: Name is already in use. Choose a different name or + // reuse an existing entity. + MESSAGE_CODE_ENTITY_NAME_IS_NOT_UNIQUE = 30; - // TODO(tf) Insufficient read permission for this file. Please make it - // readable. - MESSAGE_CODE_CANNOT_READ_FILE = 43; + // This query finished with errors. + MESSAGE_CODE_QUERY_EXCEPTION = 31; - // TODO(tf) Insufficient read permission for this file's thumbnail. Please - // make it readable. - MESSAGE_CODE_CANNOT_READ_THUMBNAIL = 44; + // An unknown error occured during the transaction and it was rolled back. + MESSAGE_CODE_TRANSACTION_ROLL_BACK = 32; - // TODO(tf) No file representation submitted. - MESSAGE_CODE_NO_FILE_REPRESENTATION_SUBMITTED = 45; + // Unknown unit. Values with this unit cannot be converted to other units + // when used in search queries. + MESSAGE_CODE_UNKNOWN_UNIT = 34; - // TODO(tf) DESCRIPTION? - MESSAGE_CODE_FILE_IS_EMPTY = 46; + // You are not allowed to do this. + MESSAGE_CODE_AUTHORIZATION_ERROR = 35; - // TODO(tf) A warning occured while processing an entity with the strict flag. - MESSAGE_CODE_WARNING_OCCURED = 47; + // Reference not qualified. The value of this Reference Property is to be a + // child of its data type. + MESSAGE_CODE_REFERENCE_IS_NOT_ALLOWED_BY_DATA_TYPE = 36; - // TODO(tf) DESCRIPTION? - MESSAGE_CODE_UNKNOWN_JOB = 48; + // This entity cannot be identified due to name duplicates. + MESSAGE_CODE_ENTITY_NAME_DUPLICATES = 37; - // TODO(tf) Name is already in use. Choose a different name or reuse an - // existing entity. - MESSAGE_CODE_NAME_IS_NOT_UNIQUE = 49; + // This data type cannot be identified due to name duplicates. + MESSAGE_CODE_DATA_TYPE_NAME_DUPLICATES = 38; - // TODO(tf) This entity cannot be identified uniquely due to name dublicates - MESSAGE_CODE_CANNOT_IDENTIFY_ENTITY_UNIQUELY = 50; + // This entity cannot be identified as it didn't come with a name or id. + MESSAGE_CODE_ENTITY_HAS_NO_NAME_OR_ID = 39; - // TODO(tf) This query finished with errors. - MESSAGE_CODE_QUERY_EXCEPTION = 51; + // Affiliation is not defined for this child-parent constellation. + MESSAGE_CODE_AFFILIATION_ERROR = 40; - // TODO(tf) This entity is empty. - MESSAGE_CODE_ENTITY_IS_EMPTY = 52; - - // TODO(tf) An unknown error occured during the transaction and it was rolled - // back. - MESSAGE_CODE_TRANSACTION_ROLL_BACK = 53; - - // TODO(tf) The file upload failed for an unknown reason. - MESSAGE_CODE_FILE_UPLOAD_FAILED = 54; - - // TODO(tf) Unknown unit. Values with this unit cannot be converted to other - // units when used in search queries. - MESSAGE_CODE_UNKNOWN_UNIT = 55; - - // TODO(tf) You are not allowed to do this. - MESSAGE_CODE_AUTHORIZATION_ERROR = 56; - - // TODO(tf) Reference not qualified. The value of this Reference Property is - // to be a child of its data type. - MESSAGE_CODE_REFERENCE_IS_NOT_ALLOWED_BY_DATATYPE = 57; - - // TODO(tf) Cannot parse EntityACL. - MESSAGE_CODE_CANNOT_PARSE_ENTITY_ACL = 58; - - // TODO(tf) This entity cannot be identified due to name duplicates. - MESSAGE_CODE_ENTITY_NAME_DUPLICATES = 59; - - // TODO(tf) This data type cannot be identified due to name duplicates. - MESSAGE_CODE_DATA_TYPE_NAME_DUPLICATES = 60; - - // TODO(tf) This entity cannot be identified as it didn't come with a name or - // id. - MESSAGE_CODE_ENTITY_HAS_NO_NAME_OR_ID = 61; - - // TODO(tf) Affiliation is not defined for this child-parent constellation. - MESSAGE_CODE_AFFILIATION_ERROR = 62; - - // TODO(tf) An error occured during the parsing of this query. Maybe you use a + // An error occured during the parsing of this query. Maybe you were using a // wrong syntax? - MESSAGE_CODE_QUERY_PARSING_ERROR = 63; + MESSAGE_CODE_QUERY_PARSING_ERROR = 41; - // TODO(tf) A property which has 'name' as its parent must have a TEXT data - // type. - MESSAGE_CODE_NAME_PROPERTIES_MUST_BE_TEXT = 64; + // A property which has 'name' as its parent must have a TEXT data type. + MESSAGE_CODE_NAME_PROPERTIES_MUST_BE_TEXT = 42; - // TODO(tf) This entity had parent duplicates. That is meaningless and only - // one parent had been inserted. - MESSAGE_CODE_PARENT_DUPLICATES_WARNING = 65; + // This entity had parent duplicates. That is meaningless and only one parent + // had been inserted. + MESSAGE_CODE_PARENT_DUPLICATES_WARNING = 43; - // TODO(tf) This entity had parent duplicates. Parent duplicates are - // meaningless and would be ignored (and inserted only once). But these - // parents had diverging inheritance instructions which cannot be processed. - MESSAGE_CODE_PARENT_DUPLICATES_ERROR = 66; + // This entity had parent duplicates. Parent duplicates are meaningless and + // would be ignored (and inserted only once). But these parents had diverging + // inheritance instructions which cannot be processed. + MESSAGE_CODE_PARENT_DUPLICATES_ERROR = 44; - // TODO(tf) One or more entities are not qualified. None of them have been + // One or more entities are not qualified. None of them have been // inserted/updated/deleted. - MESSAGE_CODE_ATOMICITY_ERROR = 67; + MESSAGE_CODE_ATOMICITY_ERROR = 45; - // TODO(tf) There is no such role '" + role + "'. - MESSAGE_CODE_NO_SUCH_ENTITY_ROLE = 68; + // There is no such role. + MESSAGE_CODE_NO_SUCH_ENTITY_ROLE = 46; - // TODO(tf) This entity cannot be deleted due to dependency problems - MESSAGE_CODE_REQUIRED_BY_UNQUALIFIED = 69; + // This entity cannot be deleted due to dependency problems + MESSAGE_CODE_REQUIRED_BY_UNQUALIFIED = 47; - // TODO(tf) This entity has an invalid reference. - MESSAGE_CODE_ENTITY_HAS_INVALID_REFERENCE = 70; + // This entity has an unqualified reference. I.e. the referenced entity is + // not qualified for the transaction. + MESSAGE_CODE_ENTITY_HAS_UNQUALIFIED_REFERENCE = 48; - // TODO(tf) Referenced entity does not exist. - MESSAGE_CODE_REFERENCED_ENTITY_DOES_NOT_EXIST = 71; + // Referenced entity does not exist. + MESSAGE_CODE_REFERENCED_ENTITY_DOES_NOT_EXIST = 49; - // TODO(tf) This reference cannot be identified due to name duplicates. - MESSAGE_CODE_REFERENCE_NAME_DUPLICATES = 72; + // This reference cannot be identified due to name duplicates. + MESSAGE_CODE_REFERENCE_NAME_DUPLICATES = 50; - // TODO(tf) The datatype which is to be inherited could not be detected due to + // The datatype which is to be inherited could not be detected due to // divergent datatypes of at least two parents. - MESSAGE_CODE_DATATYPE_INHERITANCE_AMBIGUOUS = 73; + MESSAGE_CODE_DATA_TYPE_INHERITANCE_AMBIGUOUS = 51; - // TODO(tf) This datatype does not accept collections of values (e.g. Lists). - MESSAGE_CODE_DATA_TYPE_DOES_NOT_ACCEPT_COLLECTION_VALUES = 74; + // This datatype does not accept collections of values (e.g. Lists). + MESSAGE_CODE_DATA_TYPE_DOES_NOT_ACCEPT_COLLECTION_VALUES = 52; - // TODO(tf) This unit cannot be parsed. - MESSAGE_CODE_CANNOT_PARSE_UNIT = 75; + // This unit cannot be parsed. + MESSAGE_CODE_CANNOT_PARSE_UNIT = 53; - // TODO(tf) This property is an additional property which has no corresponding + // This property is an additional property which has no corresponding // property among the properties of the parents. - MESSAGE_CODE_ADDITIONAL_PROPERTY = 76; + MESSAGE_CODE_ADDITIONAL_PROPERTY = 54; - // TODO(tf) This property overrides the datatype. - MESSAGE_CODE_PROPERTY_WITH_DATATYPE_OVERRIDE = 77; + // This property overrides the datatype. + MESSAGE_CODE_PROPERTY_WITH_DATA_TYPE_OVERRIDE = 55; - // TODO(tf) This property overrides the description. - MESSAGE_CODE_PROPERTY_WITH_DESC_OVERRIDE = 78; + // This property overrides the description. + MESSAGE_CODE_PROPERTY_WITH_DESCRIPTION_OVERRIDE = 56; - // TODO(tf) This property overrides the name. - MESSAGE_CODE_PROPERTY_WITH_NAME_OVERRIDE = 79; + // This property overrides the name. + MESSAGE_CODE_PROPERTY_WITH_NAME_OVERRIDE = 57; // Indicates that this server cannot process this integer value because it is // out of range. The integer range is an implementation detail and thus this // can happen even though the API allows the value. - MESSAGE_CODE_INTEGER_VALUE_OUT_OF_RANGE = 80; + MESSAGE_CODE_INTEGER_VALUE_OUT_OF_RANGE = 58; + + // This entity caused an unexpected integrity violation. This is a strong + // indicator for a server bug. Please report. + MESSAGE_CODE_INTEGRITY_VIOLATION = 59; } // Messages are used by server's or client's to transport *transient* @@ -631,8 +568,6 @@ message RetrieveRequest { // Is the client requesting to download the file associated with the // retrieved entity or query results? bool register_file_download = 3; - // TODO Settings for the download. Ignored if register_file_download is false. - // FileTransmissionSettings download_settings = 4; } // Response to a retrieve request diff --git a/proto/caosdb/info/v1alpha1/main.proto b/proto/caosdb/info/v1/main.proto similarity index 93% rename from proto/caosdb/info/v1alpha1/main.proto rename to proto/caosdb/info/v1/main.proto index bcdf43eb61ff2acfc5ca2bef242bf59ab327710c..24949c4f2bea7d2b3d39ae518f35429ddc9ff15c 100644 --- a/proto/caosdb/info/v1alpha1/main.proto +++ b/proto/caosdb/info/v1/main.proto @@ -18,12 +18,12 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. // -// This is the main file of the caosdb.info.v1alpha1 package. +// This is the main file of the caosdb.info.v1 package. syntax = "proto3"; option java_multiple_files = true; -option java_package = "org.caosdb.api.info.v1alpha1"; +option java_package = "org.caosdb.api.info.v1"; -package caosdb.info.v1alpha1; +package caosdb.info.v1; /////////////////////////////// SERVER VERSION