Container can be created within a session. The presence of a session token
in the GET response body allows you to reflect this fact.
Add `session_token` field of `session.SessionToken` type to
`container.GetResponse.Body` message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Extended ACL can be set within a session. The presence of a session token in
the GET response body allows you to reflect this fact.
Add `session_token` field of `session.SessionToken` type to
`container.GetExtendedACLResponse.Body` message.
Signed-off-by: Leonard Lyubich <leonard@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>
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>
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>
To simplify adding more transport level protocols to neofs-api-go in future, we
need to separate currently default gRPC.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
- Changed package names adding version
- Added documentation descriptions (sometimes useless) for all fields
- Changed enum format
- Made SessionToken and BearerToken field names more clear
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
NeoFS Object are now Content-addressed. It means the Object's address depends on
it's content. ObjectID is now calculated as hash of Header, which contains a
hash of payload. If either if Object's payload of Headers change, the ID will
also change.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
Replaces import of PlacementRule message from netmap repository with a message
from the internal netmap package.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
There is a need to remove gogoproto usage from NeoFS API since this plugin
is not cross-language. This commit removes usage from container package.
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>
Capacity field is obsolete and removed. Salt field renamed to
Nonce so it shows better the purpose of the field.
Remaining fields are reorded to have fixed size fields on top.
It affects stable-marshaller implementation.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Neofs-node doesn't use these headers in any way. They are
obsolete since container API provides proxy between client
and morph chain.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
With explicit signature field, that contains signature of
stable-marshalled container message, there is no need to have
separate fields of the container in request.
Public key will be stored in neofs.id smart-contract for later
signature verifications.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
With EACLTable in requests and container id in EACLTable there
is no need in extra messages such as ExtendedACLKey and
ExtendedACLValue.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
With new ACL conception, access control lists in NeoFS
defined as a required basic ACL and optional extended ACL.
Basic ACL must be set up in container structure. It is a bit
mask stored in 32-bit unsigned integer.
Seven nibbles represent seven object operations: get, put,
head, search, delete, range, range-hash.
Every nibble defines access rules for three targets: user,
owner, others and has permission bit for bearer token.
There is a permission bit for extended ACL and three unused
bits.