{"version":3,"sources":["webpack:///./src/pages/docs/installation/networking_settings.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,qOAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,iBAAQ,CACN,GAAM,kCADR,kCAGA,iBAAQ,CACN,GAAM,QADR,QAGA,yHACA,uBAAK,mBAAU,CACX,UAAa,kBACb,WAAc,OAFb,wCAKL,8CACE,yBAAgB,CACd,WAAc,KADhB,sBADF,wCAKA,sBAEE,iBAAQ,CACN,WAAc,MACb,yBAAgB,CACf,WAAc,MADf,eAFH,oBAME,yBAAgB,CACd,WAAc,MADhB,QANF,4BAYA,iBAAQ,CACN,WAAc,MACb,yBAAgB,CACf,WAAc,MADf,gBAFH,oCAOE,gBAAO,CACL,KAAQ,kEACR,WAAc,MAFhB,iBAPF,MAcF,iBAAQ,CACN,GAAM,mBADR,mBAGA,sNAGE,gBAAO,CACL,KAAQ,yDACR,WAAc,KAFhB,WAHF,yJAUA,0DACE,yBAAgB,CACd,WAAc,KADhB,sBADF,UAKA,sBAEE,iBAAQ,CACN,WAAc,MACb,yBAAgB,CACf,WAAc,MADf,8BAFH,8DAQF,iBAAQ,CACN,GAAM,cADR,cAGA,gHAEE,yBAAgB,CACd,WAAc,KADhB,yBAFF,gBAME,yBAAgB,CACd,WAAc,KADhB,sBANF,KAUE,yBAAgB,CACd,WAAc,KADhB,yBAVF,6DAeA,4CACE,yBAAgB,CACd,WAAc,KADhB,oBADF,0GAME,yBAAgB,CACd,WAAc,KADhB,4BANF,+DAWE,yBAAgB,CACd,WAAc,KADhB,eAXF,gC,mOAmBJH,EAAWI,gBAAiB","file":"component---src-pages-docs-installation-networking-settings-mdx-259e7556dae5d0677be0.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/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 MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...props} components={components} mdxType=\"MDXLayout\">\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 research sharing, the following dependency must be installed:`}</p>\n    <pre><code {...{\n        \"className\": \"language-python\",\n        \"parentName\": \"pre\"\n      }}>{`pip install apache-superset[cors]\n`}</code></pre>\n    <p>{`The following keys in `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset_config.py`}</inlineCode>\n      {` can be specified to configure CORS:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`ENABLE_CORS`}</inlineCode>\n        {`: Must be set to `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`True`}</inlineCode>\n        {` in order to enable CORS`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`CORS_OPTIONS`}</inlineCode>\n        {`: options passed to Flask-CORS\n(`}\n        <a {...{\n          \"href\": \"https://flask-cors.corydolphin.com/en/latest/api.html#extension\",\n          \"parentName\": \"li\"\n        }}>{`documentation`}</a>\n        {`)`}</li>\n\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`}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset/pull/5039\",\n        \"parentName\": \"p\"\n      }}>{`PR 5039`}</a>\n      {` 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 `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset_config.py`}</inlineCode>\n      {` file:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`SUPERSET_WEBSERVER_DOMAINS`}</inlineCode>\n        {`: list of allowed hostnames for domain shareding feature.`}</li>\n\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`}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`ADDITIONAL_MIDDLEWARE`}</inlineCode>\n      {` key in your `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset_config.py`}</inlineCode>\n      {`. `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`ADDITIONAL_MIDDLEWARE`}</inlineCode>\n      {` should be a list\nof your additional middleware classes.`}</p>\n    <p>{`For example, to use `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`AUTH_REMOTE_USER`}</inlineCode>\n      {` from behind a proxy server like nginx, you have to add a\nsimple middleware class to add the value of `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`HTTP_X_PROXY_REMOTE_USER`}</inlineCode>\n      {` (or any other custom header\nfrom the proxy) to Gunicorn’s `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`REMOTE_USER`}</inlineCode>\n      {` environment variable:`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}