{"version":3,"sources":["webpack:///./src/pages/docs/installation/email_reports.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,+NAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,iBAAQ,CACN,GAAM,mCADR,mCAGA,iBAAQ,CACN,GAAM,iBADR,iBAGA,iFACA,sBAEE,iBAAQ,CACN,WAAc,MADhB,4DAKA,iBAAQ,CACN,WAAc,MADhB,gDAKF,qDACE,yBAAgB,CACd,WAAc,KADhB,sBADF,UAKA,uBAAK,mBAAU,CACX,UAAa,kBACb,WAAc,OAFb,4CAKL,wHACA,sBAEE,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,8BAKH,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,oCAKL,iDACE,gBAAO,CACL,KAAQ,wBACR,WAAc,KAFhB,kBADF,mLAQA,0LAEE,yBAAgB,CACd,WAAc,KADhB,iCAFF,SAOE,yBAAgB,CACd,WAAc,KADhB,uBAPF,KAWA,mFACE,yBAAgB,CACd,WAAc,KADhB,sBADF,wBAKA,uBAAK,mBAAU,CACX,UAAa,kBACb,WAAc,OAFb,mQAaL,4GACA,sBAEE,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,yCACR,WAAc,MAFf,eAFH,gBASA,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,oCACR,WAAc,MAFf,gBAFH,gBASF,kDACE,yBAAgB,CACd,WAAc,KADhB,2BADF,qSAQA,uBAAK,mBAAU,CACX,UAAa,kBACb,WAAc,OAFb,2EAKL,qBAAG,qBAAY,CACX,WAAc,KADf,oBAGH,sBAEE,iBAAQ,CACN,WAAc,MADhB,2DAGE,yBAAgB,CACd,WAAc,MADhB,QAHF,uFAUA,iBAAQ,CACN,WAAc,MADhB,+GAIE,yBAAgB,CACd,WAAc,MADhB,+DAKF,iBAAQ,CACN,WAAc,MADhB,qDAGE,yBAAgB,CACd,WAAc,MADhB,WAHF,QAOE,yBAAgB,CACd,WAAc,MADhB,iBAPF,uCAYE,yBAAgB,CACd,WAAc,MADhB,SAZF,aAgBE,yBAAgB,CACd,WAAc,MADhB,sBAhBF,KAsBA,iBAAQ,CACN,WAAc,MADhB,UAGE,yBAAgB,CACd,WAAc,MADhB,qBAHF,iGAQE,yBAAgB,CACd,WAAc,MADhB,wBARF,MAcF,iBAAQ,CACN,GAAM,oBADR,oBAGA,wNAGE,gBAAO,CACL,KAAQ,8BACR,WAAc,KAFhB,kBAHF,MAQA,kGACA,uBAAK,mBAAU,CACX,UAAa,kBACb,WAAc,OAFb,svGAoFL,uDAEE,gBAAO,CACL,KAAQ,4DACR,WAAc,KAFhB,yBAFF,wLASA,iFACE,yBAAgB,CACd,WAAc,KADhB,+BADF,gDAME,yBAAgB,CACd,WAAc,KADhB,qBANF,6I,6NAeJH,EAAWI,gBAAiB","file":"component---src-pages-docs-installation-email-reports-mdx-0120ee13f31d628cdfb0.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/incubator-superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"scheduling-and-emailing-reports\"\n    }}>{`Scheduling and Emailing Reports`}</h2>\n    <h3 {...{\n      \"id\": \"email-reports\"\n    }}>{`Email Reports`}</h3>\n    <p>{`Email reports allow users to schedule email reports for:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`chart and dashboard visualization (attachment or inline)`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`chart data (CSV attachment on inline table)`}</li>\n\n    </ul>\n    <p>{`Enable email reports in your `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset_config.py`}</inlineCode>\n      {` file:`}</p>\n    <pre><code {...{\n        \"className\": \"language-python\",\n        \"parentName\": \"pre\"\n      }}>{`ENABLE_SCHEDULED_EMAIL_REPORTS = True\n`}</code></pre>\n    <p>{`Now you will find two new items in the navigation bar that allow you to schedule email reports:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Manage > Dashboard Emails`}</strong></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Manage > Chart Email Schedules`}</strong></li>\n\n    </ul>\n    <p>{`Schedules are defined in `}\n      <a {...{\n        \"href\": \"https://crontab.guru/\",\n        \"parentName\": \"p\"\n      }}>{`crontab format`}</a>\n      {` and each schedule can have a list\nof recipients (all of them can receive a single mail, or separate mails). For audit purposes, all\noutgoing mails can have a mandatory BCC.`}</p>\n    <p>{`In order get picked up you need to configure a celery worker and a celery beat (see section above\n“Celery Tasks”). Your celery configuration also needs an entry `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`email_reports.schedule_hourly`}</inlineCode>\n      {` for\n`}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`CELERYBEAT_SCHEDULE`}</inlineCode>\n      {`.`}</p>\n    <p>{`To send emails you need to configure SMTP settings in your `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset_config.py`}</inlineCode>\n      {` configuration file.`}</p>\n    <pre><code {...{\n        \"className\": \"language-python\",\n        \"parentName\": \"pre\"\n      }}>{`EMAIL_NOTIFICATIONS = True\n\nSMTP_HOST = \"email-smtp.eu-west-1.amazonaws.com\"\nSMTP_STARTTLS = True\nSMTP_SSL = False\nSMTP_USER = \"smtp_username\"\nSMTP_PORT = 25\nSMTP_PASSWORD = os.environ.get(\"SMTP_PASSWORD\")\nSMTP_MAIL_FROM = \"insights@komoot.com\"\n`}</code></pre>\n    <p>{`To render dashboards you need to install a local browser on your Superset instance:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://github.com/mozilla/geckodriver\",\n          \"parentName\": \"li\"\n        }}>{`geckodriver`}</a>\n        {` for Firefox`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"http://chromedriver.chromium.org/\",\n          \"parentName\": \"li\"\n        }}>{`chromedriver`}</a>\n        {` for Chrome`}</li>\n\n    </ul>\n    <p>{`You'll need to adjust the `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`EMAIL_REPORTS_WEBDRIVER`}</inlineCode>\n      {` accordingly in your configuration. You also need\nto specify on behalf of which username to render the dashboards. In general dashboards and charts\nare not accessible to unauthorized requests, that is why the worker needs to take over credentials\nof an existing user to take a snapshot.`}</p>\n    <pre><code {...{\n        \"className\": \"language-python\",\n        \"parentName\": \"pre\"\n      }}>{`EMAIL_REPORTS_USER = 'username_with_permission_to_access_dashboards'\n`}</code></pre>\n    <p><strong {...{\n        \"parentName\": \"p\"\n      }}>{`Important notes`}</strong></p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Be mindful of the concurrency setting for celery (using `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`-c 4`}</inlineCode>\n        {`). Selenium/webdriver instances can\nconsume a lot of CPU / memory on your servers.`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`In some cases, if you notice a lot of leaked geckodriver processes, try running your celery\nprocesses with `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`celery worker --pool=prefork --max-tasks-per-child=128 ...`}</inlineCode></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`It is recommended to run separate workers for the `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`sql_lab`}</inlineCode>\n        {` and `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`email_reports`}</inlineCode>\n        {` tasks. This can be\ndone using the `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`queue`}</inlineCode>\n        {` field in `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`CELERY_ANNOTATIONS`}</inlineCode>\n        {`.`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Adjust `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`WEBDRIVER_BASEURL`}</inlineCode>\n        {` in your configuration file if celery workers can’t access Superset via\nits default value of `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`http://0.0.0.0:8080/`}</inlineCode>\n        {`.`}</li>\n\n    </ul>\n    <h3 {...{\n      \"id\": \"schedule-reports\"\n    }}>{`Schedule Reports`}</h3>\n    <p>{`You can optionally allow your users to schedule queries directly in SQL Lab. This is done by addding\nextra metadata to saved queries, which are then picked up by an external scheduled (like\n`}\n      <a {...{\n        \"href\": \"https://airflow.apache.org/\",\n        \"parentName\": \"p\"\n      }}>{`Apache Airflow`}</a>\n      {`).`}</p>\n    <p>{`To allow scheduled queries, add the following to your configuration file:`}</p>\n    <pre><code {...{\n        \"className\": \"language-python\",\n        \"parentName\": \"pre\"\n      }}>{`FEATURE_FLAGS = {\n    # Configuration for scheduling queries from SQL Lab. This information is\n    # collected when the user clicks \"Schedule query\", and saved into the \\`extra\\`\n    # field of saved queries.\n    # See: https://github.com/mozilla-services/react-jsonschema-form\n    'SCHEDULED_QUERIES': {\n        'JSONSCHEMA': {\n            'title': 'Schedule',\n            'description': (\n                'In order to schedule a query, you need to specify when it '\n                'should start running, when it should stop running, and how '\n                'often it should run. You can also optionally specify '\n                'dependencies that should be met before the query is '\n                'executed. Please read the documentation for best practices '\n                'and more information on how to specify dependencies.'\n            ),\n            'type': 'object',\n            'properties': {\n                'output_table': {\n                    'type': 'string',\n                    'title': 'Output table name',\n                },\n                'start_date': {\n                    'type': 'string',\n                    'title': 'Start date',\n                    # date-time is parsed using the chrono library, see\n                    # https://www.npmjs.com/package/chrono-node#usage\n                    'format': 'date-time',\n                    'default': 'tomorrow at 9am',\n                },\n                'end_date': {\n                    'type': 'string',\n                    'title': 'End date',\n                    # date-time is parsed using the chrono library, see\n                    # https://www.npmjs.com/package/chrono-node#usage\n                    'format': 'date-time',\n                    'default': '9am in 30 days',\n                },\n                'schedule_interval': {\n                    'type': 'string',\n                    'title': 'Schedule interval',\n                },\n                'dependencies': {\n                    'type': 'array',\n                    'title': 'Dependencies',\n                    'items': {\n                        'type': 'string',\n                    },\n                },\n            },\n        },\n        'UISCHEMA': {\n            'schedule_interval': {\n                'ui:placeholder': '@daily, @weekly, etc.',\n            },\n            'dependencies': {\n                'ui:help': (\n                    'Check the documentation for the correct format when '\n                    'defining dependencies.'\n                ),\n            },\n        },\n        'VALIDATION': [\n            # ensure that start_date <= end_date\n            {\n                'name': 'less_equal',\n                'arguments': ['start_date', 'end_date'],\n                'message': 'End date cannot be before start date',\n                # this is where the error message is shown\n                'container': 'end_date',\n            },\n        ],\n        # link to the scheduler; this example links to an Airflow pipeline\n        # that uses the query id and the output table as its name\n        'linkback': (\n            'https://airflow.example.com/admin/airflow/tree?'\n            'dag_id=query_\\${id}_\\${extra_json.schedule_info.output_table}'\n        ),\n    },\n}\n`}</code></pre>\n    <p>{`This feature flag is based on\n`}\n      <a {...{\n        \"href\": \"https://github.com/mozilla-services/react-jsonschema-form\",\n        \"parentName\": \"p\"\n      }}>{`react-jsonschema-form`}</a>\n      {` and will add a\nbutton called “Schedule Query” to SQL Lab. When the button is clicked, a modal will show up where\nthe user can add the metadata required for scheduling the query.`}</p>\n    <p>{`This information can then be retrieved from the endpoint `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`/savedqueryviewapi/api/read`}</inlineCode>\n      {` and used to\nschedule the queries that have `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`scheduled_queries`}</inlineCode>\n      {` in their JSON metadata. For schedulers other than\nAirflow, additional fields can be easily added to the configuration file above.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}