{"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-b5564f96a16161e84a80.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 \"/home/runner/work/superset/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":""}