test plan
- use api or mobile app to set favorite for a group
- merge with another user
- the favorite should come over
fixes FOO-1441
flag=none
Change-Id: I6f1cdd3e0287b1d286b87bde739edb9addcf46b6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256066
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes INTEROP-6312
flag=none
test plan:
* Have an LTI 1.3 installed with the editor button enabled into the
related developer key;
* Have a Course recorded;
* When creating/editing an Assignment/Discussion/Pages/etc, into the RCE
add an integration with the LTI tool and check:
* A new LTI:ResourceLink was recorded to this Course;
* The URL link generate must have the resource_link_lookup_id
parameter;
Change-Id: I080ee4ebde49b5aa4301e4261cce94f5792cdc56
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256029
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Refs FOO-171
flag = none
There's no reason this migration has to tie everything up by
running in a transaction
Test plan:
* this makes more sense
Change-Id: Ib489616235c5797dc6ebb48b8a21fd81a5f2c89e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256270
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
this makes it match the sent scope logic in
api v1 conversations
flag=none
fixes VICE-1038
test plan:
- as a user, send a message to another user
- make a graphql query as that user for your
conversations with the sent scope
- verify that only and all messages you have
sent out shows
see the spec addition, it verifies the same thing
Change-Id: I9e43b4b166d86d65a4de9266f71ad8d3af657af0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256249
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
refs FOO-1204
flag=none
TEST PLAN:
1) run a bunch of workers with periodic jobs
2) cleanups stop dead jobs from still existing
3) cleanup JOBS don't exist anymore
Change-Id: I522ffa643d9f9375f6f04b5edccd011e41e74c85
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256168
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
also default to unspecified for new configs
test plan:
* set up a new SAML config against an ADFS server, specifying a metadata url
* the identifer format should stay as unspecified
* logins should work
Change-Id: I9cdf106aa3a708984a1eb3985b2520210ee6a606
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256225
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
flag=none
Test Plan:
New comments are clear and correct
Change-Id: Ib568a7767ddaf23552a3bdae09515849dc19a0f9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256190
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
closes FOO-1438
flag=none
TEST PLAN:
1) break inst-fs so it returns 502s
2) try to submit a submission using inst-fs
3) you get a 502, but sentry doesn't get an error
Change-Id: I9a78cb9c9826ac6ae5dfa96a444bbf3937f5d78e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256241
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Ziwisky <mziwisky@instructure.com>
QA-Review: Michael Ziwisky <mziwisky@instructure.com>
Product-Review: Michael Ziwisky <mziwisky@instructure.com>
refs DE-368
When the images are rebuilt, it changes the image digest causing the cache to become invalid. It can also break the build and is not easily revertable to the previous image. Work around this issue by mirroring the dockerhub image on starlord, and update it via a cron job.
Change-Id: I2f3f80ea53c7c306a126805b429781743df85aa6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256167
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
(safe because these descriptions are managed by instructure engineers
even though they come from the api)
fixes FOO-1415
Change-Id: I9135061653c4f44d001845e37190dd2001963c6a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256178
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Ziwisky <mziwisky@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
Ensures that the base backend is already loaded because otherwise
things get sad sometimes
Change-Id: I37306327466d0bbdda8126d79fb96695a52675a3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256224
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes FOO-1436
flag=none
TEST PLAN:
1) make a giant group with more memberships than your setting value
2) ask for the groups index with "include[]=users"
3) you only get the first N users in each group
4) you can still paginate through group memberships
from the memberships endpoint successfully
Change-Id: I211c48d7adcc444b9d9e05d22b38131add66be41
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256219
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
fixes FOO-1349
flag=none
test plan:
- log in and visit /calendar#view_name=month&view_start=2020-12-13&__proto__%5Bdiv%5D%5B0%5D=1&__proto__%5Bdiv%5D%5B1%5D=<img/src/onerror%3dalert(document.domain)>&__proto__%5Bdiv%5D%5B2%5D=1
- you should not see an alert pop up
Change-Id: I3e13be0f25fde8826028422f7dc14a5a89f7491b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256153
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Closes LS-1684
Test Plan: run flakey_spec_catcher over 100 times in docker and
retrigger in jenkins multiple times. Also test with latest
canvas-rce-api when merged
Change-Id: I9412d765122e5e860b8d62a58e496c3398aeec55
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/255686
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Robin Kuss <rkuss@instructure.com>
closes FOO-1414
flag=none
TEST PLAN:
1) run a huge fleet of servers
2) none of them should accidentally share connections between the
passenger processes and the live events emitter
Change-Id: Ib121e4c5df2dc4c25867c9636cd035121304ee2c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256072
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
fixes LS-1742
flag = rce_enhancements
Test plan:
- Edit something in the new RCE
- Upload a video and add captions (or find an existing captioned
video somewhere)
- Play the video and ensure that captions appear at the bottom of
the player and are displayed with a sans-serif font
- View the video outside of the RCE and ensure that this is still
true
Change-Id: Ide57770c34abb84655ed2a2bfd55e38b37d42922
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256192
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Jeff Largent <jeff.largent@instructure.com>
closes LS-1733
flag=rce_pretty_html_editor
requires rce_enhancements to be on as well. I'm not sure the
new flag is necesary, and as of PS1, it doesn't fully hide the
new html editor functionality.
The INSTUI CodeEditor component uses CodeMirror v5, which sadly
is not accessible. https://github.com/codemirror/codemirror.next,
or https://codemirror.net/6/ for details on a future version.
For now, the RCE still provides access to the raw textarea if
KB access is needed by the user.
BONUS FEATURE! the html editors can now be viewed fullscreen
test plan:
- with the Pretty html editor feature flag off
- click the </> button
> expect the old boring html editor
- turn on Pretty HTML Editor feature flag
- click the </> button
> expect the deluxe new html editor
- click the "Raw HTML Editor" link
> expect the old boring editor
- click the "Pretty HTML Editor" link
> expect the pretty editor
- click the </>
> expect to be back in the rce
- shift-click the </>
> expect the old editor
- from anywhere, click the fullscreen button (except in safari
when in the old editor, safari won't fullscreen the textarea so
the button should be hidden)
> expect to be in fullscreen
- if you fullscreened the RCE, you can select "View > HTML Editor"
from the menubar
> expect to be in the html editor, fullscreened
- ESC
> expect to exit fullscreen
- edit your content anywhere
> expect the changed to be reflected everywhere else
- try it on a discussions or quizzes page with >1 RCE
> the editors and fullscreen should work as you expect
Change-Id: If5b17b2357a4ff5521f0cb9c42bd6a5a096f2436
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/255928
Reviewed-by: Jeff Largent <jeff.largent@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jeff Largent <jeff.largent@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
fixes FOO-1408
this allows us to control which files i18nliner processes completely
through config and without having to modify hardcoded paths in source
file, which is something we need for FOO-1265
.i18nrc files can include other directories through the "include"
directive:
// file: canvas-lms/.i18nrc
{ "include": [ "public/javascripts/.i18nrc" ] }
// file: public/javascripts/.i18nrc
{ "files": [...] }
:: test plan
aside of Jenkins exercising the i18n tasks, I ran a diff by hand over
the set of files that i18nliner processses before and after the patch,
with the new code processing a few more files: some handlebars in the
analytics plugin and the 3 client_apps/canvas_quizzes source files
if you really want to, you can do the same or find another way to verify
the output
on master, edit canvas_i18nliner/js/main.js somewhere before the
exports:
Check.prototype.checkWrapper = f => console.warn(f)
run it:
./gems/canvas_i18nliner/bin/i18nliner check 2>
tmp/i18nliner-upstream-files.txt
cat tmp/i18nliner-upstream-files.txt | sort >
tmp/i18nliner-upstream.txt
now do similar on our branch (although we need to massage teh output
because the paths are absolute:)
./gems/canvas_i18nliner/bin/i18nliner check 2>
tmp/i18nliner-patched-files.txt
cat tmp/i18nliner-patched-files.txt | sort >
tmp/i18nliner-patched.txt
sed -i "s{$PWD/{{" tmp/i18nliner-patched.txt
now look for differences:
git diff --no-index \
tmp/i18nliner-upstream.txt \
tmp/i18nliner-patched.txt
Change-Id: Ic73cbc7261ab597deb567fc5d0af1e3014875da1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/255952
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
closes LS-1701
flag=none
When loading the page from agenda view, there are a number of api
requests for calednar_events
- AgendView.coffee queries from the "target date" (the current day, or
the date you clicked on in the mini-calendar) to the same day in
the year 3000, but only retrieves the 1st page
- Calendar.js queries from the end of the previous month to the target
date and exhausts all pages
Trouble happens when the singlePage requests don't return all the
necessary data and the paginated requests don't overlap to pick
them up. Also, for some odd reason, if select only 1 course in the
calendar, you'll get >50 results in the first page (of 50?!?), so selecting
2 courses is necesary to see the bug in the example URL in the ticket.
(though this is not a bug in calendar, probably in pagination
using bookmarks)
To _really_ fix this, the AgendaView would have to query data something like
planner does, keep getting pages until some end date is fully satisfied,
but no more. That's beyond the scope of this ticket. This is probably
a rare case, so I've addressed it by bumping the per_page count for
AgendaView's singlePage requests to 100. This fixes the issue on the
calendar referenced in the ticket, and I bet it fixes it in general.
test plan:
- I haven't been able to recreate the problem locally yet.
Change-Id: I7454b6ab58ce369176e948b6a5ab33c08903347c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/255885
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Nate Armstrong <narmstrong@instructure.com>
QA-Review: Nate Armstrong <narmstrong@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
This change allows courses that have ended (a.k.a. the course has an
end date in the past or the associated term has an end date in the
past) to be copied and sent via direct share. The main issue here is
that the copy and import trays were not including an additional query
param required to make conclucded courses show up.
fixes LS-1624
flag = direct_share
Test plan:
- Create a course with at least one assignment
- Create a second course with an end date in the past
- Ensure a teacher has an active enrollment in both courses
- In Course 1, select the "Copy To..." option for an assignment
- In the tray that appears, ensure that Course 2 appears in the
typeahead list
- Back in Course 1, select the "Send To..." option for an assignment
- Choose the current teacher as a recipient for the assignment
- Go to "Account" > "Shared Content" for the teacher
- Under the received content actions, choose "Import"
- On the tray that appears, ensure that Course 2 appears in the
typeahead list
- Update Course 2 to have an end date in the future, and update the
term associated with the course to have an end date in the past
- Ensure that both "Copy To..." and "Send To..." scenarios still
show Course 2 in their options
Change-Id: Ie7b6655f0b9926297248b093e9273b07d6e97c07
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/255725
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jeff Largent <jeff.largent@instructure.com>
refs FOO-1234
test plan:
• unleash the kraken
• monitor spec failures in splunk
• submit to pr to fix flakiness
Change-Id: Ia566ae7209ac53d8ba51fd5bf84583de979f46ae
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256208
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
don't rely on possibly mutated instance variable state
for spec consistency.
fixes FOO-1293
test plan:
• specs should pass with a 100% success rate
Change-Id: Iaf662f7a3be63f44d187330f0f2c78d46c60d8e0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256200
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
flag=none
this commit also removes the phantomjs docker-compose service which has
been broken for years, ever since PhantomJS was removed from
karma.conf.js in https://gerrit.instructure.com/c/canvas-lms/+/102169
test plan:
- follow the docs to ensure you can run a targeted JS test in docker
Change-Id: Ifa1647897a7a9605e097aeaf89e718c167d379fc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256179
Reviewed-by: Nate Armstrong <narmstrong@instructure.com>
QA-Review: Nate Armstrong <narmstrong@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Michael Ziwisky <mziwisky@instructure.com>
refs VICE-1044
flag=react_inbox
test plan:
- create a conversation with messages between two users
- as a user not in the conversation
- navigate to /graphiql
- add a new mutation
- use the deleteConversationMessage to attempt to
delete a message from the conversation
- this should fail due to insufficient permissions
- as a user in the conversation
- navigate to /graphiql
- attempt to delete a message that doesn't exist
- this should fail to unfound ConversationMessage
- attempt to delete a message that does exist
- this should succeed
- try the above with multiple conversation ids at a time
- if any ids don't exist, it should error
- if any ids are tied to different Conversations, it should error
- it should otherwise succeed
qa risk: low
Change-Id: I0e9a5b73f4e4f16f1ae3da6e1c25053223a72a0b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256116
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
flag=none
fixes VICE-1020
updatedAt exists in these but createdAt do not, so
createdAt is removed
TEST PLAN:
- perform a legacyNode query on User with user id
who has existing inbox conversations
- in graphiql, make sure that in conversationsConnection
and conversationParticipantsConnection, there is no createdAt field
but there is an updatedAt field
Change-Id: I7776bc7b3efd9fbf55878d71bdfec15989edb5dd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256183
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
The web_conference table has a root_account_id on it in prod now.
Change-Id: Ieea0b1873f0ed36a08886918837c732af2d6a4c6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256117
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Wagner Goncalves <wagner.goncalves@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Tucker Mcknight <tmcknight@instructure.com>
flag=none
fixes VICE-1021
TEST PLAN:
- visit /graphiql
- lgacy node, on User, use user id of your current user
- conversationsConnection all the way down to
conversationMessagesConnection
- expand nodes, notice you no longer see updatedAt
but still see createdAt
- add createdAt and Body and other fields
- make the query
- query successful if you have expected messages
Change-Id: I50039f9d1e08536450e63c53cafa3834afc4358a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256182
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes: DE-438
flag = none
Test Plan:
-Jenkins passes
- following steps in documents results in successful
docker dev environment
Change-Id: Iedb37b244f5da56568c8f8b29c397bfb271b83e8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/255730
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Sends those custom parameters that were returned from a Deep Linking
response. Overrides tool-level custom parameters if they conflict.
closes INTEROP-6318
flag=none
Test plan:
- Create an assignment with a External Tool Submission with custom
parameters, including some using variable expansion (such as
$Canvas.assignment.id). This can be done by using the LTI 1.3 test
tool, creating an assignment, choosing External Tool, and adding JSON
in the "Custom Params (JSON)" field
- Launch the assignment
- Check the JWT for the custom parameters you added. The LTI 1.3 test
tool shows you the Decoded JWT on the page, or you should be able to
use Dev Tools to look at the JWT payload.
- Set up the LTI tool with custom parameters of its own (at the tool
level) and check that those are also given but the link-specific params
(returned by deep linking) take precendence if they have the same name.
- Check with a Lti::ResourceLink with null params to make sure that
works (not sure if this is possible but it's easy to test by modifying
the Lti::ResourceLink in a rails console)
Change-Id: I9eb950c371027e1152fefc0fe2d1955bcbb22f3d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/255908
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Reviewed-by: Wagner Goncalves <wagner.goncalves@instructure.com>
QA-Review: Wagner Goncalves <wagner.goncalves@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>