{"_id":"589dcf9aa8c63b3b00c37050","version":{"_id":"5773dcfc255e820e00e1cd50","__v":26,"project":"5773dcfc255e820e00e1cd4d","createdAt":"2016-06-29T14:36:44.812Z","releaseDate":"2016-06-29T14:36:44.812Z","categories":["5773dcfc255e820e00e1cd51","5773df36904b0c0e00ef05ff","577baf92451b1e0e006075ac","577bb183b7ee4a0e007c4e8d","577ce77a1cf3cb0e0048e5ea","577d11865fd4de0e00cc3dab","578e62792c3c790e00937597","578f4fd98335ca0e006d5c84","578f5e5c3d04570e00976ebb","57bc35f7531e000e0075d118","57f801b3760f3a1700219ebb","5804d55d1642890f00803623","581c8d55c0dc651900aa9350","589dcf8ba8c63b3b00c3704f","594cebadd8a2f7001b0b53b2","59a562f46a5d8c00238e309a","5a2aa096e25025003c582b58","5a2e79566c771d003ca0acd4","5a3a5166142db90026f24007","5a3a52b5bcc254001c4bf152","5a3a574a2be213002675c6d2","5a3a66bb2be213002675cb73","5a3a6e4854faf60030b63159","5c8a68278e883901341de571","5cb9971e57bf020024523c7b","5cbf1683e2a36d01d5012ecd"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"__v":0,"project":"5773dcfc255e820e00e1cd4d","category":{"_id":"577baf92451b1e0e006075ac","__v":0,"project":"5773dcfc255e820e00e1cd4d","version":"5773dcfc255e820e00e1cd50","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-07-05T13:01:06.540Z","from_sync":false,"order":6,"slug":"developer-hub","title":"Developer tools"},"githubsync":"","parentDoc":null,"user":"575e85ac41c8ba0e00259a44","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-02-10T14:35:06.330Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"##Overview\n\nThe Cavatica Software Development Kit (SDK) allows you to wrap your tools so that they can be executed on the Platform. This is done in a way that renders the tools fully portable, by first installing them inside Docker containers and then describing their behavior in accordance with the Common Workflow Language.\n\nThis means that there is no need to reconfigure your existing command line tools to meet any proprietary format, or write a wrapper for them. Additionally, the tools remain runnable across a diverse range of infrastructures should you want to use them on different platforms.\n\n<div align=\"right\"><a href=\"#top\">top</a></div>\n\n##DOCKER\n\nYou can use [Docker](doc:docker-basics) to build and run Docker containers containing your tools, along with their dependencies. Then, you can push snapshots of these containers, called images, to [the image registry](doc:the-image-registry), which is housed on our computational platform, or to Docker hub – Docker's own image registry. The tools you have installed will be run inside the containers on the Platform.\n\n<div align=\"right\"><a href=\"#top\">top</a></div>\n\n##THE TOOL EDITOR\n\nHaving uploaded a Docker image containing your tool to the image registry, you can specify its behavior, including its inputs and outputs, runtime requirements, and execution semantics. The specification is entered using the [Tool Editor](doc:the-tool-editor). It allows the tool to be used on Cavatica to interface with other arbitrary tools.\n\n<div align=\"right\"><a href=\"#top\">top</a></div>","excerpt":"","slug":"sdk-overview","type":"basic","title":"SDK overview"}
##Overview The Cavatica Software Development Kit (SDK) allows you to wrap your tools so that they can be executed on the Platform. This is done in a way that renders the tools fully portable, by first installing them inside Docker containers and then describing their behavior in accordance with the Common Workflow Language. This means that there is no need to reconfigure your existing command line tools to meet any proprietary format, or write a wrapper for them. Additionally, the tools remain runnable across a diverse range of infrastructures should you want to use them on different platforms. <div align="right"><a href="#top">top</a></div> ##DOCKER You can use [Docker](doc:docker-basics) to build and run Docker containers containing your tools, along with their dependencies. Then, you can push snapshots of these containers, called images, to [the image registry](doc:the-image-registry), which is housed on our computational platform, or to Docker hub – Docker's own image registry. The tools you have installed will be run inside the containers on the Platform. <div align="right"><a href="#top">top</a></div> ##THE TOOL EDITOR Having uploaded a Docker image containing your tool to the image registry, you can specify its behavior, including its inputs and outputs, runtime requirements, and execution semantics. The specification is entered using the [Tool Editor](doc:the-tool-editor). It allows the tool to be used on Cavatica to interface with other arbitrary tools. <div align="right"><a href="#top">top</a></div>