)]}'
{"specs/event-message-format.rst":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8dda2c7e091e17a29f3f901988078b975553523e","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"  {"},{"line_number":27,"context_line":"    \"timestamp\": \"ISO8601 message creation time\","},{"line_number":28,"context_line":"    \"version\": \"SEMVER of the envelope schema type\","},{"line_number":29,"context_line":"    \"type\": \"Type of the message with a namespace\","},{"line_number":30,"context_line":"    \"id\": \"a UUID for the message so clients can dedup messages\","},{"line_number":31,"context_line":"    \"payload\": {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_cb19007b","line":28,"updated":"2015-10-07 20:58:46.000000000","message":"We have tended not to use SemVer for API or format versioning in other places just because of the complexity it brings. Is there a definite benefit to using it for this spec versus the simpler versioning scheme we use in places like versionedobjects?","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"eb869f44827f136905ad7a1cd6baf92e56e5391b","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"  {"},{"line_number":27,"context_line":"    \"timestamp\": \"ISO8601 message creation time\","},{"line_number":28,"context_line":"    \"version\": \"SEMVER of the envelope schema type\","},{"line_number":29,"context_line":"    \"type\": \"Type of the message with a namespace\","},{"line_number":30,"context_line":"    \"id\": \"a UUID for the message so clients can dedup messages\","},{"line_number":31,"context_line":"    \"payload\": {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_688187fa","line":28,"in_reply_to":"7a2fa921_cb19007b","updated":"2015-10-09 07:54:04.000000000","message":"Not really you\u0027re right. Replaced by a X.Y.Z sheme.","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8dda2c7e091e17a29f3f901988078b975553523e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    \"id\": \"a UUID for the message so clients can dedup messages\","},{"line_number":31,"context_line":"    \"payload\": {"},{"line_number":32,"context_line":"      # Defined by the message type. Having a version here is strongly"},{"line_number":33,"context_line":"      # recommended."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    # Optional"},{"line_number":36,"context_line":"    \"signature\": \"HMAC of the payload field\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_8b78e890","line":33,"updated":"2015-10-07 20:58:46.000000000","message":"Should we add payload_version at the top level to ensure it is present?","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"eb869f44827f136905ad7a1cd6baf92e56e5391b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    \"id\": \"a UUID for the message so clients can dedup messages\","},{"line_number":31,"context_line":"    \"payload\": {"},{"line_number":32,"context_line":"      # Defined by the message type. Having a version here is strongly"},{"line_number":33,"context_line":"      # recommended."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    # Optional"},{"line_number":36,"context_line":"    \"signature\": \"HMAC of the payload field\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_48a28b9a","line":33,"in_reply_to":"7a2fa921_8b78e890","updated":"2015-10-09 07:54:04.000000000","message":"Done.","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8dda2c7e091e17a29f3f901988078b975553523e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"      # recommended."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    # Optional"},{"line_number":36,"context_line":"    \"signature\": \"HMAC of the payload field\""},{"line_number":37,"context_line":"  }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"For example::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_2ba67410","line":36,"updated":"2015-10-07 20:58:46.000000000","message":"Generating an HMAC signature from unordered data structures like dictionaries can be problematic. We should specify how the HMAC should be calculated so other implementations can be written.","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"eb869f44827f136905ad7a1cd6baf92e56e5391b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"      # recommended."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    # Optional"},{"line_number":36,"context_line":"    \"signature\": \"HMAC of the payload field\""},{"line_number":37,"context_line":"  }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"For example::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_48c92b58","line":36,"in_reply_to":"7a2fa921_2ba67410","updated":"2015-10-09 07:54:04.000000000","message":"You\u0027re right. It also poses the question on how we share the signature key. I replaced it with a hash for now, with an example.","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8dda2c7e091e17a29f3f901988078b975553523e","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"`CADF \u003chttps://www.dmtf.org/standards/cadf\u003e`_ provides a format for events, but"},{"line_number":60,"context_line":"is made for audit and contains a lot of information not relevant for this use"},{"line_number":61,"context_line":"cases."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_4b809046","line":61,"updated":"2015-10-07 20:58:46.000000000","message":"Are those extra fields required in CADF, or can we leave some of them out? Can you give more details about the difference (how many and what types of extra fields)?","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"eb869f44827f136905ad7a1cd6baf92e56e5391b","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"`CADF \u003chttps://www.dmtf.org/standards/cadf\u003e`_ provides a format for events, but"},{"line_number":60,"context_line":"is made for audit and contains a lot of information not relevant for this use"},{"line_number":61,"context_line":"cases."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_28438fb3","line":61,"in_reply_to":"7a2fa921_4b809046","updated":"2015-10-09 07:54:04.000000000","message":"https://review.openstack.org/#/c/186436/4/specs/liberty/event-message-format.rst has a discussion about that. AFAICT no it\u0027s not possible, unless we submit a new version to the standard group. Maybe Gordon can weight in again.","commit_id":"3f7f566fcde5ee035753622ffc7960e7c75b4e13"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d31ec88c9c054c96ad6cb4394912edfebcbe864","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \"version\": \"Version in the X.Y.Z form of the envelope schema type\","},{"line_number":29,"context_line":"    \"type\": \"Type of the message with a namespace\","},{"line_number":30,"context_line":"    \"id\": \"a UUID for the message so clients can dedup messages\","},{"line_number":31,"context_line":"    \"payload_version\": \"Version in the X.Y.Z form of the payload schema type\","},{"line_number":32,"context_line":"    \"payload\": {"},{"line_number":33,"context_line":"      # Defined by the message type and the payload_version."},{"line_number":34,"context_line":"    },"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_da641aba","line":31,"updated":"2015-10-09 11:07:33.000000000","message":"Do I understand correctly that the type and the payload_version fields together define the payload schema?","commit_id":"9a985bb92d6f08fdfc4567126bec86c140497a8d"},{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"bf4f97821cfc78f226dec59ec27fafc08f399c59","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    \"payload\": {"},{"line_number":33,"context_line":"      # Defined by the message type and the payload_version."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    \"checkshum\": \"SHA256 of the payload\""},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"For example::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_068d51d5","line":35,"updated":"2015-10-09 14:16:40.000000000","message":"The I don\u0027t know that an HMAC of the payload is going to be feasible, since to HMAC the field it has to be serialized, and to check the payload the recipient would have to serialize the field again to check it.\n\nIn AWS SNS this is handled by allowing only text as the \"body\", though the body can certainly be JSON. That way the HMAC is done against the actual content of the body (JSON serialized by the sender) instead of relying on the sender and reciever having identical deterministic serializers.\n\nThe same problem occurs with hashing, since to calculate the hash the sender must represent the payload as a string of bytes rather than a dict.","commit_id":"9a985bb92d6f08fdfc4567126bec86c140497a8d"},{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"c047057fcb8411eebace22ba31c0704eef5ba6e1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    \"payload\": {"},{"line_number":33,"context_line":"      # Defined by the message type and the payload_version."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    \"checkshum\": \"SHA256 of the payload\""},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"For example::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_d2add0e9","line":35,"in_reply_to":"7a2fa921_068d51d5","updated":"2015-10-09 16:10:27.000000000","message":"Per an IRC conversation with therve, this has been addressed by the code snippet below (though it will need to recurse into dicts for nested payloads). \n\nThis seems to resolve all my concerns about hashing/signing of the payload.","commit_id":"9a985bb92d6f08fdfc4567126bec86c140497a8d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d31ec88c9c054c96ad6cb4394912edfebcbe864","unresolved":false,"context_lines":[{"line_number":33,"context_line":"      # Defined by the message type and the payload_version."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    \"checkshum\": \"SHA256 of the payload\""},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"For example::"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_9a11c206","line":36,"updated":"2015-10-09 11:07:33.000000000","message":"Don\u0027t we need information about the source of the notification like the publisher_id in the current message format?","commit_id":"9a985bb92d6f08fdfc4567126bec86c140497a8d"},{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"bf4f97821cfc78f226dec59ec27fafc08f399c59","unresolved":false,"context_lines":[{"line_number":33,"context_line":"      # Defined by the message type and the payload_version."},{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    \"checkshum\": \"SHA256 of the payload\""},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"For example::"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_c6a99925","line":36,"in_reply_to":"7a2fa921_9a11c206","updated":"2015-10-09 14:16:40.000000000","message":"That may not be necessary depending on the application, so it could reside in the payload field.","commit_id":"9a985bb92d6f08fdfc4567126bec86c140497a8d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d31ec88c9c054c96ad6cb4394912edfebcbe864","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    },"},{"line_number":35,"context_line":"    \"checkshum\": \"SHA256 of the payload\""},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"For example::"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_3a9aeeb9","line":37,"updated":"2015-10-09 11:07:33.000000000","message":"Will it be a new supported format along with the existing one  defined in oslo.messaging.notifier https://github.com/openstack/oslo.messaging/blob/master/oslo_messaging/notify/notifier.py#L190 ?","commit_id":"9a985bb92d6f08fdfc4567126bec86c140497a8d"}]}
