Neo3 Oracles need a way to check object's MIME content type, as
described in neo-project/neo-modules#555.
The proposal was to add Content-Type as a well-known attribute.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
Some pieces of data (container, object, etc) may be stored for a long time and
there will be a need in the future to understand which obscure format from the
past was used to create it.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
This commit removes ResponseMetaHeader from the repository since it is not
verifiable and its purpose is questionable. If needed, it can be added to
queries without losing compatibility with the API version.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In previous version of the format RequestMetaHeader, which is included in
all requests, contained the boolean flag Raw. However, this option was
processed only in object.Head and object.Get rpc. Therefore, this commit
strips the field from the request meta header and adds it to the mentioned
requests.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Move Query message definition to object package since it is only used there.
Package query is completely removed from the repository.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Change the type of all fields for identifier of the container owner to
refs.OwnerID. This will allow you to follow a single format and not duplicate
its description.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Change the type of all fields for the container identifier to refs.ContainerID.
This will allow to follow a single format and not duplicate its description.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In previous version of the format storage group information was stored in
completely in the dedicated header field. However, having a header field
instead of storing it in a payload is not justified, since it is used only
to check the presence in the object. Based on this, this commit defines a
message for marking the object as the custodian of information about the
storage group and changes the type of field StorageGroup to it. Information
about the storage group will be stored serialized in the payload of the
objects marked in this way
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In the previous format, the object header was subdivided into system and
extended parts, which confused the purpose of these parts. In particular,
the extended header contains system fields. To clarify the non-intersection
of the mentioned parts of the object header, it was decided to rename System
to Main.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces Token field from ExtendedHeader to IntegrityHeader for
assembling all verification data in one structure.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces single Attribute field with the repeated list of
Attribute in ExtendedHeader message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces PayloadChecksum field from ExtendedHeader to
IntegrityHeader for assembling all verification data in one structure.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit moves the public key of the creator of the object to
IntegrityHeader to encapsulate the verification data in one message. Thus
field PublicKey of message Header has been moved to message IntegrityHeader
with the name CreatorKey. As a result, PublicKey message is deleted as no
longer used.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Redirect field was introduced for the future, however, at the moment it is
not used anywhere. This commit removes field Redirect from ExtendedHeader
message. It can be added back later without losing API backward
compatibility.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
After updating the structure of SplitHeader and StorageGroup messages, the
Link header field is no longer needed. This commit removes the field and
message Link as no longer used.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Field with object revision number was introduced for the future, however, at
the moment it is not used anywhere. This commit removes field Version from
SystemHeader message. It can be added back later without losing API
backward compatibility.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In previous version of the format ExtendedHeader consisted of one field
Value, defined by oneof mechanism. Such a definition format give complete
freedom when composing an object header, however, it did not allow strictly
structuring the header format at the level of type syntax. Since the object
has a well-defined structure in the system, this commit replaces the
definition through oneof with a set of fields. As a consequence, storing a
set of extended headers of the new type in the general header became
redundant, so the repeated keyword was removed.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces Transform message with SplitHeader in oneof definition
of Value field of Header message. The latter, unlike the first, carries
complete information about the generation of the object by splitting the
payload. As a result, the message is deleted as no longer used.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>