You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2019/08/19 16:25:09 UTC

[GitHub] [incubator-superset] ericandrewmeadows commented on issue #8061: Documentation URL/Icon not showing

ericandrewmeadows commented on issue #8061: Documentation URL/Icon not showing
URL: https://github.com/apache/incubator-superset/issues/8061#issuecomment-522651659
 
 
   pip freeze:
   
   ```
   alembic==1.0.0
   amqp==2.3.2
   -e git+https://github.com/apache/incubator-superset/@7591a709bb61a0841ad14b643088584af7cf36c6#egg=apache_superset
   apispec==1.3.3
   asn1crypto==0.24.0
   astroid==1.6.6
   attrs==19.1.0
   awscli==1.16.207
   Babel==2.6.0
   backcall==0.1.0
   billiard==3.5.0.4
   bleach==3.0.2
   boto3==1.9.199
   botocore==1.12.199
   cachetools==3.1.1
   celery==4.2.0
   certifi==2018.8.24
   cffi==1.11.5
   chardet==3.0.4
   click==6.7
   colorama==0.3.9
   console-log==0.2.10
   contextlib2==0.5.5
   coverage==4.5.3
   croniter==0.3.29
   cryptography==2.4.2
   decorator==4.3.0
   defusedxml==0.5.0
   docutils==0.14
   filelock==3.0.12
   flake8==3.6.0
   flake8-commas==2.0.0
   flake8-import-order==0.18
   flake8-mypy==17.8.0
   flake8-quotes==1.0.0
   Flask==1.0.2
   Flask-AppBuilder==2.1.9
   Flask-Babel==0.11.1
   Flask-Caching==1.4.0
   Flask-Compress==1.4.0
   Flask-Cors==3.0.6
   Flask-JWT-Extended==3.21.0
   Flask-Login==0.4.1
   Flask-Migrate==2.1.1
   Flask-OAuthlib==0.9.5
   flask-oidc==1.4.0
   Flask-OpenID==1.2.5
   Flask-SQLAlchemy==2.4.0
   Flask-WTF==0.14.2
   future==0.17.1
   geopy==1.11.0
   gevent==1.4.0
   gevent-websocket==0.10.1
   google-auth==1.6.3
   greenlet==0.4.15
   gsheetsdb==0.1.9
   gunicorn==19.8.0
   httplib2==0.13.1
   humanize==0.5.1
   idna==2.6
   importlib-metadata==0.19
   ipdb==0.11
   ipython==7.7.0
   ipython-genutils==0.2.0
   isodate==0.6.0
   isort==4.3.21
   itsdangerous==0.24
   jedi==0.15.1
   Jinja2==2.10
   jmespath==0.9.4
   JPype1==0.7.0
   jsonschema==3.0.2
   kombu==4.2.1
   lazy-object-proxy==1.4.1
   Mako==1.0.7
   Markdown==3.0
   MarkupSafe==1.0
   marshmallow==2.19.5
   marshmallow-enum==1.4.1
   marshmallow-sqlalchemy==0.17.0
   mccabe==0.6.1
   mo-future==2.48.19205
   moz-sql-parser==2.49.19205
   mypy==0.670
   mypy-extensions==0.4.1
   mysql-connector-python==8.0.17
   mysqlclient==1.4.4
   nose==1.3.7
   numpy==1.15.2
   oauth2client==4.1.3
   oauthlib==2.1.0
   okta==0.0.4
   pandas==0.23.4
   parsedatetime==2.0
   parso==0.5.1
   pathlib2==2.3.0
   pexpect==4.7.0
   pickleshare==0.7.5
   pip-tools==3.5.0
   pluggy==0.12.0
   polyline==1.3.2
   prison==0.1.2
   prompt-toolkit==2.0.9
   protobuf==3.9.1
   psycopg2==2.8.3
   psycopg2-binary==2.7.5
   ptyprocess==0.6.0
   py==1.7.0
   pyasn1==0.4.6
   pyasn1-modules==0.2.6
   PyAthena==1.7.1
   PyAthenaJDBC==2.0.5
   pycodestyle==2.4.0
   pycparser==2.19
   pydruid==0.5.0
   pyflakes==2.0.0
   Pygments==2.4.2
   PyHive==0.6.1
   PyJWT==1.7.1
   pylint==1.9.2
   pyparsing==2.3.1
   pyrsistent==0.15.4
   python-dateutil==2.6.1
   python-dotenv==0.10.1
   python-editor==1.0.3
   python-geohash==0.8.5
   python3-openid==3.1.0
   pytz==2018.5
   PyYAML==3.13
   redis==3.3.4
   requests==2.20.0
   requests-oauthlib==1.2.0
   retry==0.9.2
   rsa==3.4.2
   s3transfer==0.2.1
   selenium==3.141.0
   simplejson==3.15.0
   six==1.11.0
   SQLAlchemy==1.3.1
   sqlalchemy-redshift==0.7.3
   SQLAlchemy-Utils==0.32.21
   sqlparse==0.2.4
   statsd==3.3.0
   tenacity==5.1.1
   thrift==0.11.0
   toml==0.10.0
   tox==3.5.3
   traitlets==4.3.2
   typed-ast==1.3.5
   unicodecsv==0.14.1
   urllib3==1.22
   vine==1.1.4
   virtualenv==16.7.3
   wcwidth==0.1.7
   webencodings==0.5.1
   Werkzeug==0.14.1
   wrapt==1.11.2
   wsgigzip==0.1.4
   WTForms==2.2.1
   WTForms-JSON==0.3.3
   zipp==0.5.2
   ```
   
   Config:
   ```
   import os
   from celery.schedules import crontab
   from werkzeug.contrib.cache import RedisCache
   
   ENABLE_PROXY_FIX = True
   
   QUERY_RESULT_CACHE_TYPE = 'redis'
   QUERY_RESULT_CACHE_PREFIX = 'superset_results'
   QUERY_RESULT_CACHE_TIMEOUT_DEFAULT = 60 * 60 * 24
   
   # Boto3 Fetching
   # GET: Environment Variables
   PORT_GUNICORN = os.environ["PORT_GUNICORN"]
   
   # Secrets: SSM Parameters
   MAPBOX_PUBLIC_API_KEY = os.environ["MAPBOX_PUBLIC_API_KEY"]
   FLASK_APP_BUILDER_SECRET_KEY = os.environ["FLASK_APP_BUILDER_SECRET_KEY"]
   METADATA_DB_USERNAME = os.environ["METADATA_DB_USERNAME"]
   METADATA_DB_PASSWORD = os.environ["METADATA_DB_PASSWORD"]
   
   # Secrets: Elasticacache Parameters
   QUERY_CACHE_ADDRESS = os.environ["QUERY_CACHE_ADDRESS"]
   QUERY_CACHE_PORT = os.environ["QUERY_CACHE_PORT"]
   CELERY_WORKERS_ADDRESS = os.environ["CELERY_WORKERS_ADDRESS"]
   CELERY_WORKERS_PORT = os.environ["CELERY_WORKERS_PORT"]
   CELERY_WORKERS_RESULT_PREFIX = 'superset_results'
   
   # Environment: RDS Parameters
   METADATA_DB_NAME = os.environ["METADATA_DB_NAME"]
   METADATA_DB_ADDRESS = os.environ["METADATA_DB_ADDRESS"]
   METADATA_DB_PORT = os.environ["METADATA_DB_PORT"]
   
   # Environment: Row Parameters
   ROW_LIMIT = int(os.environ["ROW_LIMIT"])
   SQL_MAX_ROW = int(os.environ["SQL_MAX_ROW"])
   DISPLAY_MAX_ROW = int(os.environ["DISPLAY_MAX_ROW"])
   DEFAULT_SQLLAB_LIMIT = int(os.environ["DEFAULT_SQLLAB_LIMIT"])
   MAX_TABLE_NAMES = int(os.environ["MAX_TABLE_NAMES"])
   VIZ_ROW_LIMIT = int(os.environ["VIZ_ROW_LIMIT"])
   FILTER_SELECT_ROW_LIMIT = int(os.environ["FILTER_SELECT_ROW_LIMIT"])
   
   # Environment: SMTP Host
   SMTP_HOST = os.environ["SMTP_HOST"]
   SMTP_STARTTLS = os.environ["SMTP_STARTTLS"] == "True"
   SMTP_SSL = os.environ["SMTP_SSL"] == "True"
   SMTP_USER = os.environ["SMTP_USER"]
   SMTP_PORT = int(os.environ["SMTP_PORT"])
   SMTP_PASSWORD = os.environ["SMTP_PASSWORD"]
   SMTP_MAIL_FROM = os.environ["SMTP_MAIL_FROM"]
   
   TALISMAN_ENABLED = True
   
   # Environment: Weblinks
   TROUBLESHOOTING_LINK = os.environ["TROUBLESHOOTING_LINK"]
   PERMISSION_INSTRUCTIONS_LINK = os.environ["PERMISSION_INSTRUCTIONS_LINK"]
   BUG_REPORT_URL = os.environ.get("BUG_REPORT_URL")
   DOCUMENTATION_URL = os.environ.get("DOCUMENTATION_URL")
   
   # Superset Configuration
   # Basic functionality
   SUPERSET_WEBSERVER_PORT = PORT_GUNICORN
   ENABLE_JAVASCRIPT_CONTROLS = True
   ENABLE_SCHEDULED_EMAIL_REPORTS = True
   
   # Flask-WTF flag for CSRF
   CSRF_ENABLED = True
   WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 7  # None
   WTF_CSRF_EXEMPT_LIST = ["superset.views.core.log"]
   
   # Deployment-Specific App Builder configuration
   SECRET_KEY = FLASK_APP_BUILDER_SECRET_KEY
   
   # SQLAlchemy
   SQLALCHEMY_DATABASE_URI = f'mysql+mysqldb://' \
       f'{METADATA_DB_USERNAME}:{METADATA_DB_PASSWORD}' \
       f'@{METADATA_DB_ADDRESS}:{METADATA_DB_PORT}/{METADATA_DB_NAME}'
   SQLALCHEMY_TRACK_MODIFICATIONS = True
   
   # Mapbox
   MAPBOX_API_KEY = MAPBOX_PUBLIC_API_KEY
   
   RESULTS_BACKEND = RedisCache(
       host=CELERY_WORKERS_ADDRESS,
       port=CELERY_WORKERS_PORT,
       key_prefix=CELERY_WORKERS_RESULT_PREFIX
   )
   
   
   class CeleryConfig(object):
       BROKER_URL = f'redis://{CELERY_WORKERS_ADDRESS}:{CELERY_WORKERS_PORT}/0'
       CELERY_IMPORTS = (
           'superset.sql_lab',
           'superset.tasks',
       )
       CELERY_RESULT_BACKEND =\
           f'redis://{CELERY_WORKERS_ADDRESS}:{CELERY_WORKERS_PORT}/0'
       RESULT_BACKEND =\
           f'redis://{CELERY_WORKERS_ADDRESS}:{CELERY_WORKERS_PORT}/0'
       CELERYD_LOG_LEVEL = 'DEBUG'
       CELERYD_PREFETCH_MULTIPLIER = 10
       CELERY_ACKS_LATE = True
       CELERY_ANNOTATIONS = {
           'sql_lab.get_sql_results': {
               'rate_limit': '100/s',
           },
           'email_reports.send': {
               'rate_limit': '1/s',
               'time_limit': 120,
               'soft_time_limit': 150,
               'ignore_result': True,
           },
       }
       CELERYBEAT_SCHEDULE = {
           'email_reports.schedule_hourly': {
               'task': 'email_reports.schedule_hourly',
               'schedule': crontab(minute=1, hour='*'),
           },
       }
   
   
   CELERY_CONFIG = CeleryConfig
   
   AUTH_PROVIDER = os.environ["OID_AUTH_PROVIDER"]
   if AUTH_PROVIDER == "okta":
       from flask_appbuilder.security.manager import AUTH_OID
       from create_client_secret_json import create_client_secret_json
       from security import OIDCSecurityManager
   
       SECRETS_FILENAME = 'client_secret.json'
       client_secrets_dict = create_client_secret_json(SECRETS_FILENAME)
       os.environ['ORG_URL'] = client_secrets_dict['issuer']
   
       AUTH_TYPE = AUTH_OID
       OIDC_CLIENT_SECRETS = SECRETS_FILENAME
       OIDC_ID_TOKEN_COOKIE_SECURE = True
       OIDC_USER_INFO_ENABLED = True
       AUTH_USER_REGISTRATION = True
       AUTH_USER_REGISTRATION_ROLE = 'Gamma'
       OIDC_SCOPES = ["openid", "email", "profile", "groups"]
       OIDC_INTROSPECTION_AUTH_METHOD = os.environ['OID_AUTH_METHOD']
       CUSTOM_SECURITY_MANAGER = OIDCSecurityManager
   ```
   ```
   DOCUMENTATION_URL = "https://ours.atlassian.net/foo"
   BUG_REPORT_URL = "https://ours.atlassian.net/bar"
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org