{"version":3,"sources":["webpack:///./src/pages/docs/installation/networking_settings.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,qOAE5B,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,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-d2326a0e4f53fb77288c.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 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\": \"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":""}