{"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-95ef7cb1bc1c87de15e2.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/evan/GitHub/incubator-superset_preset/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":""}