Skip to content
Permalink
 
 
Cannot retrieve contributors at this time
1798 lines (1566 sloc) 73.4 KB
# variables common to the edxapp role, automatically loaded
# when the role is included
---
# These are variables that default to a localhost
# setup and are meant to be overwritten for
# different environments.
#
# Variables in all caps are environment specific
# Lowercase variables are internal to the role
#
# Defaults specified here should not contain
# any secrets or host identifying information.
#
EDXAPP_PYTHON_VERSION: "python3.5"
# Bucket used for xblock file storage
EDXAPP_XBLOCK_FS_STORAGE_BUCKET: !!null
EDXAPP_XBLOCK_FS_STORAGE_PREFIX: !!null
EDXAPP_DJFS:
type: 'osfs'
directory_root: '{{ edxapp_data_dir }}/django-pyfs/static/django-pyfs'
url_root : '/static/django-pyfs'
EDXAPP_LMS_BASE: "{{ EDXAPP_LMS_SITE_NAME }}:{{ EDXAPP_LMS_NGINX_PORT }}"
EDXAPP_PREVIEW_LMS_BASE: "preview.{{ EDXAPP_LMS_SITE_NAME }}:{{ EDXAPP_LMS_NGINX_PORT }}"
EDXAPP_CMS_BASE: "{{ EDXAPP_CMS_SITE_NAME }}:{{ EDXAPP_CMS_NGINX_PORT }}"
EDXAPP_LMS_GUNICORN_EXTRA: ""
EDXAPP_LMS_GUNICORN_EXTRA_CONF: ""
EDXAPP_LMS_GUNICORN_TIMEOUT: 300
EDXAPP_CMS_GUNICORN_EXTRA: ""
EDXAPP_CMS_GUNICORN_EXTRA_CONF: ""
EDXAPP_CMS_GUNICORN_TIMEOUT: 300
# Set this to the maximum number
# of requests for gunicorn for the lms and cms
# gunicorn --max-requests <num>
EDXAPP_LMS_MAX_REQ: !!null
EDXAPP_CMS_MAX_REQ: !!null
# 'None' will be written out as null in
# the configuration on disk
EDXAPP_AWS_ACCESS_KEY_ID: !!null
EDXAPP_AWS_SECRET_ACCESS_KEY: !!null
EDXAPP_AWS_QUERYSTRING_AUTH: false
EDXAPP_AWS_STORAGE_BUCKET_NAME: "SET-ME-PLEASE (ex. bucket-name)"
# An empty string makes the course import/export functionality to use the
# file system for storage. Setting this to a bucket-name will use AWS
EDXAPP_IMPORT_EXPORT_BUCKET: ""
EDXAPP_AWS_S3_CUSTOM_DOMAIN: "SET-ME-PLEASE (ex. bucket-name.s3.amazonaws.com)"
EDXAPP_SWIFT_USERNAME: !!null
EDXAPP_SWIFT_KEY: !!null
EDXAPP_SWIFT_TENANT_ID: !!null
EDXAPP_SWIFT_TENANT_NAME: !!null
EDXAPP_SWIFT_AUTH_URL: !!null
EDXAPP_SWIFT_AUTH_VERSION: !!null
EDXAPP_SWIFT_REGION_NAME: !!null
EDXAPP_SWIFT_USE_TEMP_URLS: false
EDXAPP_SWIFT_TEMP_URL_KEY: !!null
EDXAPP_SWIFT_TEMP_URL_DURATION: 1800 # seconds
EDXAPP_DEFAULT_FILE_STORAGE: "django.core.files.storage.FileSystemStorage"
EDXAPP_XQUEUE_BASIC_AUTH: [ "{{ COMMON_HTPASSWD_USER }}", "{{ COMMON_HTPASSWD_PASS }}" ]
EDXAPP_XQUEUE_DJANGO_AUTH:
username: 'lms'
password: "{{ COMMON_XQUEUE_LMS_PASSWORD }}"
EDXAPP_XQUEUE_URL: 'http://localhost:18040'
# Comma-separated list of hosts/ips
EDXAPP_MONGO_HOSTS: 'localhost'
EDXAPP_MONGO_PASSWORD: 'password'
EDXAPP_MONGO_PORT: 27017
EDXAPP_MONGO_USER: 'edxapp'
EDXAPP_MONGO_DB_NAME: 'edxapp'
EDXAPP_MONGO_USE_SSL: False
EDXAPP_MONGO_REPLICA_SET: ''
EDXAPP_MONGO_AUTH_DB: ''
# Used only if EDXAPP_MONGO_REPLICA_SET is provided.
EDXAPP_MONGO_CMS_READ_PREFERENCE: 'PRIMARY'
EDXAPP_MONGO_LMS_READ_PREFERENCE: 'SECONDARY_PREFERRED'
# We use the CMS read_preference here because the draft docstore's view of
# the modulestore should mirror Studio's, so that instructors can check their
# changes in Preview mode.
EDXAPP_LMS_DRAFT_DOC_STORE_READ_PREFERENCE: '{{ EDXAPP_MONGO_CMS_READ_PREFERENCE }}'
EDXAPP_LMS_SPLIT_DOC_STORE_READ_PREFERENCE: '{{ EDXAPP_MONGO_LMS_READ_PREFERENCE }}'
EDXAPP_MYSQL_DB_NAME: 'edxapp'
EDXAPP_MYSQL_USER: 'edxapp001'
EDXAPP_MYSQL_USER_ADMIN: 'root'
EDXAPP_MYSQL_PASSWORD: 'password'
EDXAPP_MYSQL_PASSWORD_READ_ONLY: 'password'
EDXAPP_MYSQL_PASSWORD_ADMIN: 'password'
EDXAPP_MYSQL_OPTIONS: {}
EDXAPP_MYSQL_ATOMIC_REQUESTS: True
EDXAPP_MYSQL_REPLICA_DB_NAME: "{{ EDXAPP_MYSQL_DB_NAME }}"
EDXAPP_MYSQL_REPLICA_USER: "{{ EDXAPP_MYSQL_USER }}"
EDXAPP_MYSQL_REPLICA_PASSWORD: "{{ EDXAPP_MYSQL_PASSWORD }}"
EDXAPP_MYSQL_REPLICA_HOST: "{{ EDXAPP_MYSQL_HOST }}"
EDXAPP_MYSQL_REPLICA_PORT: "{{ EDXAPP_MYSQL_PORT }}"
EDXAPP_MYSQL_REPLICA_OPTIONS: "{{ EDXAPP_MYSQL_OPTIONS }}"
EDXAPP_MYSQL_CSMH_DB_NAME: "edxapp_csmh"
EDXAPP_MYSQL_CSMH_USER: "{{ EDXAPP_MYSQL_USER }}"
EDXAPP_MYSQL_CSMH_PASSWORD: "{{ EDXAPP_MYSQL_PASSWORD }}"
EDXAPP_MYSQL_CSMH_HOST: "{{ EDXAPP_MYSQL_HOST }}"
EDXAPP_MYSQL_CSMH_PORT: "{{ EDXAPP_MYSQL_PORT }}"
EDXAPP_MYSQL_CSMH_OPTIONS: "{{ EDXAPP_MYSQL_OPTIONS }}"
# This is Django's default https://docs.djangoproject.com/en/1.8/ref/settings/#conn-max-age
EDXAPP_MYSQL_CONN_MAX_AGE: 0
EDXAPP_MYSQL_HOST: 'localhost'
EDXAPP_MYSQL_PORT: '3306'
EDXAPP_SEARCH_HOST: 'localhost'
EDXAPP_SEARCH_PORT: 9200
EDXAPP_SEARCH_USE_SSL: false
# list of dictionaries of the format
# { 'host': 'hostname', 'port': 'portnumber', 'otherconfigsuchas use_ssl': 'True' }
# http://elasticsearch-py.readthedocs.org/en/master/api.html#elasticsearch
EDXAPP_ELASTIC_SEARCH_CONFIG:
- host: "{{ EDXAPP_SEARCH_HOST }}"
port: "{{ EDXAPP_SEARCH_PORT }}"
use_ssl: "{{ EDXAPP_SEARCH_USE_SSL }}"
EDXAPP_SETTINGS: '{{ COMMON_EDXAPP_SETTINGS }}'
EDXAPP_LMS_ENV: 'lms.envs.{{ EDXAPP_SETTINGS }}'
EDXAPP_CMS_ENV: 'cms.envs.{{ EDXAPP_SETTINGS }}'
EDXAPP_EMAIL_BACKEND: 'django.core.mail.backends.smtp.EmailBackend'
EDXAPP_EMAIL_HOST: 'localhost'
EDXAPP_EMAIL_PORT: 25
EDXAPP_EMAIL_USE_TLS: False
EDXAPP_EMAIL_HOST_USER: ''
EDXAPP_EMAIL_HOST_PASSWORD: ''
EDXAPP_AWS_SES_REGION_NAME: "us-east-1"
EDXAPP_AWS_SES_REGION_ENDPOINT: "email.us-east-1.amazonaws.com"
EDXAPP_LOG_LEVEL: 'INFO'
EDXAPP_MEMCACHE: [ 'localhost:11211' ]
EDXAPP_CACHE_COURSE_STRUCTURE_MEMCACHE: "{{ EDXAPP_MEMCACHE }}"
EDXAPP_CACHE_BACKEND: 'django.core.cache.backends.memcached.MemcachedCache'
EDXAPP_COMMENTS_SERVICE_URL: 'http://localhost:18080'
# EDXAPP_COMMENTS_SERVICE_KEY must match FORUM_API_KEY
EDXAPP_COMMENTS_SERVICE_KEY: 'password'
# EDXAPP_EDXAPP_SECRET_KEY: "DUMMY KEY CHANGE BEFORE GOING TO PRODUCTION" # Commented out to ensure secure defaults
EDXAPP_FERNET_KEYS:
- "DUMMY KEY CHANGE BEFORE GOING TO PRODUCTION"
EDXAPP_LTI_USER_EMAIL_DOMAIN: "lti.example.com"
# 900s, or 15 mins
EDXAPP_LTI_AGGREGATE_SCORE_PASSBACK_DELAY: 900
EDXAPP_PAYMENT_SUPPORT_EMAIL: "billing@example.com"
EDXAPP_YOUTUBE_API_KEY: "PUT_YOUR_API_KEY_HERE"
EDXAPP_ZENDESK_USER: ""
EDXAPP_ZENDESK_URL: ""
EDXAPP_ZENDESK_API_KEY: ""
EDXAPP_ZENDESK_CUSTOM_FIELDS: {}
EDXAPP_ZENDESK_OAUTH_ACCESS_TOKEN: ""
EDXAPP_ZENDESK_GROUP_ID_MAPPING: {}
EDXAPP_CELERY_USER: 'celery'
EDXAPP_CELERY_PASSWORD: 'celery'
EDXAPP_CELERY_BROKER_HOSTNAME: "{{ EDXAPP_RABBIT_HOSTNAME }}"
EDXAPP_CELERY_BROKER_TRANSPORT: 'amqp'
EDXAPP_CELERY_BROKER_VHOST: ""
EDXAPP_CELERY_BROKER_USE_SSL: false
EDXAPP_CELERY_EVENT_QUEUE_TTL: !!null
EDXAPP_CELERY_TIMEZONE: "UTC"
EDXAPP_BRANCH_IO_KEY: ""
EDXAPP_VIDEO_CDN_URLS:
EXAMPLE_COUNTRY_CODE: "http://example.com/edx/video?s3_url="
EDXAPP_CREDIT_HELP_LINK_URL: ""
EDXAPP_PARTNER_SUPPORT_EMAIL: ''
# ISO-8601 formatted date string, or null
EDXAPP_AUDIT_CERT_CUTOFF_DATE: null
EDXAPP_PLATFORM_NAME: 'Your Platform Name Here'
EDXAPP_PLATFORM_DESCRIPTION: 'Your Platform Description Here'
EDXAPP_STUDIO_NAME: 'Studio'
EDXAPP_STUDIO_SHORT_NAME: 'Studio'
EDXAPP_ANALYTICS_DASHBOARD_NAME: "{{ EDXAPP_PLATFORM_NAME }} Insights"
EDXAPP_LMS_ANALYTICS_API_KEY: ''
EDXAPP_LMS_ANALYTICS_API_URL: 'http://localhost:18100'
EDXAPP_CAS_SERVER_URL: ""
EDXAPP_CAS_EXTRA_LOGIN_PARAMS: ""
EDXAPP_CAS_ATTRIBUTE_CALLBACK: ""
EDXAPP_CAS_ATTRIBUTE_PACKAGE: ""
# Enable an end-point that creates a user and logs them in
# Used for performance testing
EDXAPP_ENABLE_AUTO_AUTH: false
# Settings for enabling and configuring third party authorization
EDXAPP_ENABLE_THIRD_PARTY_AUTH: true
EDXAPP_ENABLE_OAUTH2_PROVIDER: false
EDXAPP_THIRD_PARTY_AUTH_BACKENDS:
- social_core.backends.google.GoogleOAuth2
- social_core.backends.linkedin.LinkedinOAuth2
- social_core.backends.facebook.FacebookOAuth2
- social_core.backends.azuread.AzureADOAuth2
- third_party_auth.appleid.AppleIdAuth
- third_party_auth.identityserver3.IdentityServer3
- third_party_auth.saml.SAMLAuthBackend
- third_party_auth.lti.LTIAuthBackend
EDXAPP_ENABLE_MOBILE_REST_API: false
EDXAPP_ENABLE_BULK_ENROLLMENT_VIEW: false
# Settings for API access management
EDXAPP_API_ACCESS_MANAGER_EMAIL: "api-access@example.com"
EDXAPP_API_ACCESS_FROM_EMAIL: "api-requests@example.com"
EDXAPP_API_DOCUMENTATION_URL: "http://course-catalog-api-guide.readthedocs.io/en/latest/"
EDXAPP_AUTH_DOCUMENTATION_URL: "http://course-catalog-api-guide.readthedocs.io/en/latest/authentication/index.html"
# Settings for affiliate cookie tracking
EDXAPP_AFFILIATE_COOKIE_NAME: 'dev_affiliate_id'
EDXAPP_ENABLE_EDXNOTES: false
EDXAPP_ENABLE_CREDIT_ELIGIBILITY: false
EDXAPP_ENABLE_CREDIT_API: false
EDXAPP_ENABLE_SPECIAL_EXAMS: false
EDXAPP_CUSTOM_COURSES_EDX: false
EDXAPP_ENABLE_SYSADMIN_DASHBOARD: false
# This is different from lms/envs/common.py
# We're turning it on in config because it needs a lot more configuration
# support, such as settings.DATABASES and initial database creation which is
# handled in the play.
EDXAPP_ENABLE_CSMH_EXTENDED: True
EDXAPP_ENABLE_READING_FROM_MULTIPLE_HISTORY_TABLES: True
EDXAPP_GIT_REPO_DIR: '/edx/var/edxapp/course_repos'
EDXAPP_GIT_REPO_EXPORT_DIR: '/edx/var/edxapp/export_course_repos'
EDXAPP_ENABLE_EXPORT_GIT: false
EDXAPP_FINANCIAL_REPORTS:
BUCKET: !!null
ROOT_PATH: "sandbox"
STORAGE_TYPE: "localfs"
#Only address should have newlines
EDXAPP_PDF_RECEIPT_BILLING_ADDRESS: |
Enter your receipt billing
address here.
EDXAPP_PDF_RECEIPT_DISCLAIMER_TEXT: >
ENTER YOUR RECEIPT DISCLAIMER TEXT HERE.
EDXAPP_PDF_RECEIPT_FOOTER_TEXT: >
Enter your receipt footer text here.
EDXAPP_PDF_RECEIPT_TERMS_AND_CONDITIONS: >
Enter your receipt terms and conditions here.
EDXAPP_PDF_RECEIPT_TAX_ID: "00-0000000"
EDXAPP_PDF_RECEIPT_TAX_ID_LABEL: "fake Tax ID"
EDXAPP_PDF_RECEIPT_COBRAND_LOGO_PATH: ""
EDXAPP_PDF_RECEIPT_LOGO_PATH: ""
EDXAPP_SOCIAL_AUTH_OAUTH_SECRETS: ""
EDXAPP_ACE_CHANNEL_SAILTHRU_API_KEY: ""
EDXAPP_ACE_CHANNEL_SAILTHRU_API_SECRET: ""
EDXAPP_ACE_ENABLED_CHANNELS: ['django_email']
EDXAPP_ACE_ENABLED_POLICIES: ['bulk_email_optout']
EDXAPP_ACE_CHANNEL_SAILTHRU_DEBUG: True
EDXAPP_ACE_CHANNEL_SAILTHRU_TEMPLATE_NAME: !!null
EDXAPP_ACE_ROUTING_KEY: 'edx.lms.core.default'
EDXAPP_ACE_CHANNEL_DEFAULT_EMAIL: 'django_email'
EDXAPP_ACE_CHANNEL_TRANSACTIONAL_EMAIL: 'django_email'
# Display a language selector in the LMS/CMS header.
EDXAPP_SHOW_HEADER_LANGUAGE_SELECTOR: false
# Display a language selector in the LMS footer.
EDXAPP_SHOW_FOOTER_LANGUAGE_SELECTOR: false
# Configure x_frame_options in LMS/CMS
EDXAPP_X_FRAME_OPTIONS: "DENY"
# Reset functionality for master's integration environments
EDXAPP_ENABLE_ENROLLMENT_RESET: false
EDXAPP_FEATURES:
AUTH_USE_OPENID_PROVIDER: true
ENABLE_DISCUSSION_SERVICE: true
ENABLE_INSTRUCTOR_ANALYTICS: false
PREVIEW_LMS_BASE: "{{ EDXAPP_PREVIEW_LMS_BASE }}"
ENABLE_GRADE_DOWNLOADS: true
ENABLE_MKTG_SITE: "{{ EDXAPP_ENABLE_MKTG_SITE }}"
ENABLE_PUBLISHER: "{{ EDXAPP_ENABLE_PUBLISHER }}"
AUTOMATIC_AUTH_FOR_TESTING: "{{ EDXAPP_ENABLE_AUTO_AUTH }}"
ENABLE_THIRD_PARTY_AUTH: "{{ EDXAPP_ENABLE_THIRD_PARTY_AUTH }}"
ENABLE_VIDEO_UPLOAD_PIPELINE: false
ENABLE_DISCUSSION_HOME_PANEL: true
ENABLE_COMBINED_LOGIN_REGISTRATION: true
ENABLE_BULK_ENROLLMENT_VIEW: "{{ EDXAPP_ENABLE_BULK_ENROLLMENT_VIEW }}"
ENABLE_CORS_HEADERS: false
ENABLE_CROSS_DOMAIN_CSRF_COOKIE: false
ENABLE_COUNTRY_ACCESS: false
ENABLE_EDXNOTES: "{{ EDXAPP_ENABLE_EDXNOTES }}"
ENABLE_CREDIT_API: "{{ EDXAPP_ENABLE_CREDIT_API }}"
ENABLE_CREDIT_ELIGIBILITY: "{{ EDXAPP_ENABLE_CREDIT_ELIGIBILITY }}"
ENABLE_SPECIAL_EXAMS: "{{ EDXAPP_ENABLE_SPECIAL_EXAMS }}"
ENABLE_OAUTH2_PROVIDER: "{{ EDXAPP_ENABLE_OAUTH2_PROVIDER }}"
ENABLE_SYSADMIN_DASHBOARD: "{{ EDXAPP_ENABLE_SYSADMIN_DASHBOARD }}"
ENABLE_MOBILE_REST_API: "{{ EDXAPP_ENABLE_MOBILE_REST_API }}"
CUSTOM_COURSES_EDX: "{{ EDXAPP_CUSTOM_COURSES_EDX }}"
ENABLE_CSMH_EXTENDED: "{{ EDXAPP_ENABLE_CSMH_EXTENDED }}"
ENABLE_READING_FROM_MULTIPLE_HISTORY_TABLES: "{{ EDXAPP_ENABLE_READING_FROM_MULTIPLE_HISTORY_TABLES }}"
SHOW_HEADER_LANGUAGE_SELECTOR: "{{ EDXAPP_SHOW_HEADER_LANGUAGE_SELECTOR }}"
SHOW_FOOTER_LANGUAGE_SELECTOR: "{{ EDXAPP_SHOW_FOOTER_LANGUAGE_SELECTOR }}"
ENABLE_ENROLLMENT_RESET: false
ENABLE_EXPORT_GIT: "{{ EDXAPP_ENABLE_EXPORT_GIT }}"
# This needs to be set to localhost
# if xqueue is run on the same server
# as the lms (it's sent in the request)
EDXAPP_SITE_NAME: 'localhost'
EDXAPP_LMS_SITE_NAME: "{{ EDXAPP_SITE_NAME }}"
EDXAPP_LMS_HTTPS: 'on'
EDXAPP_CMS_SITE_NAME: 'localhost'
EDXAPP_MEDIA_URL: "/media"
EDXAPP_FEEDBACK_SUBMISSION_EMAIL: ""
EDXAPP_LOGGING_ENV: 'sandbox'
EDXAPP_SYSLOG_SERVER: ""
EDXAPP_RABBIT_HOSTNAME: 'localhost'
EDXAPP_LMS_NGINX_PORT: 18000
EDXAPP_LMS_SSL_NGINX_PORT: 48000
EDXAPP_CMS_NGINX_PORT: 18010
EDXAPP_CMS_SSL_NGINX_PORT: 48010
# NGINX Rate limiting related vars
EDXAPP_ENABLE_RATE_LIMITING: false
EDXAPP_COURSES_REQUEST_RATE: '5r/s'
EDXAPP_COURSES_REQUEST_BURST_RATE: 10
EDXAPP_COURSES_USER_AGENT_BURST_RATE: 5
EDXAPP_RATE_LIMITED_USER_AGENTS: []
# Consumed in the edxapp.yml playbook
# to pass to nginx as nginx_skip_enable_sites
EDXAPP_NGINX_SKIP_ENABLE_SITES: False
# If the LMS and Studio run on the same machine / nginx, it makes sense to have
# a default (usually the LMS). If you run on separate machines, you'll want to mark
# them both as defaults.
EDXAPP_NGINX_DEFAULT_SITES:
- 'lms'
EDXAPP_LANG: 'en_US.UTF-8'
EDXAPP_LANGUAGE_CODE : 'en'
EDXAPP_LANGUAGE_COOKIE: 'openedx-language-preference'
EDXAPP_CERTIFICATE_TEMPLATE_LANGUAGES:
'en': 'English'
'es': 'Español'
EDXAPP_TIME_ZONE: 'America/New_York'
EDXAPP_HELP_TOKENS_BOOKS:
learner: "http://edx.readthedocs.io/projects/open-edx-learner-guide"
course_author: "http://edx.readthedocs.io/projects/open-edx-building-and-running-a-course"
EDXAPP_TECH_SUPPORT_EMAIL: 'technical@example.com'
EDXAPP_CONTACT_EMAIL: 'info@example.com'
EDXAPP_BUGS_EMAIL: 'bugs@example.com'
EDXAPP_DEFAULT_FROM_EMAIL: 'registration@example.com'
EDXAPP_DEFAULT_FEEDBACK_EMAIL: 'feedback@example.com'
EDXAPP_DEFAULT_SERVER_EMAIL: 'devops@example.com'
EDXAPP_BULK_EMAIL_DEFAULT_FROM_EMAIL: 'no-reply@example.com'
EDXAPP_BULK_EMAIL_LOG_SENT_EMAILS: false
EDXAPP_UNIVERSITY_EMAIL: 'university@example.com'
EDXAPP_PRESS_EMAIL: 'press@example.com'
EDXAPP_LMS_ROOT_URL: "{{ EDXAPP_LMS_BASE_SCHEME | default('https') }}://{{ EDXAPP_LMS_BASE }}"
EDXAPP_LMS_INTERNAL_ROOT_URL: "{{ EDXAPP_LMS_ROOT_URL }}"
EDXAPP_LMS_ISSUER: "{{ COMMON_JWT_ISSUER }}"
EDXAPP_JWT_EXPIRATION: 30 # Number of seconds until expiration
EDXAPP_JWT_AUDIENCE: "{{ COMMON_JWT_AUDIENCE }}"
EDXAPP_JWT_SECRET_KEY: "{{ COMMON_JWT_SECRET_KEY }}"
EDXAPP_JWT_PUBLIC_SIGNING_JWK_SET: "{{ COMMON_JWT_PUBLIC_SIGNING_JWK_SET|string }}"
EDXAPP_JWT_AUTH_COOKIE_HEADER_PAYLOAD: '{{ COMMON_JWT_AUTH_COOKIE_HEADER_PAYLOAD }}'
EDXAPP_JWT_AUTH_COOKIE_SIGNATURE: '{{ COMMON_JWT_AUTH_COOKIE_SIGNATURE }}'
EDXAPP_JWT_AUTH_REFRESH_COOKIE: '{{ COMMON_JWT_AUTH_REFRESH_COOKIE }}'
# See https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst
EDXAPP_JWT_SIGNING_ALGORITHM: !!null
EDXAPP_JWT_PRIVATE_SIGNING_JWK: !!null
EDXAPP_PLATFORM_TWITTER_ACCOUNT: '@YourPlatformTwitterAccount'
EDXAPP_PLATFORM_FACEBOOK_ACCOUNT: 'http://www.facebook.com/YourPlatformFacebookAccount'
EDXAPP_FACEBOOK_APP_ID: "FACEBOOK_APP_ID"
EDXAPP_FACEBOOK_APP_SECRET: "FACEBOOK_APP_SECRET"
EDXAPP_FACEBOOK_API_VERSION: "v2.1"
EDXAPP_CONTACT_MAILING_ADDRESS: 'SET-ME-PLEASE'
EDXAPP_SOCIAL_MEDIA_FOOTER_URLS: {}
EDXAPP_MOBILE_STORE_URLS: {}
EDXAPP_FOOTER_ORGANIZATION_IMAGE: "images/logo.png"
EDXAPP_ENV_EXTRA: {}
EDXAPP_AUTH_EXTRA: {}
EDXAPP_LMS_ENV_EXTRA: "{{ EDXAPP_ENV_EXTRA }}"
EDXAPP_CMS_ENV_EXTRA: "{{ EDXAPP_ENV_EXTRA }}"
EDXAPP_LMS_AUTH_EXTRA: "{{ EDXAPP_AUTH_EXTRA }}"
EDXAPP_CMS_AUTH_EXTRA: "{{ EDXAPP_AUTH_EXTRA }}"
EDXAPP_ENABLE_MKTG_SITE: false
EDXAPP_ENABLE_PUBLISHER: false
EDXAPP_MKTG_URL_LINK_MAP: {}
EDXAPP_MKTG_URLS: {}
EDXAPP_SUPPORT_SITE_LINK: ''
EDXAPP_ID_VERIFICATION_SUPPORT_LINK: ''
EDXAPP_ACTIVATION_EMAIL_SUPPORT_LINK: ''
EDXAPP_PASSWORD_RESET_SUPPORT_LINK: ''
EDXAPP_EDXMKTG_USER_INFO_COOKIE_NAME: "edx-user-info"
# Settings for Grade downloads
EDXAPP_GRADE_STORAGE_CLASS: 'django.core.files.storage.FileSystemStorage'
EDXAPP_GRADE_STORAGE_KWARGS:
location: /tmp/edx-s3/grades
# These set the url for static files
# Override this var to use a CDN
# Example: http://xxxxx.cloudfront.net/static/
# Default variable, likely to be retired since LMS and CMS are being separated
EDXAPP_STATIC_URL_BASE: "/static/"
# If you would like LMS to use a different CDN or path
EDXAPP_LMS_STATIC_URL_BASE: "{{ EDXAPP_STATIC_URL_BASE }}"
# If you would like Studio to use a different CDN or path
EDXAPP_CMS_STATIC_URL_BASE: "{{ EDXAPP_STATIC_URL_BASE }}"
# Credit card processor
# These are the same defaults set in common.py
# These are used for shopping cart
EDXAPP_CC_PROCESSOR_NAME: "CyberSource2"
EDXAPP_CC_PROCESSOR:
CyberSource:
SHARED_SECRET: ""
MERCHANT_ID: ""
SERIAL_NUMBER: ""
ORDERPAGE_VERSION: '7'
PURCHASE_ENDPOINT: ""
CyberSource2:
PURCHASE_ENDPOINT: ""
SECRET_KEY: ""
ACCESS_KEY: ""
PROFILE_ID: ""
# does not affect verified students
EDXAPP_PAID_COURSE_REGISTRATION_CURRENCY: ['usd', '$']
# Configure paver tasks in edx-platform to skip Python/Ruby/Node installation
EDXAPP_NO_PREREQ_INSTALL: 1
# whether to setup the python codejail or not
EDXAPP_PYTHON_SANDBOX: true
# this next setting, if true, turns on actual sandbox enforcement. If not true,
# it puts the sandbox in 'complain' mode, for reporting but not enforcement
EDXAPP_SANDBOX_ENFORCE: true
# Vars that are used when the automated role is "mixed-in" via the deploying play
# This data structure specifies all the users with access to run command remotely
# over SSH and the fully qualified command that they can run via sudo to the
# application user
EDXAPP_AUTOMATED_USERS: {}
# automated_user:
# sudo_commands:
# - command: "{{ edxapp_venv_bin }}/python {{ edxapp_code_dir }}/manage.py lms showmigrations --settings={{ edxapp_settings }}"
# sudo_user: "edxapp"
# authorized_keys:
# - "SSH authorized key"
EDXAPP_USE_GIT_IDENTITY: false
# Paste the contents of the git identity
# into this var
EDXAPP_GIT_IDENTITY: !!null
EDXAPP_UPDATE_STATIC_FILES_KEY: false
# Set this to true if you want to install the private pip
# requirements in the edx-platform repo.
# This will use EDXAPP_GIT_IDENTITY, EDXAPP_USE_GIT_IDENTITY
# must be set to true if EDXAPP_INSTALL_PRIVATE_REQUIREMENTS is
# set to true
EDXAPP_INSTALL_PRIVATE_REQUIREMENTS: false
# List of additional python packages that should be installed into the
# edxapp virtual environment.
# `name` (required), `version` (optional), and `extra_args` (optional)
# are supported and correspond to the options of ansible's pip module.
# Example:
# EDXAPP_EXTRA_REQUIREMENTS:
# - name: mypackage
# version: 1.0.1
# - name: git+https://git.myproject.org/MyProject#egg=MyProject
EDXAPP_EXTRA_REQUIREMENTS: []
# List of private requirements that should be installed into the
# edxapp virtual environment.
# `name` (required), 'extra_args' (optional)
# Example:
# EDXAPP_PRIVATE_REQUIREMENTS:
# - name: git+https://git.myproject.org/MyProject#egg=MyProject
EDXAPP_PRIVATE_REQUIREMENTS:
# For Harvard courses:
- name: xblock-problem-builder==4.0.0
# Oppia XBlock
- name: git+https://github.com/oppia/xblock.git@3b5c17c5832b4f8ef132c6bbf48da8a86df43b3d#egg=oppia-xblock
extra_args: -e
# This repository contains schoolyourself-xblock, which is used in
# edX's "AlgebraX" and "GeometryX" courses.
- name: git+https://github.com/edx/schoolyourself-xblock.git@c3f7fecefa8e164a0f02ef6264d00e65e9c5a6de#egg=schoolyourself-xblock
extra_args: -e
# Prototype XBlocks from edX learning sciences limited roll-outs and user testing.
# Concept XBlock, in particular, is nowhere near finished and an early prototype.
# Profile XBlock is there so we can play with XBlock arguments in the platform, but isn't ready for use outside of
# edX.
- name: git+https://github.com/edx/ConceptXBlock.git@a8e3cff03c3b46dad093db069b12c6fba1aed327#egg=concept-xblock
extra_args: -e
- name: git+https://github.com/edx/AudioXBlock.git@f668a4e231c5cdc338eef6bd148e57a02b48200b#egg=audio-xblock
extra_args: -e
- name: git+https://github.com/edx/AnimationXBlock.git@c950ffdda2f69effda93bf03df8646f61d3ffada#egg=animation-xblock
extra_args: -e
# Peer instruction XBlock
# Need it from github until we can land https://github.com/ubc/ubcpi/pull/167 upstream.
- name: git+https://github.com/edx/ubcpi.git@7b7a54ef4b99614f749128d3a1f47d31c143e25b#egg=ubcpi-xblock
extra_args: -e
# Vector Drawing and ActiveTable XBlocks (Davidson)
- name: git+https://github.com/open-craft/xblock-vectordraw.git@76976425356dfc7f13570f354c0c438db84c2840#egg=xblock-vectordraw==0.3.0
extra_args: -e
- name: git+https://github.com/open-craft/xblock-activetable.git@013003aa3ce28f0ae03b8227dc3a6daa4e19997d#egg=xblock-activetable
extra_args: -e
- name: edx-zoom==1.8
# Stanford-developed XBlocks (technically unsupported, but here to ease migration of courses from Lagunita)
- name: git+https://github.com/edx/xblock-qualtrics-survey.git@d3d2773bcf453d14a0626f813911dc308ddce572#egg=xblock_qualtrics_survey
extra_args: -e
- name: git+https://github.com/edx/xblock-in-video-quiz.git@c1cc11f87285cd885d76604145433dae87434a6d#egg=invideoquiz-xblock
extra_args: -e
- name: git+https://github.com/edx/xblock-submit-and-compare@28751ed01c4d4ae5f10f9ddee710e76f8b8ae640#egg=xblock-submit-and-compare
extra_args: -e
- name: git+https://github.com/edx/xblock-free-text-response@86b1e546f5a194faf36ae425df28ffbbe7791e31#egg=xblock-free-text-response
extra_args: -e
- name: git+https://github.com/edx/xblock-sql-grader@56b13ea9719d5c6e910ec2edf98b35dda0ba9c57#egg=xblock-sql-grader
extra_args: -e
- name: git+https://github.com/edx/xblock-image-modal@20262ae713bf307f7b13afe73c8a32c5c56b4fd6#egg=xblock-image-modal
extra_args: -e
# XBlocks associated with the LabXchange project
- name: git+https://github.com/open-craft/labxchange-xblocks.git@5352e93cb26c789aecbf92fabf210179483616a2#egg=labxchange-xblocks
extra_args: -e
# "Pathways" learning context plugin for the LabXchange project
- name: git+https://github.com/open-craft/lx-pathway-plugin.git@337abf249b7c5ecc1e78a44d2e639e1ab65f2085#egg=lx-pathway-plugin
extra_args: -e
# List of custom middlewares that should be used in edxapp to process
# incoming HTTP resquests. Should be a list of plain strings that fully
# qualify Python classes or functions that can be used as Django middleware.
EDXAPP_EXTRA_MIDDLEWARE_CLASSES: []
EDXAPP_GOOGLE_ANALYTICS_ACCOUNT: !!null
EDXAPP_GOOGLE_ANALYTICS_LINKEDIN: ""
EDXAPP_GOOGLE_ANALYTICS_TRACKING_ID: ""
EDXAPP_GOOGLE_SITE_VERIFICATION_ID: ""
EDXAPP_OPTIMIZELY_PROJECT_ID: !!null
EDXAPP_TRACKING_SEGMENTIO_WEBHOOK_SECRET: ""
EDXAPP_CMS_SEGMENT_KEY: !!null
EDXAPP_LMS_SEGMENT_KEY: !!null
EDXAPP_EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST: []
EDXAPP_EDX_API_KEY: "PUT_YOUR_API_KEY_HERE"
# This is the default set in common.py
EDXAPP_VERIFY_STUDENT:
DAYS_GOOD_FOR: 365
EXPIRING_SOON_WINDOW: 28
EDXAPP_CONTENTSTORE_ADDITIONAL_OPTS: {}
EDXAPP_BULK_EMAIL_EMAILS_PER_TASK: 500
# If using microsites this should point to the microsite repo
EDXAPP_MICROSITE_ROOT_DIR: "{{ edxapp_app_dir }}/edx-microsite"
# this dictionary defines what microsites are configured
EDXAPP_MICROSITE_CONFIGURATION: {}
# Instructor code that will not be run in the code sandbox
EDXAPP_COURSES_WITH_UNSAFE_CODE: []
EDXAPP_SESSION_COOKIE_DOMAIN: ""
EDXAPP_SESSION_COOKIE_NAME: "sessionid"
# Whether to run reindex_course on deploy
EDXAPP_REINDEX_ALL_COURSES: false
# XML Course related flags
EDXAPP_XML_FROM_GIT: false
EDXAPP_XML_S3_BUCKET: !!null
EDXAPP_XML_S3_KEY: !!null
EDXAPP_NEWRELIC_LMS_APPNAME: "{{ COMMON_ENVIRONMENT }}-{{ COMMON_DEPLOYMENT }}-edxapp-lms"
EDXAPP_NEWRELIC_CMS_APPNAME: "{{ COMMON_ENVIRONMENT }}-{{ COMMON_DEPLOYMENT }}-edxapp-cms"
EDXAPP_NEWRELIC_WORKERS_APPNAME: "{{ COMMON_ENVIRONMENT }}-{{ COMMON_DEPLOYMENT }}-edxapp-workers"
EDXAPP_LMS_ENABLE_NEWRELIC_DISTRIBUTED_TRACING: false
EDXAPP_CMS_ENABLE_NEWRELIC_DISTRIBUTED_TRACING: false
EDXAPP_WORKERS_ENABLE_NEWRELIC_DISTRIBUTED_TRACING: false
EDXAPP_ORA2_FILE_PREFIX: '{{ COMMON_ENVIRONMENT }}-{{ COMMON_DEPLOYMENT }}/ora2'
EDXAPP_FILE_UPLOAD_STORAGE_BUCKET_NAME: '{{ EDXAPP_AWS_STORAGE_BUCKET_NAME }}'
EDXAPP_FILE_UPLOAD_STORAGE_PREFIX: 'submissions_attachments'
EDXAPP_CODE_JAIL_LIMITS:
# Limit the memory of the jailed process to something high but not
# infinite (512MiB in bytes)
VMEM: 536870912
# Time in seconds that the jailed process has to run.
REALTIME: 3
# Needs to be non-zero so that jailed code can use it as their temp directory.(1MiB in bytes)
FSIZE: 1048576
CPU: 1
PROXY: 0
# Set the number of workers explicitly for lms and cms
# Should be set to
# EDXAPP_WORKERS:
# lms: <num workers>
# cms: <num workers>
EDXAPP_WORKERS: !!null
# Dashboard URL, assumes that the insights role is installed locally
EDXAPP_ANALYTICS_DASHBOARD_URL: "http://localhost:18110/courses"
EDXAPP_REGISTRATION_EXTRA_FIELDS:
confirm_email: "hidden"
level_of_education: "optional"
gender: "optional"
year_of_birth: "optional"
mailing_address: "hidden"
goals: "optional"
honor_code: "required"
terms_of_service: "hidden"
city: "hidden"
country: "required"
EDXAPP_CELERY_WORKERS:
- queue: default
service_variant: cms
concurrency: 1
monitor: True
prefetch_optimization: default
- queue: high
service_variant: cms
concurrency: 1
monitor: True
prefetch_optimization: default
- queue: default
service_variant: lms
concurrency: 1
monitor: True
prefetch_optimization: default
- queue: high
service_variant: lms
concurrency: 1
monitor: True
prefetch_optimization: default
- queue: high_mem
service_variant: lms
concurrency: 1
monitor: False
max_tasks_per_child: 1
prefetch_optimization: default
EDXAPP_RECALCULATE_GRADES_ROUTING_KEY: 'edx.lms.core.default'
EDXAPP_POLICY_CHANGE_GRADES_ROUTING_KEY: 'edx.lms.core.default'
EDXAPP_BULK_EMAIL_ROUTING_KEY_SMALL_JOBS: 'edx.lms.core.default'
EDXAPP_PROGRAM_CERTIFICATES_ROUTING_KEY: 'edx.lms.core.default'
EDXAPP_LMS_CELERY_QUEUES: "{{ edxapp_workers|selectattr('service_variant', 'equalto', 'lms')|map(attribute='queue')|map('regex_replace', '(.*)', 'edx.lms.core.\\1')|list }}"
EDXAPP_CMS_CELERY_QUEUES: "{{ edxapp_workers|selectattr('service_variant', 'equalto', 'cms')|map(attribute='queue')|map('regex_replace', '(.*)', 'edx.cms.core.\\1')|list }}"
EDXAPP_DEFAULT_CACHE_VERSION: "1"
EDXAPP_OAUTH_ENFORCE_SECURE: True
EDXAPP_OAUTH_EXPIRE_CONFIDENTIAL_CLIENT_DAYS: 365
EDXAPP_OAUTH_EXPIRE_PUBLIC_CLIENT_DAYS: 30
# This turns on deletion of access tokens, refresh tokens, and grants when consumed (not bulk deletions)
EDXAPP_OAUTH_DELETE_EXPIRED: True
# Unused directory for edxapp application yaml configuration files
EDXAPP_CFG_DIR: "{{ COMMON_CFG_DIR }}/edxapp"
EDXAPP_DEPRECATED_ADVANCED_COMPONENT_TYPES: []
# Video Pipeline Settings
EDXAPP_VIDEO_UPLOAD_PIPELINE:
BUCKET: ''
ROOT_PATH: ''
EDXAPP_CORS_ORIGIN_WHITELIST: []
EDXAPP_CORS_ORIGIN_ALLOW_ALL: false
EDXAPP_CROSS_DOMAIN_CSRF_COOKIE_DOMAIN: ""
EDXAPP_CROSS_DOMAIN_CSRF_COOKIE_NAME: ""
EDXAPP_CSRF_COOKIE_SECURE: false
EDXAPP_CSRF_TRUSTED_ORIGINS: []
EDXAPP_LOGIN_REDIRECT_WHITELIST: []
# edx-rbac Related Settings
EDXAPP_SYSTEM_WIDE_ROLE_CLASSES: []
# Setting for enterprise marketing footer query params
EDXAPP_ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS: {}
# Setting for limiting API calls for integrated channel transmission.
# The setting key maps to the channel code (e.g. 'SAP' for success factors), Channel code is defined as
# part of django model of each integrated channel in edx-enterprise.
# The absence of a key/value pair translates to NO LIMIT on the number of "chunks" transmitted per cycle.
EDXAPP_INTEGRATED_CHANNELS_API_CHUNK_TRANSMISSION_LIMIT:
SAP: 1
# E-Commerce Related Settings
EDXAPP_ECOMMERCE_PUBLIC_URL_ROOT: "http://localhost:8002"
EDXAPP_ECOMMERCE_API_URL: "http://localhost:8002/api/v2"
# TODO (CCB) Remove this after all references in edx/edx-platform have been removed.
EDXAPP_ECOMMERCE_API_SIGNING_KEY: "{{ EDXAPP_JWT_SECRET_KEY }}"
EDXAPP_COURSE_CATALOG_URL_ROOT: "http://localhost:8008"
EDXAPP_COURSE_CATALOG_API_URL: "http://localhost:8008/api/v1"
EDXAPP_CREDENTIALS_INTERNAL_SERVICE_URL: "http://localhost:8005"
EDXAPP_CREDENTIALS_PUBLIC_SERVICE_URL: "http://localhost:8005"
# Learner portal settings
EDXAPP_LEARNER_PORTAL_URL_ROOT: "https://learner-portal-{{ EDXAPP_LMS_BASE }}"
# Blockstore Related Settings
EDXAPP_BLOCKSTORE_PUBLIC_URL_ROOT: "http://localhost:18250"
EDXAPP_BLOCKSTORE_API_URL: "http://localhost:18250/api/v1"
# List of all logout URIs for IDAs which have been converted from using DOP to using DOT.
EDXAPP_IDA_LOGOUT_URI_LIST: []
# which access.py permission name to check in order to determine if a course about page is
# visible. We default this to the legacy permission 'see_exists'.
EDXAPP_COURSE_CATALOG_VISIBILITY_PERMISSION: 'see_exists'
EDXAPP_COURSE_ABOUT_VISIBILITY_PERMISSION: 'see_exists'
EDXAPP_DEFAULT_COURSE_VISIBILITY_IN_CATALOG: 'both'
EDXAPP_DEFAULT_MOBILE_AVAILABLE: false
# Mailchimp Settings
EDXAPP_MAILCHIMP_NEW_USER_LIST_ID: null
# Social Sharing Related Settings
EDXAPP_SOCIAL_SHARING_SETTINGS:
CUSTOM_COURSE_URLS: false
DASHBOARD_FACEBOOK: false
CERTIFICATE_FACEBOOK: false
CERTIFICATE_TWITTER: false
DASHBOARD_TWITTER: false
#To use AWS S3 as your backend, you need different kwargs:
# EDXAPP_PROFILE_IMAGE_BACKEND_CONFIG:
# class: storages.backends.s3boto.S3BotoStorage
# options:
# location: path/to/images # Note: The location should not begin with a leading slash.
# bucket: mybucket
# custom_domain: mybucket.s3.amazonaws.com
# access_key: XXXAWS_ACCESS_KEYXXX
# secret_key: XXXAWS_SECRETY_KEYXXX
# headers:
# Cache-Control: max-age-{{ EDXAPP_PROFILE_IMAGE_MAX_AGE }}
#NB: access_key and secret_key are unneccessary if you use IAM roles
EDXAPP_PROFILE_IMAGE_BACKEND:
class: openedx.core.storage.OverwriteStorage
options:
location: "{{ edxapp_media_dir }}/profile-images/"
base_url: "{{ EDXAPP_MEDIA_URL }}/profile-images/"
EDXAPP_PROFILE_IMAGE_MAX_AGE: 31536000
# used to salt hashed usernames for profile image filenames
EDXAPP_PROFILE_IMAGE_SECRET_KEY: placeholder_secret_key
# In bytes
EDXAPP_PROFILE_IMAGE_MAX_BYTES: 1048576
EDXAPP_PROFILE_IMAGE_MIN_BYTES: 100
EDXAPP_PROFILE_IMAGE_SIZES_MAP:
full: 500
large: 120
medium: 50
small: 30
EDXAPP_PARSE_KEYS: {}
# In a production environment when using separate clusters, you'll
# want to route requests differently from the LMS (internal api) and
# from JS (public API)
EDXAPP_EDXNOTES_PUBLIC_API: http://localhost:18120/api/v1
EDXAPP_EDXNOTES_INTERNAL_API: http://localhost:18120/api/v1
EDXAPP_XBLOCK_SETTINGS: {}
# Secret keys shared with credit providers.
# Used to digitally sign credit requests (us --> provider)
# and validate responses (provider --> us).
# Each key in the dictionary is a credit provider ID, and
# the value is the 32-character key.
EDXAPP_CREDIT_PROVIDER_SECRET_KEYS: {}
# Proctoring configuration (redirct URLs and keys shared between systems)
EDXAPP_PROCTORING_SETTINGS: {}
EDXAPP_PROCTORING_BACKENDS:
DEFAULT: "null"
# The null key needs to be quoted because
# null is a language independent type in YAML
"null": {}
# Configuration needed for the retirement service
EDXAPP_RETIREMENT_SERVICE_USER_EMAIL: "retirement_worker@example.com"
EDXAPP_RETIREMENT_SERVICE_USER_NAME: "retirement_worker"
EDXAPP_RETIRED_USERNAME_PREFIX: "retired__user_"
EDXAPP_RETIRED_EMAIL_PREFIX: "retired__user_"
EDXAPP_RETIRED_EMAIL_DOMAIN: "retired.invalid"
EDXAPP_RETIRED_USER_SALTS:
- "OVERRIDE ME WITH A RANDOM VALUE"
- "ROTATE SALTS BY APPENDING NEW VALUES"
# These get loaded into database models per environment via management command
# These are the required states, environmental overrides are in edx-internal.
EDXAPP_RETIREMENT_STATES:
- "PENDING"
- "ERRORED"
- "ABORTED"
- "COMPLETE"
EDXAPP_USERNAME_REPLACEMENT_WORKER: "OVERRIDE THIS WITH A VALID USERNAME"
# Comprehensive Theming
# Deprecated, maintained for backward compatibility
EDXAPP_COMPREHENSIVE_THEME_DIR: ""
# list of paths to the comprehensive theme directories
EDXAPP_COMPREHENSIVE_THEME_DIRS:
- "{{ EDXAPP_COMPREHENSIVE_THEME_DIR }}"
# list of paths to the comprehensive theme locale directories
EDXAPP_COMPREHENSIVE_THEME_LOCALE_PATHS: []
# Name of the default site theme
EDXAPP_DEFAULT_SITE_THEME: ""
EDXAPP_ENABLE_COMPREHENSIVE_THEMING: false
# Git repo for the comprehensive theme (if using a comprehensive theme
# other than the ones bundled with edx/platform)
EDXAPP_COMPREHENSIVE_THEME_SOURCE_REPO: ""
# Git branch, tag, or revision to check out from
# EDXAPP_COMPREHENSIVE_THEME_SOURCE_REPO
EDXAPP_COMPREHENSIVE_THEME_VERSION: ""
# SAML KEYS
EDXAPP_SOCIAL_AUTH_SAML_SP_PRIVATE_KEY: ''
EDXAPP_SOCIAL_AUTH_SAML_SP_PUBLIC_CERT: ''
EDXAPP_SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT: {}
EDXAPP_SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT: {}
# Session cookie setting
# Only set this to true for client side profiling, never for production
EDXAPP_SESSION_SAVE_EVERY_REQUEST: false
EDXAPP_SESSION_COOKIE_SECURE: false
# Optionally add a cron job to run the "clearsessions" management command to delete expired sessions
# Hours and minutes follow cron syntax.
# E.g. "15,19" hours and "0" minutes will run it at 15:00 and 19:00.
# "*" hours and "5" minutes will run it every hour at past 5 minutes.
EDXAPP_CLEARSESSIONS_CRON_ENABLED: false
EDXAPP_CLEARSESSIONS_CRON_HOURS: "14"
EDXAPP_CLEARSESSIONS_CRON_MINUTES: "0"
# Add additional cron jobs from the given list.
# See ansible docs for valid options for these items:
# https://docs.ansible.com/ansible/latest/modules/cron_module.html
EDXAPP_ADDITIONAL_CRON_JOBS: []
EDXAPP_VIDEO_IMAGE_MAX_AGE: 31536000
# This is django storage configuration for Video Image settings.
# You can configure S3 or Swift in lms/envs/common.py
EDXAPP_VIDEO_IMAGE_SETTINGS:
VIDEO_IMAGE_MAX_BYTES : 2097152
VIDEO_IMAGE_MIN_BYTES : 2048
STORAGE_KWARGS:
location: "{{ edxapp_media_dir_s3 }}/"
base_url: "{{ EDXAPP_MEDIA_URL }}/"
DIRECTORY_PREFIX: 'video-images/'
EDXAPP_VIDEO_TRANSCRIPTS_MAX_AGE: 31536000
# This is django storage configuration for Video Transcripts settings.
EDXAPP_VIDEO_TRANSCRIPTS_SETTINGS:
VIDEO_TRANSCRIPTS_MAX_BYTES : 3145728
STORAGE_KWARGS:
location: "{{ edxapp_media_dir_s3 }}/"
base_url: "{{ EDXAPP_MEDIA_URL }}/"
DIRECTORY_PREFIX: 'video-transcripts/'
# Course Block Structures
EDXAPP_BLOCK_STRUCTURES_SETTINGS:
# Delay, in seconds, after a new edit of a course is published
# before updating the block structures cache. This is needed
# for a better chance at getting the latest changes when there
# are secondary reads in sharded mongoDB clusters. See TNL-5041
# for more info.
COURSE_PUBLISH_TASK_DELAY: 30
# Delay, in seconds, between retry attempts if a task fails.
TASK_DEFAULT_RETRY_DELAY: 30
# Maximum number of retries per task.
TASK_MAX_RETRIES: 5
PRUNING_ACTIVE: false
# Configuration needed for LMS to communicate with the Discovery service
DISCOVERY_SERVICE_USER_EMAIL: "discovery_worker@example.com"
DISCOVERY_SERVICE_USER_NAME: "discovery_worker"
# Configuration needed for LMS to communicate with the Ecommerce service
ECOMMERCE_SERVICE_USER_EMAIL: "ecommerce_worker@example.com"
ECOMMERCE_SERVICE_USER_NAME: "ecommerce_worker"
# Configuration needed for LMS to communicate with the Credentials service
CREDENTIALS_SERVICE_USER_EMAIL: "credentials_worker@example.com"
CREDENTIALS_SERVICE_USER_NAME: "credentials_worker"
# Configuration needed for LMS to communicate with the Insights service
INSIGHTS_SERVICE_USER_EMAIL: "insights_worker@example.com"
INSIGHTS_SERVICE_USER_NAME: "insights_worker"
# Configuration needed for LMS to communicate with the Credentials service
REGISTRAR_SERVICE_USER_EMAIL: "registrar_worker@example.com"
REGISTRAR_SERVICE_USER_NAME: "registrar_worker"
# Configuration needed for LMS to communicate with the Designer service
DESIGNER_SERVICE_USER_EMAIL: "designer_worker@example.com"
DESIGNER_SERVICE_USER_NAME: "designer_worker"
# Configuration settings needed for the LMS to communicate with the Enterprise service.
EDXAPP_ENTERPRISE_API_URL: "{{ EDXAPP_LMS_INTERNAL_ROOT_URL }}/enterprise/api/v1"
EDXAPP_ENTERPRISE_SERVICE_WORKER_EMAIL: "enterprise_worker@example.com"
EDXAPP_ENTERPRISE_SERVICE_WORKER_USERNAME: "enterprise_worker"
EDXAPP_VEDA_SERVICE_CLIENT_NAME: "veda"
EDXAPP_VEDA_SERVICE_API_URL: "{{ EDXAPP_LMS_BASE_SCHEME | default('https') }}://veda-{{ EDXAPP_LMS_BASE }}/api/"
EDXAPP_VEDA_SERVICE_USER_EMAIL: "veda_service_user@example.com"
EDXAPP_VEDA_SERVICE_USER_NAME: "veda_service_user"
EDXAPP_ENTERPRISE_COURSE_ENROLLMENT_AUDIT_MODES:
- audit
- honor
EDXAPP_ENTERPRISE_CUSTOMER_SUCCESS_EMAIL: "customersuccess@edx.org"
EDXAPP_ENTERPRISE_INTEGRATIONS_EMAIL: "enterprise-integrations@edx.org"
EDXAPP_ENTERPRISE_ENROLLMENT_API_URL: "{{ EDXAPP_LMS_INTERNAL_ROOT_URL }}/api/enrollment/v1/"
EDXAPP_ENTERPRISE_SUPPORT_URL: ''
EDXAPP_ENTERPRISE_TAGLINE: ''
# The assigned ICP license number for display in the platform footer
EDXAPP_ICP_LICENSE: !!null
EDXAPP_ICP_LICENSE_INFO: {}
# Base Cookie Domain to share cookie across edx domains
EDXAPP_BASE_COOKIE_DOMAIN: "{{ EDXAPP_LMS_SITE_NAME }}"
# Account password configuration
EDXAPP_AUTH_PASSWORD_VALIDATORS:
- NAME: 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator'
- NAME: 'util.password_policy_validators.MinimumLengthValidator'
OPTIONS:
min_length: 2
- NAME: 'util.password_policy_validators.MaximumLengthValidator'
OPTIONS:
max_length: 75
# The age at which a learner no longer requires parental consent, or None
EDXAPP_PARENTAL_CONSENT_AGE_LIMIT: 13
# Scorm Xblock configurations
EDXAPP_SCORM_PKG_STORAGE_DIR: !!null
EDXAPP_SCORM_PLAYER_LOCAL_STORAGE_ROOT: !!null
# maintenance banner message (only actually enabled via waffle switch)
EDXAPP_MAINTENANCE_BANNER_TEXT: "Sample banner message"
EDXAPP_PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG:
ENFORCE_COMPLIANCE_ON_LOGIN: false
# Needed to link the LMS instructor dashboard to the writable gradebook micro-frontend
EDXAPP_LMS_WRITABLE_GRADEBOOK_URL: null
# Needed to link to the new profile micro-frontend.
EDXAPP_PROFILE_MICROFRONTEND_URL: null
# Needed to link to the new order history micro-frontend.
EDXAPP_ORDER_HISTORY_MICROFRONTEND_URL: null
# Needed to link to the new account micro-frontend.
EDXAPP_ACCOUNT_MICROFRONTEND_URL: null
# Needed to link to the program console micro-frontend.
EDXAPP_PROGRAM_CONSOLE_MICROFRONTEND_URL: null
# Needed to link to the learning micro-frontend.
EDXAPP_LEARNING_MICROFRONTEND_URL: null
# Needed to link to the course-authoring micro-frontend
EDXAPP_COURSE_AUTHORING_MICROFRONTEND_URL: null
# Remote config
EDXAPP_HERMES_ENABLED: "{{ COMMON_HERMES_ENABLED }}"
EDXAPP_DECRYPT_CONFIG_ENABLED: "{{ COMMON_DECRYPT_CONFIG_ENABLED }}"
EDXAPP_COPY_CONFIG_ENABLED: "{{ COMMON_COPY_CONFIG_ENABLED }}"
# Dashboard courses default limit
EDXAPP_DASHBOARD_COURSE_LIMIT: null
#-------- Everything below this line is internal to the role ------------
#Use YAML references (& and *) and hash merge <<: to factor out shared settings
#see http://atechie.net/2009/07/merging-hashes-in-yaml-conf-files/
edxapp_data_dir: "{{ COMMON_DATA_DIR }}/edxapp"
edxapp_app_dir: "{{ COMMON_APP_DIR }}/edxapp"
edxapp_log_dir: "{{ COMMON_LOG_DIR }}/edx"
edxapp_venvs_dir: "{{ edxapp_app_dir }}/venvs"
edxapp_venv_dir: "{{ edxapp_venvs_dir }}/edxapp"
edxapp_venv_bin: "{{ edxapp_venv_dir }}/bin"
edxapp_nodeenv_dir: "{{ edxapp_app_dir }}/nodeenvs/edxapp"
edxapp_nodeenv_bin: "{{ edxapp_nodeenv_dir }}/bin"
edxapp_settings: '{{ EDXAPP_SETTINGS }}'
EDXAPP_NODE_VERSION: "12"
# This is where node installs modules, not node itself
edxapp_node_bin: "{{ edxapp_code_dir }}/node_modules/.bin"
edxapp_user: edxapp
edxapp_user_createhome: 'no'
edxapp_user_shell: '/bin/false'
edxapp_deploy_path: "{{ edxapp_venv_bin }}:{{ edxapp_code_dir }}/bin:{{ edxapp_node_bin }}:{{ edxapp_nodeenv_bin }}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
edxapp_staticfile_dir: "{{ edxapp_data_dir }}/staticfiles"
edxapp_media_dir: "{{ edxapp_data_dir }}/media"
edxapp_media_dir_s3: "{{ edxapp_media_dir | regex_replace('^\\/', '') }}"
edxapp_course_static_dir: "{{ edxapp_data_dir }}/course_static"
edxapp_course_data_dir: "{{ edxapp_data_dir }}/data"
edxapp_upload_dir: "{{ edxapp_data_dir }}/uploads"
edxapp_theme_dir: "{{ edxapp_data_dir }}/themes"
edxapp_git_identity: "{{ edxapp_app_dir }}/edxapp-git-identity"
edxapp_git_ssh: "/tmp/edxapp_git_ssh.sh"
edxapp_studio_cfg: "{{ COMMON_CFG_DIR }}/studio.yml"
edxapp_lms_cfg: "{{ COMMON_CFG_DIR }}/lms.yml"
edxapp_revision_cfg: "{{ COMMON_CFG_DIR }}/revisions.yml"
edxapp_devstack_logs:
- "{{ supervisor_log_dir }}/cms-stdout.log"
- "{{ supervisor_log_dir }}/cms-stderr.log"
- "{{ supervisor_log_dir }}/lms-stdout.log"
- "{{ supervisor_log_dir }}/lms-stderr.log"
# Only install packages which are appropriate for this environment
edxapp_npm_production: "yes"
edxapp_workers: "{{ EDXAPP_CELERY_WORKERS }}"
EDXAPP_WORKER_DEFAULT_STOPWAITSECS: 432000
# setup for python codejail
edxapp_sandbox_venv_dir: '{{ edxapp_venvs_dir }}/edxapp-sandbox'
edxapp_sandbox_user: 'sandbox' # I think something about the codejail requires hardcoding this to sandbox:sandbox
edxapp_sandbox_python_version: 'python3.5' # change to 'python2.7' if you want to go back to the old setting.
# apparmor command
edxapp_aa_command: "{% if EDXAPP_SANDBOX_ENFORCE %}aa-enforce{% else %}aa-complain{% endif %}"
# TODO: old style variable syntax is necessary
# for lists and dictionaries
edxapp_helper_scripts:
- edxapp-migrate
- edxapp-runserver
- edxapp-shell
edxapp_environment_default:
LANG: "{{ EDXAPP_LANG }}"
NO_PREREQ_INSTALL: "{{ EDXAPP_NO_PREREQ_INSTALL }}"
SKIP_WS_MIGRATIONS: 1
PATH: "{{ edxapp_deploy_path }}"
# the settings module for edxapp, DJANGO_SETTINGS_MODULE
# should be set to {{SERVICE_VARIANT}}.{{EDXAPP_SETTINGS}}
# where SERVICE_VARIANT is lms or cms
EDX_PLATFORM_SETTINGS: "{{ EDXAPP_SETTINGS }}"
# Current set to the app dir for json config, this should
# be updated to /edx/etc/edxapp when the switch to
# yaml based configs is complete
CONFIG_ROOT: "{{ edxapp_app_dir }}"
LMS_CFG: "{{ edxapp_lms_cfg }}"
STUDIO_CFG: "{{ edxapp_studio_cfg }}"
BOTO_CONFIG: "{{ edxapp_app_dir }}/.boto"
REVISION_CFG: "{{ edxapp_revision_cfg }}"
SETUPTOOLS_USE_DISTUTILS: "stdlib" # https://setuptools.readthedocs.io/en/latest/history.html#v50-0-0
edxapp_environment_extra: {}
edxapp_environment: "{{ edxapp_environment_default | combine(edxapp_environment_extra) }}"
edxapp_generic_contentstore_config: &edxapp_generic_default_contentstore
ENGINE: 'xmodule.contentstore.mongo.MongoContentStore'
#
# connection strings are duplicated temporarily for
# backward compatibility
#
OPTIONS:
db: "{{ EDXAPP_MONGO_DB_NAME }}"
host: "{{ EDXAPP_MONGO_HOSTS }}"
password: "{{ EDXAPP_MONGO_PASSWORD }}"
port: "{{ EDXAPP_MONGO_PORT }}"
user: "{{ EDXAPP_MONGO_USER }}"
ssl: "{{ EDXAPP_MONGO_USE_SSL }}"
auth_source: "{{ EDXAPP_MONGO_AUTH_DB }}"
edxapp_generic_doc_store_config: &edxapp_generic_default_docstore
db: "{{ EDXAPP_MONGO_DB_NAME }}"
host: "{{ EDXAPP_MONGO_HOSTS }}"
replicaSet: "{{ EDXAPP_MONGO_REPLICA_SET }}"
password: "{{ EDXAPP_MONGO_PASSWORD }}"
port: "{{ EDXAPP_MONGO_PORT }}"
user: "{{ EDXAPP_MONGO_USER }}"
collection: 'modulestore'
ssl: "{{ EDXAPP_MONGO_USE_SSL }}"
# https://api.mongodb.com/python/2.9.1/api/pymongo/mongo_client.html#module-pymongo.mongo_client
socketTimeoutMS: 3000 # default is never timeout while the connection is open, this means it needs to explicitly close raising pymongo.errors.NetworkTimeout
connectTimeoutMS: 2000 # default is 20000, I believe raises pymongo.errors.ConnectionFailure
# Not setting waitQueueTimeoutMS and waitQueueMultiple since pymongo defaults to nobody being allowed to wait
authsource: "{{ EDXAPP_MONGO_AUTH_DB }}"
EDXAPP_LMS_DRAFT_DOC_STORE_CONFIG:
<<: *edxapp_generic_default_docstore
read_preference: "{{ EDXAPP_LMS_DRAFT_DOC_STORE_READ_PREFERENCE }}"
EDXAPP_LMS_SPLIT_DOC_STORE_CONFIG:
<<: *edxapp_generic_default_docstore
read_preference: "{{ EDXAPP_LMS_SPLIT_DOC_STORE_READ_PREFERENCE }}"
EDXAPP_CMS_DOC_STORE_CONFIG:
<<: *edxapp_generic_default_docstore
read_preference: "{{ EDXAPP_MONGO_CMS_READ_PREFERENCE }}"
edxapp_databases:
# edxapp's edxapp-migrate scripts and the edxapp_migrate play
# will ensure that any DB not named read_replica will be migrated
# for both the lms and cms.
read_replica:
ENGINE: 'django.db.backends.mysql'
NAME: "{{ EDXAPP_MYSQL_REPLICA_DB_NAME }}"
USER: "{{ EDXAPP_MYSQL_REPLICA_USER }}"
PASSWORD: "{{ EDXAPP_MYSQL_REPLICA_PASSWORD }}"
HOST: "{{ EDXAPP_MYSQL_REPLICA_HOST }}"
PORT: "{{ EDXAPP_MYSQL_REPLICA_PORT }}"
CONN_MAX_AGE: "{{ EDXAPP_MYSQL_CONN_MAX_AGE }}"
OPTIONS: "{{ EDXAPP_MYSQL_REPLICA_OPTIONS }}"
default:
ENGINE: 'django.db.backends.mysql'
NAME: "{{ EDXAPP_MYSQL_DB_NAME }}"
USER: "{{ EDXAPP_MYSQL_USER }}"
PASSWORD: "{{ EDXAPP_MYSQL_PASSWORD }}"
HOST: "{{ EDXAPP_MYSQL_HOST }}"
PORT: "{{ EDXAPP_MYSQL_PORT }}"
ATOMIC_REQUESTS: "{{ EDXAPP_MYSQL_ATOMIC_REQUESTS }}"
CONN_MAX_AGE: "{{ EDXAPP_MYSQL_CONN_MAX_AGE }}"
OPTIONS: "{{ EDXAPP_MYSQL_OPTIONS }}"
student_module_history:
ENGINE: 'django.db.backends.mysql'
NAME: "{{ EDXAPP_MYSQL_CSMH_DB_NAME }}"
USER: "{{ EDXAPP_MYSQL_CSMH_USER }}"
PASSWORD: "{{ EDXAPP_MYSQL_CSMH_PASSWORD }}"
HOST: "{{ EDXAPP_MYSQL_CSMH_HOST }}"
PORT: "{{ EDXAPP_MYSQL_CSMH_PORT }}"
CONN_MAX_AGE: "{{ EDXAPP_MYSQL_CONN_MAX_AGE }}"
OPTIONS: "{{ EDXAPP_MYSQL_CSMH_OPTIONS }}"
edxapp_generic_auth_config: &edxapp_generic_auth
EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST: "{{ EDXAPP_EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST }}"
ECOMMERCE_API_SIGNING_KEY: "{{ EDXAPP_ECOMMERCE_API_SIGNING_KEY }}"
DEFAULT_FILE_STORAGE: "{{ EDXAPP_DEFAULT_FILE_STORAGE }}"
AWS_ACCESS_KEY_ID: "{{ EDXAPP_AWS_ACCESS_KEY_ID }}"
AWS_SECRET_ACCESS_KEY: "{{ EDXAPP_AWS_SECRET_ACCESS_KEY }}"
AWS_QUERYSTRING_AUTH: "{{ EDXAPP_AWS_QUERYSTRING_AUTH }}"
AWS_STORAGE_BUCKET_NAME: "{{ EDXAPP_AWS_STORAGE_BUCKET_NAME }}"
AWS_S3_CUSTOM_DOMAIN: "{{ EDXAPP_AWS_S3_CUSTOM_DOMAIN }}"
SWIFT_USERNAME: "{{ EDXAPP_SWIFT_USERNAME }}"
SWIFT_KEY: "{{ EDXAPP_SWIFT_KEY }}"
SWIFT_TENANT_ID: "{{ EDXAPP_SWIFT_TENANT_ID }}"
SWIFT_TENANT_NAME: "{{ EDXAPP_SWIFT_TENANT_NAME }}"
SWIFT_AUTH_URL: "{{ EDXAPP_SWIFT_AUTH_URL }}"
SWIFT_AUTH_VERSION: "{{ EDXAPP_SWIFT_AUTH_VERSION }}"
SWIFT_REGION_NAME: "{{ EDXAPP_SWIFT_REGION_NAME }}"
SWIFT_USE_TEMP_URLS: "{{ EDXAPP_SWIFT_USE_TEMP_URLS }}"
SWIFT_TEMP_URL_KEY: "{{ EDXAPP_SWIFT_TEMP_URL_KEY }}"
SWIFT_TEMP_URL_DURATION: "{{ EDXAPP_SWIFT_TEMP_URL_DURATION }}"
SECRET_KEY: "{{ EDXAPP_EDXAPP_SECRET_KEY }}"
XQUEUE_INTERFACE:
basic_auth: "{{ EDXAPP_XQUEUE_BASIC_AUTH }}"
django_auth: "{{ EDXAPP_XQUEUE_DJANGO_AUTH }}"
url: "{{ EDXAPP_XQUEUE_URL }}"
DATABASES: "{{ edxapp_databases }}"
EMAIL_HOST_USER: "{{ EDXAPP_EMAIL_HOST_USER }}"
EMAIL_HOST_PASSWORD: "{{ EDXAPP_EMAIL_HOST_PASSWORD }}"
YOUTUBE_API_KEY: "{{ EDXAPP_YOUTUBE_API_KEY }}"
ZENDESK_USER: "{{ EDXAPP_ZENDESK_USER }}"
ZENDESK_API_KEY: "{{ EDXAPP_ZENDESK_API_KEY }}"
ZENDESK_OAUTH_ACCESS_TOKEN: "{{ EDXAPP_ZENDESK_OAUTH_ACCESS_TOKEN }}"
ZENDESK_GROUP_ID_MAPPING: "{{ EDXAPP_ZENDESK_GROUP_ID_MAPPING }}"
CELERY_BROKER_USER: "{{ EDXAPP_CELERY_USER }}"
CELERY_BROKER_PASSWORD: "{{ EDXAPP_CELERY_PASSWORD }}"
CELERY_TIMEZONE: "{{ EDXAPP_CELERY_TIMEZONE }}"
GOOGLE_ANALYTICS_ACCOUNT: "{{ EDXAPP_GOOGLE_ANALYTICS_ACCOUNT }}"
DJFS: "{{ EDXAPP_DJFS }}"
CREDIT_PROVIDER_SECRET_KEYS: "{{ EDXAPP_CREDIT_PROVIDER_SECRET_KEYS }}"
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY: "{{ EDXAPP_SOCIAL_AUTH_SAML_SP_PRIVATE_KEY }}"
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT: "{{ EDXAPP_SOCIAL_AUTH_SAML_SP_PUBLIC_CERT }}"
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT: "{{ EDXAPP_SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT }}"
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT: "{{ EDXAPP_SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT }}"
FACEBOOK_APP_ID: "{{ EDXAPP_FACEBOOK_APP_ID }}"
FACEBOOK_APP_SECRET: "{{ EDXAPP_FACEBOOK_APP_SECRET }}"
FACEBOOK_API_VERSION: "{{ EDXAPP_FACEBOOK_API_VERSION }}"
ENTERPRISE_SERVICE_WORKER_USERNAME: "{{ EDXAPP_ENTERPRISE_SERVICE_WORKER_USERNAME }}"
BRANCH_IO_KEY: "{{ EDXAPP_BRANCH_IO_KEY }}"
PROCTORING_BACKENDS: "{{ EDXAPP_PROCTORING_BACKENDS }}"
generic_cache_config: &default_generic_cache
BACKEND: "{{ EDXAPP_CACHE_BACKEND }}"
KEY_FUNCTION: 'util.memcache.safe_key'
edxapp_revisions_config:
EDX_PLATFORM_REVISION: "{{ EDX_PLATFORM_VERSION }}"
generic_env_config: &edxapp_generic_env
IDA_LOGOUT_URI_LIST: "{{ EDXAPP_IDA_LOGOUT_URI_LIST }}"
CREDENTIALS_INTERNAL_SERVICE_URL: "{{ EDXAPP_CREDENTIALS_INTERNAL_SERVICE_URL }}"
CREDENTIALS_PUBLIC_SERVICE_URL: "{{ EDXAPP_CREDENTIALS_PUBLIC_SERVICE_URL }}"
ECOMMERCE_PUBLIC_URL_ROOT: "{{ EDXAPP_ECOMMERCE_PUBLIC_URL_ROOT }}"
ECOMMERCE_API_URL: "{{ EDXAPP_ECOMMERCE_API_URL }}"
BLOCKSTORE_PUBLIC_URL_ROOT: "{{ EDXAPP_BLOCKSTORE_PUBLIC_URL_ROOT }}"
BLOCKSTORE_API_URL: "{{ EDXAPP_BLOCKSTORE_API_URL }}"
LEARNER_PORTAL_URL_ROOT: "{{ EDXAPP_LEARNER_PORTAL_URL_ROOT }}"
EDX_PLATFORM_REVISION: "{{ EDX_PLATFORM_VERSION }}"
ENTERPRISE_API_URL: "{{ EDXAPP_ENTERPRISE_API_URL }}"
COURSE_CATALOG_URL_ROOT: "{{ EDXAPP_COURSE_CATALOG_URL_ROOT }}"
COURSE_CATALOG_API_URL: "{{ EDXAPP_COURSE_CATALOG_API_URL }}"
COURSE_CATALOG_VISIBILITY_PERMISSION: "{{ EDXAPP_COURSE_CATALOG_VISIBILITY_PERMISSION }}"
COURSE_ABOUT_VISIBILITY_PERMISSION: "{{ EDXAPP_COURSE_ABOUT_VISIBILITY_PERMISSION }}"
DEFAULT_COURSE_VISIBILITY_IN_CATALOG: "{{ EDXAPP_DEFAULT_COURSE_VISIBILITY_IN_CATALOG }}"
DEFAULT_MOBILE_AVAILABLE: "{{ EDXAPP_DEFAULT_MOBILE_AVAILABLE }}"
FINANCIAL_REPORTS: "{{ EDXAPP_FINANCIAL_REPORTS }}"
CORS_ORIGIN_WHITELIST: "{{ EDXAPP_CORS_ORIGIN_WHITELIST }}"
CORS_ORIGIN_ALLOW_ALL: "{{ EDXAPP_CORS_ORIGIN_ALLOW_ALL }}"
LOGIN_REDIRECT_WHITELIST: "{{ EDXAPP_LOGIN_REDIRECT_WHITELIST }}"
CROSS_DOMAIN_CSRF_COOKIE_DOMAIN: "{{ EDXAPP_CROSS_DOMAIN_CSRF_COOKIE_DOMAIN }}"
CROSS_DOMAIN_CSRF_COOKIE_NAME: "{{ EDXAPP_CROSS_DOMAIN_CSRF_COOKIE_NAME }}"
CSRF_COOKIE_SECURE: "{{ EDXAPP_CSRF_COOKIE_SECURE }}"
CSRF_TRUSTED_ORIGINS: "{{ EDXAPP_CSRF_TRUSTED_ORIGINS }}"
VIDEO_UPLOAD_PIPELINE: "{{ EDXAPP_VIDEO_UPLOAD_PIPELINE }}"
DEPRECATED_ADVANCED_COMPONENT_TYPES: "{{ EDXAPP_DEPRECATED_ADVANCED_COMPONENT_TYPES }}"
XBLOCK_FS_STORAGE_BUCKET: "{{ EDXAPP_XBLOCK_FS_STORAGE_BUCKET }}"
XBLOCK_FS_STORAGE_PREFIX: "{{ EDXAPP_XBLOCK_FS_STORAGE_PREFIX }}"
ANALYTICS_DASHBOARD_URL: '{{ EDXAPP_ANALYTICS_DASHBOARD_URL }}'
CELERY_BROKER_VHOST: "{{ EDXAPP_CELERY_BROKER_VHOST }}"
CELERY_BROKER_USE_SSL: "{{ EDXAPP_CELERY_BROKER_USE_SSL }}"
CELERY_EVENT_QUEUE_TTL: "{{ EDXAPP_CELERY_EVENT_QUEUE_TTL }}"
PAYMENT_SUPPORT_EMAIL: "{{ EDXAPP_PAYMENT_SUPPORT_EMAIL }}"
ZENDESK_URL: "{{ EDXAPP_ZENDESK_URL }}"
ZENDESK_CUSTOM_FIELDS: "{{ EDXAPP_ZENDESK_CUSTOM_FIELDS }}"
COURSES_WITH_UNSAFE_CODE: "{{ EDXAPP_COURSES_WITH_UNSAFE_CODE }}"
BULK_EMAIL_EMAILS_PER_TASK: "{{ EDXAPP_BULK_EMAIL_EMAILS_PER_TASK }}"
MICROSITE_ROOT_DIR: "{{ EDXAPP_MICROSITE_ROOT_DIR }}"
MICROSITE_CONFIGURATION: "{{ EDXAPP_MICROSITE_CONFIGURATION }}"
DEFAULT_FILE_STORAGE: "{{ EDXAPP_DEFAULT_FILE_STORAGE }}"
GRADES_DOWNLOAD:
STORAGE_CLASS: "{{ EDXAPP_GRADE_STORAGE_CLASS | default(None) }}"
STORAGE_KWARGS: "{{ EDXAPP_GRADE_STORAGE_KWARGS | default(None) }}"
STORAGE_TYPE: "{{ EDXAPP_GRADE_STORAGE_TYPE | default(None) }}"
BUCKET: "{{ EDXAPP_GRADE_BUCKET | default(None) }}"
ROOT_PATH: "{{ EDXAPP_GRADE_ROOT_PATH | default(None) }}"
STATIC_ROOT_BASE: "{{ edxapp_staticfile_dir }}"
LMS_BASE: "{{ EDXAPP_LMS_BASE }}"
CMS_BASE: "{{ EDXAPP_CMS_BASE }}"
LMS_ROOT_URL: "{{ EDXAPP_LMS_ROOT_URL }}"
LMS_INTERNAL_ROOT_URL: "{{ EDXAPP_LMS_INTERNAL_ROOT_URL }}"
PARTNER_SUPPORT_EMAIL: "{{ EDXAPP_PARTNER_SUPPORT_EMAIL }}"
PLATFORM_NAME: "{{ EDXAPP_PLATFORM_NAME }}"
PLATFORM_DESCRIPTION: "{{ EDXAPP_PLATFORM_DESCRIPTION }}"
ANALYTICS_DASHBOARD_NAME: "{{ EDXAPP_ANALYTICS_DASHBOARD_NAME }}"
STUDIO_NAME: "{{ EDXAPP_STUDIO_NAME }}"
STUDIO_SHORT_NAME: "{{ EDXAPP_STUDIO_SHORT_NAME }}"
CERT_QUEUE: 'certificates'
LOCAL_LOGLEVEL: "{{ EDXAPP_LOG_LEVEL }}"
# default email backed set to local SMTP
EMAIL_BACKEND: "{{ EDXAPP_EMAIL_BACKEND }}"
EMAIL_HOST: "{{ EDXAPP_EMAIL_HOST }}"
EMAIL_PORT: "{{ EDXAPP_EMAIL_PORT }}"
EMAIL_USE_TLS: "{{ EDXAPP_EMAIL_USE_TLS }}"
AWS_SES_REGION_NAME: "{{ EDXAPP_AWS_SES_REGION_NAME }}"
AWS_SES_REGION_ENDPOINT: "{{ EDXAPP_AWS_SES_REGION_ENDPOINT }}"
FEATURES: "{{ EDXAPP_FEATURES }}"
WIKI_ENABLED: true
SYSLOG_SERVER: "{{ EDXAPP_SYSLOG_SERVER }}"
LOG_DIR: "{{ edxapp_log_dir }}"
DATA_DIR: "{{ edxapp_data_dir }}"
JWT_ISSUER: "{{ EDXAPP_LMS_ISSUER }}"
DEFAULT_JWT_ISSUER:
ISSUER: "{{ EDXAPP_LMS_ISSUER }}"
AUDIENCE: "{{ EDXAPP_JWT_AUDIENCE }}"
SECRET_KEY: "{{ EDXAPP_JWT_SECRET_KEY }}"
JWT_EXPIRATION: '{{ EDXAPP_JWT_EXPIRATION }}'
JWT_PRIVATE_SIGNING_KEY: !!null
JWT_AUTH:
JWT_ISSUER: "{{ EDXAPP_LMS_ISSUER }}"
JWT_AUDIENCE: "{{ EDXAPP_JWT_AUDIENCE }}"
JWT_SECRET_KEY: "{{ EDXAPP_JWT_SECRET_KEY }}"
JWT_ISSUERS:
- ISSUER: "{{ EDXAPP_LMS_ISSUER }}"
AUDIENCE: "{{ EDXAPP_JWT_AUDIENCE }}"
SECRET_KEY: "{{ EDXAPP_JWT_SECRET_KEY }}"
JWT_PUBLIC_SIGNING_JWK_SET: "{{ EDXAPP_JWT_PUBLIC_SIGNING_JWK_SET|string }}"
JWT_SIGNING_ALGORITHM: "{{ EDXAPP_JWT_SIGNING_ALGORITHM }}"
JWT_PRIVATE_SIGNING_JWK: "{{ EDXAPP_JWT_PRIVATE_SIGNING_JWK|string }}"
JWT_AUTH_COOKIE_HEADER_PAYLOAD: "{{ EDXAPP_JWT_AUTH_COOKIE_HEADER_PAYLOAD }}"
JWT_AUTH_COOKIE_SIGNATURE: "{{ EDXAPP_JWT_AUTH_COOKIE_SIGNATURE }}"
JWT_AUTH_REFRESH_COOKIE: "{{ EDXAPP_JWT_AUTH_REFRESH_COOKIE }}"
# edx-rbac Setting
SYSTEM_WIDE_ROLE_CLASSES: "{{ EDXAPP_SYSTEM_WIDE_ROLE_CLASSES }}"
ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS: "{{ EDXAPP_ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS }}"
INTEGRATED_CHANNELS_API_CHUNK_TRANSMISSION_LIMIT: "{{ EDXAPP_INTEGRATED_CHANNELS_API_CHUNK_TRANSMISSION_LIMIT }}"
#must end in slash (https://docs.djangoproject.com/en/1.4/ref/settings/#media-url)
MEDIA_URL: "{{ EDXAPP_MEDIA_URL }}/"
MEDIA_ROOT: "{{ edxapp_media_dir }}/"
FEEDBACK_SUBMISSION_EMAIL: "{{ EDXAPP_FEEDBACK_SUBMISSION_EMAIL }}"
TIME_ZONE: "{{ EDXAPP_TIME_ZONE }}"
LANGUAGE_CODE: "{{ EDXAPP_LANGUAGE_CODE }}"
LANGUAGE_COOKIE: "{{ EDXAPP_LANGUAGE_COOKIE }}"
CERTIFICATE_TEMPLATE_LANGUAGES: "{{ EDXAPP_CERTIFICATE_TEMPLATE_LANGUAGES }}"
MKTG_URL_LINK_MAP: "{{ EDXAPP_MKTG_URL_LINK_MAP }}"
MKTG_URLS: "{{ EDXAPP_MKTG_URLS }}"
SUPPORT_SITE_LINK: "{{ EDXAPP_SUPPORT_SITE_LINK }}"
ID_VERIFICATION_SUPPORT_LINK: "{{ EDXAPP_ID_VERIFICATION_SUPPORT_LINK }}"
ACTIVATION_EMAIL_SUPPORT_LINK: "{{ EDXAPP_ACTIVATION_EMAIL_SUPPORT_LINK }}"
PASSWORD_RESET_SUPPORT_LINK: "{{ EDXAPP_PASSWORD_RESET_SUPPORT_LINK }}"
# repo root for courses
GITHUB_REPO_ROOT: "{{ edxapp_course_data_dir }}"
CACHES:
default:
<<: *default_generic_cache
KEY_PREFIX: 'default'
LOCATION: "{{ EDXAPP_MEMCACHE }}"
VERSION: "{{ EDXAPP_DEFAULT_CACHE_VERSION }}"
general:
<<: *default_generic_cache
KEY_PREFIX: 'general'
LOCATION: "{{ EDXAPP_MEMCACHE }}"
mongo_metadata_inheritance:
<<: *default_generic_cache
KEY_PREFIX: 'mongo_metadata_inheritance'
TIMEOUT: 300
LOCATION: "{{ EDXAPP_MEMCACHE }}"
staticfiles:
<<: *default_generic_cache
KEY_PREFIX: "{{ ansible_hostname|default('staticfiles') }}_general"
LOCATION: "{{ EDXAPP_MEMCACHE }}"
configuration:
<<: *default_generic_cache
KEY_PREFIX: "{{ ansible_hostname|default('configuration') }}"
LOCATION: "{{ EDXAPP_MEMCACHE }}"
celery:
<<: *default_generic_cache
KEY_PREFIX: 'celery'
LOCATION: "{{ EDXAPP_MEMCACHE }}"
TIMEOUT: "7200"
course_structure_cache:
<<: *default_generic_cache
KEY_PREFIX: 'course_structure'
LOCATION: "{{ EDXAPP_CACHE_COURSE_STRUCTURE_MEMCACHE }}"
# Default to two hours
TIMEOUT: "7200"
CELERY_BROKER_TRANSPORT: "{{ EDXAPP_CELERY_BROKER_TRANSPORT }}"
CELERY_BROKER_HOSTNAME: "{{ EDXAPP_CELERY_BROKER_HOSTNAME }}"
COMMENTS_SERVICE_URL: "{{ EDXAPP_COMMENTS_SERVICE_URL }}"
LOGGING_ENV: "{{ EDXAPP_LOGGING_ENV }}"
SESSION_COOKIE_DOMAIN: "{{ EDXAPP_SESSION_COOKIE_DOMAIN }}"
SESSION_COOKIE_NAME: "{{ EDXAPP_SESSION_COOKIE_NAME }}"
COMMENTS_SERVICE_KEY: "{{ EDXAPP_COMMENTS_SERVICE_KEY }}"
TECH_SUPPORT_EMAIL: "{{ EDXAPP_TECH_SUPPORT_EMAIL }}"
CONTACT_EMAIL: "{{ EDXAPP_CONTACT_EMAIL }}"
BUGS_EMAIL: "{{ EDXAPP_BUGS_EMAIL }}"
DEFAULT_FROM_EMAIL: "{{ EDXAPP_DEFAULT_FROM_EMAIL }}"
DEFAULT_FEEDBACK_EMAIL: "{{ EDXAPP_DEFAULT_FEEDBACK_EMAIL }}"
SERVER_EMAIL: "{{ EDXAPP_DEFAULT_SERVER_EMAIL }}"
BULK_EMAIL_DEFAULT_FROM_EMAIL: "{{ EDXAPP_BULK_EMAIL_DEFAULT_FROM_EMAIL }}"
BULK_EMAIL_LOG_SENT_EMAILS: "{{ EDXAPP_BULK_EMAIL_LOG_SENT_EMAILS }}"
CAS_SERVER_URL: "{{ EDXAPP_CAS_SERVER_URL }}"
CAS_EXTRA_LOGIN_PARAMS: "{{ EDXAPP_CAS_EXTRA_LOGIN_PARAMS }}"
CAS_ATTRIBUTE_CALLBACK: "{{ EDXAPP_CAS_ATTRIBUTE_CALLBACK }}"
UNIVERSITY_EMAIL: "{{ EDXAPP_UNIVERSITY_EMAIL }}"
PRESS_EMAIL: "{{ EDXAPP_PRESS_EMAIL }}"
SOCIAL_MEDIA_FOOTER_URLS: "{{ EDXAPP_SOCIAL_MEDIA_FOOTER_URLS }}"
MOBILE_STORE_URLS: "{{ EDXAPP_MOBILE_STORE_URLS }}"
FOOTER_ORGANIZATION_IMAGE: "{{ EDXAPP_FOOTER_ORGANIZATION_IMAGE }}"
ORA2_FILE_PREFIX: "{{ EDXAPP_ORA2_FILE_PREFIX }}"
FILE_UPLOAD_STORAGE_BUCKET_NAME: "{{ EDXAPP_FILE_UPLOAD_STORAGE_BUCKET_NAME }}"
FILE_UPLOAD_STORAGE_PREFIX: "{{ EDXAPP_FILE_UPLOAD_STORAGE_PREFIX }}"
REGISTRATION_EXTRA_FIELDS: "{{ EDXAPP_REGISTRATION_EXTRA_FIELDS }}"
XBLOCK_SETTINGS: "{{ EDXAPP_XBLOCK_SETTINGS }}"
EDXMKTG_USER_INFO_COOKIE_NAME: "{{ EDXAPP_EDXMKTG_USER_INFO_COOKIE_NAME }}"
VIDEO_IMAGE_MAX_AGE: "{{ EDXAPP_VIDEO_IMAGE_MAX_AGE }}"
VIDEO_IMAGE_SETTINGS: "{{ EDXAPP_VIDEO_IMAGE_SETTINGS }}"
VIDEO_TRANSCRIPTS_MAX_AGE: "{{ EDXAPP_VIDEO_TRANSCRIPTS_MAX_AGE }}"
VIDEO_TRANSCRIPTS_SETTINGS: "{{ EDXAPP_VIDEO_TRANSCRIPTS_SETTINGS }}"
BLOCK_STRUCTURES_SETTINGS: "{{ EDXAPP_BLOCK_STRUCTURES_SETTINGS }}"
COMPREHENSIVE_THEME_DIRS: "{{ EDXAPP_COMPREHENSIVE_THEME_DIRS }}"
COMPREHENSIVE_THEME_LOCALE_PATHS: "{{ EDXAPP_COMPREHENSIVE_THEME_LOCALE_PATHS }}"
ENABLE_COMPREHENSIVE_THEMING: "{{ EDXAPP_ENABLE_COMPREHENSIVE_THEMING }}"
DEFAULT_SITE_THEME: "{{ EDXAPP_DEFAULT_SITE_THEME }}"
SESSION_SAVE_EVERY_REQUEST: "{{ EDXAPP_SESSION_SAVE_EVERY_REQUEST }}"
SOCIAL_SHARING_SETTINGS: "{{ EDXAPP_SOCIAL_SHARING_SETTINGS }}"
SESSION_COOKIE_SECURE: "{{ EDXAPP_SESSION_COOKIE_SECURE }}"
CODE_JAIL:
# from https://github.com/edx/codejail/blob/master/codejail/django_integration.py#L24, '' should be same as None
python_bin: '{% if EDXAPP_PYTHON_SANDBOX %}{{ edxapp_sandbox_venv_dir }}/bin/python{% endif %}'
limits: "{{ EDXAPP_CODE_JAIL_LIMITS }}"
user: '{{ edxapp_sandbox_user }}'
AFFILIATE_COOKIE_NAME: "{{ EDXAPP_AFFILIATE_COOKIE_NAME }}"
ELASTIC_SEARCH_CONFIG: "{{ EDXAPP_ELASTIC_SEARCH_CONFIG }}"
PLATFORM_TWITTER_ACCOUNT: "{{ EDXAPP_PLATFORM_TWITTER_ACCOUNT }}"
PLATFORM_FACEBOOK_ACCOUNT: "{{ EDXAPP_PLATFORM_FACEBOOK_ACCOUNT }}"
HELP_TOKENS_BOOKS: "{{ EDXAPP_HELP_TOKENS_BOOKS }}"
# License for serving content in China
ICP_LICENSE: "{{ EDXAPP_ICP_LICENSE }}"
ICP_LICENSE_INFO: "{{ EDXAPP_ICP_LICENSE_INFO }}"
# Base Cookie Domain to share cookie across edx domains
BASE_COOKIE_DOMAIN: "{{ EDXAPP_BASE_COOKIE_DOMAIN }}"
POLICY_CHANGE_GRADES_ROUTING_KEY: "{{ EDXAPP_POLICY_CHANGE_GRADES_ROUTING_KEY }}"
PROCTORING_SETTINGS: "{{ EDXAPP_PROCTORING_SETTINGS }}"
EXTRA_MIDDLEWARE_CLASSES: "{{ EDXAPP_EXTRA_MIDDLEWARE_CLASSES }}"
MAINTENANCE_BANNER_TEXT: "{{ EDXAPP_MAINTENANCE_BANNER_TEXT }}"
RETIRED_USERNAME_PREFIX: "{{ EDXAPP_RETIRED_USERNAME_PREFIX }}"
RETIRED_EMAIL_PREFIX: "{{ EDXAPP_RETIRED_EMAIL_PREFIX }}"
RETIRED_EMAIL_DOMAIN: "{{ EDXAPP_RETIRED_EMAIL_DOMAIN }}"
RETIRED_USER_SALTS: "{{ EDXAPP_RETIRED_USER_SALTS }}"
RETIREMENT_SERVICE_WORKER_USERNAME: "{{ EDXAPP_RETIREMENT_SERVICE_USER_NAME }}"
RETIREMENT_STATES: "{{ EDXAPP_RETIREMENT_STATES }}"
USERNAME_REPLACEMENT_WORKER: "{{ EDXAPP_USERNAME_REPLACEMENT_WORKER }}"
AUTH_PASSWORD_VALIDATORS: "{{ EDXAPP_AUTH_PASSWORD_VALIDATORS }}"
PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG: "{{ EDXAPP_PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG }}"
# Dashboard courses default limit
DASHBOARD_COURSE_LIMIT: "{{ EDXAPP_DASHBOARD_COURSE_LIMIT }}"
lms_auth_config:
<<: *edxapp_generic_auth
CONTENTSTORE:
<<: *edxapp_generic_default_contentstore
ADDITIONAL_OPTIONS: "{{ EDXAPP_CONTENTSTORE_ADDITIONAL_OPTS }}"
DOC_STORE_CONFIG: "{{ EDXAPP_LMS_SPLIT_DOC_STORE_CONFIG }}"
DOC_STORE_CONFIG: "{{ EDXAPP_LMS_SPLIT_DOC_STORE_CONFIG }}"
SEGMENT_KEY: "{{ EDXAPP_LMS_SEGMENT_KEY }}"
OPTIMIZELY_PROJECT_ID: "{{ EDXAPP_OPTIMIZELY_PROJECT_ID }}"
EDX_API_KEY: "{{ EDXAPP_EDX_API_KEY }}"
VERIFY_STUDENT: "{{ EDXAPP_VERIFY_STUDENT }}"
GOOGLE_ANALYTICS_LINKEDIN: "{{ EDXAPP_GOOGLE_ANALYTICS_LINKEDIN }}"
GOOGLE_ANALYTICS_TRACKING_ID: "{{ EDXAPP_GOOGLE_ANALYTICS_TRACKING_ID }}"
CC_PROCESSOR_NAME: "{{ EDXAPP_CC_PROCESSOR_NAME }}"
CC_PROCESSOR: "{{ EDXAPP_CC_PROCESSOR }}"
TRACKING_SEGMENTIO_WEBHOOK_SECRET: "{{ EDXAPP_TRACKING_SEGMENTIO_WEBHOOK_SECRET }}"
PROFILE_IMAGE_SECRET_KEY: "{{ EDXAPP_PROFILE_IMAGE_SECRET_KEY }}"
MODULESTORE:
default:
ENGINE: 'xmodule.modulestore.mixed.MixedModuleStore'
OPTIONS:
mappings: {}
stores:
- NAME: 'split'
ENGINE: 'xmodule.modulestore.split_mongo.split_draft.DraftVersioningModuleStore'
DOC_STORE_CONFIG: "{{ EDXAPP_LMS_SPLIT_DOC_STORE_CONFIG }}"
OPTIONS:
default_class: 'xmodule.hidden_module.HiddenDescriptor'
fs_root: "{{ edxapp_course_data_dir }}"
render_template: 'edxmako.shortcuts.render_to_string'
- NAME: 'draft'
ENGINE: 'xmodule.modulestore.mongo.DraftMongoModuleStore'
DOC_STORE_CONFIG: "{{ EDXAPP_LMS_DRAFT_DOC_STORE_CONFIG }}"
OPTIONS:
default_class: 'xmodule.hidden_module.HiddenDescriptor'
fs_root: "{{ edxapp_course_data_dir }}"
render_template: 'edxmako.shortcuts.render_to_string'
SOCIAL_AUTH_OAUTH_SECRETS: "{{ EDXAPP_SOCIAL_AUTH_OAUTH_SECRETS }}"
ACE_CHANNEL_SAILTHRU_API_KEY: "{{ EDXAPP_ACE_CHANNEL_SAILTHRU_API_KEY }}"
ACE_CHANNEL_SAILTHRU_API_SECRET: "{{ EDXAPP_ACE_CHANNEL_SAILTHRU_API_SECRET }}"
ANALYTICS_API_KEY: "{{ EDXAPP_LMS_ANALYTICS_API_KEY }}"
FERNET_KEYS: "{{ EDXAPP_FERNET_KEYS }}"
lms_env_config:
<<: *edxapp_generic_env
OAUTH_ENFORCE_SECURE: "{{ EDXAPP_OAUTH_ENFORCE_SECURE }}"
OAUTH_EXPIRE_CONFIDENTIAL_CLIENT_DAYS: "{{ EDXAPP_OAUTH_EXPIRE_CONFIDENTIAL_CLIENT_DAYS }}"
OAUTH_EXPIRE_PUBLIC_CLIENT_DAYS: "{{ EDXAPP_OAUTH_EXPIRE_PUBLIC_CLIENT_DAYS }}"
OAUTH_DELETE_EXPIRED: "{{ EDXAPP_OAUTH_DELETE_EXPIRED }}"
PAID_COURSE_REGISTRATION_CURRENCY: "{{ EDXAPP_PAID_COURSE_REGISTRATION_CURRENCY }}"
THIRD_PARTY_AUTH_BACKENDS: "{{ EDXAPP_THIRD_PARTY_AUTH_BACKENDS }}"
GIT_REPO_DIR: "{{ EDXAPP_GIT_REPO_DIR }}"
SITE_NAME: "{{ EDXAPP_LMS_SITE_NAME }}"
HTTPS: "{{ EDXAPP_LMS_HTTPS }}"
VIDEO_CDN_URL: "{{ EDXAPP_VIDEO_CDN_URLS }}"
PDF_RECEIPT_TAX_ID: "{{ EDXAPP_PDF_RECEIPT_TAX_ID }}"
PDF_RECEIPT_FOOTER_TEXT: "{{ EDXAPP_PDF_RECEIPT_FOOTER_TEXT }}"
PDF_RECEIPT_DISCLAIMER_TEXT: "{{ EDXAPP_PDF_RECEIPT_DISCLAIMER_TEXT }}"
PDF_RECEIPT_BILLING_ADDRESS: "{{ EDXAPP_PDF_RECEIPT_BILLING_ADDRESS }}"
PDF_RECEIPT_TERMS_AND_CONDITIONS: "{{ EDXAPP_PDF_RECEIPT_TERMS_AND_CONDITIONS }}"
PDF_RECEIPT_TAX_ID_LABEL: "{{ EDXAPP_PDF_RECEIPT_TAX_ID_LABEL }}"
PDF_RECEIPT_COBRAND_LOGO_PATH: "{{ EDXAPP_PDF_RECEIPT_COBRAND_LOGO_PATH }}"
PDF_RECEIPT_LOGO_PATH: "{{ EDXAPP_PDF_RECEIPT_LOGO_PATH }}"
PROFILE_IMAGE_BACKEND: "{{ EDXAPP_PROFILE_IMAGE_BACKEND }}"
PROFILE_IMAGE_MIN_BYTES: "{{ EDXAPP_PROFILE_IMAGE_MIN_BYTES }}"
PROFILE_IMAGE_MAX_BYTES: "{{ EDXAPP_PROFILE_IMAGE_MAX_BYTES }}"
PROFILE_IMAGE_SIZES_MAP: "{{ EDXAPP_PROFILE_IMAGE_SIZES_MAP }}"
EDXNOTES_PUBLIC_API: "{{ EDXAPP_EDXNOTES_PUBLIC_API }}"
EDXNOTES_INTERNAL_API: "{{ EDXAPP_EDXNOTES_INTERNAL_API }}"
LTI_USER_EMAIL_DOMAIN: "{{ EDXAPP_LTI_USER_EMAIL_DOMAIN }}"
LTI_AGGREGATE_SCORE_PASSBACK_DELAY: "{{ EDXAPP_LTI_AGGREGATE_SCORE_PASSBACK_DELAY }}"
CREDIT_HELP_LINK_URL: "{{ EDXAPP_CREDIT_HELP_LINK_URL }}"
MAILCHIMP_NEW_USER_LIST_ID: "{{ EDXAPP_MAILCHIMP_NEW_USER_LIST_ID }}"
CONTACT_MAILING_ADDRESS: "{{ EDXAPP_CONTACT_MAILING_ADDRESS }}"
AUDIT_CERT_CUTOFF_DATE: "{{ EDXAPP_AUDIT_CERT_CUTOFF_DATE }}"
API_ACCESS_MANAGER_EMAIL: "{{ EDXAPP_API_ACCESS_MANAGER_EMAIL }}"
API_ACCESS_FROM_EMAIL: "{{ EDXAPP_API_ACCESS_FROM_EMAIL }}"
API_DOCUMENTATION_URL: "{{ EDXAPP_API_DOCUMENTATION_URL }}"
AUTH_DOCUMENTATION_URL: "{{ EDXAPP_AUTH_DOCUMENTATION_URL }}"
RECALCULATE_GRADES_ROUTING_KEY: "{{ EDXAPP_RECALCULATE_GRADES_ROUTING_KEY }}"
BULK_EMAIL_ROUTING_KEY_SMALL_JOBS: "{{ EDXAPP_BULK_EMAIL_ROUTING_KEY_SMALL_JOBS }}"
CELERY_QUEUES: "{{ EDXAPP_LMS_CELERY_QUEUES }}"
ALTERNATE_WORKER_QUEUES: "cms"
ENTERPRISE_COURSE_ENROLLMENT_AUDIT_MODES: "{{ EDXAPP_ENTERPRISE_COURSE_ENROLLMENT_AUDIT_MODES }}"
ENTERPRISE_CUSTOMER_SUCCESS_EMAIL: "{{ EDXAPP_ENTERPRISE_CUSTOMER_SUCCESS_EMAIL }}"
ENTERPRISE_INTEGRATIONS_EMAIL: "{{ EDXAPP_ENTERPRISE_INTEGRATIONS_EMAIL }}"
ENTERPRISE_ENROLLMENT_API_URL: "{{ EDXAPP_ENTERPRISE_ENROLLMENT_API_URL }}"
ENTERPRISE_SUPPORT_URL: "{{ EDXAPP_ENTERPRISE_SUPPORT_URL }}"
PARENTAL_CONSENT_AGE_LIMIT: "{{ EDXAPP_PARENTAL_CONSENT_AGE_LIMIT }}"
ACE_ENABLED_CHANNELS: "{{ EDXAPP_ACE_ENABLED_CHANNELS }}"
ACE_ENABLED_POLICIES: "{{ EDXAPP_ACE_ENABLED_POLICIES }}"
ACE_CHANNEL_SAILTHRU_DEBUG: "{{ EDXAPP_ACE_CHANNEL_SAILTHRU_DEBUG }}"
ACE_CHANNEL_SAILTHRU_TEMPLATE_NAME: "{{ EDXAPP_ACE_CHANNEL_SAILTHRU_TEMPLATE_NAME }}"
ACE_ROUTING_KEY: "{{ EDXAPP_ACE_ROUTING_KEY }}"
ACE_CHANNEL_DEFAULT_EMAIL: "{{ EDXAPP_ACE_CHANNEL_DEFAULT_EMAIL }}"
ACE_CHANNEL_TRANSACTIONAL_EMAIL: "{{ EDXAPP_ACE_CHANNEL_TRANSACTIONAL_EMAIL }}"
ENTERPRISE_TAGLINE: "{{ EDXAPP_ENTERPRISE_TAGLINE }}"
ANALYTICS_API_URL: "{{ EDXAPP_LMS_ANALYTICS_API_URL }}"
GOOGLE_SITE_VERIFICATION_ID: "{{ EDXAPP_GOOGLE_SITE_VERIFICATION_ID }}"
STATIC_URL_BASE: "{{ EDXAPP_LMS_STATIC_URL_BASE }}"
X_FRAME_OPTIONS: "{{ EDXAPP_X_FRAME_OPTIONS }}"
WRITABLE_GRADEBOOK_URL: "{{ EDXAPP_LMS_WRITABLE_GRADEBOOK_URL }}"
PROFILE_MICROFRONTEND_URL: "{{ EDXAPP_PROFILE_MICROFRONTEND_URL }}"
ORDER_HISTORY_MICROFRONTEND_URL: "{{ EDXAPP_ORDER_HISTORY_MICROFRONTEND_URL }}"
PROGRAM_CERTIFICATES_ROUTING_KEY: "{{ EDXAPP_PROGRAM_CERTIFICATES_ROUTING_KEY }}"
ACCOUNT_MICROFRONTEND_URL: "{{ EDXAPP_ACCOUNT_MICROFRONTEND_URL }}"
PROGRAM_CONSOLE_MICROFRONTEND_URL: "{{ EDXAPP_PROGRAM_CONSOLE_MICROFRONTEND_URL}}"
LEARNING_MICROFRONTEND_URL: "{{ EDXAPP_LEARNING_MICROFRONTEND_URL}}"
cms_auth_config:
<<: *edxapp_generic_auth
CONTENTSTORE:
<<: *edxapp_generic_default_contentstore
ADDITIONAL_OPTIONS: "{{ EDXAPP_CONTENTSTORE_ADDITIONAL_OPTS }}"
DOC_STORE_CONFIG: "{{ EDXAPP_CMS_DOC_STORE_CONFIG }}"
DOC_STORE_CONFIG: "{{ EDXAPP_CMS_DOC_STORE_CONFIG }}"
MODULESTORE:
default:
ENGINE: 'xmodule.modulestore.mixed.MixedModuleStore'
OPTIONS:
mappings: {}
stores:
- NAME: 'split'
ENGINE: 'xmodule.modulestore.split_mongo.split_draft.DraftVersioningModuleStore'
DOC_STORE_CONFIG: "{{ EDXAPP_CMS_DOC_STORE_CONFIG }}"
OPTIONS:
default_class: 'xmodule.hidden_module.HiddenDescriptor'
fs_root: "{{ edxapp_course_data_dir }}"
render_template: 'edxmako.shortcuts.render_to_string'
- NAME: 'draft'
ENGINE: 'xmodule.modulestore.mongo.DraftMongoModuleStore'
DOC_STORE_CONFIG: "{{ EDXAPP_CMS_DOC_STORE_CONFIG }}"
OPTIONS:
default_class: 'xmodule.hidden_module.HiddenDescriptor'
fs_root: "{{ edxapp_course_data_dir }}"
render_template: 'edxmako.shortcuts.render_to_string'
SEGMENT_KEY: "{{ EDXAPP_CMS_SEGMENT_KEY }}"
PARSE_KEYS: "{{ EDXAPP_PARSE_KEYS }}"
FERNET_KEYS: "{{ EDXAPP_FERNET_KEYS }}"
cms_env_config:
<<: *edxapp_generic_env
SITE_NAME: "{{ EDXAPP_CMS_SITE_NAME }}"
GIT_REPO_EXPORT_DIR: "{{ EDXAPP_GIT_REPO_EXPORT_DIR }}"
CELERY_QUEUES: "{{ EDXAPP_CMS_CELERY_QUEUES }}"
ALTERNATE_WORKER_QUEUES: "lms"
COURSE_IMPORT_EXPORT_BUCKET: "{{ EDXAPP_IMPORT_EXPORT_BUCKET }}"
STATIC_URL_BASE: "{{ EDXAPP_CMS_STATIC_URL_BASE }}"
X_FRAME_OPTIONS: "{{ EDXAPP_X_FRAME_OPTIONS }}"
COURSE_AUTHORING_MICROFRONTEND_URL: "{{ EDXAPP_COURSE_AUTHORING_MICROFRONTEND_URL }}"
# install dir for the edx-platform repo
edxapp_code_dir: "{{ edxapp_app_dir }}/edx-platform"
# gunicorn ports/hosts, these shouldn't need to be overridden
edxapp_cms_gunicorn_port: 8010
edxapp_cms_gunicorn_host: 127.0.0.1
edxapp_lms_gunicorn_port: 8000
edxapp_lms_gunicorn_host: 127.0.0.1
# These vars are for creating the application json config
# files. There are two for each service that uses the
# 'edx-platform' code. Defining them will create the upstart
# job. It will also enable the corresponding section in the
# 'edxapp' upstart job.
service_variants_enabled:
- lms
- cms
#Number of gunicorn worker processes to spawn, as a multiplier to number of virtual cores
worker_core_mult:
lms: 4
cms: 2
# Stanford-style Theming
# Set theme name with edxapp_theme_name
# Stanford, for example, uses edxapp_theme_name: 'stanford'
#
# TODO: change variables to ALL-CAPS, since they are meant to be externally overridden
edxapp_theme_name: ""
edxapp_theme_source_repo: 'https://{{ COMMON_GIT_MIRROR }}/Stanford-Online/edx-theme.git'
EDXAPP_THEME_VERSION: 'master'
# make this the public URL instead of writable
edx_platform_repo: "https://{{ COMMON_GIT_MIRROR }}/edx/edx-platform.git"
# `EDX_PLATFORM_VERSION` can be anything that git recognizes as a commit
# reference, including a tag, a branch name, or a commit hash
EDX_PLATFORM_VERSION: 'release'
custom_requirements_file: "{{ edxapp_code_dir }}/requirements/edx/custom.txt"
base_requirements_file: "{{ edxapp_code_dir }}/requirements/edx/base.txt"
django_requirements_file: "{{ edxapp_code_dir }}/requirements/edx/django.txt"
openstack_requirements_file: "{{ edxapp_code_dir }}/requirements/edx/openstack.txt"
sandbox_base_requirements: "{{ edxapp_code_dir }}/requirements/edx-sandbox/{% if edxapp_sandbox_python_version == 'python2.7' %}base.txt{% else %}py35.txt{% endif %}"
# The Python requirements files in the order they should be installed. This order should
# match the order of PYTHON_REQ_FILES in edx-platform/pavelib/prereqs.py.
edxapp_requirements_files:
- "{{ custom_requirements_file }}"
- "{{ base_requirements_file }}"
# All edxapp requirements files potentially containing Github URLs. When using a custom
# Github mirror, occurrences of "github.com" are replaced by the custom mirror in these
# files.
edxapp_requirements_with_github_urls:
- "{{ custom_requirements_file }}"
- "{{ base_requirements_file }}"
- "{{ sandbox_base_requirements }}"
edxapp_debian_pkgs:
# for compiling the virtualenv
# (only needed if wheel files aren't available)
- s3cmd
- pkg-config
# for scipy, do not install
# libopenblas-base, it will cause
# problems for numpy
- g++
# apparmor
- apparmor-utils
# misc
- curl
- ntp
# matplotlib needs libfreetype6-dev
- libfreetype6-dev
# cffi needs libffi-dev
- libffi-dev
- python3-dev
- libsqlite3-dev
edxapp_release_specific_debian_pkgs:
xenial:
- ipython
- python-dev
bionic:
- ipython
- python-dev
focal:
- ipython3
edxapp_debian_pkgs_default: "{{ edxapp_debian_pkgs + edxapp_release_specific_debian_pkgs[ansible_distribution_release] }}"
edxapp_debian_pkgs_extra: []
# Deploy Specific Vars
edxapp_lms_variant: lms
edxapp_cms_variant: cms
# Worker Settings
worker_django_settings_module: '{{ EDXAPP_SETTINGS }}'
EDXAPP_CELERY_HEARTBEAT_ENABLED: true
# Add default service worker users
SERVICE_WORKER_USERS:
- email: "{{ EDXAPP_ENTERPRISE_SERVICE_WORKER_EMAIL }}"
username: "{{ EDXAPP_ENTERPRISE_SERVICE_WORKER_USERNAME }}"
is_staff: true
is_superuser: false
- email: "{{ EDXAPP_VEDA_SERVICE_USER_EMAIL }}"
username: "{{ EDXAPP_VEDA_SERVICE_USER_NAME }}"
is_staff: true
is_superuser: false
- email: "{{ DISCOVERY_SERVICE_USER_EMAIL }}"
username: "{{ DISCOVERY_SERVICE_USER_NAME }}"
is_staff: true
is_superuser: false
- email: "{{ INSIGHTS_SERVICE_USER_EMAIL }}"
username: "{{ INSIGHTS_SERVICE_USER_NAME }}"
is_staff: true
is_superuser: false
- email: "{{ CREDENTIALS_SERVICE_USER_EMAIL }}"
username: "{{ CREDENTIALS_SERVICE_USER_NAME }}"
is_staff: true
is_superuser: false
- email: "{{ DESIGNER_SERVICE_USER_EMAIL }}"
username: "{{ DESIGNER_SERVICE_USER_NAME }}"
is_staff: true
is_superuser: false
- email: "{{ REGISTRAR_SERVICE_USER_EMAIL }}"
username: "{{ REGISTRAR_SERVICE_USER_NAME }}"
is_staff: true
is_superuser: false
- email: "{{ EDXAPP_RETIREMENT_SERVICE_USER_EMAIL }}"
username: "{{ EDXAPP_RETIREMENT_SERVICE_USER_NAME }}"
is_staff: true
is_superuser: false
enabled: "{{ COMMON_RETIREMENT_SERVICE_SETUP | default(false) }}"
EDXAPP_ENABLE_DJANGO_ADMIN_RESTRICTION: false
EDXAPP_LMS_LOCAL_CONFIG_FILE: "{{ UNENCRYPTED_CFG_DIR }}/lms.yml"
EDXAPP_CMS_LOCAL_CONFIG_FILE: "{{ UNENCRYPTED_CFG_DIR }}/studio.yml"
edxapp_staticfiles_storage_overrides: !!null
# Accepts a list of dictionaries of the following form.
# EDXAPP_SITE_CONFIGURATION:
# - site_id: 1
# values:
# foo: true
# bar: false
# - domain: example.com
# values:
# abc: true
# - values:
# xyz: true
#
# In each dictionary, the 'site_id' and the 'domain' keys are optional and the 'values' key
# is required. However, only one of 'site_id', 'domain' can be specified due to the behaviour
# of the 'create_or_update_site_configuration' management command. The 'values' key accepts a
# dictionary of keys and values corresponding to the SiteConfiguration paramters to be added to the
# SiteConfiguration instance.
EDXAPP_SITE_CONFIGURATION: {}
You can’t perform that action at this time.