blob: 2afe13ccee7101973a415c664c8698f6cbb1974f [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9198],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),g=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=g(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=g(n),d=o,y=u["".concat(p,".").concat(d)]||u[d]||c[d]||a;return n?r.createElement(y,i(i({ref:t},s),{},{components:n})):r.createElement(y,i({ref:t},s))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var g=2;g<a;g++)i[g]=n[g];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},787:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>p,default:()=>y,frontMatter:()=>l,metadata:()=>g,toc:()=>u});var r=n(8168),o=n(8587),a=(n(6540),n(5680)),i=["components"],l={id:"plugin-dev-guide",title:"D-TA Plugins Developers Guide",sidebar_label:"Developers Guide"},p=void 0,g={unversionedId:"dta-details/plugin-dev-guide",id:"dta-details/plugin-dev-guide",title:"D-TA Plugins Developers Guide",description:"We have provided a template plugin that provides the same functionality as out-of-the-box milagro.",source:"@site/../docs/dta-details/plugin-dev-guide.md",sourceDirName:"dta-details",slug:"/dta-details/plugin-dev-guide",permalink:"/docs/dta-details/plugin-dev-guide",draft:!1,tags:[],version:"current",frontMatter:{id:"plugin-dev-guide",title:"D-TA Plugins Developers Guide",sidebar_label:"Developers Guide"}},s={},u=[{value:"Developer Notes",id:"developer-notes",level:2}],c={toc:u},d="wrapper";function y(e){var t=e.components,n=(0,o.A)(e,i);return(0,a.yg)(d,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"We have provided a template plugin that provides the same functionality as out-of-the-box milagro."),(0,a.yg)("h2",{id:"developer-notes"},"Developer Notes"),(0,a.yg)("p",null,"You need to install protobufs"),(0,a.yg)("p",null,"If you change the portobufs definition run "),(0,a.yg)("p",null,"$ protoc -I=. --go_out=. ./docs.proto"),(0,a.yg)("p",null,"To add a new endpoint to the goKit Microservices framework"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"First define the contract in milagro/pkg/milagroservice/proto.go")),(0,a.yg)("p",null,"Add structs for http transport\nAdd responses to milagro/swagger/swagger.config,yaml"),(0,a.yg)("ol",{start:2},(0,a.yg)("li",{parentName:"ol"},"Add and endpoint definition")),(0,a.yg)("p",null,"milagro/pkg/milagroendpoints/endpoints.go"),(0,a.yg)("ol",{start:3},(0,a.yg)("li",{parentName:"ol"},"Create a handler factory")),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Thise instructions still aren't perfect")),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"Clone the repo and make sure that it works by following the ",(0,a.yg)("a",{parentName:"li",href:"/docs/dta-details/quickstart"},"Quick Start")," instructions"),(0,a.yg)("li",{parentName:"ol"},"Copy the plugin template")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"\ncp -r pkg/plugintemplate pkg/encryptastring\n\n")),(0,a.yg)("ol",{start:3},(0,a.yg)("li",{parentName:"ol"},"Rename the package and service\non a mac you could do this...")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},'\nsed -i "" "s/template/encryptastring/g" pkg/encryptastring/service.go\n\n')),(0,a.yg)("ol",{start:4},(0,a.yg)("li",{parentName:"ol"},"Now create a plugin regsitration file")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},'\nsed -i "" "s/plugintemplate/encryptastring/g" plugins/encryptastring.go\nsed -i "" "s/pluginTemplate/encryptAString/g" plugins/encryptastring.go\n\n')),(0,a.yg)("ol",{start:5},(0,a.yg)("li",{parentName:"ol"},"Update the Config File")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"\nnano ~/.milagro/config.yaml\n\nupdate....\n\nplugins:\n service: encryptastring\n\n\n")),(0,a.yg)("ol",{start:6},(0,a.yg)("li",{parentName:"ol"},"See your plugin in action!")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"\ngo build -o target/service github.com/apache/incubator-milagro-dta/cmd/service\ntarget/service\n\n")),(0,a.yg)("p",null,"Point your browser at:\nhttp://localhost:5555/status"),(0,a.yg)("p",null,"you should see"))}y.isMDXComponent=!0}}]);