[#202] session: Allow to spread object session to the whole container

Object sessions for `PUT` and `SEARCH` ops are spread to the whole
container due to op semantics. Sometimes it is convenient to spread the
session to all objects of the container for other operations. Thus,
object sessions for the whole container can be unified.

Modify docs of `ObjectSessionContext.address` field:
 * require `container_id` field to be correctly set;
 * require `object_id` field to be correctly field if set;
 * allow `object_id` field to be unset and make this case equivalent to
   the container-global session.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2022-09-16 10:56:56 +04:00 committed by LeL
parent b8b1a90075
commit d6090eb2fc

View file

@ -40,7 +40,13 @@ message ObjectSessionContext {
// Type of request for which the token is issued // Type of request for which the token is issued
Verb verb = 1 [json_name = "verb"]; Verb verb = 1 [json_name = "verb"];
// Related Object address // Objects involved in the session. `address` MUST be set.
// `container_id` field indicates which container the session is spread to.
// `container_id` MUST be correctly filled and set.
// `object_id` field indicates which objects in the specified container the
// session is spread to. `object_id` MUST be correctly filled or unset.
// If `object_id` field is set, then the session applies only to this object,
// otherwise, to all objects of the specified container.
neo.fs.v2.refs.Address address = 2 [json_name = "address"]; neo.fs.v2.refs.Address address = 2 [json_name = "address"];
} }