diff --git a/CHANGELOG.md b/CHANGELOG.md index 57c9bc90..e3689546 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ # [Monax Hoard](https://github.com/monax/hoard) Changelog +## [8.1.0] - 2020-03-09 +### Changed +- Header now specifies arbitrary data payload + + ## [8.0.2] - 2020-03-09 ### Fixed - NPM package.json now includes proto defs and README @@ -177,6 +182,7 @@ This is the first Hoard open source release and includes: - Hoar-Daemon hoard - Hoar-Control hoarctl CLI +[8.1.0]: https://github.com/monax/hoard/compare/v8.0.2...v8.1.0 [8.0.2]: https://github.com/monax/hoard/compare/v8.0.1...v8.0.2 [8.0.1]: https://github.com/monax/hoard/compare/v8.0.0...v8.0.1 [8.0.0]: https://github.com/monax/hoard/compare/v7.2.0...v8.0.0 diff --git a/NOTES.md b/NOTES.md index 9874ce71..1a23a5eb 100644 --- a/NOTES.md +++ b/NOTES.md @@ -1,3 +1,3 @@ -### Fixed -- NPM package.json now includes proto defs and README +### Changed +- Header now specifies arbitrary data payload diff --git a/api/api.pb.go b/api/api.pb.go index 3d4b2ec6..66a218cb 100644 --- a/api/api.pb.go +++ b/api/api.pb.go @@ -169,10 +169,9 @@ func (m *ReferenceAndGrantSpec) GetGrantSpec() *grant.Spec { } type Header struct { - Salt []byte `protobuf:"bytes,1,opt,name=Salt,proto3" json:"Salt,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Type string `protobuf:"bytes,3,opt,name=Type,proto3" json:"Type,omitempty"` - Tags []string `protobuf:"bytes,4,rep,name=Tags,proto3" json:"Tags,omitempty"` + Salt []byte `protobuf:"bytes,1,opt,name=Salt,proto3" json:"Salt,omitempty"` + // Metadata + Data []byte `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -209,23 +208,9 @@ func (m *Header) GetSalt() []byte { return nil } -func (m *Header) GetName() string { +func (m *Header) GetData() []byte { if m != nil { - return m.Name - } - return "" -} - -func (m *Header) GetType() string { - if m != nil { - return m.Type - } - return "" -} - -func (m *Header) GetTags() []string { - if m != nil { - return m.Tags + return m.Data } return nil } @@ -412,44 +397,43 @@ func init() { func init() { proto.RegisterFile("api.proto", fileDescriptor_00212fb1f9d3bf1c) } var fileDescriptor_00212fb1f9d3bf1c = []byte{ - // 586 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5f, 0x8b, 0xd3, 0x4e, - 0x14, 0x25, 0xdb, 0xfc, 0x5a, 0x72, 0xdb, 0x9f, 0xab, 0x03, 0x2e, 0x25, 0x22, 0xbb, 0xc4, 0x45, - 0x2a, 0x2e, 0x69, 0x89, 0x08, 0xb2, 0x4f, 0xee, 0x6e, 0x65, 0xf5, 0x45, 0xca, 0x54, 0x41, 0x7c, - 0x9b, 0x36, 0xb7, 0x6d, 0x20, 0x4d, 0xc2, 0x64, 0xaa, 0xdb, 0x77, 0xbf, 0x8b, 0x4f, 0x7e, 0x47, - 0x99, 0xc9, 0x34, 0x7f, 0xa6, 0x45, 0xe8, 0x53, 0x66, 0xce, 0x3d, 0x73, 0xee, 0xb9, 0x77, 0xee, - 0x04, 0x1c, 0x96, 0x45, 0x7e, 0xc6, 0x53, 0x91, 0x92, 0x16, 0xcb, 0x22, 0xb7, 0xbb, 0xe4, 0x2c, - 0x11, 0x05, 0xe2, 0x9e, 0x72, 0x5c, 0x20, 0xc7, 0x64, 0x8e, 0x1a, 0xe8, 0xe5, 0x22, 0xe5, 0x98, - 0x17, 0x3b, 0x6f, 0x06, 0x4f, 0xee, 0x25, 0xfb, 0x26, 0x09, 0xd5, 0x77, 0x9a, 0xe1, 0x9c, 0x78, - 0xf0, 0x9f, 0xda, 0xf4, 0xad, 0x0b, 0x6b, 0xd0, 0x0d, 0x7a, 0x7e, 0x21, 0xa8, 0x30, 0x5a, 0x84, - 0xc8, 0x2b, 0x70, 0xca, 0x03, 0xfd, 0x13, 0xc5, 0xeb, 0x6a, 0x9e, 0x84, 0x68, 0x15, 0xf5, 0x32, - 0x78, 0x3a, 0x89, 0x59, 0x94, 0x08, 0x7c, 0x68, 0xe6, 0xb9, 0x02, 0xa7, 0x0c, 0xe8, 0x5c, 0x8f, - 0x7c, 0x59, 0x4c, 0x89, 0xd2, 0x8a, 0x70, 0x64, 0x46, 0xba, 0x2b, 0xdb, 0xcc, 0x58, 0x06, 0xca, - 0x8c, 0x55, 0x87, 0x28, 0x2e, 0x68, 0x45, 0x38, 0x26, 0xe3, 0x37, 0x68, 0x7f, 0x44, 0x16, 0x22, - 0x27, 0x04, 0xec, 0x29, 0x8b, 0x8b, 0x7a, 0x7a, 0x54, 0xad, 0x25, 0xf6, 0x99, 0xad, 0x51, 0x69, - 0x38, 0x54, 0xad, 0x25, 0xf6, 0x65, 0x9b, 0x61, 0xbf, 0x55, 0x60, 0x72, 0xad, 0x30, 0xb6, 0xcc, - 0xfb, 0xf6, 0x45, 0x4b, 0x61, 0x6c, 0x99, 0x7b, 0xef, 0x6b, 0x4d, 0x92, 0x84, 0xdb, 0x34, 0xdc, - 0xee, 0xc4, 0xe5, 0x9a, 0x9c, 0x83, 0x2d, 0x53, 0x2b, 0x21, 0x69, 0x50, 0x36, 0xb0, 0xf0, 0x42, - 0x55, 0xc0, 0x0b, 0x00, 0xee, 0xa2, 0x6c, 0x85, 0x5c, 0x49, 0x5c, 0xc2, 0xff, 0x1f, 0x92, 0x39, - 0xdf, 0x66, 0x02, 0xc3, 0x31, 0x13, 0x4c, 0x6b, 0x35, 0x41, 0xef, 0x27, 0x9c, 0xd5, 0x3b, 0x58, - 0x3b, 0x7f, 0x5c, 0x0b, 0x87, 0xf5, 0xdc, 0xba, 0x87, 0xa7, 0xca, 0x62, 0x05, 0xd3, 0x1a, 0xc5, - 0x7b, 0x01, 0x9d, 0x9b, 0x30, 0xe4, 0x98, 0xe7, 0xa4, 0x5f, 0x2e, 0xb5, 0xc7, 0xdd, 0x36, 0xf8, - 0x7d, 0xa2, 0x27, 0x94, 0x04, 0x60, 0x4f, 0x91, 0xc5, 0xc4, 0x55, 0x9a, 0x07, 0x2f, 0xdd, 0x6d, - 0xcc, 0xef, 0xc0, 0x22, 0x03, 0x68, 0x7f, 0x4d, 0x72, 0x79, 0xaa, 0x11, 0x71, 0x8d, 0x32, 0x46, - 0x16, 0xf1, 0xa1, 0x4d, 0x51, 0x31, 0xcf, 0x94, 0xfe, 0xde, 0x53, 0x69, 0x6a, 0x93, 0xb7, 0xd0, - 0x99, 0x6c, 0x44, 0xcd, 0xd0, 0xc1, 0xb9, 0xdf, 0x33, 0xf4, 0x1a, 0x9c, 0xc2, 0xd0, 0x3d, 0x8a, - 0x3d, 0x4f, 0x0d, 0x99, 0x91, 0x45, 0xae, 0xa0, 0x57, 0x90, 0xc7, 0x18, 0xa3, 0x40, 0x83, 0xdf, - 0x53, 0x7c, 0xdd, 0xa7, 0x91, 0x15, 0x30, 0x70, 0xee, 0x62, 0x64, 0x5c, 0xbf, 0xa0, 0xd6, 0x64, - 0x23, 0x88, 0xa1, 0x69, 0xd6, 0x3d, 0xb0, 0x46, 0x96, 0xa4, 0x4a, 0x33, 0x46, 0xc8, 0xb4, 0x23, - 0xa9, 0xc1, 0x2f, 0x0b, 0x40, 0x0f, 0x4f, 0x94, 0x26, 0xe4, 0x1a, 0x3a, 0x7a, 0xb7, 0x97, 0xe8, - 0xd9, 0xde, 0x25, 0x55, 0x17, 0xaf, 0xb2, 0x5e, 0x43, 0x67, 0x8c, 0xc5, 0xd9, 0x7f, 0x71, 0x0f, - 0xda, 0xf8, 0x63, 0x41, 0x67, 0x2a, 0x52, 0xce, 0x96, 0xf2, 0xe1, 0xda, 0x93, 0x4d, 0xbe, 0x22, - 0xe6, 0xa4, 0x35, 0xdb, 0xa3, 0x0b, 0xb5, 0x27, 0x9b, 0x58, 0x8e, 0x42, 0x2d, 0xe2, 0x9a, 0x07, - 0x15, 0xf5, 0x25, 0xd8, 0x53, 0xc1, 0x84, 0x41, 0x7d, 0xec, 0xeb, 0x1f, 0xaa, 0x8c, 0x7d, 0x4a, - 0x16, 0x29, 0xb9, 0x84, 0x76, 0x79, 0x37, 0x75, 0x66, 0x63, 0x77, 0x7b, 0xfe, 0xfd, 0xf9, 0x32, - 0x12, 0xab, 0xcd, 0xcc, 0x9f, 0xa7, 0xeb, 0xe1, 0x3a, 0x4d, 0xd8, 0xc3, 0x70, 0x95, 0x32, 0x1e, - 0x0e, 0x7f, 0xbc, 0x1b, 0xb2, 0x2c, 0x9a, 0xb5, 0xd5, 0x1f, 0xfa, 0xcd, 0xdf, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x41, 0x37, 0x5b, 0x23, 0xdf, 0x05, 0x00, 0x00, + // 562 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6b, 0xdb, 0x4c, + 0x10, 0x46, 0xb1, 0x5e, 0x1b, 0x8f, 0xf5, 0x36, 0xed, 0x42, 0x83, 0x51, 0x29, 0x29, 0x6a, 0x28, + 0x2e, 0x0d, 0xb2, 0x51, 0x29, 0x94, 0x9c, 0x9a, 0xc4, 0x25, 0xed, 0xcd, 0xac, 0xe9, 0xa5, 0xb7, + 0xb5, 0x35, 0xb6, 0x05, 0x8a, 0x24, 0x56, 0xeb, 0x36, 0xb9, 0xf7, 0xbf, 0xf4, 0xd4, 0xff, 0x58, + 0xf6, 0xc3, 0xfa, 0x58, 0x9b, 0x82, 0x4f, 0xda, 0x99, 0x79, 0xe6, 0x79, 0x66, 0x66, 0x67, 0x05, + 0x7d, 0x56, 0x24, 0x61, 0xc1, 0x73, 0x91, 0x93, 0x0e, 0x2b, 0x12, 0x7f, 0xb0, 0xe6, 0x2c, 0x13, + 0xda, 0xe3, 0x9f, 0x72, 0x5c, 0x21, 0xc7, 0x6c, 0x89, 0xc6, 0xe1, 0x95, 0x22, 0xe7, 0x58, 0x6a, + 0x2b, 0x58, 0xc0, 0xb3, 0x3b, 0x89, 0xbe, 0xce, 0x62, 0xf5, 0x9d, 0x17, 0xb8, 0x24, 0x01, 0xfc, + 0xa7, 0x8c, 0xa1, 0xf3, 0xca, 0x19, 0x0d, 0x22, 0x2f, 0xd4, 0x84, 0xca, 0x47, 0x75, 0x88, 0xbc, + 0x85, 0x7e, 0x95, 0x30, 0x3c, 0x51, 0xb8, 0x81, 0xc1, 0x49, 0x17, 0xad, 0xa3, 0x41, 0x01, 0xcf, + 0x67, 0x29, 0x4b, 0x32, 0x81, 0x0f, 0x6d, 0x9d, 0x4b, 0xe8, 0x57, 0x01, 0xa3, 0xf5, 0x24, 0x94, + 0xcd, 0x54, 0x5e, 0x5a, 0x03, 0x8e, 0x54, 0xa4, 0xbb, 0xb6, 0x6d, 0xc5, 0x2a, 0x50, 0x29, 0xd6, + 0x13, 0xa2, 0xb8, 0xa2, 0x35, 0xe0, 0x18, 0xc5, 0x09, 0x74, 0xbf, 0x20, 0x8b, 0x91, 0x13, 0x02, + 0xee, 0x9c, 0xa5, 0xba, 0x1f, 0x8f, 0xaa, 0xb3, 0xf4, 0x4d, 0x99, 0x60, 0x8a, 0xc3, 0xa3, 0xea, + 0x1c, 0x7c, 0x6a, 0x34, 0x2f, 0x01, 0x37, 0x79, 0xfc, 0xb8, 0x4b, 0x92, 0x67, 0x72, 0x0e, 0xae, + 0xa4, 0x1c, 0x76, 0x8c, 0xb0, 0x1c, 0x8c, 0xd6, 0xa0, 0x2a, 0x10, 0x44, 0x00, 0xb7, 0x49, 0xb1, + 0x41, 0xae, 0x28, 0x2e, 0xe0, 0xff, 0xcf, 0xd9, 0x92, 0x3f, 0x16, 0x02, 0x63, 0x25, 0xa6, 0xb9, + 0xda, 0xce, 0xe0, 0x27, 0x9c, 0x35, 0x27, 0xd3, 0xc8, 0x3f, 0x6e, 0x34, 0xe3, 0xa6, 0xb6, 0x99, + 0xcd, 0xa9, 0x2a, 0xb1, 0x76, 0xd3, 0x06, 0x24, 0x78, 0x0d, 0xbd, 0xeb, 0x38, 0xe6, 0x58, 0x96, + 0x64, 0x58, 0x1d, 0x4d, 0x8d, 0x3b, 0x33, 0xfa, 0x7d, 0x62, 0x36, 0x8f, 0x44, 0xe0, 0xce, 0x91, + 0xa5, 0xc4, 0x57, 0x9c, 0x07, 0x2f, 0xd3, 0x6f, 0xed, 0xe5, 0xc8, 0x21, 0x23, 0xe8, 0x7e, 0xcb, + 0x4a, 0x99, 0xd5, 0x8a, 0xf8, 0x56, 0x1b, 0x13, 0x87, 0x84, 0xd0, 0xa5, 0xa8, 0x90, 0x67, 0x8a, + 0x7f, 0xef, 0x09, 0xb4, 0xb9, 0xc9, 0x07, 0xe8, 0xcd, 0xb6, 0xa2, 0x51, 0xd0, 0xc1, 0x7d, 0xde, + 0x2b, 0xe8, 0x1d, 0xf4, 0x75, 0x41, 0x77, 0x28, 0xf6, 0x6a, 0x6a, 0xd1, 0x4c, 0x1c, 0x72, 0x09, + 0x9e, 0x06, 0x4f, 0x31, 0x45, 0x81, 0x16, 0xde, 0x53, 0x78, 0x33, 0xa7, 0x89, 0x13, 0x31, 0xe8, + 0xdf, 0xa6, 0xc8, 0xb8, 0x79, 0x19, 0x9d, 0xd9, 0x56, 0x10, 0x8b, 0xd3, 0xee, 0x7b, 0xe4, 0x4c, + 0x1c, 0x09, 0x95, 0xc5, 0x58, 0x21, 0xbb, 0x1c, 0x09, 0x8d, 0x7e, 0x39, 0x00, 0x66, 0x79, 0x92, + 0x3c, 0x23, 0x57, 0xd0, 0x33, 0xd6, 0x9e, 0xd0, 0x8b, 0xbd, 0x4b, 0xaa, 0x2f, 0x5e, 0xa9, 0x5e, + 0x41, 0x6f, 0x8a, 0x3a, 0xf7, 0x5f, 0xd8, 0x83, 0x65, 0xfc, 0x71, 0xa0, 0x37, 0x17, 0x39, 0x67, + 0x6b, 0xf9, 0x20, 0xdd, 0xd9, 0xb6, 0xdc, 0x10, 0x7b, 0xd3, 0xda, 0xe3, 0x31, 0x8d, 0xba, 0xb3, + 0x6d, 0x2a, 0x57, 0xa1, 0x11, 0xf1, 0xed, 0x44, 0x05, 0x7d, 0x03, 0xee, 0x5c, 0x30, 0x61, 0x41, + 0x9f, 0x86, 0xe6, 0x47, 0x29, 0x63, 0x5f, 0xb3, 0x55, 0x4e, 0x2e, 0xa0, 0x5b, 0xdd, 0x4d, 0x13, + 0xd9, 0xb2, 0x6e, 0xce, 0xbf, 0xbf, 0x5c, 0x27, 0x62, 0xb3, 0x5d, 0x84, 0xcb, 0xfc, 0x7e, 0x7c, + 0x9f, 0x67, 0xec, 0x61, 0xbc, 0xc9, 0x19, 0x8f, 0xc7, 0x3f, 0x3e, 0x8e, 0x59, 0x91, 0x2c, 0xba, + 0xea, 0xcf, 0xfb, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x6f, 0x3f, 0xdd, 0xb7, 0x05, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/hoard-js/proto/api_pb.d.ts b/hoard-js/proto/api_pb.d.ts index bee664f3..13a652e7 100644 --- a/hoard-js/proto/api_pb.d.ts +++ b/hoard-js/proto/api_pb.d.ts @@ -96,16 +96,10 @@ export class Header extends jspb.Message { getSalt_asB64(): string; setSalt(value: Uint8Array | string): void; - getName(): string; - setName(value: string): void; - - getType(): string; - setType(value: string): void; - - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): void; - addTags(value: string, index?: number): string; + getData(): Uint8Array | string; + getData_asU8(): Uint8Array; + getData_asB64(): string; + setData(value: Uint8Array | string): void; serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): Header.AsObject; @@ -120,9 +114,7 @@ export class Header extends jspb.Message { export namespace Header { export type AsObject = { salt: Uint8Array | string, - name: string, - type: string, - tagsList: Array, + data: Uint8Array | string, } } diff --git a/hoard-js/proto/api_pb.js b/hoard-js/proto/api_pb.js index ef824bc4..ae604c8d 100644 --- a/hoard-js/proto/api_pb.js +++ b/hoard-js/proto/api_pb.js @@ -643,19 +643,12 @@ proto.api.ReferenceAndGrantSpec.prototype.hasGrantspec = function() { * @constructor */ proto.api.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.api.Header.repeatedFields_, null); + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; goog.inherits(proto.api.Header, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.api.Header.displayName = 'proto.api.Header'; } -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.api.Header.repeatedFields_ = [4]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -686,9 +679,7 @@ proto.api.Header.prototype.toObject = function(opt_includeInstance) { proto.api.Header.toObject = function(includeInstance, msg) { var f, obj = { salt: msg.getSalt_asB64(), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - type: jspb.Message.getFieldWithDefault(msg, 3, ""), - tagsList: jspb.Message.getRepeatedField(msg, 4) + data: msg.getData_asB64() }; if (includeInstance) { @@ -730,16 +721,8 @@ proto.api.Header.deserializeBinaryFromReader = function(msg, reader) { msg.setSalt(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setData(value); break; default: reader.skipField(); @@ -777,27 +760,13 @@ proto.api.Header.serializeBinaryToWriter = function(message, writer) { f ); } - f = message.getName(); + f = message.getData_asU8(); if (f.length > 0) { - writer.writeString( + writer.writeBytes( 2, f ); } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 4, - f - ); - } }; @@ -841,61 +810,41 @@ proto.api.Header.prototype.setSalt = function(value) { /** - * optional string Name = 2; - * @return {string} + * optional bytes Data = 2; + * @return {!(string|Uint8Array)} */ -proto.api.Header.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.api.Header.prototype.setName = function(value) { - jspb.Message.setField(this, 2, value); +proto.api.Header.prototype.getData = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * optional string Type = 3; + * optional bytes Data = 2; + * This is a type-conversion wrapper around `getData()` * @return {string} */ -proto.api.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.api.Header.prototype.setType = function(value) { - jspb.Message.setField(this, 3, value); -}; - - -/** - * repeated string Tags = 4; - * @return {!Array.} - */ -proto.api.Header.prototype.getTagsList = function() { - return /** @type {!Array.} */ (jspb.Message.getRepeatedField(this, 4)); -}; - - -/** @param {!Array.} value */ -proto.api.Header.prototype.setTagsList = function(value) { - jspb.Message.setField(this, 4, value || []); +proto.api.Header.prototype.getData_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getData())); }; /** - * @param {!string} value - * @param {number=} opt_index + * optional bytes Data = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getData()` + * @return {!Uint8Array} */ -proto.api.Header.prototype.addTags = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 4, value, opt_index); +proto.api.Header.prototype.getData_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getData())); }; -proto.api.Header.prototype.clearTagsList = function() { - this.setTagsList([]); +/** @param {!(string|Uint8Array)} value */ +proto.api.Header.prototype.setData = function(value) { + jspb.Message.setField(this, 2, value); }; diff --git a/project/history.go b/project/history.go index 2f18066e..4b941549 100644 --- a/project/history.go +++ b/project/history.go @@ -40,6 +40,10 @@ func FullVersion() string { // release tagging script: ./scripts/tag_release.sh var History relic.ImmutableHistory = relic.NewHistory("Monax Hoard", "https://github.com/monax/hoard"). MustDeclareReleases( + "8.1.0 - 2020-03-09", + `### Changed +- Header now specifies arbitrary data payload +`, "8.0.2 - 2020-03-09", `### Fixed - NPM package.json now includes proto defs and README diff --git a/protobuf/api.proto b/protobuf/api.proto index f18526c5..1a774ea6 100644 --- a/protobuf/api.proto +++ b/protobuf/api.proto @@ -87,9 +87,8 @@ message ReferenceAndGrantSpec { message Header { bytes Salt = 1; - string Name = 2; - string Type = 3; - repeated string Tags = 4; + // Metadata + bytes Data = 2; } message Plaintext {