diff --git a/CHANGELOG.md b/CHANGELOG.md index 10652f17f2f515bb408d91ffc2f18564c7452f1d..dfc997619a100df678f833131332c0c3675118b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,16 +5,46 @@ 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 +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 braking 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 diff --git a/proto/caosdb/CMakeLists.txt b/proto/caosdb/CMakeLists.txt index 1ecce675fc50356899436b965fbf2270d821416c..870d96e23c6b06026f05b84c928e0392bcd1c108 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 ) # pass variable to parent scope diff --git a/proto/caosdb/entity/v1alpha1/main.proto b/proto/caosdb/entity/v1/main.proto similarity index 99% rename from proto/caosdb/entity/v1alpha1/main.proto rename to proto/caosdb/entity/v1/main.proto index 605711e0e3378449eed4b44d6cb220b003899d5e..78bd4d4fde239bc4b2da68ea485e2bfe860f8ac4 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 { diff --git a/proto/caosdb/info/v1alpha1/main.proto b/proto/caosdb/info/v1/main.proto similarity index 91% rename from proto/caosdb/info/v1alpha1/main.proto rename to proto/caosdb/info/v1/main.proto index d1291dad3c34538748f32d5ca6efe341a3aa6a64..9af2d93a6de624492c9a88c430f6561101942670 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; // The version of an agent (following SemVer 2.0.0) message VersionInfo {