Go to file
Jacob Fugal 40908c8c9d export legacy files to inst-fs on-demand
fixes SAS-1443

requires opt-in (ramping up rate in plugin setting, defaults to 0). will
initially opt in on sandbox accounts, then trial accounts, then a
gradual roll out to avoid hammering the service.

when opted in (100%), asking for a redirect target for a file that's not
yet in inst-fs will first try to add it to Inst-FS by posting the
metadata only (a nominally quick transaction). Inst-FS can use this to
create a "foreign" reference to the existing object in canvas' s3 bucket
(which inst-fs should be given access to), at which point it can
immediately start serving the object.

opting in at a level above 0% but below 100% will have the chosen chance
of doing the above per-access.

if successful, Inst-FS returns the new instfs_uuid with which the
attachment is updated, then the redirect continues to inst-fs instead of
s3. if unsuccessful, opted-out, or skipped due to opt-in threshold, the
existing s3 object is redirected to as before.

test-plan:
  (setup)
  - have inst-fs integrated locally
  - be using an s3 backing for non-instfs files
  - give inst-fs access to that s3 backing

  (testing)
  - turn off the inst-fs plugin setting
  - upload a file
  - turn on the inst-fs plugin setting, but leave the migrating flag
    unset
  - access the previously uploaded file, should be served from s3
  - turn on the migrating flag in the plugin setting
  - access the previously uploaded file, should be served (or at least
    attempted, if you haven't allowed inst-fs access to the canvas s3
    bucket) from inst-fs

Change-Id: I2b909d9b3f1c950e5a88f2af6ec7b40c05e71bb6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234167
Reviewed-by: Michael Jasper <mjasper@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2020-04-15 19:43:58 +00:00
.github update PR auto assignments 2019-10-24 21:19:48 +00:00
Gemfile.d bump inst-jobs for some query improvements 2020-04-14 15:55:12 +00:00
app export legacy files to inst-fs on-demand 2020-04-15 19:43:58 +00:00
bin Generate schema.graphql on demand 2020-01-06 21:12:42 +00:00
build configure fsc to ignore gem plugin specs 2020-04-15 17:16:23 +00:00
client_apps Add user_ids to quiz statistics endpoint 2019-12-04 19:24:27 +00:00
config update sv-x-k12 translation 2020-04-15 05:47:10 +00:00
db/migrate add ability to send notification for annotations 2020-04-14 17:26:55 +00:00
doc enable auto-instrumentation for ddog APM 2020-03-17 19:15:15 +00:00
docker-compose enable instrumentation of APM for jobs 2020-03-23 15:11:25 +00:00
frontend_build spec: remove gradebook from size-exempt bundles 2020-03-20 23:01:23 +00:00
gems spec: unskip live events test 2020-04-15 17:04:05 +00:00
hooks fix pre-commit hook with unfixable eslint error 2018-11-27 23:28:12 +00:00
jest add overrides and editing to bulk assignment edit 2020-04-06 21:36:14 +00:00
lib export legacy files to inst-fs on-demand 2020-04-15 19:43:58 +00:00
packages release canvas-rce 5.0.2 2020-04-15 13:52:02 +00:00
pact Include context_name in planner item response 2018-08-29 22:20:52 +00:00
public Manual submission close to the time-limit display as multiple submissions 2020-04-15 17:01:09 +00:00
script add CanvasDateInput and bulk edit test table 2020-03-31 03:52:27 +00:00
spec allow any authenticated user to see Canvas auth settings 2020-04-15 17:36:36 +00:00
.bowerrc introduced bower to manage js dependencies 2013-12-13 17:45:57 +00:00
.codeclimate.yml disable ESLint in code climate 2017-02-14 17:47:39 +00:00
.dive-ci Spec: Add dive build 2020-03-26 14:52:06 +00:00
.dockerignore use parallel_tests for more parallelization 2020-03-30 21:38:47 +00:00
.editorconfig Add EditorConfig configuration file to help maintain code style 2016-11-15 20:08:55 +00:00
.eslintignore Run prettier on packages/ 2019-10-11 19:29:16 +00:00
.eslintrc.js Remove prettier whitelist 2019-10-11 19:29:31 +00:00
.gitignore use parallel_tests for more parallelization 2020-03-30 21:38:47 +00:00
.gitmessage prepend some blank lines to .gitmessage 2019-08-09 16:12:53 +00:00
.i18nignore bump rails 3 to github branch for ruby 2.2 compatibility 2015-02-18 22:55:20 +00:00
.i18nrc upgrade to node 6 2016-08-09 23:37:07 +00:00
.lintstagedrc.js Remove prettier whitelist 2019-10-11 19:29:31 +00:00
.npmrc fix brand config previewing and skipping 2015-10-27 16:16:15 +00:00
.nvmrc require node 10.16 for brotli support 2020-04-03 19:48:37 +00:00
.prettierrc Add .prettierrc so it matches our existing code 2017-11-03 16:21:50 +00:00
.rubocop.yml Remove duplicated config in .rubocop.yml 2020-01-30 22:41:56 +00:00
.selinimumignore Revert and bring InstIcons into Canvas 2016-11-29 20:52:54 +00:00
.stylelintrc Lint for css that will break RTL 2018-10-17 20:21:25 +00:00
.travis.yml more travis builds 2014-02-10 16:23:19 +00:00
CONTRIBUTING.md Add CLA FAQ from legal 2018-01-22 16:41:44 -05:00
COPYRIGHT Initial commit. 2011-01-31 18:57:29 -07:00
Dockerfile use parallel_tests for more parallelization 2020-03-30 21:38:47 +00:00
Dockerfile-production Default Dockerfiles to 2.4-xenial 2020-03-19 21:51:38 +00:00
Dockerfile.githook Add precommit hook for auto fixing files 2018-11-27 21:07:31 +00:00
Dockerfile.package-translations Create shared translation infrastructure for packages 2019-11-06 22:42:03 +00:00
Gemfile drop rails 5.1 2019-08-01 14:09:31 +00:00
Jenkinsfile add failure messages to be sent to gerrit PSs 2020-04-10 15:39:11 +00:00
Jenkinsfile.contract-tests Add verbose flags to builds 2020-03-18 13:41:00 +00:00
Jenkinsfile.dive Spec: Add dive build 2020-03-26 14:52:06 +00:00
Jenkinsfile.js Add verbose flags to builds 2020-03-18 13:41:00 +00:00
Jenkinsfile.main-for-coverage add skipping on success to rspec and selenium 2020-03-27 16:46:51 +00:00
Jenkinsfile.master-bouncer-check-all add the master-bouncer check cron build 2020-01-30 16:48:02 +00:00
Jenkinsfile.package-translations allow the docker-cleanup script to fail 2019-12-12 16:26:24 +00:00
Jenkinsfile.selenium.flakey_spec_catcher configure fsc to ignore gem plugin specs 2020-04-15 17:16:23 +00:00
Jenkinsfile.selenium.performance.chrome use parallel_tests for more parallelization 2020-03-30 21:38:47 +00:00
Jenkinsfile.test-subbuild Multiple rubies and postgres on Jenkins 2020-03-10 22:30:51 +00:00
Jenkinsfile.vendored-gems Add verbose flags to builds 2020-03-18 13:41:00 +00:00
Jenkinsfile.xbrowser Add verbose flags to builds 2020-03-18 13:41:00 +00:00
LICENSE Initial commit. 2011-01-31 18:57:29 -07:00
README.md Update README.md since Canvas is still modern 2016-12-15 03:18:28 +00:00
Rakefile use parallel_tests for more parallelization 2020-03-30 21:38:47 +00:00
babel.config.js Fix the build 2019-09-17 21:26:07 +00:00
bower.json Move k5uplodaer to /packages 2019-05-10 18:30:51 +00:00
code_of_conduct.md contributor code of conduct 2014-12-23 18:13:59 +00:00
config.ru remove extra logging to debug Passenger connection orphan issue 2017-07-14 16:27:03 +00:00
docker-compose.jenkins.yml update rce-api version on jenkins second attempt 2019-07-19 20:24:19 +00:00
docker-compose.new-jenkins-flakey-spec-catcher.yml implement flakey_spec_catcher build 2020-02-11 19:39:47 +00:00
docker-compose.new-jenkins-karma.yml Rename build/new-jenkins/frontend/ to js/ 2019-12-03 00:56:38 +00:00
docker-compose.new-jenkins-package-translations.yml Create shared translation infrastructure for packages 2019-11-06 22:42:03 +00:00
docker-compose.new-jenkins-selenium.yml spec: upgrade chromedriver for chrome version 80 local and docker 2020-02-28 15:38:01 +00:00
docker-compose.new-jenkins-web.yml Rename linters-and-js build to frontend 2019-09-05 20:15:10 +00:00
docker-compose.new-jenkins.yml use parallel_tests for more parallelization 2020-03-30 21:38:47 +00:00
docker-compose.spring.yml add a spring docker-compose config 2019-08-19 13:48:15 +00:00
docker-compose.yml Use redis:alpine 2017-07-31 22:31:40 +00:00
gulpfile.js fix polyfill for old browsers 2019-09-09 20:00:17 +00:00
issue_template.md Make issue template disclaimer a comment 2018-05-01 15:00:27 +00:00
jest.config.js Allow running jest tests from plugins 2019-12-03 16:55:17 +00:00
karma.conf.js Allow forcing a failure in each JS stage 2020-01-20 21:18:25 +00:00
package.json add progress bar and errors to asmt bulk edit 2020-04-10 16:35:19 +00:00
parallel_runtime_rspec.log spec: fix the parallel_runtime_rspec.log 2020-04-07 15:35:36 +00:00
webpack.config.js Opt our js build tooling dirs into prettier 2018-11-07 22:46:16 +00:00
webpack.test.config.js upgrade webpack to v4 2019-05-16 15:59:04 +00:00
yarn.lock add progress bar and errors to asmt bulk edit 2020-04-10 16:35:19 +00:00

README.md

Canvas LMS

Canvas is a modern, open-source LMS developed and maintained by Instructure Inc. It is released under the AGPLv3 license for use by anyone interested in learning more about or using learning management systems.

Please see our main wiki page for more information

Installation

Detailed instructions for installation and configuration of Canvas are provided on our wiki.