fixes: ADMIN-2539
this moves and loads feature flags from yaml files. there should be
absolutely no changes to functionality of anything in the system.
Test-Plan:
change things with feature flags and different feature options, and make
sure they work the same way as before.
Change-Id: Id096e6c9975f86224c1ee07304cef79a0d4c7755
Reviewed-on: https://gerrit.instructure.com/187804
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
Test plan:
* set a short timeout in the rails console:
Setting.set('graphql_statement_timeout', 1)
* graphql queries and mutations should fail (500 error)
* set a long timeout:
Setting.set('graphql_statement_timeout', 60_000)
* queries/mutations should succeed
* a failure in one mutation should not affect the success/failure of
other mutations sent in the same request
closes GQL-35
Change-Id: I3f4db8e951139b06372ab7bb69867efe6acf2283
Reviewed-on: https://gerrit.instructure.com/179545
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Since Canvas's schema makes frequent use of interfaces and unions, we
need to provide some extra information to apollo to avoid warnings/cache
errors.
Test plan:
pages that use graphql should still work
closes GQL-17
Change-Id: I95a7b343a1726abf02bf3da6e65337cc20583cd7
Reviewed-on: https://gerrit.instructure.com/172937
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Cameron Matheson <cameron@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
closes CORE-1981
test plan
- rake db:initial_setup should run
Change-Id: I4ddebf513a4b75c7aa4ca16d9126198ced2acfc6
Reviewed-on: https://gerrit.instructure.com/170486
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
and add override to force-clear it
Change-Id: I05a4b68be963ca8eceace456cc2d81f4556a9da6
Reviewed-on: https://gerrit.instructure.com/160992
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Fixes PLAT-3550
Test Plan:
- Verify there is no 'API Token Scopes' under OAuth2
- Verify there is only one link 'API Token Scopes' under Resources
- Verify there is no code left related to generating the 'API Token
Scopes' table under OAuth2
Change-Id: Ib00a4aeec102eafc22169ac5322b581fef797a0b
Reviewed-on: https://gerrit.instructure.com/155247
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Change-Id: I0262c02e289eb8476a01c136ea5a291e91173cf9
Reviewed-on: https://gerrit.instructure.com/155009
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Tested-by: James Williams <jamesw@instructure.com>
Change-Id: Ib26b053d9d6c408fc90c7e5a3c1bb73c1f88efcd
Reviewed-on: https://gerrit.instructure.com/154781
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Closes PLAT-3394
Test Plan:
- Run the `doc:api` rake task
- Navigate to /doc/api/index.html and verify there
are two new links in the OAuth2 section ("Developer
Keys" and "API Token Scopes")
- Verify both links work
- Verify the token scopes documentation has a table
for each scope group and includes all Canvas
scopes
- Verify "Resources" documentation pages now display
the scope along with each API endpoint
Change-Id: I2fea0ff531744dbaf63d24619b3c0e9655a25a7a
Reviewed-on: https://gerrit.instructure.com/151010
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Test Plan:
- follow the instructions in spec/contracts/README.md to run
the live events contract tests locally
- follow the instructions in
spec/contracts/service_providers/canvas_lms/README.md to run
the "Generic Consumer" Canvas API contract tests locally
Change-Id: I316747f53731f411ab82432587596e335c2fd059
Reviewed-on: https://gerrit.instructure.com/149766
Reviewed-by: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Product-Review: Michael Hargiss <mhargiss@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Change-Id: I4cfe467351801513f2077de2f8acfeb2d7a95c38
Reviewed-on: https://gerrit.instructure.com/145528
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Add pact provider files in Canvas base project following
Pact search conventions where pact_helper.rb is located in
canvas-lms/spec/service-consumer/
Add copyright to files
proxy.app doesn't work yet - unable to create token
Change-Id: I505a6165650ba1d89fcf054441e172e584a39305
Reviewed-on: https://gerrit.instructure.com/143296
Tested-by: Jenkins
Reviewed-by: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
refs: CORE-24
test plan:
* this net result of this change should mean that we are using the exact
same code as we were using before, just pulled from github directly
in our package.json instead of vendored into our repo.
* testing the follow-on commits should show this worked correctly
Change-Id: Ie6d022d5fe8ed1a607f66f9d426c47ec7e8f5b14
Reviewed-on: https://gerrit.instructure.com/142381
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Closes: CORE-720
We have this thing where you can add ?optimized_js=0 to the url of any
page and it will try to serve the dev js bundles. But at deploy time
we weren’t actually building the dev bundles so they weren’t available.
(You can see this by going to a page right now in prod and adding
?optimized_js=0 to the url and seeing all the 404s for the js bundles).
This makes it so we build both so if you do the ?optimized_js=0 thing,
they will exist and it will work.
Test plan:
* run RAILS_ENV=production bundle exec rake canvas:compile_assets
* start a server in prod mode
* go to a page, all the js should be minified
* go to the same page with ?optimized_js=0 at the end of the url
* all the js should work and should be the same as what you see in dev
mode
* the selenium Jenkins build should not take any longer than it normally
Does since it should not build both bundles.
Change-Id: I612222cfc4ef5282a986a2467e76d70ffcf30629
Reviewed-on: https://gerrit.instructure.com/134107
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
This change makes it so we don’t wait until it
Exits to log the output. Because something is going
On in the deploy boxes where it just dies midway and
never finishes.
Test plan:
* run rake canvas: compile_assets,
* you should see log output while the yarn part runs
Change-Id: I8e2fc0cc559e631bbde2372fa548e93d77af13a6
Reviewed-on: https://gerrit.instructure.com/130115
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Fixes: CORE-352
Test plan:
* in a deployers vm (or somewhere where you don’t have a full
Rails environment set up with a database connection and everything)
* run compile_assets
* you should see some `compiled plugins/analytics/analytics.scss …`
output in your console
* `grep analytics public/dist/brandable_css/*bundles_with_deps.*`
Should have stuff about analytics
Change-Id: Ifaa17c42f5fc62a911a84febbb674c2bb570db37
Reviewed-on: https://gerrit.instructure.com/131123
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Change-Id: I7e52ee10ae3e6d4e666452a7a53e5459dfad43f4
Reviewed-on: https://gerrit.instructure.com/129032
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Tested-by: James Williams <jamesw@instructure.com>
Fixes: CNVS-39854
Test plan:
* mv config/database.yml config/database.yml.backup
* bundle exec rake canvas:compile_assets
* it should work
* Docker build should pass
Change-Id: I0786d1de1d6f6f69d665e10b0428571e77d7f859
Reviewed-on: https://gerrit.instructure.com/128974
Reviewed-by: James Williams <jamesw@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
closes CNVS-39664
Test plan:
* start your rails server, it should work
* make a change to app/stylesheets/brandable_variables.json
* restart your rails server
* it should throw raise an exception
* do what it says in the error message
* after you moved those files an restarted rails like it said,
* start your rails server, it should not throw an error
Change-Id: I30042f59baa31908c2e902445fb1bf3b06f3b45c
Reviewed-on: https://gerrit.instructure.com/127667
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
closes: CNVS-39103 CNVS-39104 CNVS-38650
test plan:
* do a general css styling regression pass
* make sure that the urls to css files look like
/dist/brandable_css/new_styles_normal_contrast/<bundle>-<fingerprint>.css
and not:
/dist/brandable_css/<big long md5>/new_styles_normal_contrast/<bundle>-<fingerprint>.css
* make sure that stylesheets loaded by handlebars templates work
eg: go to the calendar page and make sure it is styled correctly
* verify that the theme editor works. especially the process when you hit
"preivew" and "apply"
* set up config/canvas_cdn.yml to use the dev cdn
* run `bundle exec canvas:compile_assets && bundle exec rake canvas:cdn:upload_to_s3`
* load a page, all the css should load from the cdn
* verify the theme editor works when using the cdn too.
* also review the changes in the brandable_css npm package:
https://github.com/ryankshaw/brandable_css/compare/c6bef...b159d5
Change-Id: I55db41e90f6bc54183a661128f1050445a086d6b
Reviewed-on: https://gerrit.instructure.com/120912
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
closes: CNVS-39669
we don't need this because we serve our css/js from cloudfront and
it handles gzip for us. for any open source users, you'll want
to make sure that you have the apache/ngix module that does on-the-fly
compression of text mime-types as gzip set up.
test plan:
the css/js served in production should still be gzipped
Change-Id: I41efba5dd47d7ce86ad291e2c43dd5c5d97e2316
Reviewed-on: https://gerrit.instructure.com/127435
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
fixes: CNVS-39666
test plan:
* rm -rf public/dist
* bundle exec rake canvas:compile_assets
* load a page, you should see the branding
for your brand. AKA, the page should not be
just plain white with no colors.
Change-Id: I794544a1ae6f84df377d8a98ed3c24a6409e20b5
Reviewed-on: https://gerrit.instructure.com/127830
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Fixes: CNVS-39293
Since we eliminated the pre-population functionality from our Consul
wrapper we needed something to conveniently populate the KV store.
Test Plan:
- Start a Consul server
- Run `bin/rake canvas:seed_consul`
- Verify that values were written to the KV store.
Change-Id: I340011b7d00ed4e3dd2918e3f101f6377fc72d7e
Reviewed-on: https://gerrit.instructure.com/126574
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Tyler Pickett <tpickett@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
bump mediaelement to 2.47.0, and port the keyboard/screenreader handling
strategies that arc uses to canvas.
fixes CNVS-31892
test plan:
- test keyboard and screenreader accessibility on video and audio
players
- should be able to tab to menus and toggle with arrow keys
- should work like the Arc player
known issues:
- voiceover seems to get confused about the order of components in the
player controls. haven't been able to figure out why
Change-Id: I07fa5904addf1d707b4ace12cd474350c6237f33
Reviewed-on: https://gerrit.instructure.com/114749
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Closes: CNVS-38601
This change makes it so if you have a database
connection, it will look at the db for the brand_configs
that exist there and generate them all when you
compile_assets. It should prevent people in dev
mode from getting the vanilla white page
that you get when you get a 404 for the css file
That has all of your brand_configs css variables.
Test plan:
* set up a custom theme for yourself in canvas
* rm -rf public/dist
* check this out
* run bin/rake canvas:compile_assets
* load a page,
* you should not get a 404 for a css file or js file
with your brand_variables
* the page should be themed and not be a vanilla white page
Change-Id: I796ac99c06aafe5d7d229e457988094a7b48e8bd
Reviewed-on: https://gerrit.instructure.com/122155
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
closes: CNVS-38408
NOTE: this does not actually change any behavior, it just
gets things set up so we can actually start using css variables
in follow-on commits.
test plan:
* with this checked out,
* run bundle exec rake brand_configs:generate_and_upload_all & compile assets
* open a page in canvas
* there should be a stylesheet near the top of the <head> with css variables
of all the theme editor variables.
Change-Id: I2caa210917d9245ae103d1444d6353ecfdeb59fe
Reviewed-on: https://gerrit.instructure.com/120574
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
fixes: CNVS-34022
test plan: should include general improvements and bugfixes from
upgrade, but no core functionality should change.
- video and audio player
- speed controls
- quality controls
- caption track controls (including upload and delete)
- note: this does not yet fix all a11y issues
Change-Id: Ifc0afbece6044cd04087f474c9e9c6a30caca74d
Reviewed-on: https://gerrit.instructure.com/111518
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
closes: CNVS-37098
this should get rid of all of those cases where jenkins fails with
an error from webpack but everything works locally for a dev and they
have no idea why it is failing on jenkins
Test plan:
* look at the output of
http://jenkins.instructure.com/job/canvas__selenium/13893/console
(which is based on this) and verify that it prints an error message
of actually why webpack failed
Change-Id: I49581a8b77b0f563ff88ceb5c54ed24a23d7def9
Reviewed-on: https://gerrit.instructure.com/112813
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins
rake canvas:compile_assets is still the recommended
Way of making sure all of your stuff gets updated.
We can put a message back when there is something
That really does replace it and runs everything
Change-Id: Ic3f75955b1f0a65097c8fb4e8089258636d4c3b4
Reviewed-on: https://gerrit.instructure.com/108582
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Change-Id: Id641a49b62339a9495917eef38601d77c4b1cccb
Reviewed-on: https://gerrit.instructure.com/107837
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Change-Id: Iab62455a896c6a480ab5bd09403d8c341b0b0468
Reviewed-on: https://gerrit.instructure.com/105064
Tested-by: Jenkins
Reviewed-by: Omar Khan <okhan@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
fixes CNVS-34845
in particular, delete a file (lib/kaltura.rb) that is never used anymore,
and move api_routes.rb out of lib, as it's not meant to ever be loaded
in the app
Change-Id: Ia950b3eb50b90dfaccec1784e3e612589091989e
Reviewed-on: https://gerrit.instructure.com/105444
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
closes: CNVS-31785
test plan:
all builds should pass
Change-Id: I2925934692a3d2f115f1289d7b50cb72d8cb907f
Reviewed-on: https://gerrit.instructure.com/104492
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
refs CNVS-35238
especially since it's a plain module, it breaks autoextending it
Change-Id: I5a4d655aa8c402081d208ddd203e3873773956a1
Reviewed-on: https://gerrit.instructure.com/104706
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Closes: CNVS-35152
This changes all our tooling that used `npm` to
Run scripts to use `yarn`. `npm` will still work
for now but if you have yarn installed, it will use
that.
Cheat Sheet:
old command -> new command
npm install -> yarn install (or just `yarn`)
npm run webpack -> yarn run webpack
npm test -> yarn test
See more at https://yarnpkg.com
Test plan:
* all Jenkins builds should pass
* without yarn installed:
* run script/nuke_node.sh
* it should work and warn you about how `npm` is deprecated
* now install yarn, e.g.: `brew install yarn`
* run script/nuke_node.sh again
* it should work and you should see silly yarn emoji
in the output and it should be a lot faster
* the docker changes I made should work and docker should
build correctly and use yarn.
Change-Id: I4aa31eeae3ecc504634a7c72a1ea0d3396f445e3
Reviewed-on: https://gerrit.instructure.com/102969
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>