From 16e4aa3c629bbb2a04a3089d7fc64096ea9661e8 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Fri, 9 Apr 2021 15:45:14 -0400 Subject: [PATCH] chore: Remove decentralized devstack config. We have decided not to pursue the decentralized devstack design right now and so we want to cleanup files and task that were built as a part of the process. Related Ticket: ARCHBOM-1685 --- Dockerfile | 20 - Makefile | 4 - cms/devstack.yml | 492 ------------------------ cms/envs/devstack_decentralized.py | 185 --------- lms/devstack.yml | 584 ----------------------------- lms/envs/devstack_decentralized.py | 362 ------------------ 6 files changed, 1647 deletions(-) delete mode 100644 cms/devstack.yml delete mode 100644 cms/envs/devstack_decentralized.py delete mode 100644 lms/devstack.yml delete mode 100644 lms/envs/devstack_decentralized.py diff --git a/Dockerfile b/Dockerfile index 9df252be2d..c2c3c96764 100644 --- a/Dockerfile +++ b/Dockerfile @@ -81,8 +81,6 @@ RUN npm set progress=false && npm install ENV LMS_CFG /edx/etc/lms.yml ENV STUDIO_CFG /edx/etc/studio.yml -COPY lms/devstack.yml /edx/etc/lms.yml -COPY cms/devstack.yml /edx/etc/studio.yml # Copy over remaining code. # We do this as late as possible so that small changes to the repo don't bust @@ -99,15 +97,6 @@ FROM lms as lms-newrelic RUN pip install newrelic CMD newrelic-admin run-program gunicorn -c /edx/app/edxapp/edx-platform/lms/docker_lms_gunicorn.py --name lms --bind=0.0.0.0:8000 --max-requests=1000 --access-logfile - lms.wsgi:application -FROM lms as lms-devstack -# TODO: This compiles static assets. -# However, it's a bit of a hack, it's slow, and it's inefficient because makes the final Docker cache layer very large. -# We ought to be able to this higher up in the Dockerfile, and do it the same for Prod and Devstack. -RUN mkdir -p test_root/log -ENV DJANGO_SETTINGS_MODULE "" -RUN NO_PREREQ_INSTALL=1 paver update_assets lms --settings devstack_decentralized -ENV DJANGO_SETTINGS_MODULE lms.envs.devstack_decentralized - FROM base as studio ENV SERVICE_VARIANT cms ENV DJANGO_SETTINGS_MODULE cms.envs.production @@ -117,12 +106,3 @@ CMD gunicorn -c /edx/app/edxapp/edx-platform/cms/docker_cms_gunicorn.py --name c FROM studio as studio-newrelic RUN pip install newrelic CMD newrelic-admin run-program gunicorn -c /edx/app/edxapp/edx-platform/cms/docker_cms_gunicorn.py --name cms --bind=0.0.0.0:8010 --max-requests=1000 --access-logfile - cms.wsgi:application - -FROM studio as studio-devstack -# TODO: This compiles static assets. -# However, it's a bit of a hack, it's slow, and it's inefficient because makes the final Docker cache layer very large. -# We ought to be able to this higher up in the Dockerfile, and do it the same for Prod and Devstack. -RUN mkdir -p test_root/log -ENV DJANGO_SETTINGS_MODULE "" -RUN NO_PREREQ_INSTALL=1 paver update_assets cms --settings devstack_decentralized -ENV DJANGO_SETTINGS_MODULE cms.envs.devstack_decentralized diff --git a/Makefile b/Makefile index f99ad8e9ad..1c81d4afe6 100644 --- a/Makefile +++ b/Makefile @@ -115,12 +115,10 @@ upgrade: pre-requirements ## update the pip requirements files to use the latest docker_build: docker build . -f Dockerfile --target lms -t openedx/edx-platform docker build . -f Dockerfile --target lms-newrelic -t openedx/edx-platform:latest-newrelic - docker build . -f Dockerfile --target lms-devstack -t openedx/edx-platform:latest-devstack docker_tag: docker_build docker tag openedx/edx-platform openedx/edx-platform:${GITHUB_SHA} docker tag openedx/edx-platform:latest-newrelic openedx/edx-platform:${GITHUB_SHA}-newrelic - docker tag openedx/edx-platform:latest-devstack openedx/edx-platform:${GITHUB_SHA}-devstack docker_auth: echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin @@ -130,5 +128,3 @@ docker_push: docker_tag docker_auth ## push to docker hub docker push "openedx/edx-platform:${GITHUB_SHA}" docker push 'openedx/edx-platform:latest-newrelic' docker push "openedx/edx-platform:${GITHUB_SHA}-newrelic" - docker push 'openedx/edx-platform:latest-devstack' - docker push "openedx/edx-platform:${GITHUB_SHA}-devstack" diff --git a/cms/devstack.yml b/cms/devstack.yml deleted file mode 100644 index 109e9c8a39..0000000000 --- a/cms/devstack.yml +++ /dev/null @@ -1,492 +0,0 @@ -ACTIVATION_EMAIL_SUPPORT_LINK: '' -AFFILIATE_COOKIE_NAME: dev_affiliate_id -ALTERNATE_WORKER_QUEUES: lms -ANALYTICS_DASHBOARD_NAME: Your Platform Name Here Insights -ANALYTICS_DASHBOARD_URL: http://localhost:18110/courses -AUTH_PASSWORD_VALIDATORS: -- NAME: django.contrib.auth.password_validation.UserAttributeSimilarityValidator -- NAME: common.djangoapps.util.password_policy_validators.MinimumLengthValidator - OPTIONS: - min_length: 2 -- NAME: common.djangoapps.util.password_policy_validators.MaximumLengthValidator - OPTIONS: - max_length: 75 -AWS_ACCESS_KEY_ID: null -AWS_QUERYSTRING_AUTH: false -AWS_S3_CUSTOM_DOMAIN: SET-ME-PLEASE (ex. bucket-name.s3.amazonaws.com) -AWS_SECRET_ACCESS_KEY: null -AWS_SES_REGION_ENDPOINT: email.us-east-1.amazonaws.com -AWS_SES_REGION_NAME: us-east-1 -AWS_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name) -BASE_COOKIE_DOMAIN: localhost -BLOCKSTORE_API_URL: http://localhost:18250/api/v1 -BLOCKSTORE_PUBLIC_URL_ROOT: http://localhost:18250 -BLOCK_STRUCTURES_SETTINGS: - COURSE_PUBLISH_TASK_DELAY: 30 - PRUNING_ACTIVE: false - TASK_DEFAULT_RETRY_DELAY: 30 - TASK_MAX_RETRIES: 5 -BRANCH_IO_KEY: '' -BUGS_EMAIL: bugs@example.com -BULK_EMAIL_DEFAULT_FROM_EMAIL: no-reply@example.com -BULK_EMAIL_EMAILS_PER_TASK: 500 -BULK_EMAIL_LOG_SENT_EMAILS: false -CACHES: - celery: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: celery - LOCATION: - - edx.devstack.memcached:11211 - TIMEOUT: '7200' - configuration: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: 1001c6274ca4 - LOCATION: - - edx.devstack.memcached:11211 - course_structure_cache: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: course_structure - LOCATION: - - edx.devstack.memcached:11211 - TIMEOUT: '7200' - default: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: default - LOCATION: - - edx.devstack.memcached:11211 - VERSION: '1' - general: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: general - LOCATION: - - edx.devstack.memcached:11211 - mongo_metadata_inheritance: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: mongo_metadata_inheritance - LOCATION: - - edx.devstack.memcached:11211 - TIMEOUT: 300 - staticfiles: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: 1001c6274ca4_general - LOCATION: - - edx.devstack.memcached:11211 -CELERY_BROKER_HOSTNAME: localhost -CELERY_BROKER_PASSWORD: celery -CELERY_BROKER_TRANSPORT: amqp -CELERY_BROKER_USER: celery -CELERY_BROKER_USE_SSL: false -CELERY_BROKER_VHOST: '' -CELERY_EVENT_QUEUE_TTL: null -CELERY_QUEUES: -- edx.cms.core.default -- edx.cms.core.high -CELERY_TIMEZONE: UTC -CERTIFICATE_TEMPLATE_LANGUAGES: - en: English - es: Español -CERT_QUEUE: certificates -CMS_BASE: edx.devstack.studio:8010 -CODE_JAIL: - limits: - CPU: 1 - FSIZE: 1048576 - PROXY: 0 - REALTIME: 3 - VMEM: 536870912 - python_bin: /edx/app/edxapp/venvs/edxapp-sandbox/bin/python - user: sandbox -COMMENTS_SERVICE_KEY: password -COMMENTS_SERVICE_URL: http://localhost:18080 -COMPREHENSIVE_THEME_DIRS: -- '' -COMPREHENSIVE_THEME_LOCALE_PATHS: [] -CONTACT_EMAIL: info@example.com -CONTENTSTORE: - ADDITIONAL_OPTIONS: {} - DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: PRIMARY - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp - ENGINE: xmodule.contentstore.mongo.MongoContentStore - OPTIONS: - auth_source: '' - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - ssl: false - user: edxapp -CORS_ORIGIN_ALLOW_ALL: false -CORS_ORIGIN_WHITELIST: [] -COURSES_WITH_UNSAFE_CODE: [] -COURSE_ABOUT_VISIBILITY_PERMISSION: see_exists -COURSE_AUTHORING_MICROFRONTEND_URL: null -COURSE_CATALOG_API_URL: http://localhost:8008/api/v1 -COURSE_CATALOG_URL_ROOT: http://localhost:8008 -COURSE_CATALOG_VISIBILITY_PERMISSION: see_exists -COURSE_IMPORT_EXPORT_BUCKET: '' -CREDENTIALS_INTERNAL_SERVICE_URL: http://localhost:8005 -CREDENTIALS_PUBLIC_SERVICE_URL: http://localhost:8005 -CREDIT_PROVIDER_SECRET_KEYS: {} -CROSS_DOMAIN_CSRF_COOKIE_DOMAIN: '' -CROSS_DOMAIN_CSRF_COOKIE_NAME: '' -CSRF_COOKIE_SECURE: false -CSRF_TRUSTED_ORIGINS: [] -DASHBOARD_COURSE_LIMIT: null -DATABASES: - default: - ATOMIC_REQUESTS: true - CONN_MAX_AGE: 0 - ENGINE: django.db.backends.mysql - HOST: edx.devstack.mysql57 - NAME: edxapp - OPTIONS: {} - PASSWORD: password - PORT: '3306' - USER: edxapp001 - read_replica: - CONN_MAX_AGE: 0 - ENGINE: django.db.backends.mysql - HOST: edx.devstack.mysql57 - NAME: edxapp - OPTIONS: {} - PASSWORD: password - PORT: '3306' - USER: edxapp001 - student_module_history: - CONN_MAX_AGE: 0 - ENGINE: django.db.backends.mysql - HOST: edx.devstack.mysql57 - NAME: edxapp_csmh - OPTIONS: {} - PASSWORD: password - PORT: '3306' - USER: edxapp001 -DATA_DIR: /edx/var/edxapp -DEFAULT_COURSE_VISIBILITY_IN_CATALOG: both -DEFAULT_FEEDBACK_EMAIL: feedback@example.com -DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage -DEFAULT_FROM_EMAIL: registration@example.com -DEFAULT_JWT_ISSUER: - AUDIENCE: lms-key - ISSUER: http://edx.devstack.lms:8000/oauth2 - SECRET_KEY: lms-secret -DEFAULT_MOBILE_AVAILABLE: false -DEFAULT_SITE_THEME: '' -DEPRECATED_ADVANCED_COMPONENT_TYPES: [] -DJFS: - directory_root: /edx/var/edxapp/django-pyfs/static/django-pyfs - type: osfs - url_root: /static/django-pyfs -DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: PRIMARY - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp -ECOMMERCE_API_SIGNING_KEY: lms-secret -ECOMMERCE_API_URL: http://localhost:8002/api/v2 -ECOMMERCE_PUBLIC_URL_ROOT: http://localhost:8002 -EDXMKTG_USER_INFO_COOKIE_NAME: edx-user-info -EDX_PLATFORM_REVISION: master -ELASTIC_SEARCH_CONFIG: -- host: edx.devstack.elasticsearch - port: 9200 - use_ssl: false -EMAIL_BACKEND: django.core.mail.backends.smtp.EmailBackend -EMAIL_HOST: localhost -EMAIL_HOST_PASSWORD: '' -EMAIL_HOST_USER: '' -EMAIL_PORT: 25 -EMAIL_USE_TLS: false -ENABLE_COMPREHENSIVE_THEMING: false -ENTERPRISE_API_URL: http://edx.devstack.lms:8000/enterprise/api/v1 -ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS: {} -ENTERPRISE_SERVICE_WORKER_USERNAME: enterprise_worker -EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST: [] -EXTRA_MIDDLEWARE_CLASSES: [] -FACEBOOK_API_VERSION: v2.1 -FACEBOOK_APP_ID: FACEBOOK_APP_ID -FACEBOOK_APP_SECRET: FACEBOOK_APP_SECRET -FEATURES: - AUTH_USE_OPENID_PROVIDER: true - AUTOMATIC_AUTH_FOR_TESTING: false - CUSTOM_COURSES_EDX: false - ENABLE_COMBINED_LOGIN_REGISTRATION: true - ENABLE_CORS_HEADERS: false - ENABLE_COUNTRY_ACCESS: false - ENABLE_CREDIT_API: false - ENABLE_CREDIT_ELIGIBILITY: false - ENABLE_CROSS_DOMAIN_CSRF_COOKIE: false - ENABLE_CSMH_EXTENDED: true - ENABLE_DISCUSSION_HOME_PANEL: true - ENABLE_DISCUSSION_SERVICE: true - ENABLE_EDXNOTES: true - ENABLE_ENROLLMENT_RESET: false - ENABLE_GRADE_DOWNLOADS: true - ENABLE_INSTRUCTOR_ANALYTICS: false - ENABLE_MKTG_SITE: false - ENABLE_MOBILE_REST_API: false - ENABLE_OAUTH2_PROVIDER: false - ENABLE_PUBLISHER: false - ENABLE_READING_FROM_MULTIPLE_HISTORY_TABLES: true - ENABLE_SPECIAL_EXAMS: false - ENABLE_THIRD_PARTY_AUTH: true - ENABLE_VIDEO_UPLOAD_PIPELINE: false - PREVIEW_LMS_BASE: preview.localhost:8000 - SHOW_FOOTER_LANGUAGE_SELECTOR: false - SHOW_HEADER_LANGUAGE_SELECTOR: false -FEEDBACK_SUBMISSION_EMAIL: '' -FERNET_KEYS: -- DUMMY KEY CHANGE BEFORE GOING TO PRODUCTION -FILE_UPLOAD_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name) -FILE_UPLOAD_STORAGE_PREFIX: submissions_attachments -FINANCIAL_REPORTS: - BUCKET: null - ROOT_PATH: sandbox - STORAGE_TYPE: localfs -FOOTER_ORGANIZATION_IMAGE: images/logo.png -GITHUB_REPO_ROOT: /edx/var/edxapp/data -GIT_REPO_EXPORT_DIR: /edx/var/edxapp/export_course_repos -GOOGLE_ANALYTICS_ACCOUNT: null -GRADES_DOWNLOAD: - BUCKET: '' - ROOT_PATH: '' - STORAGE_CLASS: django.core.files.storage.FileSystemStorage - STORAGE_KWARGS: - location: /tmp/edx-s3/grades - STORAGE_TYPE: '' -HELP_TOKENS_BOOKS: - course_author: http://edx.readthedocs.io/projects/open-edx-building-and-running-a-course - learner: http://edx.readthedocs.io/projects/open-edx-learner-guide -ICP_LICENSE: null -ICP_LICENSE_INFO: {} -IDA_LOGOUT_URI_LIST: [] -ID_VERIFICATION_SUPPORT_LINK: '' -JWT_AUTH: - JWT_AUDIENCE: lms-key - JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload - JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature - JWT_AUTH_REFRESH_COOKIE: edx-jwt-refresh-cookie - JWT_ISSUER: http://edx.devstack.lms:8000/oauth2 - JWT_ISSUERS: - - AUDIENCE: lms-key - ISSUER: http://edx.devstack.lms:8000/oauth2 - SECRET_KEY: lms-secret - JWT_PRIVATE_SIGNING_JWK: None - JWT_PUBLIC_SIGNING_JWK_SET: '' - JWT_SECRET_KEY: lms-secret - JWT_SIGNING_ALGORITHM: null -JWT_EXPIRATION: 30 -JWT_ISSUER: http://edx.devstack.lms:8000/oauth2 -JWT_PRIVATE_SIGNING_KEY: null -LANGUAGE_CODE: en -LANGUAGE_COOKIE: openedx-language-preference -LEARNER_PORTAL_URL_ROOT: https://learner-portal-edx.devstack.lms:8000 -LMS_BASE: edx.devstack.lms:8000 -LMS_INTERNAL_ROOT_URL: http://edx.devstack.lms:8000 -LMS_ROOT_URL: http://edx.devstack.lms:8000 -LOCAL_LOGLEVEL: INFO -LOGGING_ENV: sandbox -LOGIN_REDIRECT_WHITELIST: [] -LOG_DIR: /edx/var/log/edx -MAINTENANCE_BANNER_TEXT: Sample banner message -MEDIA_ROOT: /edx/var/edxapp/media/ -MEDIA_URL: /media/ -MICROSITE_CONFIGURATION: {} -MICROSITE_ROOT_DIR: /edx/app/edxapp/edx-microsite -MKTG_URLS: {} -MKTG_URL_LINK_MAP: {} -MOBILE_STORE_URLS: {} -MODULESTORE: - default: - ENGINE: xmodule.modulestore.mixed.MixedModuleStore - OPTIONS: - mappings: {} - stores: - - DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: PRIMARY - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp - ENGINE: xmodule.modulestore.split_mongo.split_draft.DraftVersioningModuleStore - NAME: split - OPTIONS: - default_class: xmodule.hidden_module.HiddenDescriptor - fs_root: /edx/var/edxapp/data - render_template: common.djangoapps.edxmako.shortcuts.render_to_string - - DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: PRIMARY - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp - ENGINE: xmodule.modulestore.mongo.DraftMongoModuleStore - NAME: draft - OPTIONS: - default_class: xmodule.hidden_module.HiddenDescriptor - fs_root: /edx/var/edxapp/data - render_template: common.djangoapps.edxmako.shortcuts.render_to_string -ORA2_FILE_PREFIX: default_env-default_deployment/ora2 -PARSE_KEYS: {} -PARTNER_SUPPORT_EMAIL: '' -PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG: - ENFORCE_COMPLIANCE_ON_LOGIN: false -PASSWORD_RESET_SUPPORT_LINK: '' -PAYMENT_SUPPORT_EMAIL: billing@example.com -PLATFORM_DESCRIPTION: Your Platform Description Here -PLATFORM_FACEBOOK_ACCOUNT: http://www.facebook.com/YourPlatformFacebookAccount -PLATFORM_NAME: Your Platform Name Here -PLATFORM_TWITTER_ACCOUNT: '@YourPlatformTwitterAccount' -POLICY_CHANGE_GRADES_ROUTING_KEY: edx.lms.core.default -PRESS_EMAIL: press@example.com -PROCTORING_BACKENDS: - DEFAULT: 'null' - 'null': {} -PROCTORING_SETTINGS: {} -REGISTRATION_EXTRA_FIELDS: - city: hidden - confirm_email: hidden - country: required - gender: optional - goals: optional - honor_code: required - level_of_education: optional - mailing_address: hidden - terms_of_service: hidden - year_of_birth: optional -RETIRED_EMAIL_DOMAIN: retired.invalid -RETIRED_EMAIL_PREFIX: retired__user_ -RETIRED_USERNAME_PREFIX: retired__user_ -RETIRED_USER_SALTS: -- OVERRIDE ME WITH A RANDOM VALUE -- ROTATE SALTS BY APPENDING NEW VALUES -RETIREMENT_SERVICE_WORKER_USERNAME: retirement_worker -RETIREMENT_STATES: -- PENDING -- ERRORED -- ABORTED -- COMPLETE -SECRET_KEY: DUMMY KEY ONLY FOR TO DEVSTACK -SEGMENT_KEY: null -SERVER_EMAIL: devops@example.com -SESSION_COOKIE_DOMAIN: '' -SESSION_COOKIE_NAME: sessionid -SESSION_COOKIE_SECURE: false -SESSION_SAVE_EVERY_REQUEST: false -SITE_NAME: localhost -SOCIAL_AUTH_SAML_SP_PRIVATE_KEY: '' -SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT: {} -SOCIAL_AUTH_SAML_SP_PUBLIC_CERT: '' -SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT: {} -SOCIAL_MEDIA_FOOTER_URLS: {} -SOCIAL_SHARING_SETTINGS: - CERTIFICATE_FACEBOOK: false - CERTIFICATE_TWITTER: false - CUSTOM_COURSE_URLS: false - DASHBOARD_FACEBOOK: false - DASHBOARD_TWITTER: false -STATIC_ROOT_BASE: /edx/var/edxapp/staticfiles -STATIC_URL_BASE: /static/ -STUDIO_NAME: Studio -STUDIO_SHORT_NAME: Studio -SUPPORT_SITE_LINK: '' -SWIFT_AUTH_URL: null -SWIFT_AUTH_VERSION: null -SWIFT_KEY: null -SWIFT_REGION_NAME: null -SWIFT_TEMP_URL_DURATION: 1800 -SWIFT_TEMP_URL_KEY: null -SWIFT_TENANT_ID: null -SWIFT_TENANT_NAME: null -SWIFT_USERNAME: null -SWIFT_USE_TEMP_URLS: false -SYSLOG_SERVER: '' -SYSTEM_WIDE_ROLE_CLASSES: [] -TECH_SUPPORT_EMAIL: technical@example.com -TIME_ZONE: America/New_York -UNIVERSITY_EMAIL: university@example.com -USERNAME_REPLACEMENT_WORKER: OVERRIDE THIS WITH A VALID USERNAME -VIDEO_IMAGE_MAX_AGE: 31536000 -VIDEO_IMAGE_SETTINGS: - DIRECTORY_PREFIX: video-images/ - STORAGE_KWARGS: - base_url: /media/ - location: edx/var/edxapp/media/ - VIDEO_IMAGE_MAX_BYTES: 2097152 - VIDEO_IMAGE_MIN_BYTES: 2048 -VIDEO_TRANSCRIPTS_MAX_AGE: 31536000 -VIDEO_TRANSCRIPTS_SETTINGS: - DIRECTORY_PREFIX: video-transcripts/ - STORAGE_KWARGS: - base_url: /media/ - location: edx/var/edxapp/media/ - VIDEO_TRANSCRIPTS_MAX_BYTES: 3145728 -VIDEO_UPLOAD_PIPELINE: - BUCKET: '' - ROOT_PATH: '' -WIKI_ENABLED: true -XBLOCK_FS_STORAGE_BUCKET: null -XBLOCK_FS_STORAGE_PREFIX: null -XBLOCK_SETTINGS: {} -XQUEUE_INTERFACE: - basic_auth: - - edx - - edx - django_auth: - password: password - username: lms - url: http://edx.devstack.xqueue:18040 -X_FRAME_OPTIONS: DENY -YOUTUBE_API_KEY: PUT_YOUR_API_KEY_HERE -ZENDESK_API_KEY: '' -ZENDESK_CUSTOM_FIELDS: {} -ZENDESK_GROUP_ID_MAPPING: {} -ZENDESK_OAUTH_ACCESS_TOKEN: '' -ZENDESK_URL: '' -ZENDESK_USER: '' - diff --git a/cms/envs/devstack_decentralized.py b/cms/envs/devstack_decentralized.py deleted file mode 100644 index f7d61d41a1..0000000000 --- a/cms/envs/devstack_decentralized.py +++ /dev/null @@ -1,185 +0,0 @@ -""" -Settings file for decentralized devstack -""" - -import logging -from os.path import abspath, dirname, join - -from .production import * # pylint: disable=wildcard-import, unused-wildcard-import - -# Don't use S3 in devstack, fall back to filesystem -del DEFAULT_FILE_STORAGE -COURSE_IMPORT_EXPORT_STORAGE = 'django.core.files.storage.FileSystemStorage' -USER_TASKS_ARTIFACT_STORAGE = COURSE_IMPORT_EXPORT_STORAGE - -DEBUG = True -USE_I18N = True -DEFAULT_TEMPLATE_ENGINE['OPTIONS']['debug'] = DEBUG -SITE_NAME = 'localhost:8001' -HTTPS = 'off' - -CMS_BASE = 'localhost:8010' - -################################ LOGGERS ###################################### - - -# Disable noisy loggers -for pkg_name in ['common.djangoapps.track.contexts', 'common.djangoapps.track.middleware']: - logging.getLogger(pkg_name).setLevel(logging.CRITICAL) - -# Docker does not support the syslog socket at /dev/log. Rely on the console. -LOGGING['handlers']['local'] = LOGGING['handlers']['tracking'] = { - 'class': 'logging.NullHandler', -} - -LOGGING['loggers']['tracking']['handlers'] = ['console'] - -################################ EMAIL ######################################## - -EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend' -EMAIL_FILE_PATH = '/edx/src/ace_messages/' - -################################# LMS INTEGRATION ############################# - -LMS_BASE = 'localhost:8000' -LMS_ROOT_URL = f'http://{LMS_BASE}' -FEATURES['PREVIEW_LMS_BASE'] = "preview." + LMS_BASE - -########################### PIPELINE ################################# - -# Skip packaging and optimization in development -PIPELINE['PIPELINE_ENABLED'] = False -STATICFILES_STORAGE = 'openedx.core.storage.DevelopmentStorage' - -# Revert to the default set of finders as we don't want the production pipeline -STATICFILES_FINDERS = [ - 'openedx.core.djangoapps.theming.finders.ThemeFilesFinder', - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -] - -# Load development webpack donfiguration -WEBPACK_CONFIG_PATH = 'webpack.dev.config.js' - -############################ PYFS XBLOCKS SERVICE ############################# -# Set configuration for Django pyfilesystem - -DJFS = { - 'type': 'osfs', - 'directory_root': 'cms/static/djpyfs', - 'url_root': '/static/djpyfs', -} - -################################# CELERY ###################################### - -# By default don't use a worker, execute tasks as if they were local functions -CELERY_ALWAYS_EAGER = True - - -def should_show_debug_toolbar(request): - return False - - -################################ MILESTONES ################################ -FEATURES['MILESTONES_APP'] = True - - -################################ ENTRANCE EXAMS ################################ -FEATURES['ENTRANCE_EXAMS'] = True - -################################ COURSE LICENSES ################################ -FEATURES['LICENSING'] = True -# Needed to enable licensing on video modules -XBLOCK_SETTINGS.update({'VideoBlock': {'licensing_enabled': True}}) - -################################ SEARCH INDEX ################################ -FEATURES['ENABLE_COURSEWARE_INDEX'] = False -FEATURES['ENABLE_LIBRARY_INDEX'] = False -SEARCH_ENGINE = "search.elastic.ElasticSearchEngine" - -################################ COURSE DISCUSSIONS ########################### -FEATURES['ENABLE_DISCUSSION_SERVICE'] = True - -################################ CREDENTIALS ########################### -CREDENTIALS_SERVICE_USERNAME = 'credentials_worker' - -########################## Certificates Web/HTML View ####################### -FEATURES['CERTIFICATES_HTML_VIEW'] = True - -########################## AUTHOR PERMISSION ####################### -FEATURES['ENABLE_CREATOR_GROUP'] = False - -################### FRONTEND APPLICATION PUBLISHER URL ################### -FEATURES['FRONTEND_APP_PUBLISHER_URL'] = 'http://localhost:18400' - -################################# DJANGO-REQUIRE ############################### - -# Whether to run django-require in debug mode. -REQUIRE_DEBUG = DEBUG - -########################### OAUTH2 ################################# -JWT_AUTH.update({ - 'JWT_ISSUER': f'{LMS_ROOT_URL}/oauth2', - 'JWT_ISSUERS': [{ - 'AUDIENCE': 'lms-key', - 'ISSUER': f'{LMS_ROOT_URL}/oauth2', - 'SECRET_KEY': 'lms-secret', - }], - 'JWT_SECRET_KEY': 'lms-secret', - 'JWT_AUDIENCE': 'lms-key', - 'JWT_PUBLIC_SIGNING_JWK_SET': ( - '{"keys": [{"kid": "devstack_key", "e": "AQAB", "kty": "RSA", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu' - '48BUI5VcVtUWIPqzRK_LDSlZYh9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC' - '4Ee9qG5T38LFe8_oAuFCEntimWxN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzG' - 'y5ZLcTUomo4rZLjghVpq6KZxfS6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw"}]}' - ), - - # TODO Remove this once CMS redirects to LMS for Login - 'JWT_PRIVATE_SIGNING_JWK': ( - '{"e": "AQAB", "d": "RQ6k4NpRU3RB2lhwCbQ452W86bMMQiPsa7EJiFJUg-qBJthN0FMNQVbArtrCQ0xA1BdnQHThFiUnHcXfsTZUwmwvTu' - 'iqEGR_MI6aI7h5D8vRj_5x-pxOz-0MCB8TY8dcuK9FkljmgtYvV9flVzCk_uUb3ZJIBVyIW8En7n7nV7JXpS9zey1yVLld2AbRG6W5--Pgqr9J' - 'CI5-bLdc2otCLuen2sKyuUDHO5NIj30qGTaKUL-OW_PgVmxrwKwccF3w5uGNEvMQ-IcicosCOvzBwdIm1uhdm9rnHU1-fXz8VLRHNhGVv7z6mo' - 'ghjNI0_u4smhUkEsYeshPv7RQEWTdkOQ", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu48BUI5VcVtUWIPqzRK_LDSlZYh' - '9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC4Ee9qG5T38LFe8_oAuFCEntimW' - 'xN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzGy5ZLcTUomo4rZLjghVpq6KZxfS' - '6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw", "q": "7KWj7l-ZkfCElyfvwsl7kiosvi-ppOO7Imsv90cribf88Dex' - 'cO67xdMPesjM9Nh5X209IT-TzbsOtVTXSQyEsy42NY72WETnd1_nAGLAmfxGdo8VV4ZDnRsA8N8POnWjRDwYlVBUEEeuT_MtMWzwIKU94bzkWV' - 'nHCY5vbhBYLeM", "p": "wPkfnjavNV1Hqb5Qqj2crBS9HQS6GDQIZ7WF9hlBb2ofDNe2K2dunddFqCOdvLXr7ydRcK51ZwSeHjcjgD1aJkHA' - '9i1zqyboxgd0uAbxVDo6ohnlVqYLtap2tXXcavKm4C9MTpob_rk6FBfEuq4uSsuxFvCER4yG3CYBBa4gZVU", "kid": "devstack_key", "' - 'kty": "RSA"}' - ), -}) - -# pylint: enable=unicode-format-string # lint-amnesty, pylint: disable=bad-option-value - -IDA_LOGOUT_URI_LIST = [ - 'http://localhost:18130/logout/', # ecommerce - 'http://localhost:18150/logout/', # credentials -] - -############################### BLOCKSTORE ##################################### -BLOCKSTORE_API_URL = "http://edx.devstack.blockstore:18250/api/v1/" - -##################################################################### - -# pylint: disable=wrong-import-order, wrong-import-position -from openedx.core.djangoapps.plugins.constants import ProjectType, SettingsType -# pylint: disable=wrong-import-order, wrong-import-position -from edx_django_utils.plugins import add_plugins - -add_plugins(__name__, ProjectType.CMS, SettingsType.DEVSTACK) - - -OPENAPI_CACHE_TIMEOUT = 0 - -##################################################################### -# Lastly, run any migrations, if needed. -MODULESTORE = convert_module_store_setting_if_needed(MODULESTORE) - -# Dummy secret key for dev -SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd' - -############################################################################### -# See if the developer has any local overrides. -if os.path.isfile(join(dirname(abspath(__file__)), 'private.py')): - from .private import * # pylint: disable=import-error,wildcard-import diff --git a/lms/devstack.yml b/lms/devstack.yml deleted file mode 100644 index 0e71b134cf..0000000000 --- a/lms/devstack.yml +++ /dev/null @@ -1,584 +0,0 @@ -ACCOUNT_MICROFRONTEND_URL: null -ACE_CHANNEL_DEFAULT_EMAIL: django_email -ACE_CHANNEL_SAILTHRU_API_KEY: '' -ACE_CHANNEL_SAILTHRU_API_SECRET: '' -ACE_CHANNEL_SAILTHRU_DEBUG: true -ACE_CHANNEL_SAILTHRU_TEMPLATE_NAME: null -ACE_CHANNEL_TRANSACTIONAL_EMAIL: django_email -ACE_ENABLED_CHANNELS: -- django_email -ACE_ENABLED_POLICIES: -- bulk_email_optout -ACE_ROUTING_KEY: edx.lms.core.default -ACTIVATION_EMAIL_SUPPORT_LINK: '' -AFFILIATE_COOKIE_NAME: dev_affiliate_id -ALTERNATE_WORKER_QUEUES: cms -ANALYTICS_API_KEY: '' -ANALYTICS_API_URL: http://localhost:18100 -ANALYTICS_DASHBOARD_NAME: Your Platform Name Here Insights -ANALYTICS_DASHBOARD_URL: http://localhost:18110/courses -API_ACCESS_FROM_EMAIL: api-requests@example.com -API_ACCESS_MANAGER_EMAIL: api-access@example.com -API_DOCUMENTATION_URL: http://course-catalog-api-guide.readthedocs.io/en/latest/ -AUDIT_CERT_CUTOFF_DATE: null -AUTH_DOCUMENTATION_URL: http://course-catalog-api-guide.readthedocs.io/en/latest/authentication/index.html -AUTH_PASSWORD_VALIDATORS: -- NAME: django.contrib.auth.password_validation.UserAttributeSimilarityValidator -- NAME: common.djangoapps.util.password_policy_validators.MinimumLengthValidator - OPTIONS: - min_length: 2 -- NAME: common.djangoapps.util.password_policy_validators.MaximumLengthValidator - OPTIONS: - max_length: 75 -AWS_ACCESS_KEY_ID: null -AWS_QUERYSTRING_AUTH: false -AWS_S3_CUSTOM_DOMAIN: SET-ME-PLEASE (ex. bucket-name.s3.amazonaws.com) -AWS_SECRET_ACCESS_KEY: null -AWS_SES_REGION_ENDPOINT: email.us-east-1.amazonaws.com -AWS_SES_REGION_NAME: us-east-1 -AWS_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name) -BASE_COOKIE_DOMAIN: localhost -BLOCKSTORE_API_URL: http://localhost:18250/api/v1 -BLOCKSTORE_PUBLIC_URL_ROOT: http://localhost:18250 -BLOCK_STRUCTURES_SETTINGS: - COURSE_PUBLISH_TASK_DELAY: 30 - PRUNING_ACTIVE: false - TASK_DEFAULT_RETRY_DELAY: 30 - TASK_MAX_RETRIES: 5 -BRANCH_IO_KEY: '' -BUGS_EMAIL: bugs@example.com -BULK_EMAIL_DEFAULT_FROM_EMAIL: no-reply@example.com -BULK_EMAIL_EMAILS_PER_TASK: 500 -BULK_EMAIL_LOG_SENT_EMAILS: false -BULK_EMAIL_ROUTING_KEY_SMALL_JOBS: edx.lms.core.default -CACHES: - celery: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: celery - LOCATION: - - edx.devstack.memcached:11211 - TIMEOUT: '7200' - configuration: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: 1001c6274ca4 - LOCATION: - - edx.devstack.memcached:11211 - course_structure_cache: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: course_structure - LOCATION: - - edx.devstack.memcached:11211 - TIMEOUT: '7200' - default: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: default - LOCATION: - - edx.devstack.memcached:11211 - VERSION: '1' - general: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: general - LOCATION: - - edx.devstack.memcached:11211 - mongo_metadata_inheritance: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: mongo_metadata_inheritance - LOCATION: - - edx.devstack.memcached:11211 - TIMEOUT: 300 - staticfiles: - BACKEND: django.core.cache.backends.memcached.MemcachedCache - KEY_FUNCTION: common.djangoapps.util.memcache.safe_key - KEY_PREFIX: 1001c6274ca4_general - LOCATION: - - edx.devstack.memcached:11211 -CELERY_BROKER_HOSTNAME: localhost -CELERY_BROKER_PASSWORD: celery -CELERY_BROKER_TRANSPORT: amqp -CELERY_BROKER_USER: celery -CELERY_BROKER_USE_SSL: false -CELERY_BROKER_VHOST: '' -CELERY_EVENT_QUEUE_TTL: null -CELERY_QUEUES: -- edx.lms.core.default -- edx.lms.core.high -- edx.lms.core.high_mem -CELERY_TIMEZONE: UTC -CERTIFICATE_TEMPLATE_LANGUAGES: - en: English - es: Español -CERT_QUEUE: certificates -CMS_BASE: edx.devstack.studio:18010 -CODE_JAIL: - limits: - CPU: 1 - FSIZE: 1048576 - PROXY: 0 - REALTIME: 3 - VMEM: 536870912 - python_bin: /edx/app/edxapp/venvs/edxapp-sandbox/bin/python - user: sandbox -COMMENTS_SERVICE_KEY: password -COMMENTS_SERVICE_URL: http://localhost:18080 -COMPREHENSIVE_THEME_DIRS: -- '' -COMPREHENSIVE_THEME_LOCALE_PATHS: [] -CONTACT_EMAIL: info@example.com -CONTACT_MAILING_ADDRESS: SET-ME-PLEASE -CONTENTSTORE: - ADDITIONAL_OPTIONS: {} - DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: SECONDARY_PREFERRED - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp - ENGINE: xmodule.contentstore.mongo.MongoContentStore - OPTIONS: - auth_source: '' - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - ssl: false - user: edxapp -CORS_ORIGIN_ALLOW_ALL: false -CORS_ORIGIN_WHITELIST: [] -COURSES_WITH_UNSAFE_CODE: [] -COURSE_ABOUT_VISIBILITY_PERMISSION: see_exists -COURSE_CATALOG_API_URL: http://localhost:8008/api/v1 -COURSE_CATALOG_URL_ROOT: http://localhost:8008 -COURSE_CATALOG_VISIBILITY_PERMISSION: see_exists -CREDENTIALS_INTERNAL_SERVICE_URL: http://localhost:8005 -CREDENTIALS_PUBLIC_SERVICE_URL: http://localhost:8005 -CREDIT_HELP_LINK_URL: '' -CREDIT_PROVIDER_SECRET_KEYS: {} -CROSS_DOMAIN_CSRF_COOKIE_DOMAIN: '' -CROSS_DOMAIN_CSRF_COOKIE_NAME: '' -CSRF_COOKIE_SECURE: false -CSRF_TRUSTED_ORIGINS: [] -DASHBOARD_COURSE_LIMIT: null -DATABASES: - default: - ATOMIC_REQUESTS: true - CONN_MAX_AGE: 0 - ENGINE: django.db.backends.mysql - HOST: edx.devstack.mysql57 - NAME: edxapp - OPTIONS: {} - PASSWORD: password - PORT: '3306' - USER: edxapp001 - read_replica: - CONN_MAX_AGE: 0 - ENGINE: django.db.backends.mysql - HOST: edx.devstack.mysql57 - NAME: edxapp - OPTIONS: {} - PASSWORD: password - PORT: '3306' - USER: edxapp001 - student_module_history: - CONN_MAX_AGE: 0 - ENGINE: django.db.backends.mysql - HOST: edx.devstack.mysql57 - NAME: edxapp_csmh - OPTIONS: {} - PASSWORD: password - PORT: '3306' - USER: edxapp001 -DATA_DIR: /edx/var/edxapp -DEFAULT_COURSE_VISIBILITY_IN_CATALOG: both -DEFAULT_FEEDBACK_EMAIL: feedback@example.com -DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage -DEFAULT_FROM_EMAIL: registration@example.com -DEFAULT_JWT_ISSUER: - AUDIENCE: lms-key - ISSUER: http://edx.devstack.lms:18000/oauth2 - SECRET_KEY: lms-secret -DEFAULT_MOBILE_AVAILABLE: false -DEFAULT_SITE_THEME: '' -DEPRECATED_ADVANCED_COMPONENT_TYPES: [] -DJFS: - directory_root: /edx/var/edxapp/django-pyfs/static/django-pyfs - type: osfs - url_root: /static/django-pyfs -DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: SECONDARY_PREFERRED - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp -ECOMMERCE_API_SIGNING_KEY: lms-secret -ECOMMERCE_API_URL: http://localhost:8002/api/v2 -ECOMMERCE_PUBLIC_URL_ROOT: http://localhost:8002 -EDXMKTG_USER_INFO_COOKIE_NAME: edx-user-info -EDXNOTES_INTERNAL_API: http://edx.devstack.edx_notes_api:18120/api/v1 -EDXNOTES_PUBLIC_API: http://localhost:18120/api/v1 -EDX_API_KEY: PUT_YOUR_API_KEY_HERE -EDX_PLATFORM_REVISION: master -ELASTIC_SEARCH_CONFIG: -- host: edx.devstack.elasticsearch - port: 9200 - use_ssl: false -EMAIL_BACKEND: django.core.mail.backends.smtp.EmailBackend -EMAIL_HOST: localhost -EMAIL_HOST_PASSWORD: '' -EMAIL_HOST_USER: '' -EMAIL_PORT: 25 -EMAIL_USE_TLS: false -ENABLE_COMPREHENSIVE_THEMING: false -ENTERPRISE_API_URL: http://edx.devstack.lms:18000/enterprise/api/v1 -ENTERPRISE_COURSE_ENROLLMENT_AUDIT_MODES: -- audit -- honor -ENTERPRISE_CUSTOMER_SUCCESS_EMAIL: customersuccess@edx.org -ENTERPRISE_ENROLLMENT_API_URL: http://edx.devstack.lms:18000/api/enrollment/v1/ -ENTERPRISE_INTEGRATIONS_EMAIL: enterprise-integrations@edx.org -ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS: {} -ENTERPRISE_SERVICE_WORKER_USERNAME: enterprise_worker -ENTERPRISE_SUPPORT_URL: '' -ENTERPRISE_TAGLINE: '' -EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST: [] -EXTRA_MIDDLEWARE_CLASSES: [] -FACEBOOK_API_VERSION: v2.1 -FACEBOOK_APP_ID: FACEBOOK_APP_ID -FACEBOOK_APP_SECRET: FACEBOOK_APP_SECRET -FEATURES: - AUTH_USE_OPENID_PROVIDER: true - AUTOMATIC_AUTH_FOR_TESTING: false - CUSTOM_COURSES_EDX: false - ENABLE_COMBINED_LOGIN_REGISTRATION: true - ENABLE_CORS_HEADERS: false - ENABLE_COUNTRY_ACCESS: false - ENABLE_CREDIT_API: false - ENABLE_CREDIT_ELIGIBILITY: false - ENABLE_CROSS_DOMAIN_CSRF_COOKIE: false - ENABLE_CSMH_EXTENDED: true - ENABLE_DISCUSSION_HOME_PANEL: true - ENABLE_DISCUSSION_SERVICE: true - ENABLE_EDXNOTES: true - ENABLE_ENROLLMENT_RESET: false - ENABLE_GRADE_DOWNLOADS: true - ENABLE_INSTRUCTOR_ANALYTICS: false - ENABLE_MKTG_SITE: false - ENABLE_MOBILE_REST_API: false - ENABLE_OAUTH2_PROVIDER: false - ENABLE_PUBLISHER: false - ENABLE_READING_FROM_MULTIPLE_HISTORY_TABLES: true - ENABLE_SPECIAL_EXAMS: false - ENABLE_THIRD_PARTY_AUTH: true - ENABLE_VIDEO_UPLOAD_PIPELINE: false - PREVIEW_LMS_BASE: preview.localhost:18000 - SHOW_FOOTER_LANGUAGE_SELECTOR: false - SHOW_HEADER_LANGUAGE_SELECTOR: false -FEEDBACK_SUBMISSION_EMAIL: '' -FERNET_KEYS: -- DUMMY KEY CHANGE BEFORE GOING TO PRODUCTION -FILE_UPLOAD_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name) -FILE_UPLOAD_STORAGE_PREFIX: submissions_attachments -FINANCIAL_REPORTS: - BUCKET: null - ROOT_PATH: sandbox - STORAGE_TYPE: localfs -FOOTER_ORGANIZATION_IMAGE: images/logo.png -GITHUB_REPO_ROOT: /edx/var/edxapp/data -GOOGLE_ANALYTICS_ACCOUNT: null -GOOGLE_ANALYTICS_LINKEDIN: '' -GOOGLE_ANALYTICS_TRACKING_ID: '' -GOOGLE_SITE_VERIFICATION_ID: '' -GRADES_DOWNLOAD: - BUCKET: '' - ROOT_PATH: '' - STORAGE_CLASS: django.core.files.storage.FileSystemStorage - STORAGE_KWARGS: - location: /tmp/edx-s3/grades - STORAGE_TYPE: '' -HELP_TOKENS_BOOKS: - course_author: http://edx.readthedocs.io/projects/open-edx-building-and-running-a-course - learner: http://edx.readthedocs.io/projects/open-edx-learner-guide -HTTPS: 'on' -ICP_LICENSE: null -ICP_LICENSE_INFO: {} -IDA_LOGOUT_URI_LIST: [] -ID_VERIFICATION_SUPPORT_LINK: '' -JWT_AUTH: - JWT_AUDIENCE: lms-key - JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload - JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature - JWT_AUTH_REFRESH_COOKIE: edx-jwt-refresh-cookie - JWT_ISSUER: http://edx.devstack.lms:18000/oauth2 - JWT_ISSUERS: - - AUDIENCE: lms-key - ISSUER: http://edx.devstack.lms:18000/oauth2 - SECRET_KEY: lms-secret - JWT_PRIVATE_SIGNING_JWK: None - JWT_PUBLIC_SIGNING_JWK_SET: '' - JWT_SECRET_KEY: lms-secret - JWT_SIGNING_ALGORITHM: null -JWT_EXPIRATION: 30 -JWT_ISSUER: http://edx.devstack.lms:18000/oauth2 -JWT_PRIVATE_SIGNING_KEY: null -LANGUAGE_CODE: en -LANGUAGE_COOKIE: openedx-language-preference -LEARNER_PORTAL_URL_ROOT: https://learner-portal-edx.devstack.lms:18000 -LEARNING_MICROFRONTEND_URL: null -LMS_BASE: edx.devstack.lms:18000 -LMS_INTERNAL_ROOT_URL: http://edx.devstack.lms:18000 -LMS_ROOT_URL: http://edx.devstack.lms:18000 -LOCAL_LOGLEVEL: INFO -LOGGING_ENV: sandbox -LOGIN_REDIRECT_WHITELIST: [] -LOG_DIR: /edx/var/log/edx -LTI_AGGREGATE_SCORE_PASSBACK_DELAY: 900 -LTI_USER_EMAIL_DOMAIN: lti.example.com -MAILCHIMP_NEW_USER_LIST_ID: null -MAINTENANCE_BANNER_TEXT: Sample banner message -MEDIA_ROOT: /edx/var/edxapp/media/ -MEDIA_URL: /media/ -MICROSITE_CONFIGURATION: {} -MICROSITE_ROOT_DIR: /edx/app/edxapp/edx-microsite -MKTG_URLS: {} -MKTG_URL_LINK_MAP: {} -MOBILE_STORE_URLS: {} -MODULESTORE: - default: - ENGINE: xmodule.modulestore.mixed.MixedModuleStore - OPTIONS: - mappings: {} - stores: - - DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: SECONDARY_PREFERRED - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp - ENGINE: xmodule.modulestore.split_mongo.split_draft.DraftVersioningModuleStore - NAME: split - OPTIONS: - default_class: xmodule.hidden_module.HiddenDescriptor - fs_root: /edx/var/edxapp/data - render_template: common.djangoapps.edxmako.shortcuts.render_to_string - - DOC_STORE_CONFIG: - authsource: '' - collection: modulestore - connectTimeoutMS: 2000 - db: edxapp - host: - - edx.devstack.mongo - password: password - port: 27017 - read_preference: PRIMARY - replicaSet: '' - socketTimeoutMS: 3000 - ssl: false - user: edxapp - ENGINE: xmodule.modulestore.mongo.DraftMongoModuleStore - NAME: draft - OPTIONS: - default_class: xmodule.hidden_module.HiddenDescriptor - fs_root: /edx/var/edxapp/data - render_template: common.djangoapps.edxmako.shortcuts.render_to_string -OAUTH_DELETE_EXPIRED: true -OAUTH_ENFORCE_SECURE: false -OAUTH_EXPIRE_CONFIDENTIAL_CLIENT_DAYS: 365 -OAUTH_EXPIRE_PUBLIC_CLIENT_DAYS: 30 -OPTIMIZELY_PROJECT_ID: null -ORA2_FILE_PREFIX: default_env-default_deployment/ora2 -ORDER_HISTORY_MICROFRONTEND_URL: null -PAID_COURSE_REGISTRATION_CURRENCY: -- usd -- $ -PARENTAL_CONSENT_AGE_LIMIT: 13 -PARTNER_SUPPORT_EMAIL: '' -PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG: - ENFORCE_COMPLIANCE_ON_LOGIN: false -PASSWORD_RESET_SUPPORT_LINK: '' -PAYMENT_SUPPORT_EMAIL: billing@example.com -PDF_RECEIPT_BILLING_ADDRESS: 'Enter your receipt billing - - address here. - - ' -PDF_RECEIPT_COBRAND_LOGO_PATH: '' -PDF_RECEIPT_DISCLAIMER_TEXT: 'ENTER YOUR RECEIPT DISCLAIMER TEXT HERE. - - ' -PDF_RECEIPT_FOOTER_TEXT: 'Enter your receipt footer text here. - - ' -PDF_RECEIPT_LOGO_PATH: '' -PDF_RECEIPT_TAX_ID: 00-0000000 -PDF_RECEIPT_TAX_ID_LABEL: fake Tax ID -PDF_RECEIPT_TERMS_AND_CONDITIONS: 'Enter your receipt terms and conditions here. - - ' -PLATFORM_DESCRIPTION: Your Platform Description Here -PLATFORM_FACEBOOK_ACCOUNT: http://www.facebook.com/YourPlatformFacebookAccount -PLATFORM_NAME: Your Platform Name Here -PLATFORM_TWITTER_ACCOUNT: '@YourPlatformTwitterAccount' -POLICY_CHANGE_GRADES_ROUTING_KEY: edx.lms.core.default -PRESS_EMAIL: press@example.com -PROCTORING_BACKENDS: - DEFAULT: 'null' - 'null': {} -PROCTORING_SETTINGS: {} -PROFILE_IMAGE_BACKEND: - class: openedx.core.storage.OverwriteStorage - options: - base_url: /media/profile-images/ - location: /edx/var/edxapp/media/profile-images/ -PROFILE_IMAGE_MAX_BYTES: 1048576 -PROFILE_IMAGE_MIN_BYTES: 100 -PROFILE_IMAGE_SECRET_KEY: placeholder_secret_key -PROFILE_IMAGE_SIZES_MAP: - full: 500 - large: 120 - medium: 50 - small: 30 -PROFILE_MICROFRONTEND_URL: null -PROGRAM_CERTIFICATES_ROUTING_KEY: edx.lms.core.default -PROGRAM_MANAGER_MICROFRONTEND_URL: null -RECALCULATE_GRADES_ROUTING_KEY: edx.lms.core.default -REGISTRATION_EXTRA_FIELDS: - city: hidden - confirm_email: hidden - country: required - gender: optional - goals: optional - honor_code: required - level_of_education: optional - mailing_address: hidden - terms_of_service: hidden - year_of_birth: optional -RETIRED_EMAIL_DOMAIN: retired.invalid -RETIRED_EMAIL_PREFIX: retired__user_ -RETIRED_USERNAME_PREFIX: retired__user_ -RETIRED_USER_SALTS: -- OVERRIDE ME WITH A RANDOM VALUE -- ROTATE SALTS BY APPENDING NEW VALUES -RETIREMENT_SERVICE_WORKER_USERNAME: retirement_worker -RETIREMENT_STATES: -- PENDING -- ERRORED -- ABORTED -- COMPLETE -SECRET_KEY: DUMMY KEY ONLY FOR TO DEVSTACK -SEGMENT_KEY: null -SERVER_EMAIL: devops@example.com -SESSION_COOKIE_DOMAIN: '' -SESSION_COOKIE_NAME: sessionid -SESSION_COOKIE_SECURE: false -SESSION_SAVE_EVERY_REQUEST: false -SITE_NAME: localhost -SOCIAL_AUTH_OAUTH_SECRETS: '' -SOCIAL_AUTH_SAML_SP_PRIVATE_KEY: '' -SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT: {} -SOCIAL_AUTH_SAML_SP_PUBLIC_CERT: '' -SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT: {} -SOCIAL_MEDIA_FOOTER_URLS: {} -SOCIAL_SHARING_SETTINGS: - CERTIFICATE_FACEBOOK: false - CERTIFICATE_TWITTER: false - CUSTOM_COURSE_URLS: false - DASHBOARD_FACEBOOK: false - DASHBOARD_TWITTER: false -STATIC_ROOT_BASE: /edx/var/edxapp/staticfiles -STATIC_URL_BASE: /static/ -STUDIO_NAME: Studio -STUDIO_SHORT_NAME: Studio -SUPPORT_SITE_LINK: '' -SWIFT_AUTH_URL: null -SWIFT_AUTH_VERSION: null -SWIFT_KEY: null -SWIFT_REGION_NAME: null -SWIFT_TEMP_URL_DURATION: 1800 -SWIFT_TEMP_URL_KEY: null -SWIFT_TENANT_ID: null -SWIFT_TENANT_NAME: null -SWIFT_USERNAME: null -SWIFT_USE_TEMP_URLS: false -SYSLOG_SERVER: '' -SYSTEM_WIDE_ROLE_CLASSES: [] -TECH_SUPPORT_EMAIL: technical@example.com -TIME_ZONE: America/New_York -TRACKING_SEGMENTIO_WEBHOOK_SECRET: '' -UNIVERSITY_EMAIL: university@example.com -USERNAME_REPLACEMENT_WORKER: OVERRIDE THIS WITH A VALID USERNAME -VERIFY_STUDENT: - DAYS_GOOD_FOR: 365 - EXPIRING_SOON_WINDOW: 28 -VIDEO_CDN_URL: - EXAMPLE_COUNTRY_CODE: http://example.com/edx/video?s3_url= -VIDEO_IMAGE_MAX_AGE: 31536000 -VIDEO_IMAGE_SETTINGS: - DIRECTORY_PREFIX: video-images/ - STORAGE_KWARGS: - base_url: /media/ - location: edx/var/edxapp/media/ - VIDEO_IMAGE_MAX_BYTES: 2097152 - VIDEO_IMAGE_MIN_BYTES: 2048 -VIDEO_TRANSCRIPTS_MAX_AGE: 31536000 -VIDEO_TRANSCRIPTS_SETTINGS: - DIRECTORY_PREFIX: video-transcripts/ - STORAGE_KWARGS: - base_url: /media/ - location: edx/var/edxapp/media/ - VIDEO_TRANSCRIPTS_MAX_BYTES: 3145728 -VIDEO_UPLOAD_PIPELINE: - BUCKET: '' - ROOT_PATH: '' -WIKI_ENABLED: true -WRITABLE_GRADEBOOK_URL: null -XBLOCK_EXTRA_MIXINS: [] -XBLOCK_FS_STORAGE_BUCKET: null -XBLOCK_FS_STORAGE_PREFIX: null -XBLOCK_SETTINGS: {} -XQUEUE_INTERFACE: - basic_auth: - - edx - - edx - django_auth: - password: password - username: lms - url: http://edx.devstack.xqueue:18040 -X_FRAME_OPTIONS: DENY -YOUTUBE_API_KEY: PUT_YOUR_API_KEY_HERE -ZENDESK_API_KEY: '' -ZENDESK_CUSTOM_FIELDS: {} -ZENDESK_GROUP_ID_MAPPING: {} -ZENDESK_OAUTH_ACCESS_TOKEN: '' -ZENDESK_URL: '' -ZENDESK_USER: '' - diff --git a/lms/envs/devstack_decentralized.py b/lms/envs/devstack_decentralized.py deleted file mode 100644 index 9fea5804da..0000000000 --- a/lms/envs/devstack_decentralized.py +++ /dev/null @@ -1,362 +0,0 @@ -""" -Settings file for decentralized devstack -""" - -# Silence noisy logs -import logging -from os.path import abspath, dirname, join - -from corsheaders.defaults import default_headers as corsheaders_default_headers - -# pylint: enable=unicode-format-string # lint-amnesty, pylint: disable=bad-option-value -##################################################################### -from edx_django_utils.plugins import add_plugins - -from openedx.core.djangoapps.plugins.constants import ProjectType, SettingsType - -from .production import * # pylint: disable=wildcard-import, unused-wildcard-import - -# Don't use S3 in devstack, fall back to filesystem -del DEFAULT_FILE_STORAGE -MEDIA_ROOT = "/edx/var/edxapp/uploads" -ORA2_FILEUPLOAD_BACKEND = 'django' - - -DEBUG = True -USE_I18N = True -DEFAULT_TEMPLATE_ENGINE['OPTIONS']['debug'] = True -LMS_BASE = 'localhost:18000' -CMS_BASE = 'localhost:18010' -SITE_NAME = LMS_BASE - -# By default don't use a worker, execute tasks as if they were local functions -CELERY_ALWAYS_EAGER = True -HTTPS = 'off' - -LMS_ROOT_URL = f'http://{LMS_BASE}' -LMS_INTERNAL_ROOT_URL = LMS_ROOT_URL -ENTERPRISE_API_URL = f'{LMS_INTERNAL_ROOT_URL}/enterprise/api/v1/' -IDA_LOGOUT_URI_LIST = [ - 'http://localhost:18130/logout/', # ecommerce - 'http://localhost:18150/logout/', # credentials - 'http://localhost:18381/logout/', # discovery -] - -################################ LOGGERS ###################################### - -LOG_OVERRIDES = [ - ('common.djangoapps.track.contexts', logging.CRITICAL), - ('common.djangoapps.track.middleware', logging.CRITICAL), - ('lms.djangoapps.discussion.django_comment_client.utils', logging.CRITICAL), -] -for log_name, log_level in LOG_OVERRIDES: - logging.getLogger(log_name).setLevel(log_level) - -# Docker does not support the syslog socket at /dev/log. Rely on the console. -LOGGING['handlers']['local'] = LOGGING['handlers']['tracking'] = { - 'class': 'logging.NullHandler', -} - -LOGGING['loggers']['tracking']['handlers'] = ['console'] - -################################ EMAIL ######################################## - -EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend' -EMAIL_FILE_PATH = '/edx/src/ace_messages/' - -############################ PYFS XBLOCKS SERVICE ############################# -# Set configuration for Django pyfilesystem - -DJFS = { - 'type': 'osfs', - 'directory_root': 'lms/static/djpyfs', - 'url_root': '/static/djpyfs', -} - - -def should_show_debug_toolbar(request): - return False - -########################### PIPELINE ################################# - -PIPELINE['PIPELINE_ENABLED'] = False -STATICFILES_STORAGE = 'openedx.core.storage.DevelopmentStorage' - -# Revert to the default set of finders as we don't want the production pipeline -STATICFILES_FINDERS = [ - 'openedx.core.djangoapps.theming.finders.ThemeFilesFinder', - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -] - -# Disable JavaScript compression in development -PIPELINE['JS_COMPRESSOR'] = None - -# Whether to run django-require in debug mode. -REQUIRE_DEBUG = DEBUG - -PIPELINE['SASS_ARGUMENTS'] = '--debug-info' - -# Load development webpack donfiguration -WEBPACK_CONFIG_PATH = 'webpack.dev.config.js' - -########################### VERIFIED CERTIFICATES ################################# - -FEATURES['AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING'] = True - -########################### External REST APIs ################################# -FEATURES['ENABLE_OAUTH2_PROVIDER'] = True -FEATURES['ENABLE_MOBILE_REST_API'] = True -FEATURES['ENABLE_VIDEO_ABSTRACTION_LAYER_API'] = True - -########################## SECURITY ####################### -FEATURES['ENABLE_MAX_FAILED_LOGIN_ATTEMPTS'] = False -FEATURES['SQUELCH_PII_IN_LOGS'] = False -FEATURES['PREVENT_CONCURRENT_LOGINS'] = False - -########################### Milestones ################################# -FEATURES['MILESTONES_APP'] = True - -########################### Entrance Exams ################################# -FEATURES['ENTRANCE_EXAMS'] = True - -################################ COURSE LICENSES ################################ -FEATURES['LICENSING'] = True - - -########################## Courseware Search ####################### -FEATURES['ENABLE_COURSEWARE_SEARCH'] = False -FEATURES['ENABLE_COURSEWARE_SEARCH_FOR_COURSE_STAFF'] = True -SEARCH_ENGINE = 'search.elastic.ElasticSearchEngine' - - -########################## Dashboard Search ####################### -FEATURES['ENABLE_DASHBOARD_SEARCH'] = False - - -########################## Certificates Web/HTML View ####################### -FEATURES['CERTIFICATES_HTML_VIEW'] = True - - -########################## Course Discovery ####################### -LANGUAGE_MAP = {'terms': {lang: display for lang, display in ALL_LANGUAGES}, 'name': 'Language'} # lint-amnesty, pylint: disable=unnecessary-comprehension -COURSE_DISCOVERY_MEANINGS = { - 'org': { - 'name': 'Organization', - }, - 'modes': { - 'name': 'Course Type', - 'terms': { - 'honor': 'Honor', - 'verified': 'Verified', - }, - }, - 'language': LANGUAGE_MAP, -} - -FEATURES['ENABLE_COURSE_DISCOVERY'] = False -# Setting for overriding default filtering facets for Course discovery -# COURSE_DISCOVERY_FILTERS = ["org", "language", "modes"] -FEATURES['COURSES_ARE_BROWSEABLE'] = True -HOMEPAGE_COURSE_MAX = 9 - -# Software secure fake page feature flag -FEATURES['ENABLE_SOFTWARE_SECURE_FAKE'] = False - -# Setting for the testing of Software Secure Result Callback -VERIFY_STUDENT["SOFTWARE_SECURE"] = { - "API_ACCESS_KEY": "BBBBBBBBBBBBBBBBBBBB", - "API_SECRET_KEY": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", -} -DISABLE_ACCOUNT_ACTIVATION_REQUIREMENT_SWITCH = "verify_student_disable_account_activation_requirement" - -# Skip enrollment start date filtering -SEARCH_SKIP_ENROLLMENT_START_DATE_FILTERING = True - - -########################## Shopping cart ########################## -FEATURES['ENABLE_COSMETIC_DISPLAY_PRICE'] = True - -######################### Program Enrollments ##################### -FEATURES['ENABLE_ENROLLMENT_RESET'] = True - -########################## Third Party Auth ####################### - -if FEATURES.get('ENABLE_THIRD_PARTY_AUTH') and ( - 'common.djangoapps.third_party_auth.dummy.DummyBackend' not in AUTHENTICATION_BACKENDS -): - AUTHENTICATION_BACKENDS = ['common.djangoapps.third_party_auth.dummy.DummyBackend'] + list(AUTHENTICATION_BACKENDS) - -############## ECOMMERCE API CONFIGURATION SETTINGS ############### -ECOMMERCE_PUBLIC_URL_ROOT = 'http://localhost:18130' -ECOMMERCE_API_URL = 'http://edx.devstack.ecommerce:18130/api/v2' - -############## Comments CONFIGURATION SETTINGS ############### -COMMENTS_SERVICE_URL = 'http://edx.devstack.forum:4567' - -############## Credentials CONFIGURATION SETTINGS ############### -CREDENTIALS_INTERNAL_SERVICE_URL = 'http://edx.devstack.credentials:18150' -CREDENTIALS_PUBLIC_SERVICE_URL = 'http://localhost:18150' - -############################### BLOCKSTORE ##################################### -BLOCKSTORE_API_URL = "http://edx.devstack.blockstore:18250/api/v1/" - -###################### Cross-domain requests ###################### -FEATURES['ENABLE_CORS_HEADERS'] = True -CORS_ALLOW_CREDENTIALS = True -CORS_ORIGIN_WHITELIST = () -CORS_ORIGIN_ALLOW_ALL = True -CORS_ALLOW_HEADERS = corsheaders_default_headers + ( - 'use-jwt-cookie', -) - -LOGIN_REDIRECT_WHITELIST = [CMS_BASE] - -###################### JWTs ###################### -JWT_AUTH.update({ - 'JWT_AUDIENCE': 'lms-key', - 'JWT_ISSUER': f'{LMS_ROOT_URL}/oauth2', - 'JWT_ISSUERS': [{ - 'AUDIENCE': 'lms-key', - 'ISSUER': f'{LMS_ROOT_URL}/oauth2', - 'SECRET_KEY': 'lms-secret', - }], - 'JWT_SECRET_KEY': 'lms-secret', - 'JWT_SIGNING_ALGORITHM': 'RS512', - 'JWT_PRIVATE_SIGNING_JWK': ( - '{"e": "AQAB", "d": "RQ6k4NpRU3RB2lhwCbQ452W86bMMQiPsa7EJiFJUg-qBJthN0FMNQVbArtrCQ0xA1BdnQHThFiUnHcXfsTZUwmwvTu' - 'iqEGR_MI6aI7h5D8vRj_5x-pxOz-0MCB8TY8dcuK9FkljmgtYvV9flVzCk_uUb3ZJIBVyIW8En7n7nV7JXpS9zey1yVLld2AbRG6W5--Pgqr9J' - 'CI5-bLdc2otCLuen2sKyuUDHO5NIj30qGTaKUL-OW_PgVmxrwKwccF3w5uGNEvMQ-IcicosCOvzBwdIm1uhdm9rnHU1-fXz8VLRHNhGVv7z6mo' - 'ghjNI0_u4smhUkEsYeshPv7RQEWTdkOQ", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu48BUI5VcVtUWIPqzRK_LDSlZYh' - '9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC4Ee9qG5T38LFe8_oAuFCEntimW' - 'xN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzGy5ZLcTUomo4rZLjghVpq6KZxfS' - '6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw", "q": "7KWj7l-ZkfCElyfvwsl7kiosvi-ppOO7Imsv90cribf88Dex' - 'cO67xdMPesjM9Nh5X209IT-TzbsOtVTXSQyEsy42NY72WETnd1_nAGLAmfxGdo8VV4ZDnRsA8N8POnWjRDwYlVBUEEeuT_MtMWzwIKU94bzkWV' - 'nHCY5vbhBYLeM", "p": "wPkfnjavNV1Hqb5Qqj2crBS9HQS6GDQIZ7WF9hlBb2ofDNe2K2dunddFqCOdvLXr7ydRcK51ZwSeHjcjgD1aJkHA' - '9i1zqyboxgd0uAbxVDo6ohnlVqYLtap2tXXcavKm4C9MTpob_rk6FBfEuq4uSsuxFvCER4yG3CYBBa4gZVU", "kid": "devstack_key", "' - 'kty": "RSA"}' - ), - 'JWT_PUBLIC_SIGNING_JWK_SET': ( - '{"keys": [{"kid": "devstack_key", "e": "AQAB", "kty": "RSA", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu' - '48BUI5VcVtUWIPqzRK_LDSlZYh9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC' - '4Ee9qG5T38LFe8_oAuFCEntimWxN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzG' - 'y5ZLcTUomo4rZLjghVpq6KZxfS6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw"}]}' - ), -}) -add_plugins(__name__, ProjectType.LMS, SettingsType.DEVSTACK) - - -######################### Django Rest Framework ######################## - -REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'] += ( - 'rest_framework.renderers.BrowsableAPIRenderer', -) - -OPENAPI_CACHE_TIMEOUT = 0 - -##################################################################### -# Lastly, run any migrations, if needed. -MODULESTORE = convert_module_store_setting_if_needed(MODULESTORE) - -SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd' - -EDXNOTES_INTERNAL_API = 'http://edx.devstack.edxnotesapi:18120/api/v1' -EDXNOTES_CLIENT_NAME = 'edx_notes_api-backend-service' - -############## Settings for Microfrontends ######################### -LEARNING_MICROFRONTEND_URL = 'http://localhost:2000' -ACCOUNT_MICROFRONTEND_URL = 'http://localhost:1997' -AUTHN_MICROFRONTEND_URL = 'http://localhost:1999' - -############## Docker based devstack settings ####################### - -FEATURES.update({ - 'AUTOMATIC_AUTH_FOR_TESTING': True, - 'ENABLE_DISCUSSION_SERVICE': True, - 'SHOW_HEADER_LANGUAGE_SELECTOR': True, - - # Enable enterprise integration by default. - # See https://github.com/edx/edx-enterprise/blob/master/docs/development.rst for - # more background on edx-enterprise. - # Toggle this off if you don't want anything to do with enterprise in devstack. - 'ENABLE_ENTERPRISE_INTEGRATION': True, -}) - -ENABLE_MKTG_SITE = os.environ.get('ENABLE_MARKETING_SITE', False) -MARKETING_SITE_ROOT = os.environ.get('MARKETING_SITE_ROOT', 'http://localhost:8080') - -MKTG_URLS = { - 'ABOUT': '/about', - 'ACCESSIBILITY': '/accessibility', - 'AFFILIATES': '/affiliate-program', - 'BLOG': '/blog', - 'CAREERS': '/careers', - 'CONTACT': '/support/contact_us', - 'COURSES': '/course', - 'DONATE': '/donate', - 'ENTERPRISE': '/enterprise', - 'FAQ': '/student-faq', - 'HONOR': '/edx-terms-service', - 'HOW_IT_WORKS': '/how-it-works', - 'MEDIA_KIT': '/media-kit', - 'NEWS': '/news-announcements', - 'PRESS': '/press', - 'PRIVACY': '/edx-privacy-policy', - 'ROOT': MARKETING_SITE_ROOT, - 'SCHOOLS': '/schools-partners', - 'SITE_MAP': '/sitemap', - 'TRADEMARKS': '/trademarks', - 'TOS': '/edx-terms-service', - 'TOS_AND_HONOR': '/edx-terms-service', - 'WHAT_IS_VERIFIED_CERT': '/verified-certificate', -} - -ENTERPRISE_LEARNER_PORTAL_BASE_URL = 'http://localhost:8734' - -ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS = {} - -CREDENTIALS_SERVICE_USERNAME = 'credentials_worker' - -COURSE_CATALOG_URL_ROOT = 'http://edx.devstack.discovery:18381' -COURSE_CATALOG_API_URL = f'{COURSE_CATALOG_URL_ROOT}/api/v1' - -SYSTEM_WIDE_ROLE_CLASSES = os.environ.get("SYSTEM_WIDE_ROLE_CLASSES", SYSTEM_WIDE_ROLE_CLASSES) -SYSTEM_WIDE_ROLE_CLASSES.append( - 'system_wide_roles.SystemWideRoleAssignment', -) - -if FEATURES.get('ENABLE_ENTERPRISE_INTEGRATION'): - SYSTEM_WIDE_ROLE_CLASSES.append( - 'enterprise.SystemWideEnterpriseUserRoleAssignment', - ) - -# List of enterprise customer uuids to exclude from transition to use of enterprise-catalog -ENTERPRISE_CUSTOMERS_EXCLUDED_FROM_CATALOG = () - -##################################################################### -# See if the developer has any local overrides. -if os.path.isfile(join(dirname(abspath(__file__)), 'private.py')): - from .private import * # pylint: disable=import-error,wildcard-import - -########################## THEMING ####################### -# If you want to enable theming in devstack, uncomment this section and add any relevant -# theme directories to COMPREHENSIVE_THEME_DIRS - -# We have to import the private method here because production.py calls -# derive_settings('lms.envs.production') which runs _make_mako_template_dirs with -# the settings from production, which doesn't include these theming settings. Thus, -# the templating engine is unable to find the themed templates because they don't exist -# in it's path. Re-calling derive_settings doesn't work because the settings was already -# changed from a function to a list, and it can't be derived again. - -# from .common import _make_mako_template_dirs -# ENABLE_COMPREHENSIVE_THEMING = True -# COMPREHENSIVE_THEME_DIRS = [ -# "/edx/app/edxapp/edx-platform/themes/" -# ] -# TEMPLATES[1]["DIRS"] = _make_mako_template_dirs -# derive_settings(__name__) - -# Uncomment the lines below if you'd like to see SQL statements in your devstack LMS log. -# LOGGING['handlers']['console']['level'] = 'DEBUG' -# LOGGING['loggers']['django.db.backends'] = {'handlers': ['console'], 'level': 'DEBUG', 'propagate': False}