)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Creating and running workflows within a namespace will allow users to create"},{"line_number":10,"context_line":"many workflows with the same name. This is useful when a user already has many"},{"line_number":11,"context_line":"workflows that are connected to each other implemented and one of the workflow"},{"line_number":12,"context_line":"names is already in use and the user does not want to edit the that workflow"},{"line_number":13,"context_line":"and all the ones referencing it or merge them to a workbook."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I5a8e6c8761bfe31bf04026083c4755468f580429"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df140735_dbfd55b2","line":12,"range":{"start_line":12,"start_character":59,"end_line":12,"end_character":67},"updated":"2017-06-07 06:48:11.000000000","message":"One of these words is reduntant.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"}],"specs/pike/approved/create-and-run-workflows-within-a-namespace.rst":[{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"88a9cda78ffdaadacb97f9fcd6786637e1c85eb2","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Creating and running workflows within a namespace will allow users to create"},{"line_number":16,"context_line":"many workflows with the same name. This is useful when a user already has many"},{"line_number":17,"context_line":"workflows that are connected to each other implemented and one of the workflow"},{"line_number":18,"context_line":"names is already in use and the user does not want to edit the that workflow"},{"line_number":19,"context_line":"and all the ones referencing it or merge them to a workbook."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_10f2be9a","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":67},"updated":"2017-06-05 22:14:13.000000000","message":"Soft: Rephrase","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Creating and running workflows within a namespace will allow users to create"},{"line_number":16,"context_line":"many workflows with the same name. This is useful when a user already has many"},{"line_number":17,"context_line":"workflows that are connected to each other implemented and one of the workflow"},{"line_number":18,"context_line":"names is already in use and the user does not want to edit the that workflow"},{"line_number":19,"context_line":"and all the ones referencing it or merge them to a workbook."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_5e0dd7e5","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":67},"in_reply_to":"df140735_10f2be9a","updated":"2017-06-06 14:08:35.000000000","message":"Done","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"88a9cda78ffdaadacb97f9fcd6786637e1c85eb2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Add a new namespace parameter to both workflow definition creation and workflow"},{"line_number":45,"context_line":"execution creation."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"If a workflow definition creation request has a namespace specified in it, The"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_70369a53","line":44,"updated":"2017-06-05 22:14:13.000000000","message":"Maybe also add \"namespace\" to \"workflow definition deletion\" as well? Needed when deleting by name.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Add a new namespace parameter to both workflow definition creation and workflow"},{"line_number":45,"context_line":"execution creation."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"If a workflow definition creation request has a namespace specified in it, The"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_7e33fbab","line":44,"in_reply_to":"df140735_70369a53","updated":"2017-06-06 14:08:35.000000000","message":"We can do that. Though not a must, since you can just delete by the workflow ID, which is always unique.\n\nAlso worth thinking on update workflow definition. I\u0027ll add it to nice to have for now.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"88a9cda78ffdaadacb97f9fcd6786637e1c85eb2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"passed, the name should be unique within the group of workflow definitions"},{"line_number":50,"context_line":"without a namespace (will be referred as the default namespace from here on)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"If a workflow execution request has a namespace specified in it, mistral will"},{"line_number":53,"context_line":"first try finding the workflow definition within the namespace, and only if"},{"line_number":54,"context_line":"one does not exist, looking in the default namespace. By default the namespace"},{"line_number":55,"context_line":"passes to the sub-workflows execution. If a workflow definition only exist in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_b067924d","line":52,"updated":"2017-06-05 22:14:13.000000000","message":"Maybe enforce that an exact match (namespace + WF name) is exists executing the \"workflow execution create\" API and allow searching in the default only for sub-workflow executions?","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":49,"context_line":"passed, the name should be unique within the group of workflow definitions"},{"line_number":50,"context_line":"without a namespace (will be referred as the default namespace from here on)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"If a workflow execution request has a namespace specified in it, mistral will"},{"line_number":53,"context_line":"first try finding the workflow definition within the namespace, and only if"},{"line_number":54,"context_line":"one does not exist, looking in the default namespace. By default the namespace"},{"line_number":55,"context_line":"passes to the sub-workflows execution. If a workflow definition only exist in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_deaa076f","line":52,"in_reply_to":"df140735_b067924d","updated":"2017-06-06 14:08:35.000000000","message":"It\u0027s fine by me. The user can always create a wrapping workflow in the namespace he wanted to use and call the one in the default namespace, Plus in the future we can add some flag to support running workflows as described above.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"464b7d4b6a106b70a7dc148c65abe81c95c8731d","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"We can try and use workbooks, but the down side is it forces the user to merge"},{"line_number":65,"context_line":"his workflows, and might result in a hugh file, that a user might find to be"},{"line_number":66,"context_line":"hard to edit and read."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Data model impact"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_1bb1b147","line":66,"updated":"2017-06-06 09:35:41.000000000","message":"I think Workbooks can be split over multiple files. Isn\u0027t that sufficient?","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"We can try and use workbooks, but the down side is it forces the user to merge"},{"line_number":65,"context_line":"his workflows, and might result in a hugh file, that a user might find to be"},{"line_number":66,"context_line":"hard to edit and read."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Data model impact"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_41cdf8b4","line":66,"in_reply_to":"df140735_1bb1b147","updated":"2017-06-06 14:08:35.000000000","message":"Hmmm.. one would still need to edit them. And splitting the workbooks means if the workbook name is taken, you will need to edit the name in all the files.\n\nThe way we are using mistral, we allow users to zip workflows together with non-workflows that reference the workflows by name, and we upload them all to our system. The workflows are created in mistral, usually under the same tenant (not tenant for say, but something very similar to tenant). \n\nWe want to keep the name of the workflow the same, and more importantly, we don\u0027t want to edit the zipped files for the user.\n\nWith this spec we can just supply a namespace, and if it\u0027s taken, use another if we want.\n\nMost likely this will be the flow:\n1. user uploads the zip\n2. zip gets uploaded to our system and gets a unique UUID\n3. we upload all the workflows to mistral with that unique UUID as a namespace\n\nI can add the extended explanation (from this message) to the spec if you like.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"88a9cda78ffdaadacb97f9fcd6786637e1c85eb2","unresolved":false,"context_lines":[{"line_number":75,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":76,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":77,"context_line":"adding it to the env under params."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"REST API impact"},{"line_number":80,"context_line":"---------------"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_909dae0b","line":78,"updated":"2017-06-05 22:14:13.000000000","message":"Will this \"namespace\" column will be used when creating a workbook with workflows?\nWill the mechanism of workbooks be changed to use this mechanism now?","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":75,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":76,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":77,"context_line":"adding it to the env under params."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"REST API impact"},{"line_number":80,"context_line":"---------------"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_a13054a0","line":78,"in_reply_to":"df140735_909dae0b","updated":"2017-06-06 14:08:35.000000000","message":"Not according to this spec.\nI was thinking just letting workbooks do their thing on the default namespace.\n\nSupport for workbooks can be added later, I don\u0027t think it should block us from adding namespace for workflow definitions and executions, but it is nice to have. I\u0027ll add it there and we can continue the discussion.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"b5501eaed516f07ba06e988d5846a8133ab14f74","unresolved":false,"context_lines":[{"line_number":75,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":76,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":77,"context_line":"adding it to the env under params."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"REST API impact"},{"line_number":80,"context_line":"---------------"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f231b9d_0f3cd62c","line":78,"in_reply_to":"df140735_a13054a0","updated":"2017-06-19 07:12:38.000000000","message":"Moshe, it\u0027s a good point. Michal, your explanations make sense to me but I\u0027d prefer that we clearly describe in the spec how workbooks and namespaces will co-exist in Mistral.\n\nFor example, I\u0027m adding a workflow as part of a workbook. Can it also have a namespace then?\nAnother thing. in DSL we now reference workflows which are part of a workbooks as \"workflow: wb_name.wf_name\", if the referrer workflow is not in the same workbook. How will the reference look if we need to reference a workflow which is part of a namespace? Or we perceive namespaces as a \"split the world\" thing meaning that workflows in the namespace A can\u0027t ever reference workflows in namespace B?\n\nI\u0027d like to see some clarity on this.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"88a9cda78ffdaadacb97f9fcd6786637e1c85eb2","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"End user impact"},{"line_number":91,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_10aabe17","line":88,"updated":"2017-06-05 22:14:13.000000000","message":"I believe the \"namespace\" should be a part of the body.\n\nEasy to do in case of \"executions\". \nProbably harder in case of \"workflows\".\n\nA null namespace means the default namespace, right?","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"End user impact"},{"line_number":91,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_e40f752b","line":88,"in_reply_to":"df140735_10aabe17","updated":"2017-06-06 14:08:35.000000000","message":"yes, a null namespace means the default namespace.\n\nI don\u0027t want to break backwards compatibility, so I think for the workflows POST API, it should\u0027t be in the body.\n\nWe can say it should be in the body for the other calls, but then it might be confusing for the users.\n\nI am leaning towards using it the same way for all current APIs to avoid confusing the users. In API V3 no one knows for sure what will happen. In the Atlanta design summit during the CLI V3 discussion we talked about how \"execution\" is not the best name since we have workflow execution, task execution and action executions.\n\nIn addition to all that, today we have scope as a parameter and not in the body.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"88a9cda78ffdaadacb97f9fcd6786637e1c85eb2","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"End user impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_706e9a00","line":89,"updated":"2017-06-05 22:14:13.000000000","message":"Maybe also delete workflow definition?","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"End user impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_043ee9bf","line":89,"in_reply_to":"df140735_706e9a00","updated":"2017-06-06 14:08:35.000000000","message":"OK, I\u0027ll add it, but we can also use the workflow definition ID.","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"464b7d4b6a106b70a7dc148c65abe81c95c8731d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"End user impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"The new namespace request parameter should be added to the mistral-pythonclient"},{"line_number":94,"context_line":"as well."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_1b9ad1b7","line":93,"updated":"2017-06-06 09:35:41.000000000","message":"nit: python-mistralclient","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":90,"context_line":"End user impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"The new namespace request parameter should be added to the mistral-pythonclient"},{"line_number":94,"context_line":"as well."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_e43895d3","line":93,"in_reply_to":"df140735_1b9ad1b7","updated":"2017-06-06 14:08:35.000000000","message":"Done","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"464b7d4b6a106b70a7dc148c65abe81c95c8731d","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Change the way workflow definition are queried during execution."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Change the way"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Tests"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_bb8ac560","line":128,"updated":"2017-06-06 09:35:41.000000000","message":"?","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"1826245afaf899dac101005885a0d6acd256c1ab","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Change the way workflow definition are queried during execution."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Change the way"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Tests"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_a414dde9","line":128,"in_reply_to":"df140735_bb8ac560","updated":"2017-06-06 14:08:35.000000000","message":"Done","commit_id":"e1240eb406b6f26fdc37644ad5ed2da8672ccc09"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Add a new namespace parameter to both workflow definition creation, workflow"},{"line_number":45,"context_line":"definition deletion and workflow execution creation."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"If a workflow definition creation request has a namespace specified in it, The"},{"line_number":48,"context_line":"workflow name should be unique only within the namespace. If no namespace is"},{"line_number":49,"context_line":"passed, the name should be unique within the group of workflow definitions"},{"line_number":50,"context_line":"without a namespace (will be referred as the default namespace from here on)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_9be0fdce","line":47,"range":{"start_line":47,"start_character":75,"end_line":47,"end_character":78},"updated":"2017-06-07 06:48:11.000000000","message":"-\u003e the","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Add a new namespace parameter to both workflow definition creation, workflow"},{"line_number":45,"context_line":"definition deletion and workflow execution creation."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"If a workflow definition creation request has a namespace specified in it, The"},{"line_number":48,"context_line":"workflow name should be unique only within the namespace. If no namespace is"},{"line_number":49,"context_line":"passed, the name should be unique within the group of workflow definitions"},{"line_number":50,"context_line":"without a namespace (will be referred as the default namespace from here on)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_2179c02e","line":47,"range":{"start_line":47,"start_character":75,"end_line":47,"end_character":78},"in_reply_to":"df140735_9be0fdce","updated":"2017-06-07 10:09:04.000000000","message":"Done","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"sub-workflow execution), mistral will first try finding the workflow definition"},{"line_number":56,"context_line":"within the namespace, and only if one does not exist, mistral will try finding"},{"line_number":57,"context_line":"it the default namespace. By default the namespace passes to the sub-workflows"},{"line_number":58,"context_line":"execution. If a workflow definition only exist in another namespace that is not"},{"line_number":59,"context_line":"the default namespace, it will not be found, and the create workflow execution"},{"line_number":60,"context_line":"request will fail."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_fb1ff9b4","line":58,"range":{"start_line":58,"start_character":41,"end_line":58,"end_character":46},"updated":"2017-06-07 06:48:11.000000000","message":"-\u003e exists","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":55,"context_line":"sub-workflow execution), mistral will first try finding the workflow definition"},{"line_number":56,"context_line":"within the namespace, and only if one does not exist, mistral will try finding"},{"line_number":57,"context_line":"it the default namespace. By default the namespace passes to the sub-workflows"},{"line_number":58,"context_line":"execution. If a workflow definition only exist in another namespace that is not"},{"line_number":59,"context_line":"the default namespace, it will not be found, and the create workflow execution"},{"line_number":60,"context_line":"request will fail."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_6138d83c","line":58,"range":{"start_line":58,"start_character":41,"end_line":58,"end_character":46},"in_reply_to":"df140735_fb1ff9b4","updated":"2017-06-07 10:09:04.000000000","message":"Done","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Data model impact"},{"line_number":72,"context_line":"-----------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"The propose change must come with a change to the data model."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For workflow definition, a namespace should be added to the model and the DB"},{"line_number":77,"context_line":"workflow_definitions_v2 table. And the same for workflow execution, plus it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_fb749900","line":74,"range":{"start_line":74,"start_character":4,"end_line":74,"end_character":11},"updated":"2017-06-07 06:48:11.000000000","message":"-\u003e proposed","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Data model impact"},{"line_number":72,"context_line":"-----------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"The propose change must come with a change to the data model."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For workflow definition, a namespace should be added to the model and the DB"},{"line_number":77,"context_line":"workflow_definitions_v2 table. And the same for workflow execution, plus it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_8181acc6","line":74,"range":{"start_line":74,"start_character":4,"end_line":74,"end_character":11},"in_reply_to":"df140735_fb749900","updated":"2017-06-07 10:09:04.000000000","message":"Done","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"3721de6b5c835f4f67611578f402ff4de2429fb2","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_783418fc","line":81,"updated":"2017-06-06 22:59:31.000000000","message":"I suggest we also provide APIs for namespace, provide users the ability to query existing namespaces in the project and get all workflows/executions of a given namesapce, and also take care of namespace deletion when there are workflows in it.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"44f827ef67444b47f449b7d9d77a9558399871a3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_d303000f","line":81,"in_reply_to":"7f231b9d_13cdf85c","updated":"2017-06-11 09:51:10.000000000","message":"First, I don\u0027t have a real use case for myself. But I want to make sure your proposal can not only solve your own requirements but also make Mistral a good shape for others.\n\nThe use case I mentioned is simple (it\u0027s a little bit like #2 in your \u0027Use Cases\u0027 section), suppose we have three namespaces, \u0027testing\u0027, \u0027staging\u0027 and \u0027production\u0027, in those namespaces, we want to run a workflow called \u0027send_email\u0027, but in \u0027testing\u0027 namespace, we don\u0027t really want to actually send an email but print something instead; on the contrary, in \u0027staging\u0027 and \u0027production\u0027 namespaces, we will use a same workflow with different inputs.\n\nIf what you are trying to solve is only #1 of your \u0027Use Cases\u0027, it\u0027s fine to go with your current plan. But since you mentioned #2, and I am not convinced the spec is the best solution.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"42d07a54f117ec06c78a90c4b09354b170b23adb","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_efb63a3e","line":81,"in_reply_to":"7f231b9d_be272bb7","updated":"2017-06-19 06:56:40.000000000","message":"I\u0027m kind of torn here. On one hand I\u0027m for simplicity (Michal\u0027s option #1), that is really easy to implement etc. On the other hand, my intuition says that once this namespacing feature leaves the academia and becomes available for a wider group of users I\u0027m pretty sure they will come up with more ways to use namespaces, including many-to-many relationship between workflows and namespaces, additional attributes (may be even some policies that define certain behaviors within namespaces) etc. etc. We need to make this decision very cautiously. \n\nBtw, implementation wise, I think maintaining a new DB table for namespaces wouldn\u0027t be such a huge overhead. If we create it in the first place then most likely it will be just a matter of adding new fields to it once in a while.\n\nLet\u0027s not rush for now and discuss it a little bit more. One more question that could help us clear things would be: how could this Namespace API look like? Maybe if we sketch it out it\u0027ll make it clear what model we need to have?","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"abecc17269f32c36b0b4bbf173cde9e336bbf788","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_be272bb7","line":81,"in_reply_to":"7f231b9d_d303000f","updated":"2017-06-11 10:06:09.000000000","message":"Thank you Lingxian.\nI also want Mistral to be in a good shape for everyone. Mistral is a great project :)\n\nThe reason I created this spec is actually in my response to Dougal in PS1 line 66, so if it is a valid option for you, I will gladly edit the \u0027Use Cases\u0027 section and remove the current #2 use-case. I can also add our company use-case, if you think it\u0027s a good idea.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"47655e548b94c0f002e1c092263871bd84ac8f53","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_0f15eb3f","line":81,"in_reply_to":"7f231b9d_efb63a3e","updated":"2017-06-19 14:28:55.000000000","message":"I\u0027ll create a new PS with more detailed examples and we can continue the discussion there.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"19cb9b4c542ffcb6bc6507d0b07cbb7a53ee30a3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_13cdf85c","line":81,"in_reply_to":"9f0e0f27_00692724","updated":"2017-06-11 08:19:19.000000000","message":"Can you explain how can a workflow belong to another namespace?\n\nIf you mean we want to create a workflow with a new namespace, IMO, we don\u0027t need a table for that, we can just add some flag that tell mistral to create the workflow only if the namespace is unique.\n\nI\u0027m not against having a table, but I just want to make sure, if we choose to add a table now, it has a use-case. Otherwise, just making sure we will have the option to upgrade and migrate the relevant data to a namespace table is the approach I like more.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_86cf7daf","line":81,"in_reply_to":"df140735_5ba2654d","updated":"2017-06-07 10:09:04.000000000","message":"Option1:\nNo need for a name space table, just select distinct namespaces from the workflows table to get namespace list and query the table where namespace column has a given value to get all the workflows within the given namespace. In this option deletion can take care of itself. A possible extension for this is adding a parameter like namespace_new that when it is true, there is a validation no such namespace exists.\n\nOption2:\nAdding a namespace table with an ID and name columns and connect the workflows table to it with a foreign key and all the other things you can imagine that goes with this approach.\n\nI like option1, because it will be faster to implement, and we can always start using a table in the future, but if we think there should be an option to create a namespace without creating a workflow, option1 doesn\u0027t fit well.\n\nWhat are your thoughts?","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"c0f5de00055c730651bf8cefee09b3fb550b79d2","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_86e2c62e","line":81,"in_reply_to":"df140735_75e2cc03","updated":"2017-06-07 19:42:26.000000000","message":"I prefer option 1. \n\nWithout any real use case for other namespace fields - the overhead of managing a namespace is not worth it.\n\nI also think that the API for listing namespaces is nice but I don\u0027t see an immediate need for it.\nWe can add it in the future when the requirement comes.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_5ba2654d","line":81,"in_reply_to":"df140735_783418fc","updated":"2017-06-07 06:48:11.000000000","message":"Yes, I think this is a very good idea. That way we\u0027d have much more flexibility over namespaces. Of course, it will require a little bit more complex data model but I think it\u0027s worth it.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"cab9dfd4277ea6a11841e387e8f9db2b4d683106","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_75e2cc03","line":81,"in_reply_to":"df140735_86cf7daf","updated":"2017-06-07 12:11:10.000000000","message":"I prefer option2 as it could provide more flexibility to end users, and it will be easier to add fields for namespace in future.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"10821cbf1b3ce5d432229fee4074c1d187cf66d3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"should also be under env in params, so it will seep easily to the sub-workflow"},{"line_number":79,"context_line":"executions. In the case of workflow execution there is also the option of just"},{"line_number":80,"context_line":"adding it to the env under params."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f0e0f27_00692724","line":81,"in_reply_to":"df140735_86e2c62e","updated":"2017-06-09 12:07:19.000000000","message":"I don\u0027t agree with that. A potential problem this spec can not solve is what if one workflow belongs to different namespaces? Another possible use case is what if users want to add some description when creating namespace? It\u0027s not easy to solve these issues if we just add one field to workflow table.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"3721de6b5c835f4f67611578f402ff4de2429fb2","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Optional namespace parameter will be added to relevant requests like:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_3817c054","line":87,"updated":"2017-06-06 22:59:31.000000000","message":"\"I don\u0027t want to break backwards compatibility, so I think for the workflows POST API, it should\u0027t be in the body.\"\n\nWhy could it break backward compatibility? It\u0027s weird we put params for creation in query string instead of the request body IMHO.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Optional namespace parameter will be added to relevant requests like:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_7bb6498d","line":87,"range":{"start_line":87,"start_character":23,"end_line":87,"end_character":32},"updated":"2017-06-07 06:48:11.000000000","message":"Naming wise, we could use just \"ns\".","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Optional namespace parameter will be added to relevant requests like:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_3b7571cd","line":87,"in_reply_to":"df140735_3817c054","updated":"2017-06-07 06:48:11.000000000","message":"Well, in case of POST it\u0027d be more logical to have \"namespace\" in the body, i.e. in the YAML text of the workflow itself where its name actually is parsed from. I think name and namespace serve the same goal (workflow identity) and should be processed similarly. That leads to the requirement that namespace should also be added into the language as an optional thing.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Optional namespace parameter will be added to relevant requests like:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_bc829751","line":87,"range":{"start_line":87,"start_character":23,"end_line":87,"end_character":32},"in_reply_to":"df140735_7bb6498d","updated":"2017-06-07 10:09:04.000000000","message":"Hi Renat, adding the namespace to the YAML text is an interesting idea. However, for our use-case (see in my response to Dougal in PS1 line 66) it does not work at all.\n\nWe want to create a workflow definition in mistral, even if a workflow with the same name already exist, without editing the workflow or any other files. And in addition to that if there are other workflows we plan to create, that reference that workflow, we still want that connection to work as expected when executing the relevant workflow.\n\nThat is why namespace cannot be a part of the yaml definition.\n\nAbout moving the parameter to the body, is there a way to do it without over-complicating the API or breaking backwards compatibility?\n\nExample of a current POST http request to create a simple workflow:\nhttp://paste.openstack.org/show/611664/\n\nI understand it seems a bit unorthodox to make namespace a request parameter, but please keep in mind we already do this with the scope parameter and it simplifies things significantly.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"42d07a54f117ec06c78a90c4b09354b170b23adb","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Optional namespace parameter will be added to relevant requests like:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_fc74baff","line":87,"range":{"start_line":87,"start_character":23,"end_line":87,"end_character":32},"in_reply_to":"df140735_a66caa9c","updated":"2017-06-19 06:56:40.000000000","message":"Ok, accepted by me. Namespace should be outside of DSL. Then query parameter looks ok, it kinda correlates with scope.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"c0f5de00055c730651bf8cefee09b3fb550b79d2","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Optional namespace parameter will be added to relevant requests like:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_a66caa9c","line":87,"range":{"start_line":87,"start_character":23,"end_line":87,"end_character":32},"in_reply_to":"df140735_bc829751","updated":"2017-06-07 19:42:26.000000000","message":"I agree with Michal that namespace must be outside of the DSL otherwise it defeats the purpose of the feature.\n\nI don\u0027t have a pretty way to do it while maintaining backward comparability.\nIf we have it already for other parameter (scope) - I think we can keep the query param for v2 and revisit this in v3.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_7b12c964","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":36},"updated":"2017-06-07 06:48:11.000000000","message":"Just a small note: If it\u0027s WORKFLOW_ID then namespace parameter should not be needed, IDs are unique. However this can be also a workflow name and then yes, we may also want to provide a namespace.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"42d07a54f117ec06c78a90c4b09354b170b23adb","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_7c5aea82","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":36},"in_reply_to":"7f231b9d_b37884f8","updated":"2017-06-19 06:56:40.000000000","message":"Probably I didn\u0027t understand why we need a body for DELETE.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"19cb9b4c542ffcb6bc6507d0b07cbb7a53ee30a3","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_b37884f8","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":36},"in_reply_to":"df140735_46094edb","updated":"2017-06-11 08:19:19.000000000","message":"If in the last line you mean POST, lets continue the discussion there. If you meant DELETE, it is supported by the HTTP spec, but the RFC says: \" A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.\". That makes me think it\u0027s not that common to have a body to a DELETE HTTP request. See here: https://tools.ietf.org/html/rfc7231#section-4.3.5","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_d31779a3","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":36},"in_reply_to":"df140735_7b12c964","updated":"2017-06-07 10:09:04.000000000","message":"I will replace it with WORKFLOW_IDENTIFIER. I think we should continue to support both name and ID as identifiers in mistral.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"c0f5de00055c730651bf8cefee09b3fb550b79d2","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  **POST /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_46094edb","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":36},"in_reply_to":"df140735_d31779a3","updated":"2017-06-07 19:42:26.000000000","message":"I agree to delete by both. Deleting by name without specifying a namespace should try to delete by default (null) namespace.\n\nMaybe here we should have a BODY to the POST","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_3b0c5141","line":91,"range":{"start_line":91,"start_character":22,"end_line":91,"end_character":33},"updated":"2017-06-07 06:48:11.000000000","message":"Same as the previous comment.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  **DELETE /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_d3cad918","line":91,"range":{"start_line":91,"start_character":22,"end_line":91,"end_character":33},"in_reply_to":"df140735_3b0c5141","updated":"2017-06-07 10:09:04.000000000","message":"Done","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_b6fd180a","line":93,"range":{"start_line":93,"start_character":22,"end_line":93,"end_character":31},"updated":"2017-06-07 06:48:11.000000000","message":"PUT should look the same as POST (see my note above).","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"42d07a54f117ec06c78a90c4b09354b170b23adb","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_1c53f66c","line":93,"range":{"start_line":93,"start_character":22,"end_line":93,"end_character":31},"in_reply_to":"df140735_53ffe933","updated":"2017-06-19 06:56:40.000000000","message":"Done","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  **GET /v2/workflows/WORKFLOW_ID?namespace\u003dNAMESPACE**"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_53ffe933","line":93,"range":{"start_line":93,"start_character":22,"end_line":93,"end_character":31},"in_reply_to":"df140735_b6fd180a","updated":"2017-06-07 10:09:04.000000000","message":"Yes, I agree, PUT should look the same as POST.\nLets continue the discussion there.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"e5024077cdb718a4aa1513de8a5da365b312a38f","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_160e0432","line":95,"range":{"start_line":95,"start_character":24,"end_line":95,"end_character":33},"updated":"2017-06-07 06:48:11.000000000","message":"I think this should be just a field in the execution object we\u0027re passing (its JSON representation in this particular case).","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"47655e548b94c0f002e1c092263871bd84ac8f53","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_ef474f1c","line":95,"range":{"start_line":95,"start_character":24,"end_line":95,"end_character":33},"in_reply_to":"7f231b9d_1caf762a","updated":"2017-06-19 14:28:55.000000000","message":"I\u0027ll write the options in more details in the next PS, so it will be easier to see the differences.\n\nAlso, I will add another example for when the namespace needs to pass recursively from workflow to workflow.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"42d07a54f117ec06c78a90c4b09354b170b23adb","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_1caf762a","line":95,"range":{"start_line":95,"start_character":24,"end_line":95,"end_character":33},"in_reply_to":"7f231b9d_730d4c8f","updated":"2017-06-19 06:56:40.000000000","message":"On this one, here\u0027s my reasoning:\n\n* Execution object is agnostic of namespaces, it is a pointer to a workflow identified by either \"name, namespace\" pair or \"id\". The intention of this spec is to add namespacing for workflow definitions, not executions (or we need both?). So \"namespace\" doesn\u0027t make sense in query strings for executions.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"c52b094e2b37754b01596e97b141209a61e4ae23","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_f34a7d81","line":95,"range":{"start_line":95,"start_character":24,"end_line":95,"end_character":33},"in_reply_to":"df140735_160e0432","updated":"2017-06-07 10:09:04.000000000","message":"I suggest we decide about the create workflow definition API first, before we decide how this API should look like.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"19cb9b4c542ffcb6bc6507d0b07cbb7a53ee30a3","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_730d4c8f","line":95,"range":{"start_line":95,"start_character":24,"end_line":95,"end_character":33},"in_reply_to":"df140735_a6014ab2","updated":"2017-06-11 08:19:19.000000000","message":"Well, possibly all APIs will change in V3.\nFor CLI V3 we talked about changing from execution-create to workflow-run or workflow-create. Also maybe changing from workflow-create to workflow-def-create.\n\nIf we would have known for sure the APIs in V3 will stay mostly the same, I would agree, but the way things are, I would rather just be consistent in the version we have (by using request parameters). Maybe add in the documentation that in the next version of the API it might move to the body of the HTTP request.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"c0f5de00055c730651bf8cefee09b3fb550b79d2","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  **PUT /v2/workflows?namespace\u003dNAMESPACE**"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  **POST /v2/executions?namespace\u003dNAMESPACE**"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_a6014ab2","line":95,"range":{"start_line":95,"start_character":24,"end_line":95,"end_character":33},"in_reply_to":"df140735_f34a7d81","updated":"2017-06-07 19:42:26.000000000","message":"I am in favor to put namespace in the body where we can.\nWhen moving to API v3 - only the \"create WF definition\" format will change.","commit_id":"73a27c3ee0ba6ed3e90a24f8b5849de570da7252"},{"author":{"_account_id":15353,"name":"Noa Koffman","email":"noa.koffman@nokia.com","username":"noakoffman"},"change_message_id":"de2730db0f9e44a4769855c00c0bb48f9adff573","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"      PUT /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":216,"context_line":"      RAW_WF_DEFINITION"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"  * create an execution of a workflow where the workflow belongs to given"},{"line_number":219,"context_line":"    namespace option 1::"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f201791_efbdea68","line":217,"updated":"2017-06-21 06:51:09.000000000","message":"Hi Michal, looks good!\nregarding the API, I have a small comment,\nI think for PUT and DELETE, if user doesn\u0027t provide a namespace and multiple workflows with same name exist we should throw an error, also if one exist but not in the default namespace.  \nfor GET, maybe if only one exist and is not under default namespace, then maybe we can return it (might be nicer for the user, but less consistent).\nthis is just in case user forgets to use the namespace in the API, we don\u0027t want to override or delete the wrong workflow, so I think specifying it should be mandatory.","commit_id":"63394b2b4e1e86fbf9623a0f6ee7ee4f4ccf6d5d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"24544476a312a679d339acfdb4f6bf64769f5cca","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"      PUT /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":216,"context_line":"      RAW_WF_DEFINITION"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"  * create an execution of a workflow where the workflow belongs to given"},{"line_number":219,"context_line":"    namespace option 1::"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f201791_2093cca5","line":217,"in_reply_to":"5f201791_efbdea68","updated":"2017-06-22 08:22:26.000000000","message":"Thank you Noa, I will add it to the next PS.","commit_id":"63394b2b4e1e86fbf9623a0f6ee7ee4f4ccf6d5d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"d1dc5b29719d2db55bf4f2960a4c23800d285088","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    exist in the default namespace"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * **DELETE /v2/workflows/sub_wf**"},{"line_number":225,"context_line":"    Will delete the workflow with the name \u0027wf\u0027 from namespace \u0027abc\u0027 (ID\u003d1)."},{"line_number":226,"context_line":"    This should be allowed in order to let users that don\u0027t use namespaces to"},{"line_number":227,"context_line":"    work as they are used too."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_83b86a76","line":225,"range":{"start_line":225,"start_character":53,"end_line":225,"end_character":75},"updated":"2017-06-22 09:04:06.000000000","message":"Copy paste error.\nShould be fixed like so:\nnamespace \u0027abc\u0027 -\u003e the default namespace\n1-\u003e 2","commit_id":"64f23e62a5499fc0e25f12f514db10aec6fd8749"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  any of the users to add the workflow he created to mistral."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* If a workflow definition is not allowed to be modified, but a workflow with"},{"line_number":36,"context_line":"  the same name already exist in Mistral and the user wants to upload the"},{"line_number":37,"context_line":"  workflow and create an execution from it."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_398cd934","line":36,"range":{"start_line":36,"start_character":24,"end_line":36,"end_character":29},"updated":"2017-06-26 08:31:42.000000000","message":"nit: -\u003e exists","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  any of the users to add the workflow he created to mistral."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* If a workflow definition is not allowed to be modified, but a workflow with"},{"line_number":36,"context_line":"  the same name already exist in Mistral and the user wants to upload the"},{"line_number":37,"context_line":"  workflow and create an execution from it."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_7c991a77","line":36,"range":{"start_line":36,"start_character":24,"end_line":36,"end_character":29},"in_reply_to":"5f201791_398cd934","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Given there are 3 workflows in the workflow table. Two workflows definitions"},{"line_number":67,"context_line":"called \u0027wf\u0027 and \u0027sub_sub_workflow\u0027are in the same namespace - a namespace we"},{"line_number":68,"context_line":"will call \u0027abc\u0027, and one workflow definition called sub_workflow in the default"},{"line_number":69,"context_line":"namespace."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Visualization of a partial workflow definitions table:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_190d9da0","line":68,"range":{"start_line":68,"start_character":52,"end_line":68,"end_character":64},"updated":"2017-06-26 08:31:42.000000000","message":"nit: this should be in apostrophes","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Given there are 3 workflows in the workflow table. Two workflows definitions"},{"line_number":67,"context_line":"called \u0027wf\u0027 and \u0027sub_sub_workflow\u0027are in the same namespace - a namespace we"},{"line_number":68,"context_line":"will call \u0027abc\u0027, and one workflow definition called sub_workflow in the default"},{"line_number":69,"context_line":"namespace."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Visualization of a partial workflow definitions table:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_fc9bea62","line":68,"range":{"start_line":68,"start_character":52,"end_line":68,"end_character":64},"in_reply_to":"5f201791_190d9da0","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        should_not_run:"},{"line_number":124,"context_line":"          action: std.fail"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"As you notice, namespace in not and should never be a part of the language."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"By calling the execution of workflow with name \u0027wf\u0027 withing namespace \u0027abc\u0027, it"},{"line_number":129,"context_line":"is required for workflow with name \u0027wf\u0027 in namespace \u0027abc\u0027 to run, and when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_79e251a2","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":74},"updated":"2017-06-26 08:31:42.000000000","message":"What you say here in this sentence its not so obvious actually from the above content of the spec ). So may be you need to briefly say why you say so.","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        should_not_run:"},{"line_number":124,"context_line":"          action: std.fail"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"As you notice, namespace in not and should never be a part of the language."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"By calling the execution of workflow with name \u0027wf\u0027 withing namespace \u0027abc\u0027, it"},{"line_number":129,"context_line":"is required for workflow with name \u0027wf\u0027 in namespace \u0027abc\u0027 to run, and when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_d91045ab","line":126,"range":{"start_line":126,"start_character":25,"end_line":126,"end_character":27},"updated":"2017-06-26 08:31:42.000000000","message":"is","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        should_not_run:"},{"line_number":124,"context_line":"          action: std.fail"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"As you notice, namespace in not and should never be a part of the language."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"By calling the execution of workflow with name \u0027wf\u0027 withing namespace \u0027abc\u0027, it"},{"line_number":129,"context_line":"is required for workflow with name \u0027wf\u0027 in namespace \u0027abc\u0027 to run, and when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_bcf8d27a","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":74},"in_reply_to":"5f201791_79e251a2","updated":"2017-06-26 11:46:11.000000000","message":"will be added in line 20","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        should_not_run:"},{"line_number":124,"context_line":"          action: std.fail"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"As you notice, namespace in not and should never be a part of the language."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"By calling the execution of workflow with name \u0027wf\u0027 withing namespace \u0027abc\u0027, it"},{"line_number":129,"context_line":"is required for workflow with name \u0027wf\u0027 in namespace \u0027abc\u0027 to run, and when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_9caab66e","line":126,"range":{"start_line":126,"start_character":25,"end_line":126,"end_character":27},"in_reply_to":"5f201791_d91045ab","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"By calling the execution of workflow with name \u0027wf\u0027 withing namespace \u0027abc\u0027, it"},{"line_number":129,"context_line":"is required for workflow with name \u0027wf\u0027 in namespace \u0027abc\u0027 to run, and when"},{"line_number":130,"context_line":"task t1 is executed to call wokrflow \u0027sub_wf\u0027 within the default namespace"},{"line_number":131,"context_line":"(since no workflow with name \u0027sub_wf\u0027 exist within namespace \u0027abc\u0027), but still"},{"line_number":132,"context_line":"remember the namespace is \u0027abc\u0027 so that when task t2 will be executed, the"},{"line_number":133,"context_line":"workflow that will be executed is workflow \u0027sub_sub_wf\u0027 in namespace \u0027abc\u0027 with"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_b98a29bc","line":130,"range":{"start_line":130,"start_character":28,"end_line":130,"end_character":36},"updated":"2017-06-26 08:31:42.000000000","message":"workflow","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"By calling the execution of workflow with name \u0027wf\u0027 withing namespace \u0027abc\u0027, it"},{"line_number":129,"context_line":"is required for workflow with name \u0027wf\u0027 in namespace \u0027abc\u0027 to run, and when"},{"line_number":130,"context_line":"task t1 is executed to call wokrflow \u0027sub_wf\u0027 within the default namespace"},{"line_number":131,"context_line":"(since no workflow with name \u0027sub_wf\u0027 exist within namespace \u0027abc\u0027), but still"},{"line_number":132,"context_line":"remember the namespace is \u0027abc\u0027 so that when task t2 will be executed, the"},{"line_number":133,"context_line":"workflow that will be executed is workflow \u0027sub_sub_wf\u0027 in namespace \u0027abc\u0027 with"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_5c2d3efc","line":130,"range":{"start_line":130,"start_character":28,"end_line":130,"end_character":36},"in_reply_to":"5f201791_b98a29bc","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":133,"context_line":"workflow that will be executed is workflow \u0027sub_sub_wf\u0027 in namespace \u0027abc\u0027 with"},{"line_number":134,"context_line":"ID \u00273\u0027, rather than workflow \u0027sub_sub_wf\u0027 in the default namespace with ID \u00274\u0027."},{"line_number":135,"context_line":"The execution described above should result in success."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Leading suggestion for the creation API of the \u0027wf\u0027 execution is this:"},{"line_number":138,"context_line":"  .. code-block::"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_bc3d77c5","line":136,"updated":"2017-06-26 08:31:42.000000000","message":"In this paragraph you explained the example. Right after it I would also add the formal rule like this:\n\nMore strictly speaking, when it comes to calling nested workflows the namespace of the top most workflow is propagated down to its children so that when Mistral needs to resolve a workflow name it first searches the configured name in that propagated namespace and if it doesn\u0027t exist there it tries to find it in the default namespace.","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":133,"context_line":"workflow that will be executed is workflow \u0027sub_sub_wf\u0027 in namespace \u0027abc\u0027 with"},{"line_number":134,"context_line":"ID \u00273\u0027, rather than workflow \u0027sub_sub_wf\u0027 in the default namespace with ID \u00274\u0027."},{"line_number":135,"context_line":"The execution described above should result in success."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Leading suggestion for the creation API of the \u0027wf\u0027 execution is this:"},{"line_number":138,"context_line":"  .. code-block::"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_1ccfc629","line":136,"in_reply_to":"5f201791_bc3d77c5","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Leading suggestion for passing the namespace from execution to sub-execution"},{"line_number":147,"context_line":"recursively is putting it in the params of the execution possible under env."},{"line_number":148,"context_line":"There is still a question of will a user be allowed to add it."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Example of how such row might look like in the database:"},{"line_number":151,"context_line":"  .. code-block::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_dca7130b","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":61},"updated":"2017-06-26 08:31:42.000000000","message":"No, users should not be allowed to explicitly pass some of the reserved variables like \"__actions\", \"__namespaces\" etc. (need to search across the code to find all of them). I think we can have a strict rule: if a variable name starts with a double underscore then it\u0027s not allowed and we should fail workflow execution creation.","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Leading suggestion for passing the namespace from execution to sub-execution"},{"line_number":147,"context_line":"recursively is putting it in the params of the execution possible under env."},{"line_number":148,"context_line":"There is still a question of will a user be allowed to add it."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Example of how such row might look like in the database:"},{"line_number":151,"context_line":"  .. code-block::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_dcdcaee5","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":61},"in_reply_to":"5f201791_dca7130b","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                    name: sub_sub_wf"},{"line_number":161,"context_line":"             description:"},{"line_number":162,"context_line":"           workflow_name: sub_sub_wf"},{"line_number":163,"context_line":"      workflow_namespace: abc"},{"line_number":164,"context_line":"             workflow_id: 3"},{"line_number":165,"context_line":"                    spec: {\"tasks\": {\"t3\": {\"action\": \"std.noop\", \"version\": \"2.0\", \"type\": \"direct\", \"name\": \"t3\"}}, \"name\": \"sub_sub_wf\", \"version\": \"2.0\"}"},{"line_number":166,"context_line":"                   state: SUCCESS"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_3cd4c747","line":163,"range":{"start_line":163,"start_character":6,"end_line":163,"end_character":24},"updated":"2017-06-26 08:31:42.000000000","message":"On line 143 it\u0027s just \"namespace\". Let\u0027s make it consistent. After some thinking I believe we need to call it just \"namespace\" because it leaves us opportunities to use namespaces potentially to other object types (e.g. actions, triggers etc.). In other words, it\u0027s more generic than \"workflow_namespace\".\n\nThoughts?","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"90c0e4037456e387492a343deddc0dda43b4fd5b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                    name: sub_sub_wf"},{"line_number":161,"context_line":"             description:"},{"line_number":162,"context_line":"           workflow_name: sub_sub_wf"},{"line_number":163,"context_line":"      workflow_namespace: abc"},{"line_number":164,"context_line":"             workflow_id: 3"},{"line_number":165,"context_line":"                    spec: {\"tasks\": {\"t3\": {\"action\": \"std.noop\", \"version\": \"2.0\", \"type\": \"direct\", \"name\": \"t3\"}}, \"name\": \"sub_sub_wf\", \"version\": \"2.0\"}"},{"line_number":166,"context_line":"                   state: SUCCESS"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_c8b4e9d3","line":163,"range":{"start_line":163,"start_character":6,"end_line":163,"end_character":24},"in_reply_to":"5f201791_3cd4c747","updated":"2017-06-26 10:49:36.000000000","message":"I\u0027m fine with switching it to be namespace here too, but I thought you would prefer \u0027workflow_namespace\u0027 in this table.\n\nThis is meant to be a row in the executions table (not in the definitions table). So in the workflow definition table, we will have the columns \u0027name\u0027 and \u0027namespace\u0027, here we will have \u0027workflow_name\u0027 and \u0027workflow_namespace\u0027. \n\nIt should be like in the request to create a workflow execution, so we should either have \u0027namespace\u0027 in both or \u0027workflow_namespace\u0027. See line 309 and please update which one you like more.","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                accepted: 1"},{"line_number":171,"context_line":"                   input: {}"},{"line_number":172,"context_line":"                  output: {}"},{"line_number":173,"context_line":"                  params: {\"env\": {\"__namespace\": \"abc\"}}"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Notice the last line where under params-\u003eenv we have a key called \u0027__namespace\u0027"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_bcb0d744","line":173,"range":{"start_line":173,"start_character":18,"end_line":173,"end_character":57},"updated":"2017-06-26 08:31:42.000000000","message":"Looks good to me.","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Examples:"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"  * **GET /v2/workflows**"},{"line_number":206,"context_line":"    Will return all 6 workflows"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  * **GET /v2/workflows/wf**"},{"line_number":209,"context_line":"    Will return the workflow with the name \u0027wf\u0027 from namespace \u0027abc\u0027 (ID\u003d1)."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"  * **GET /v2/workflows/sub_wf**"},{"line_number":212,"context_line":"    Will return workflow \u0027sub_wf\u0027 from the default namespace (ID\u003d2)."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"  * **GET /v2/workflows/sub_sub_wf**"},{"line_number":215,"context_line":"    Will throw an exception as there are 2 workflows with the name \u0027sub_sub_wf\u0027"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"  * **GET /v2/workflows/example_wf**"},{"line_number":218,"context_line":"    Will throw an exception as there are 2 workflows with the name \u0027example_wf\u0027"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"  * **DELETE /v2/workflows/wf**"},{"line_number":221,"context_line":"    Will throw an exception, because no namespace supplied and no such workflow"},{"line_number":222,"context_line":"    exist in the default namespace"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * **DELETE /v2/workflows/sub_wf**"},{"line_number":225,"context_line":"    Will delete the workflow with the name \u0027sub_wf\u0027 from the default namespace"},{"line_number":226,"context_line":"    (ID\u003d2)."},{"line_number":227,"context_line":"    This should be allowed in order to let users that don\u0027t use namespaces to"},{"line_number":228,"context_line":"    work as they are used to."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"  * **DELETE /v2/workflows/sub_sub_wf**"},{"line_number":231,"context_line":"    Will throw an exception because no namespace provided and there are"},{"line_number":232,"context_line":"    workflows with the name in at least 2 different namespaces"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"  * **DELETE /v2/workflows/example_wf**"},{"line_number":235,"context_line":"    Will throw an exception because no namespace provided and there are"},{"line_number":236,"context_line":"    workflows with the name in at least 2 different namespaces"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"  * PUT will have similar results to DELETE"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_bc7fb713","line":238,"range":{"start_line":205,"start_character":0,"end_line":238,"end_character":43},"updated":"2017-06-26 08:31:42.000000000","message":"I am not sue if I agree with the proposed semantics. Can we make it work like this:\n\n* We always perform any API operation on a single namespace\n* If namespace parameter is not explicitly provided then it\u0027s the default namespace and we act on the default namespace.\n* If namespace parameter is provided we act on this namespace\n\nI just don\u0027t like the semantics when an endpoint implicitly tries to search in a namespace that we didn\u0027t explicitly pass (example #2) or check that more than one object exist in many namespaces (example #8).","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":248,"context_line":"For the described namespace design, we can use different names. For example in"},{"line_number":249,"context_line":"the create execution API we can call the new key \u0027workflow_namespace\u0027 instead"},{"line_number":250,"context_line":"of \u0027namespace\u0027. Also the default namespace currently described is the empty"},{"line_number":251,"context_line":"string (\u0027\u0027), but it can be something like \"\u003cdefault-namespace\u003e\". We should also"},{"line_number":252,"context_line":"consider saving some namespaces to future system use (for example namespaces"},{"line_number":253,"context_line":"that starts with 2 underscores \u0027__\u0027)"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_3cba87c0","line":251,"range":{"start_line":251,"start_character":43,"end_line":251,"end_character":62},"updated":"2017-06-26 08:31:42.000000000","message":"I\u0027m in favour of having just an empty string. This won\u0027t make us remember the precise name of the default namespace.","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        DELETE /v2/workflows/WORKFLOW_IDENTIFIER?namespace\u003dNAMESPACE"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"  * get a workflow definition withing a namespace::"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        GET /v2/workflows/WORKFLOW_IDENTIFIER?namespace\u003dNAMESPACE"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_dce953b7","line":285,"range":{"start_line":285,"start_character":30,"end_line":285,"end_character":37},"updated":"2017-06-26 08:31:42.000000000","message":"-\u003e within","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        DELETE /v2/workflows/WORKFLOW_IDENTIFIER?namespace\u003dNAMESPACE"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"  * get a workflow definition withing a namespace::"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        GET /v2/workflows/WORKFLOW_IDENTIFIER?namespace\u003dNAMESPACE"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_fcbaca6b","line":285,"range":{"start_line":285,"start_character":30,"end_line":285,"end_character":37},"in_reply_to":"5f201791_dce953b7","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        GET /v2/workflows/WORKFLOW_IDENTIFIER?namespace\u003dNAMESPACE"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"  * get all the workflow definitions withing a given namespace::"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        GET /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_fce40fe2","line":289,"range":{"start_line":289,"start_character":37,"end_line":289,"end_character":44},"updated":"2017-06-26 08:31:42.000000000","message":"-\u003e within","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        GET /v2/workflows/WORKFLOW_IDENTIFIER?namespace\u003dNAMESPACE"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"  * get all the workflow definitions withing a given namespace::"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        GET /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_dcb38e97","line":289,"range":{"start_line":289,"start_character":37,"end_line":289,"end_character":44},"in_reply_to":"5f201791_fce40fe2","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        GET /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"  * update a workflow definition withing a given namespace::"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        PUT /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":296,"context_line":"        RAW_WF_DEFINITION"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_bcd217ff","line":293,"range":{"start_line":293,"start_character":33,"end_line":293,"end_character":40},"updated":"2017-06-26 08:31:42.000000000","message":"-\u003e within","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"a19fc65412e7433473e1657bce9a0037bcf64c6a","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        GET /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"  * update a workflow definition withing a given namespace::"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        PUT /v2/workflows?namespace\u003dNAMESPACE"},{"line_number":296,"context_line":"        RAW_WF_DEFINITION"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_bcb0d28b","line":293,"range":{"start_line":293,"start_character":33,"end_line":293,"end_character":40},"in_reply_to":"5f201791_bcd217ff","updated":"2017-06-26 11:46:11.000000000","message":"Done","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"90c0e4037456e387492a343deddc0dda43b4fd5b","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        POST /v2/executions"},{"line_number":307,"context_line":"        {"},{"line_number":308,"context_line":"          \"workflow_name\": \"WORKFLOW_NAME\","},{"line_number":309,"context_line":"          \"namespace\": \"NAMESPACE\""},{"line_number":310,"context_line":"        }"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"  * get a list of all the namespaces::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_8820314a","line":309,"range":{"start_line":309,"start_character":11,"end_line":309,"end_character":20},"updated":"2017-06-26 10:49:36.000000000","message":"maybe this should be \u0027workflow_namespace\u0027 instead of just \u0027name\u0027","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"eb6808a6102b48d1714e4e31b04a390c030036d9","unresolved":false,"context_lines":[{"line_number":296,"context_line":"        RAW_WF_DEFINITION"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"  * create an execution of a workflow where the workflow belongs to given"},{"line_number":299,"context_line":"    namespace option 1::"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        POST /v2/executions?namespace\u003dNAMESPACE"},{"line_number":302,"context_line":"        {\"workflow_name\": \"WORKFLOW_NAME\"}"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    option 2::"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        POST /v2/executions"},{"line_number":307,"context_line":"        {"},{"line_number":308,"context_line":"          \"workflow_name\": \"WORKFLOW_NAME\","},{"line_number":309,"context_line":"          \"namespace\": \"NAMESPACE\""},{"line_number":310,"context_line":"        }"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"  * get a list of all the namespaces::"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_9cf87b7b","line":310,"range":{"start_line":299,"start_character":14,"end_line":310,"end_character":9},"updated":"2017-06-26 08:31:42.000000000","message":"Are you proposing to support both? If yes, then what take precedence? The query parameter or the JSON field?","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"90c0e4037456e387492a343deddc0dda43b4fd5b","unresolved":false,"context_lines":[{"line_number":296,"context_line":"        RAW_WF_DEFINITION"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"  * create an execution of a workflow where the workflow belongs to given"},{"line_number":299,"context_line":"    namespace option 1::"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        POST /v2/executions?namespace\u003dNAMESPACE"},{"line_number":302,"context_line":"        {\"workflow_name\": \"WORKFLOW_NAME\"}"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    option 2::"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        POST /v2/executions"},{"line_number":307,"context_line":"        {"},{"line_number":308,"context_line":"          \"workflow_name\": \"WORKFLOW_NAME\","},{"line_number":309,"context_line":"          \"namespace\": \"NAMESPACE\""},{"line_number":310,"context_line":"        }"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"  * get a list of all the namespaces::"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f201791_2830fd9e","line":310,"range":{"start_line":299,"start_character":14,"end_line":310,"end_character":9},"in_reply_to":"5f201791_9cf87b7b","updated":"2017-06-26 10:49:36.000000000","message":"Just one, but I wanted to write the options we talked about in a previous PS to make the discussion easier.","commit_id":"3aaf1efb32c832d2ae849fdd6ce7c6ab1e294b9d"},{"author":{"_account_id":9408,"name":"Michal Gershenzon","email":"michal.gershenzon@gmail.com","username":"Mgershen"},"change_message_id":"47f1d022be4d718df5389a46ea7422d628b68251","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    Will throw an exception because no namespace provided and there are"},{"line_number":246,"context_line":"    workflows with the name in at least 2 different namespaces"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"  * PUT will have similar results to DELETE"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f201791_3f6714c0","line":248,"updated":"2017-06-26 11:50:28.000000000","message":"Reviewers, please read Renat\u0027s comment in PS 5 line 238.","commit_id":"3e9603c1703c7b628f4254a0e12e8e4d46b1ace3"}]}
