)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"35d74e60aef20cdc7c90d86fb8d97d5a1d86d226","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  difference if workflow texts are large (thousands of tasks)."},{"line_number":18,"context_line":"  This patch adds the boolean parameter \"skip_validation\" for API"},{"line_number":19,"context_line":"  requests like \"POST /v2/workflows\" to disable validation, if"},{"line_number":20,"context_line":"  needed, and the new configuration property to set a desired"},{"line_number":21,"context_line":"  validation mode."},{"line_number":22,"context_line":"  The option is an enumeration and has the following valid values:"},{"line_number":23,"context_line":"    1) \"enabled_by_default\" - enabled for all API requests unless"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_24c03c2a","line":20,"range":{"start_line":20,"start_character":9,"end_line":20,"end_character":44},"updated":"2019-09-26 06:36:56.000000000","message":"this sounds like using the skip_validation param, one can change the config of the mistral service.","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"d805982655370cf65acd28d8a13bbdb92273231f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  difference if workflow texts are large (thousands of tasks)."},{"line_number":18,"context_line":"  This patch adds the boolean parameter \"skip_validation\" for API"},{"line_number":19,"context_line":"  requests like \"POST /v2/workflows\" to disable validation, if"},{"line_number":20,"context_line":"  needed, and the new configuration property to set a desired"},{"line_number":21,"context_line":"  validation mode."},{"line_number":22,"context_line":"  The option is an enumeration and has the following valid values:"},{"line_number":23,"context_line":"    1) \"enabled_by_default\" - enabled for all API requests unless"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_bf38b59f","line":20,"range":{"start_line":20,"start_character":9,"end_line":20,"end_character":44},"in_reply_to":"3fa7e38b_24c03c2a","updated":"2019-09-26 07:25:08.000000000","message":"Yeah, but I added all these combinations for flexibility. For example, we have a use case when by default validation should be enabled and we should be able to disable it per workflow (in case if we know in advance that they are auto-generated and well tested, and maybe even pre-validated). And at the same time, we have customer workflows that need to be validated, unless validation explicitly disabled in the request. So \"enabled_by_default\" works best for us. But other people may want to use other options.","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"35d74e60aef20cdc7c90d86fb8d97d5a1d86d226","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  needed, and the new configuration property to set a desired"},{"line_number":21,"context_line":"  validation mode."},{"line_number":22,"context_line":"  The option is an enumeration and has the following valid values:"},{"line_number":23,"context_line":"    1) \"enabled_by_default\" - enabled for all API requests unless"},{"line_number":24,"context_line":"       it\u0027s explicitly disabled in the request itself"},{"line_number":25,"context_line":"    2) \"always_enabled\" - enabled for all API requests regardless"},{"line_number":26,"context_line":"       of the flag in the request"},{"line_number":27,"context_line":"    3) \"always_disabled\" - disabled for all API requrests regardless"},{"line_number":28,"context_line":"       of the flag in the request"},{"line_number":29,"context_line":"  \"always_enabled is choosen as the default value for this new"},{"line_number":30,"context_line":"  property to keep compatibility with the previous versions."},{"line_number":31,"context_line":"* Minor style changes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_8432505d","line":28,"range":{"start_line":23,"start_character":7,"end_line":28,"end_character":33},"updated":"2019-09-26 06:36:56.000000000","message":"Maybe naming the config param schema_validation and using the values: enabled, mandatory and disabled could be more expressive.","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"d805982655370cf65acd28d8a13bbdb92273231f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  needed, and the new configuration property to set a desired"},{"line_number":21,"context_line":"  validation mode."},{"line_number":22,"context_line":"  The option is an enumeration and has the following valid values:"},{"line_number":23,"context_line":"    1) \"enabled_by_default\" - enabled for all API requests unless"},{"line_number":24,"context_line":"       it\u0027s explicitly disabled in the request itself"},{"line_number":25,"context_line":"    2) \"always_enabled\" - enabled for all API requests regardless"},{"line_number":26,"context_line":"       of the flag in the request"},{"line_number":27,"context_line":"    3) \"always_disabled\" - disabled for all API requrests regardless"},{"line_number":28,"context_line":"       of the flag in the request"},{"line_number":29,"context_line":"  \"always_enabled is choosen as the default value for this new"},{"line_number":30,"context_line":"  property to keep compatibility with the previous versions."},{"line_number":31,"context_line":"* Minor style changes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_ff6aad7e","line":28,"range":{"start_line":23,"start_character":7,"end_line":28,"end_character":33},"in_reply_to":"3fa7e38b_8432505d","updated":"2019-09-26 07:25:08.000000000","message":"Well, it\u0027s not only about schema. Part of validation is also validating semantics like whether there are tasks calling some other tasks that don\u0027t exist.\n\nMay be \"language_validation\" or \"workflow_language_validation\"? The latter is a bit verbose though ).\n\nAs far as values that you suggested, I\u0027m not sure I understand what should mean what. Can you explain?","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"}],"mistral/api/controllers/v2/workbook.py":[{"author":{"_account_id":29124,"name":"Oleg Ovcharuk","email":"vgvoleg@gmail.com","username":"vgvoleg"},"change_message_id":"645374ec3ad7c46e228b09e2849aad2b9b389d90","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        \"\"\"Update a workbook."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        :param namespace: Optional. Namespace of workbook to update."},{"line_number":71,"context_line":"        :param validate: Optional. If set to False, disables validation of"},{"line_number":72,"context_line":"            the workflow YAML definition syntax, but only if allowed in the"},{"line_number":73,"context_line":"            service configuration. By default, validation is enabled."},{"line_number":74,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_2b631db4","line":71,"updated":"2019-09-26 17:35:50.000000000","message":"Why do you write “validate” in docstring but use “skip_validation” further in code?","commit_id":"7bc51ee72e11ffe36927dff6a85cb015d860b564"}],"mistral/api/controllers/v2/workflow.py":[{"author":{"_account_id":29124,"name":"Oleg Ovcharuk","email":"vgvoleg@gmail.com","username":"vgvoleg"},"change_message_id":"645374ec3ad7c46e228b09e2849aad2b9b389d90","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        definition \u003d pecan.request.text"},{"line_number":122,"context_line":"        scope \u003d pecan.request.GET.get(\u0027scope\u0027, \u0027private\u0027)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # If \"skip_validation\" is present in the query string parameters"},{"line_number":125,"context_line":"        # then workflow language validation will be disabled."},{"line_number":126,"context_line":"        skip_validation \u003d \u0027skip_validation\u0027 in pecan.request.GET"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_ab762d6f","line":124,"updated":"2019-09-26 17:35:50.000000000","message":"Missed docstring here","commit_id":"7bc51ee72e11ffe36927dff6a85cb015d860b564"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"dd1280417135de41df1ae1ead57bb613ca3d5a56","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        definition \u003d pecan.request.text"},{"line_number":122,"context_line":"        scope \u003d pecan.request.GET.get(\u0027scope\u0027, \u0027private\u0027)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # If \"skip_validation\" is present in the query string parameters"},{"line_number":125,"context_line":"        # then workflow language validation will be disabled."},{"line_number":126,"context_line":"        skip_validation \u003d \u0027skip_validation\u0027 in pecan.request.GET"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_f292cd56","line":124,"in_reply_to":"3fa7e38b_ab762d6f","updated":"2019-09-27 04:18:50.000000000","message":"Where? We can\u0027t describe this parameter in a regular docstring because \"skip_validation\" is not a parameter of the method. It\u0027s a bit ugly, I know, but we have a pecan/wsme limitation that makes us do this.","commit_id":"7bc51ee72e11ffe36927dff6a85cb015d860b564"}],"mistral/config.py":[{"author":{"_account_id":29124,"name":"Oleg Ovcharuk","email":"vgvoleg@gmail.com","username":"vgvoleg"},"change_message_id":"f59858d1998ae98e5299de8d1022b3b5a2f348ca","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    ),"},{"line_number":91,"context_line":"    cfg.StrOpt("},{"line_number":92,"context_line":"        \u0027validation_mode\u0027,"},{"line_number":93,"context_line":"        default\u003d\u0027enabled_by_default\u0027,"},{"line_number":94,"context_line":"        choices\u003d[\u0027enabled_by_default\u0027, \u0027always_enabled\u0027, \u0027always_disabled\u0027],"},{"line_number":95,"context_line":"        help\u003d_(\"Defines in what cases Mistral will be validating the syntax \""},{"line_number":96,"context_line":"               \"of workflow YAML definitions. If \u0027enabled_by_default\u0027 is set \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_fe608503","line":93,"updated":"2019-09-25 10:36:26.000000000","message":"probably `always_enabled` fits better as a default value. If `always_enabled` is created for clients that don\u0027t want validation skip to be enabled, we should protect them from missing this in docs. Maybe I wrong, IDK how to handle this situations better.","commit_id":"acb993549bfaf63a08818960121b433c1fa99a43"}],"mistral/services/workbooks.py":[{"author":{"_account_id":29124,"name":"Oleg Ovcharuk","email":"vgvoleg@gmail.com","username":"vgvoleg"},"change_message_id":"f59858d1998ae98e5299de8d1022b3b5a2f348ca","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                       validate\u003dTrue):"},{"line_number":24,"context_line":"    validation_mode \u003d cfg.CONF.api.validation_mode"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    if validation_mode \u003d\u003d \u0027always_enabled\u0027:"},{"line_number":27,"context_line":"        validate \u003d True"},{"line_number":28,"context_line":"    elif validation_mode \u003d\u003d \u0027always_disabled\u0027:"},{"line_number":29,"context_line":"        validate \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_befa0d40","line":26,"updated":"2019-09-25 10:36:26.000000000","message":"I think it would be nice to save this string into some variable","commit_id":"acb993549bfaf63a08818960121b433c1fa99a43"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"35d74e60aef20cdc7c90d86fb8d97d5a1d86d226","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                       validate\u003dTrue):"},{"line_number":24,"context_line":"    validation_mode \u003d cfg.CONF.api.validation_mode"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    if validation_mode \u003d\u003d \u0027always_enabled\u0027:"},{"line_number":27,"context_line":"        validate \u003d True"},{"line_number":28,"context_line":"    elif validation_mode \u003d\u003d \u0027always_disabled\u0027:"},{"line_number":29,"context_line":"        validate \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_4429b8e3","line":26,"range":{"start_line":26,"start_character":26,"end_line":26,"end_character":43},"updated":"2019-09-26 06:36:56.000000000","message":"I agree with Oleg that this should go into cfg as string constants. Extracting this logic to a function that returns an appropriate value for the validate kwarg may be even better. It could be reused in other controllers.","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"d805982655370cf65acd28d8a13bbdb92273231f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                       validate\u003dTrue):"},{"line_number":24,"context_line":"    validation_mode \u003d cfg.CONF.api.validation_mode"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    if validation_mode \u003d\u003d \u0027always_enabled\u0027:"},{"line_number":27,"context_line":"        validate \u003d True"},{"line_number":28,"context_line":"    elif validation_mode \u003d\u003d \u0027always_disabled\u0027:"},{"line_number":29,"context_line":"        validate \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_7f0c7deb","line":26,"range":{"start_line":26,"start_character":26,"end_line":26,"end_character":43},"in_reply_to":"3fa7e38b_4429b8e3","updated":"2019-09-26 07:25:08.000000000","message":"Ok, agree. I\u0027ll come up with something soon.","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"}],"releasenotes/notes/add_skip_validation-9e8b906c45bdb89f.yaml":[{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"35d74e60aef20cdc7c90d86fb8d97d5a1d86d226","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    explicitly disabled with the API parameter \"skip_validation\" that has now"},{"line_number":10,"context_line":"    been added to the corresponding API endpoints. The \"skip_validation\""},{"line_number":11,"context_line":"    parameter doesn\u0027t have to have any value since it\u0027s a boolean flag."},{"line_number":12,"context_line":"    If the property \"validation_mode\" is set to \"always_enabled\" then Mistral"},{"line_number":13,"context_line":"    will be always validating the syntax of all workflows for the mentioned"},{"line_number":14,"context_line":"    operations. If set to \"always_disabled\" then validation will always be"},{"line_number":15,"context_line":"    skipped. Note that if validation is disabled (one way or another) then"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_8496d03d","line":12,"range":{"start_line":12,"start_character":11,"end_line":12,"end_character":19},"updated":"2019-09-26 06:36:56.000000000","message":"configuration option?","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"d805982655370cf65acd28d8a13bbdb92273231f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    explicitly disabled with the API parameter \"skip_validation\" that has now"},{"line_number":10,"context_line":"    been added to the corresponding API endpoints. The \"skip_validation\""},{"line_number":11,"context_line":"    parameter doesn\u0027t have to have any value since it\u0027s a boolean flag."},{"line_number":12,"context_line":"    If the property \"validation_mode\" is set to \"always_enabled\" then Mistral"},{"line_number":13,"context_line":"    will be always validating the syntax of all workflows for the mentioned"},{"line_number":14,"context_line":"    operations. If set to \"always_disabled\" then validation will always be"},{"line_number":15,"context_line":"    skipped. Note that if validation is disabled (one way or another) then"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_5ff741d4","line":12,"range":{"start_line":12,"start_character":11,"end_line":12,"end_character":19},"in_reply_to":"3fa7e38b_8496d03d","updated":"2019-09-26 07:25:08.000000000","message":"yes, done","commit_id":"c60959eea0eac6b0bb7c031e54d28c243bbc5dfe"}]}
