It may be confusing for the user to get all types of objects as the
result of a search with no filters set. Human users may expect to see
only the objects intended for direct manipulation by humans.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
The behavior of the node when processing system search filters with match
type NOT_PRESENT is declared undefined.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
When object can't be found using current network map, there is a chance to find
it using netmap versions from previous epochs.
By default only current netmap is used. Well-known X-Headers can be used to set
the specific netmap version and limit how deep into the past the node can go in
the search of an object.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
Inner ring nodes conduct data audit and submit audit results. Results are then
saved in audit smart contract for settlement routines to transfer payments.
We don't need to save the full detailed audit report, but only provide enough
information for other subsystems to reward or punish storage nodes.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
All types of attribute keys must be unique and can't be repeated in the same
entity.
- Containers with duplicated attribute keys must not be accepted by InnerRing on
creation.
- Nodes with duplicated attribute keys can't be accepted to NetMap by InnerRing
- Objects with duplicated attribute keys must be considered invalid and not
accepted in PUT operations
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
Raw flag used to get range of physically stored objects and
ignoring split objects. In case of split object node should
return SplitInfo message.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
SplitInfo structure from split_info field contains meta information
to assembly the object that has been split into parts.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
- Define payload structure for Tombstone object type.
- Return address of the created TS on object delete. Useful for testing
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
In case there is a need to set flag-like attributes, the value should be set to
something like `true` or `1`.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
In some cases like nspcc-dev/neofs-node#167 there is no simple way to identify
where does the object part belongs to. Adding `split_id` as the required field
will simplify split object processing.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
* It's expected by app developers that ROOT filter will return the list of objects
created by user, without supplementary objects like split object parts,
tombstones and storage groups.
* Rename LEAF to PHY as it's purpose it to return physically existing objects.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
Extended ACL description lacks `objectID` key in filters. It's useful to control
access to specific object.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>