{"version":3,"sources":["webpack:///./src/pages/docs/installation/networking_settings.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"wPAQaA,G,UAAe,S,qOAC5B,IAAMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAG5E,iBAAQ,CACN,GAAM,kCADR,kCAGA,iBAAQ,CACN,GAAM,QADR,QAGA,yHACA,uBAAK,gCAAMC,WAAW,OAAU,CAC5B,UAAa,oBADZ,wCAIL,8CAA6B,0BAAYA,WAAW,KAAvB,sBAA7B,wCACA,sBACE,kBAAIA,WAAW,MAAK,0BAAYA,WAAW,MAAvB,eAApB,oBAAiG,0BAAYA,WAAW,MAAvB,QAAjG,4BACA,kBAAIA,WAAW,MAAK,0BAAYA,WAAW,MAAvB,gBAApB,oCACH,6BAAGA,WAAW,MAAS,CAChB,KAAQ,oEADf,iBADG,MAKF,iBAAQ,CACN,GAAM,mBADR,mBAGA,sNAEF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,iDADd,WAFE,yJAOA,0DAAyC,0BAAYA,WAAW,KAAvB,sBAAzC,UACA,sBACE,kBAAIA,WAAW,MAAK,0BAAYA,WAAW,MAAvB,8BAApB,8DAEF,iBAAQ,CACN,GAAM,cADR,cAGA,gHACF,0BAAYA,WAAW,KAAvB,yBADE,gBACgF,0BAAYA,WAAW,KAAvB,sBADhF,KACoJ,0BAAYA,WAAW,KAAvB,yBADpJ,6DAGA,4CAA2B,0BAAYA,WAAW,KAAvB,oBAA3B,0GAC0C,0BAAYA,WAAW,KAAvB,4BAD1C,+DAE4B,0BAAYA,WAAW,KAAvB,eAF5B,gC,mOAOJJ,EAAWK,gBAAiB","file":"component---src-pages-docs-installation-networking-settings-mdx-64a0d24022e70d1ed8a2.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\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\n\n    <h2 {...{\n      \"id\": \"additional-networking-settings\"\n    }}>{`Additional Networking Settings`}</h2>\n    <h3 {...{\n      \"id\": \"cors\"\n    }}>{`CORS`}</h3>\n    <p>{`To configure CORS, or cross-origin resource sharing, the following dependency must be installed:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-python\"\n      }}>{`pip install apache-superset[cors]\n`}</code></pre>\n    <p>{`The following keys in `}<inlineCode parentName=\"p\">{`superset_config.py`}</inlineCode>{` can be specified to configure CORS:`}</p>\n    <ul>\n      <li parentName=\"ul\"><inlineCode parentName=\"li\">{`ENABLE_CORS`}</inlineCode>{`: Must be set to `}<inlineCode parentName=\"li\">{`True`}</inlineCode>{` in order to enable CORS`}</li>\n      <li parentName=\"ul\"><inlineCode parentName=\"li\">{`CORS_OPTIONS`}</inlineCode>{`: options passed to Flask-CORS\n(`}<a parentName=\"li\" {...{\n          \"href\": \"https://flask-cors.corydolphin.com/en/latest/api.html#extension\"\n        }}>{`documentation`}</a>{`)`}</li>\n    </ul>\n    <h3 {...{\n      \"id\": \"domain-sharding\"\n    }}>{`Domain Sharding`}</h3>\n    <p>{`Chrome allows up to 6 open connections per domain at a time. When there are more than 6 slices in\ndashboard, a lot of time fetch requests are queued up and wait for next available socket.\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://github.com/apache/superset/pull/5039\"\n      }}>{`PR 5039`}</a>{` adds domain sharding to Superset,\nand this feature will be enabled by configuration only (by default Superset doesn’t allow\ncross-domain request).`}</p>\n    <p>{`Add the following setting in your `}<inlineCode parentName=\"p\">{`superset_config.py`}</inlineCode>{` file:`}</p>\n    <ul>\n      <li parentName=\"ul\"><inlineCode parentName=\"li\">{`SUPERSET_WEBSERVER_DOMAINS`}</inlineCode>{`: list of allowed hostnames for domain shareding feature.`}</li>\n    </ul>\n    <h3 {...{\n      \"id\": \"middleware\"\n    }}>{`Middleware`}</h3>\n    <p>{`Superset allows you to add your own middleware. To add your own middleware, update the\n`}<inlineCode parentName=\"p\">{`ADDITIONAL_MIDDLEWARE`}</inlineCode>{` key in your `}<inlineCode parentName=\"p\">{`superset_config.py`}</inlineCode>{`. `}<inlineCode parentName=\"p\">{`ADDITIONAL_MIDDLEWARE`}</inlineCode>{` should be a list\nof your additional middleware classes.`}</p>\n    <p>{`For example, to use `}<inlineCode parentName=\"p\">{`AUTH_REMOTE_USER`}</inlineCode>{` from behind a proxy server like nginx, you have to add a\nsimple middleware class to add the value of `}<inlineCode parentName=\"p\">{`HTTP_X_PROXY_REMOTE_USER`}</inlineCode>{` (or any other custom header\nfrom the proxy) to Gunicorn’s `}<inlineCode parentName=\"p\">{`REMOTE_USER`}</inlineCode>{` environment variable:`}</p>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}