Commit 8aef58a7 authored by Mark Swillus's avatar Mark Swillus
Browse files

Merge branch 'clean-up-repo' into 'main'

remove files that are generated by tutor when you run tutor config save

See merge request !3
parents c4d816a4 c9d17428
data/
*.swp
.vscode
# This contains passwords, we don't want it in the repo!
config.yml
# Folders with specific settings generated by `tutor config save`
env/android
env/apps
env/build/openedx-dev/Dockerfile
env/build/openedx/Dockerfile
env/dev/docker-compose.yml
env/k8s/
env/kustomization.yml
env/local/docker-compose.jobs.yml
env/local/docker-compose.prod.yml
env/local/docker-compose.yml
env/local/proxy/apache2/openedx.conf
env/local/proxy/nginx/openedx.conf
# Folder with all the data and sensitive information:
data/**
ACTIVATE_HTTPS: true
ANDROID_OAUTH2_SECRET: bwcnQRZvxgKESgxXbUdIAmzY
CMS_HOST: studio.learn.staging.totem-project.org
CONTACT_EMAIL: admin+staging@totem-project.org
DISCOVERY_MYSQL_PASSWORD: TYWO1m7w
DISCOVERY_OAUTH2_SECRET: z7kYoxE9
DISCOVERY_OAUTH2_SECRET_SSO: fFkp9dXe
DISCOVERY_SECRET_KEY: 0mSv9RLSW28QEDVL3X6F
ID: x6W9ie3QiySU48FP5HhkzGY2
JWT_RSA_PRIVATE_KEY: '-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAyBQeLYkS7mZArvvjm2Rha2bh3dZhAmcgz1h8ogKZ9HgpivPX
iIa8SDKsgSBZvYzKMQZrxpAB4YMrqbHEF0TKEQYq4YdOGaxRuxsb2uwUSNusgaDw
91+XkEeH1ae5CWtoSIu9iv+BNjFUxn+ZaC/zyPmQFLiX8FkPeuc+4XyOk2MwO9PP
w6hwfztkKVh9cDILPas5Ag/QKB958JyD6ny5AvG9sCbplRx/V3hiwe8p67W1nxx1
JtuRTbFaSXeSDsBzM3OgucHqCqpOCu4BB+n2A/z/wDaWom3TFnoHPt56/nGUhG1F
dxh6l/I7S7PdDe+1yZJpoS2ZC69E14zLEP9sqQIDAQABAoIBAAiX2pr0j/BWynDp
hyNJqqh4/Prw5e47PSzCnWm86F1YWtppsiheNxB3wrJyEACk3xs/bhoTXc1Qe6vY
Y3ZnYTFdfTJ+A/P003bQiX/70zw02SIhJjBNtf3/oH0j7L3Tk+FHxS6G3kcUU9KJ
sO5JXvRTCaXmLrpnLNPHwkrfdWUtkjf9f/MfGApCDnnVYjI6Usv+ljy0rTD1f9s0
mz7C5tb2dUMM8PnAFK/Ikmfrospbx5Xqn1x7nlhtinwysUDkLZPeV1bB9QqLMToT
fY7aoJbK6f1DRh3D5WRWx5BegVxNvKMCKI7WtXJHjPSdzWLEZnmvo3ItbgDp6awI
3+dGXE0CgYEA4C4etYIJXA0QiOqle+YlyRlyeuRENURg6i52/2ztbDX2JFoWMJ2F
WRXjigFlrzaAtrdmXo7ktfcwuxekjZB0gVVi4saFxLES75oLC3uEpioJY+zUvy6T
b5fGuZKX6z2efXAqcelZzmM12qukfxW/mexbVOLaVoX/0H0FGDwzKq0CgYEA5Ho8
WZGhVsL3m5zvh7mc19C9mUcploMAlb4OpfL8InQNeQxgtc/c9Xlgzm4WaLkciQ/v
/2/4mbaxGxduy7ATMfW4OrN5pWJNG1dg0i7n1F883Za9jWqHlm2QRiIjzEZUW4Tg
Bsf/FZ4UDdiVm7fFCg2LYREZvZdQftcgaIjgZW0CgYEAw+UJSKqc6ycvb7U7bg0q
r5PhCao2QCXEWl7H9WOGBK0SralbAphjUflin9GgvX7u8rtIZRCQosGif5qlXF8C
r5Ghm3DGq53gYidFx37j5x+MnRjyvy1AAJ+sM7T5s8JgoFRHgsragxMGmFKsp7Cl
gSecl4y0Ji9p3xGgRhE01PECgYACW1BsDBiB8JjlPgUqfTuk7j5Ganl/V/KVmNRF
2e/H2zKYYQxOU8qPraTV/ES259HniAaNt/X0f/HruZ4m87X++e3gjSFgF1d8RLZ2
9Iznn+Pc1UU3RDYJ0y99ybRc0wzjtMcqyr1S18KVMfq5FHgv1lvtsGN3lSv7YvSu
n1rRMQKBgFgPGptZmQsFcz8R6CrF8CsBq3aHYomZcUyjbuNUK5GiyJDrXB4bA0M3
xewEOkubj/BB9Kp8smjb0YLFqb1V9UWUsi8Nz2JKOjWKloVLT7SMsu3b4ArLtN/A
QinPJpohyA4GksojqbckYouV9Bi+f0KVWM8GVMqsgStYEMWc+f2n
-----END RSA PRIVATE KEY-----'
LANGUAGE_CODE: en
LMS_HOST: learn.staging.totem-project.org
MONGODB_DATABASE: edxapp
MYSQL_ROOT_PASSWORD: DzwSAwXu
OPENEDX_MYSQL_DATABASE: edxapp
OPENEDX_MYSQL_PASSWORD: QRq2OdAb
OPENEDX_SECRET_KEY: AjCM27ZphyoCIk4ssCV4F9yr
PLATFORM_NAME: Totem
PLUGINS:
- enable-discussion-dashboard
- totem-proxy
edx.android {
configFiles = ['tutor.yaml']
}
\ No newline at end of file
RELEASE_STORE_FILE=/openedx/config/app.keystore
RELEASE_STORE_PASSWORD=android store password
RELEASE_KEY_PASSWORD=android release key password
RELEASE_KEY_ALIAS=android release key alias
\ No newline at end of file
# See docs: https://openedx.atlassian.net/wiki/spaces/LEARNER/pages/48792067/App+Configuration+Flags
API_HOST_URL: "https://learn.staging.totem-project.org"
ENVIRONMENT_DISPLAY_NAME: "tutor"
PLATFORM_NAME: "Totem"
PLATFORM_DESTINATION_NAME: "learn.staging.totem-project.org"
FEEDBACK_EMAIL_ADDRESS: "admin+staging@totem-project.org"
OAUTH_CLIENT_ID: "android"
COURSE_VIDEOS_ENABLED: true
CERTIFICATES_ENABLED: true
DISCUSSIONS_ENABLED: true
DISCOVERY:
COURSE:
TYPE: native
DOWNLOAD_TO_SD_CARD_ENABLED: true
NEW_LOGISTRATION_ENABLED: true
USER_PROFILES_ENABLED : true
VIDEO_TRANSCRIPT_ENABLED: true
\ No newline at end of file
# Allow long domain names
server_names_hash_bucket_size 128;
# Set a short ttl for proxies to allow restarts
resolver 127.0.0.11 [::1]:5353 valid=10s;
# Configure logging to include scheme and server name
log_format tutor '$remote_addr - $remote_user [$time_local] $scheme://$host "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
\ No newline at end of file
upstream cms-backend {
server cms:8000 fail_timeout=0;
}
server {
server_name studio.learn.staging.totem-project.org;
listen 80;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name studio.learn.staging.totem-project.org;
ssl_certificate /etc/letsencrypt/live/learn.staging.totem-project.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/learn.staging.totem-project.org/privkey.pem;
access_log /var/log/nginx/access.log tutor;
client_max_body_size 250M;
server_tokens off;
rewrite ^(.*)/favicon.ico$ /static/images/favicon.ico last;
location @proxy_to_cms_app {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://cms-backend;
}
location / {
try_files $uri @proxy_to_cms_app;
}
location ~ ^/media/(?P<file>.*) {
root /var/www/openedx-media;
try_files /$file =404;
expires 31536000s;
}
location /js-components/ {
proxy_ssl_verify on;
proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
proxy_pass https://totem-project.org/js-components/;
proxy_ssl_server_name on;
}
}
upstream lms-backend {
server lms:8000 fail_timeout=0;
}
server {
server_name learn.staging.totem-project.org preview.learn.staging.totem-project.org;
listen 80;
access_log /var/log/nginx/access.log tutor;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name learn.staging.totem-project.org preview.learn.staging.totem-project.org;
ssl_certificate /etc/letsencrypt/live/learn.staging.totem-project.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/learn.staging.totem-project.org/privkey.pem;
access_log /var/log/nginx/access.log tutor;
client_max_body_size 4M;
server_tokens off;
rewrite ^(.*)/favicon.ico$ /static/images/favicon.ico last;
location @proxy_to_lms_app {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://lms-backend;
}
location / {
try_files $uri @proxy_to_lms_app;
}
# /login?next=<any image> can be used by 3rd party sites in <img> tags to
# determine whether a user on their site is logged into edX.
# The most common image to use is favicon.ico.
location /login {
if ( $arg_next ~* "favicon.ico" ) {
return 403;
}
try_files $uri @proxy_to_lms_app;
}
# Need a separate location for the image uploads endpoint to limit upload sizes
location ~ ^/api/profile_images/[^/]*/[^/]*/upload$ {
try_files $uri @proxy_to_lms_app;
client_max_body_size 1049576;
}
location ~ ^/media/(?P<file>.*) {
root /var/www/openedx-media;
try_files /$file =404;
expires 31536000s;
}
location /js-components/ {
proxy_ssl_verify on;
proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
proxy_pass https://totem-project.org/js-components/;
proxy_ssl_server_name on;
}
}
{
"SITE_NAME": "studio.learn.staging.totem-project.org",
"BOOK_URL": "",
"LOG_DIR": "/openedx/data/logs",
"LOGGING_ENV": "sandbox",
"OAUTH_OIDC_ISSUER": "https://learn.staging.totem-project.org/oauth2",
"PLATFORM_NAME": "Totem",
"FEATURES": {
"CERTIFICATES_HTML_VIEW": true,
"PREVIEW_LMS_BASE": "preview.learn.staging.totem-project.org",
"ENABLE_COURSEWARE_INDEX": true,
"ENABLE_CSMH_EXTENDED": false,
"ENABLE_LEARNER_RECORDS": false,
"ENABLE_LIBRARY_INDEX": true
},
"LMS_ROOT_URL": "https://learn.staging.totem-project.org",
"CMS_ROOT_URL": "https://studio.learn.staging.totem-project.org",
"CMS_BASE": "studio.learn.staging.totem-project.org",
"LMS_BASE": "learn.staging.totem-project.org",
"CONTACT_EMAIL": "admin+staging@totem-project.org",
"CELERY_BROKER_TRANSPORT": "amqp",
"CELERY_BROKER_HOSTNAME": "rabbitmq",
"CELERY_BROKER_USER": "",
"CELERY_BROKER_PASSWORD": "",
"ALTERNATE_WORKER_QUEUES": "lms",
"ENABLE_COMPREHENSIVE_THEMING": true,
"COMPREHENSIVE_THEME_DIRS": ["/openedx/themes"],
"STATIC_ROOT_BASE": "/openedx/staticfiles",
"ELASTIC_SEARCH_CONFIG": [{
"host": "elasticsearch",
"port": 9200
}],
"EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend",
"EMAIL_HOST": "smtp",
"EMAIL_PORT": 25,
"EMAIL_USE_TLS": false,
"HTTPS": "on",
"LANGUAGE_CODE": "en",
"SESSION_COOKIE_DOMAIN": ".learn.staging.totem-project.org",
"CACHES": {
"default": {
"KEY_PREFIX": "default",
"VERSION": "1",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"general": {
"KEY_PREFIX": "general",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"mongo_metadata_inheritance": {
"KEY_PREFIX": "mongo_metadata_inheritance",
"TIMEOUT": 300,
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"staticfiles": {
"KEY_PREFIX": "staticfiles_cms",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"configuration": {
"KEY_PREFIX": "configuration",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"celery": {
"KEY_PREFIX": "celery",
"TIMEOUT": "7200",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"course_structure_cache": {
"KEY_PREFIX": "course_structure",
"TIMEOUT": "7200",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
}
},
"SECRET_KEY": "AjCM27ZphyoCIk4ssCV4F9yr",
"AWS_ACCESS_KEY_ID": "",
"AWS_SECRET_ACCESS_KEY": "",
"CONTENTSTORE": null,
"DOC_STORE_CONFIG": null,
"XQUEUE_INTERFACE": {
"django_auth": null,
"url": null
},
"DATABASES": {
"default": {
"ENGINE": "django.db.backends.mysql",
"HOST": "mysql",
"PORT": 3306,
"NAME": "edxapp",
"USER": "openedx",
"PASSWORD": "QRq2OdAb",
"ATOMIC_REQUESTS": true,
"OPTIONS": {
"init_command": "SET sql_mode='STRICT_TRANS_TABLES'"
}
}
},
"EMAIL_HOST_USER": "",
"EMAIL_HOST_PASSWORD": ""
}
\ No newline at end of file
{
"SITE_NAME": "learn.staging.totem-project.org",
"BOOK_URL": "",
"LOG_DIR": "/openedx/data/logs",
"LOGGING_ENV": "sandbox",
"OAUTH_OIDC_ISSUER": "https://learn.staging.totem-project.org/oauth2",
"PLATFORM_NAME": "Totem",
"FEATURES": {
"CERTIFICATES_HTML_VIEW": true,
"PREVIEW_LMS_BASE": "preview.learn.staging.totem-project.org",
"ENABLE_CORS_HEADERS": true,
"ENABLE_COURSE_DISCOVERY": true,
"ENABLE_COURSEWARE_SEARCH": true,
"ENABLE_CSMH_EXTENDED": false,
"ENABLE_DASHBOARD_SEARCH": true,
"ENABLE_COMBINED_LOGIN_REGISTRATION": true,
"ENABLE_GRADE_DOWNLOADS": true,
"ENABLE_LEARNER_RECORDS": false,
"ENABLE_MOBILE_REST_API": true,
"ENABLE_OAUTH2_PROVIDER": true,
"ENABLE_THIRD_PARTY_AUTH": true
},
"LMS_ROOT_URL": "https://learn.staging.totem-project.org",
"CMS_ROOT_URL": "https://studio.learn.staging.totem-project.org",
"CMS_BASE": "studio.learn.staging.totem-project.org",
"LMS_BASE": "learn.staging.totem-project.org",
"CONTACT_EMAIL": "admin+staging@totem-project.org",
"CELERY_BROKER_TRANSPORT": "amqp",
"CELERY_BROKER_HOSTNAME": "rabbitmq",
"CELERY_BROKER_USER": "",
"CELERY_BROKER_PASSWORD": "",
"ALTERNATE_WORKER_QUEUES": "cms",
"COMMENTS_SERVICE_URL": "http://forum:4567",
"COMMENTS_SERVICE_KEY": "forumapikey",
"ENABLE_COMPREHENSIVE_THEMING": true,
"COMPREHENSIVE_THEME_DIRS": ["/openedx/themes"],
"STATIC_ROOT_BASE": "/openedx/staticfiles",
"ELASTIC_SEARCH_CONFIG": [{
"host": "elasticsearch",
"port": 9200
}],
"EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend",
"EMAIL_HOST": "smtp",
"EMAIL_PORT": 25,
"EMAIL_USE_TLS": false,
"HTTPS": "on",
"LANGUAGE_CODE": "en",
"SESSION_COOKIE_DOMAIN": ".learn.staging.totem-project.org",
"CACHES": {
"default": {
"KEY_PREFIX": "default",
"VERSION": "1",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"general": {
"KEY_PREFIX": "general",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"mongo_metadata_inheritance": {
"KEY_PREFIX": "mongo_metadata_inheritance",
"TIMEOUT": 300,
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"staticfiles": {
"KEY_PREFIX": "staticfiles_lms",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"configuration": {
"KEY_PREFIX": "configuration",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"celery": {
"KEY_PREFIX": "celery",
"TIMEOUT": "7200",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"course_structure_cache": {
"KEY_PREFIX": "course_structure",
"TIMEOUT": "7200",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
},
"ora2-storage": {
"KEY_PREFIX": "ora2-storage",
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"KEY_FUNCTION": "util.memcache.safe_key",
"LOCATION": "memcached:11211"
}
},
"SECRET_KEY": "AjCM27ZphyoCIk4ssCV4F9yr",
"AWS_ACCESS_KEY_ID": "",
"AWS_SECRET_ACCESS_KEY": "",
"CONTENTSTORE": null,
"DOC_STORE_CONFIG": null,
"XQUEUE_INTERFACE": {
"django_auth": null,
"url": null
},
"DATABASES": {
"default": {
"ENGINE": "django.db.backends.mysql",
"HOST": "mysql",
"PORT": 3306,
"NAME": "edxapp",
"USER": "openedx",
"PASSWORD": "QRq2OdAb",
"ATOMIC_REQUESTS": true,
"OPTIONS": {
"init_command": "SET sql_mode='STRICT_TRANS_TABLES'"
}
}
},
"EMAIL_HOST_USER": "",
"EMAIL_HOST_PASSWORD": ""
}
\ No newline at end of file
# -*- coding: utf-8 -*-
import os
from cms.envs.devstack import *
LMS_BASE = "learn.staging.totem-project.org:8000"
LMS_ROOT_URL = "http://" + LMS_BASE
FEATURES["PREVIEW_LMS_BASE"] = "preview." + LMS_BASE
####### Settings common to LMS and CMS
import json
import os
# Mongodb connection parameters: simply modify `mongodb_parameters` to affect all connections to MongoDb.
mongodb_parameters = {
"host": "mongodb",
"port": 27017,
"user": None,
"password": None,
"db": "edxapp",
}
DOC_STORE_CONFIG = mongodb_parameters
CONTENTSTORE = {
"ENGINE": "xmodule.contentstore.mongo.MongoContentStore",
"ADDITIONAL_OPTIONS": {},
"DOC_STORE_CONFIG": DOC_STORE_CONFIG
}
# Load module store settings from config files
update_module_store_settings(MODULESTORE, doc_store_settings=DOC_STORE_CONFIG)
DATA_DIR = "/openedx/data/"
for store in MODULESTORE["default"]["OPTIONS"]["stores"]:
store["OPTIONS"]["fs_root"] = DATA_DIR
DEFAULT_FROM_EMAIL = ENV_TOKENS.get("DEFAULT_FROM_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
DEFAULT_FEEDBACK_EMAIL = ENV_TOKENS.get("DEFAULT_FEEDBACK_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
SERVER_EMAIL = ENV_TOKENS.get("SERVER_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
TECH_SUPPORT_EMAIL = ENV_TOKENS.get("TECH_SUPPORT_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
CONTACT_EMAIL = ENV_TOKENS.get("CONTACT_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
BUGS_EMAIL = ENV_TOKENS.get("BUGS_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
UNIVERSITY_EMAIL = ENV_TOKENS.get("UNIVERSITY_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
PRESS_EMAIL = ENV_TOKENS.get("PRESS_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
PAYMENT_SUPPORT_EMAIL = ENV_TOKENS.get("PAYMENT_SUPPORT_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
BULK_EMAIL_DEFAULT_FROM_EMAIL = ENV_TOKENS.get("BULK_EMAIL_DEFAULT_FROM_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
API_ACCESS_MANAGER_EMAIL = ENV_TOKENS.get("API_ACCESS_MANAGER_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
API_ACCESS_FROM_EMAIL = ENV_TOKENS.get("API_ACCESS_FROM_EMAIL", ENV_TOKENS["CONTACT_EMAIL"])
# Get rid completely of coursewarehistoryextended, as we do not use the CSMH database
INSTALLED_APPS.remove("coursewarehistoryextended")
DATABASE_ROUTERS.remove(
"openedx.core.lib.django_courseware_routers.StudentModuleHistoryExtendedRouter"
)
# Set uploaded media file path
MEDIA_ROOT = "/openedx/media/"
# Add your MFE and third-party app domains here
CORS_ORIGIN_WHITELIST = []
# Video settings
VIDEO_IMAGE_SETTINGS["STORAGE_KWARGS"]["location"] = MEDIA_ROOT
VIDEO_TRANSCRIPTS_SETTINGS["STORAGE_KWARGS"]["location"] = MEDIA_ROOT
GRADES_DOWNLOAD = {
"STORAGE_TYPE": "",
"STORAGE_KWARGS": {
"base_url": "/media/grades/",
"location": "/openedx/media/grades",
},
}