diff --git a/docs/interfaces/datastore-service.txt b/docs/interfaces/datastore-service.txt index 582243e6f..7d512037c 100644 --- a/docs/interfaces/datastore-service.txt +++ b/docs/interfaces/datastore-service.txt @@ -72,7 +72,7 @@ Interface WriteRequest { locked_fields: { : Position; : Position; - : Position; + : Position | CollectionFieldLock; } } @@ -104,6 +104,11 @@ Interface DeleteEvent { fqid: Fqid; } +Interface CollectionFieldLock { + position: Position; + filter: Filter; +} + // Note: The modified fqfields include: // - all updated fqfields // - all deleted fqfields @@ -213,16 +218,22 @@ get_all(collection: Collection, mapped_fields?: Field[], get_deleted_models?: De */ get_everything(get_deleted_models?: DeletedModelsBehaviour): Map; +interface FilterResponse { + max_position: Position; + data: Map>; +} + /** * Returns all models of one collection that satisfy the filter condition. * Url: POST to /internal/datastore/reader/filter * + * The global max position of the datastore is returned next the the filtered data. * This method does not take a position and can not be used when browsing the history. * * @returns see get_many * @throws InvalidFormat */ -filter(collection: Collection, filter: Filter, mapped_fields?: Field[]): Map> +filter(collection: Collection, filter: Filter, mapped_fields?: Field[]): FilterResponse /** * Url: POST to /internal/datastore/reader/exists