"use strict";(self.webpackChunkdocs_website=self.webpackChunkdocs_website||[]).push([[37815],{7653:(e,t,a)=>{a.d(t,{A:()=>n});const n={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"}}]},name:"close-circle",theme:"filled"}},4732:(e,t,a)=>{a.d(t,{A:()=>s});var n=a(89379),r=a(96540),i=a(7653),o=a(89990),l=function(e,t){return r.createElement(o.A,(0,n.A)((0,n.A)({},e),{},{ref:t,icon:i.A}))};const s=r.forwardRef(l)},15680:(e,t,a)=>{a.d(t,{xA:()=>u,yg:()=>d});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=r,d=p["".concat(s,".").concat(m)]||p[m]||g[m]||i;return a?n.createElement(d,o(o({ref:t},u),{},{components:a})):n.createElement(d,o({ref:t},u))}));function d(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{a.d(t,{A:()=>f});var n=a(96540),r=a(20053);const i="availabilityCard_P5od",o="managedIcon_AxXO",l="platform_wqXv",s="platformAvailable_Y8lN";var c=a(4732),u=a(89379);const p={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"};var g=a(89990),m=function(e,t){return n.createElement(g.A,(0,u.A)((0,u.A)({},e),{},{ref:t,icon:p}))};const d=n.forwardRef(m);const y={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"}}]},name:"cloud",theme:"outlined"};var h=function(e,t){return n.createElement(g.A,(0,u.A)((0,u.A)({},e),{},{ref:t,icon:y}))};const b=n.forwardRef(h),f=({saasOnly:e,ossOnly:t})=>n.createElement("div",{className:(0,r.A)(i,"card")},n.createElement("strong",null,"Feature Availability"),n.createElement("div",null,n.createElement("span",{className:(0,r.A)(l,!e&&s)},"Self-Hosted DataHub ",e?n.createElement(c.A,null):n.createElement(d,null))),n.createElement("div",null,n.createElement(b,{className:o}),n.createElement("span",{className:(0,r.A)(l,!t&&s)},"DataHub Cloud ",t?n.createElement(c.A,null):n.createElement(d,null))))},73640:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>s,metadata:()=>u,toc:()=>g});a(96540);var n=a(15680),r=a(43655);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})),e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}const s={title:"Microsoft Teams",slug:"/actions/actions/teams",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/actions/actions/teams.md"},c="Microsoft Teams",u={unversionedId:"docs/actions/actions/teams",id:"version-1.1.0/docs/actions/actions/teams",title:"Microsoft Teams",description:"| | |",source:"@site/versioned_docs/version-1.1.0/docs/actions/actions/teams.md",sourceDirName:"docs/actions/actions",slug:"/actions/actions/teams",permalink:"/docs/1.1.0/actions/actions/teams",draft:!1,editUrl:"https://github.com/datahub-project/datahub/blob/master/docs/actions/actions/teams.md",tags:[],version:"1.1.0",frontMatter:{title:"Microsoft Teams",slug:"/actions/actions/teams",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/actions/actions/teams.md"},sidebar:"overviewSidebar",previous:{title:"Slack",permalink:"/docs/1.1.0/actions/actions/slack"},next:{title:"Developing a Transformer",permalink:"/docs/1.1.0/actions/guides/developing-a-transformer"}},p={},g=[{value:"Overview",id:"overview",level:2},{value:"Capabilities",id:"capabilities",level:3},{value:"User Experience",id:"user-experience",level:3},{value:"Supported Events",id:"supported-events",level:3},{value:"Action Quickstart",id:"action-quickstart",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Installation Instructions (Deployment specific)",id:"installation-instructions-deployment-specific",level:3},{value:"Quickstart",id:"quickstart",level:4},{value:"k8s / helm",id:"k8s--helm",level:4},{value:"Bare Metal - CLI or Python-based",id:"bare-metal---cli-or-python-based",level:4},{value:"Sample Teams Action Configuration File",id:"sample-teams-action-configuration-file",level:5},{value:"Teams Action Configuration Parameters",id:"teams-action-configuration-parameters",level:5},{value:"Troubleshooting",id:"troubleshooting",level:2}],m={toc:g},d="wrapper";function y(e){var{components:t}=e,a=l(e,["components"]);return(0,n.yg)(d,o(function(e){for(var t=1;t\n\ndatahub docker quickstart --stop && datahub docker quickstart\n")),(0,n.yg)("h4",{id:"k8s--helm"},"k8s / helm"),(0,n.yg)("p",null,"Similar to the quickstart scenario, there are no specific software installation steps. The ",(0,n.yg)("inlineCode",{parentName:"p"},"datahub-actions")," container comes pre-installed with the Teams action. You just need to export a few environment variables and make them available to the ",(0,n.yg)("inlineCode",{parentName:"p"},"datahub-actions")," container to activate and configure the integration. See below for the list of environment variables to export."),(0,n.yg)("table",null,(0,n.yg)("thead",{parentName:"table"},(0,n.yg)("tr",{parentName:"thead"},(0,n.yg)("th",{parentName:"tr",align:null},"Env Variable"),(0,n.yg)("th",{parentName:"tr",align:null},"Required for Integration"),(0,n.yg)("th",{parentName:"tr",align:null},"Purpose"))),(0,n.yg)("tbody",{parentName:"table"},(0,n.yg)("tr",{parentName:"tbody"},(0,n.yg)("td",{parentName:"tr",align:null},"DATAHUB_ACTIONS_TEAMS_ENABLED"),(0,n.yg)("td",{parentName:"tr",align:null},"\u2705"),(0,n.yg)("td",{parentName:"tr",align:null},'Set to "true" to enable the Teams action')),(0,n.yg)("tr",{parentName:"tbody"},(0,n.yg)("td",{parentName:"tr",align:null},"DATAHUB_ACTIONS_TEAMS_WEBHOOK_URL"),(0,n.yg)("td",{parentName:"tr",align:null},"\u2705"),(0,n.yg)("td",{parentName:"tr",align:null},"Set to the incoming webhook url that you configured in the ",(0,n.yg)("a",{parentName:"td",href:"#prerequisites"},"pre-requisites step")," above")),(0,n.yg)("tr",{parentName:"tbody"},(0,n.yg)("td",{parentName:"tr",align:null},"DATAHUB_ACTIONS_TEAMS_DATAHUB_BASE_URL"),(0,n.yg)("td",{parentName:"tr",align:null},"\u2705"),(0,n.yg)("td",{parentName:"tr",align:null},'Set to the location where your DataHub UI is running. For example, if your DataHub UI is hosted at "',(0,n.yg)("a",{parentName:"td",href:"https://datahub.my-company.biz%22"},'https://datahub.my-company.biz"'),', set this to "',(0,n.yg)("a",{parentName:"td",href:"https://datahub.my-company.biz%22"},'https://datahub.my-company.biz"'))))),(0,n.yg)("h4",{id:"bare-metal---cli-or-python-based"},"Bare Metal - CLI or Python-based"),(0,n.yg)("p",null,"If you are using the ",(0,n.yg)("inlineCode",{parentName:"p"},"datahub-actions")," library directly from Python, or the ",(0,n.yg)("inlineCode",{parentName:"p"},"datahub-actions")," cli directly, then you need to first install the ",(0,n.yg)("inlineCode",{parentName:"p"},"teams")," action plugin in your Python virtualenv."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre"},'pip install "acryl-datahub-actions[teams]"\n')),(0,n.yg)("p",null,"Then run the action with a configuration file that you have modified to capture your credentials and configuration."),(0,n.yg)("h5",{id:"sample-teams-action-configuration-file"},"Sample Teams Action Configuration File"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-yml"},'name: datahub_teams_action\nenabled: true\nsource:\n type: "kafka"\n config:\n connection:\n bootstrap: ${KAFKA_BOOTSTRAP_SERVER:-localhost:9092}\n schema_registry_url: ${SCHEMA_REGISTRY_URL:-http://localhost:8081}\n topic_routes:\n mcl: ${METADATA_CHANGE_LOG_VERSIONED_TOPIC_NAME:-MetadataChangeLog_Versioned_v1}\n pe: ${PLATFORM_EVENT_TOPIC_NAME:-PlatformEvent_v1}\n\n## 3a. Optional: Filter to run on events (map)\n# filter:\n# event_type: \n# event:\n# # Filter event fields by exact-match\n# \n\n# 3b. Optional: Custom Transformers to run on events (array)\n# transform:\n# - type: \n# config:\n# # Transformer-specific configs (map)\n\naction:\n type: teams\n config:\n # Action-specific configs (map)\n base_url: ${DATAHUB_ACTIONS_TEAMS_DATAHUB_BASE_URL:-http://localhost:9002}\n webhook_url: ${DATAHUB_ACTIONS_TEAMS_WEBHOOK_URL}\n suppress_system_activity: ${DATAHUB_ACTIONS_TEAMS_SUPPRESS_SYSTEM_ACTIVITY:-true}\n\ndatahub:\n server: "http://${DATAHUB_GMS_HOST:-localhost}:${DATAHUB_GMS_PORT:-8080}"\n')),(0,n.yg)("h5",{id:"teams-action-configuration-parameters"},"Teams Action Configuration Parameters"),(0,n.yg)("table",null,(0,n.yg)("thead",{parentName:"table"},(0,n.yg)("tr",{parentName:"thead"},(0,n.yg)("th",{parentName:"tr",align:null},"Field"),(0,n.yg)("th",{parentName:"tr",align:null},"Required"),(0,n.yg)("th",{parentName:"tr",align:null},"Default"),(0,n.yg)("th",{parentName:"tr",align:null},"Description"))),(0,n.yg)("tbody",{parentName:"table"},(0,n.yg)("tr",{parentName:"tbody"},(0,n.yg)("td",{parentName:"tr",align:null},(0,n.yg)("inlineCode",{parentName:"td"},"base_url")),(0,n.yg)("td",{parentName:"tr",align:null},"\u274c"),(0,n.yg)("td",{parentName:"tr",align:null},(0,n.yg)("inlineCode",{parentName:"td"},"False")),(0,n.yg)("td",{parentName:"tr",align:null},"Whether to print events in upper case.")),(0,n.yg)("tr",{parentName:"tbody"},(0,n.yg)("td",{parentName:"tr",align:null},(0,n.yg)("inlineCode",{parentName:"td"},"webhook_url")),(0,n.yg)("td",{parentName:"tr",align:null},"\u2705"),(0,n.yg)("td",{parentName:"tr",align:null},"Set to the incoming webhook url that you configured in the ",(0,n.yg)("a",{parentName:"td",href:"#prerequisites"},"pre-requisites step")," above"),(0,n.yg)("td",{parentName:"tr",align:null})),(0,n.yg)("tr",{parentName:"tbody"},(0,n.yg)("td",{parentName:"tr",align:null},(0,n.yg)("inlineCode",{parentName:"td"},"suppress_system_activity")),(0,n.yg)("td",{parentName:"tr",align:null},"\u274c"),(0,n.yg)("td",{parentName:"tr",align:null},(0,n.yg)("inlineCode",{parentName:"td"},"True")),(0,n.yg)("td",{parentName:"tr",align:null},"Set to ",(0,n.yg)("inlineCode",{parentName:"td"},"False")," if you want to get low level system activity events, e.g. when datasets are ingested, etc. Note: this will currently result in a very spammy Teams notifications experience, so this is not recommended to be changed.")))),(0,n.yg)("h2",{id:"troubleshooting"},"Troubleshooting"),(0,n.yg)("p",null,"If things are configured correctly, you should see logs on the ",(0,n.yg)("inlineCode",{parentName:"p"},"datahub-actions")," container that indicate success in enabling and running the Teams action."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-shell"},"docker logs datahub-datahub-actions-1\n\n...\n[2022-12-04 16:47:44,536] INFO {datahub_actions.cli.actions:76} - DataHub Actions version: unavailable (installed editable via git)\n[2022-12-04 16:47:44,565] WARNING {datahub_actions.cli.actions:103} - Skipping pipeline datahub_slack_action as it is not enabled\n[2022-12-04 16:47:44,581] INFO {datahub_actions.plugin.action.teams.teams:60} - Teams notification action configured with webhook_url=SecretStr('**********') base_url='http://localhost:9002' suppress_system_activity=True\n[2022-12-04 16:47:46,393] INFO {datahub_actions.cli.actions:119} - Action Pipeline with name 'ingestion_executor' is now running.\n[2022-12-04 16:47:46,393] INFO {datahub_actions.cli.actions:119} - Action Pipeline with name 'datahub_teams_action' is now running.\n...\n")),(0,n.yg)("p",null,"If the Teams action was not enabled, you would see messages indicating that.\ne.g. the following logs below show that neither the Teams or Slack action were enabled."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-shell"},"docker logs datahub-datahub-actions-1\n\n....\nNo user action configurations found. Not starting user actions.\n[2022-12-04 06:45:27,509] INFO {datahub_actions.cli.actions:76} - DataHub Actions version: unavailable (installed editable via git)\n[2022-12-04 06:45:27,647] WARNING {datahub_actions.cli.actions:103} - Skipping pipeline datahub_slack_action as it is not enabled\n[2022-12-04 06:45:27,649] WARNING {datahub_actions.cli.actions:103} - Skipping pipeline datahub_teams_action as it is not enabled\n[2022-12-04 06:45:27,649] INFO {datahub_actions.cli.actions:119} - Action Pipeline with name 'ingestion_executor' is now running.\n...\n\n")))}y.isMDXComponent=!0}}]);