closes OUT-3999
flag=none
test-plan:
- ensure live events are running locally (see live_events.md)
- verify that when making changes (including soft deleting) or
creating an outcome calculation method that live events are emitted
Change-Id: I715305dc3cd8dc1cab127033d1feb92acd28f948
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/250457
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
Reviewed-by: Wagner Goncalves <wagner.goncalves@instructure.com>
QA-Review: Manoel Quirino <manoel.quirino@instructure.com>
Product-Review: Jody Sailor
closes OUT-3867
flag=none
test-plan:
- ensure live events are running locally (see live_events.md)
- verify that when making changes (including soft deleting) or
creating an outcome proficiency that live events are emitted
- verify that ratings information is included in the proficiency payload
(cherry picked from commit 0f0edc8cbe)
Change-Id: Iee0a98666354fc6e375757d63a1bbf22cdff973e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245081
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Michael Brewer-Davis <mbd@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
This reverts commit 0f0edc8cbe.
Reason for revert: merged prematurely, depends on code in g/244166
Change-Id: I49b623197354bf5c39cb3f6829b2dea72118e890
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244037
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Pat Renner <prenner@instructure.com>
Product-Review: Pat Renner <prenner@instructure.com>
closes OUT-3867
flag=none
test-plan:
- ensure live events are running locally (see live_events.md)
- verify that when making changes (including soft deleting) or
creating an outcome proficiency that live events are emitted
- verify that ratings information is included in the proficiency payload
Change-Id: I0e6603896b6a08b7a6ea1050c742e5ff3a9b3b2f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244793
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Augusto Callejas <acallejas@instructure.com>
Product-Review: Pat Renner <prenner@instructure.com>
and the after_saves that are clearing unused cache keys
closes #LS-1296
Change-Id: Ida24905e39a1e8a61c875ca10116e799e0718c85
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244540
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
refs PFS-15497
flag = none
Test plan:
1. create a new conversation on canvas with another user
2. create a new message in the conversation by replying
3. verify live event for conversation_message_created has been triggered
Change-Id: Idf929eb5398f6040d8a3e45c644481b207858042
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/232152
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Dan Dickson <ddickson@instructure.com>
QA-Review: Aiona Rae Hernandez <ahernandez@instructure.com>
Reviewed-by: Sean Mikkelsen <smikkelsen@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
refs PFS-15495
flag = none
test plan:
1. create a new conversation on canvas with another user
2. verify live event for conversation_created has been triggered
Change-Id: Ice2c239b90318588a2e5fe68ac0db289ff591a94
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/231746
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Dan Dickson <ddickson@instructure.com>
closes PLAT-5238
test plan:
- make sure jobs are running
- do a sis import
- make sure a sis_batch_created event is triggered
- make sure sis_batch_updated live events are triggered for each
state change
Change-Id: Ibf3b0651ff32e695d3fedfca2f659aa914c531f7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221346
Reviewed-by: Brandon Broschinsky <brandonbr@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Clint Furse <cfurse@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
refs OUT-3177
Test plan:
- set env var for jobs container/BASE in
docker-compose.override.yml
STUB_LIVE_EVENTS_KINESIS: "true"
(see live_events.md)
- at canvas.docker/plugins/live_events
- uncheck "Disable this plugin"
- add anything to fields
- Apply
- tail Canvas containers for stubbed events
> docker-compose logs -f | grep stubbed_kinesis_stream
- verify that the following live events are seen and have
reasonable data:
learning_outcome_created
- when outcome created manually or via csv
learning_outcome_updated
- when outcome edited or deleted (in original context)
manually or via csv
learning_outcome_group_created
- when created manually, via import from account,
or via import from csv
learning_outcome_group_updated
- when group edited or deleted manually or via csv
learning_outcome_link_created
- when outcome created manually or via csv
- when outcome imported from account
learning_outcome_link_updated
- when outcome moved or deleted manually or via
csv
Change-Id: I70a62617f745b884951d22f2cb29c0178f283c12
Reviewed-on: https://gerrit.instructure.com/211460
Tested-by: Jenkins
Reviewed-by: Frank Murphy III <fmurphy@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Oxana Jurosevic
Event was not added as an observer to the model for
live events to trigger.
closes PLAT-4639
Test Plan:
- create an outcome result and see that it gets
put on the stream
Change-Id: If81565ce9498a03f3c1967759edcc2db9b2a24a5
Reviewed-on: https://gerrit.instructure.com/204273
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Oxana Jurosevic
closes PLAT-3929
Test Plan:
- Create a new comment on a submission
- verify that the live event is created
Change-Id: I8ebdeda24f356ddf51d2f90cb9ad8ae2effc3e31
Reviewed-on: https://gerrit.instructure.com/199520
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Tested-by: Jenkins
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-4071
Test Plan:
Verify a <record>_created event is sent after a
content migration completes for each record that
was created during the migration.
Verify a <record>_updated event is sent after a
content migration completes for each record that
was updated during the migration
Change-Id: I4f6c32a2cbd51b5b64ee3b919e34c260405ce556
Reviewed-on: https://gerrit.instructure.com/178680
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: Nathan Mills <nathanm@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Closes PLAT-4070
Test Plan:
- Create an assignment group
- Verify an assignment_group_created event is triggered
- Edit the assignment group
- Verify an assignment_group_updated event is triggered
Change-Id: I68a90c7dc733394c9a4a8853d6803dec569c3834
Reviewed-on: https://gerrit.instructure.com/179194
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
- run completion update in transaction
- queue date/access recalculation job after other update in
sis importer
- also don't send a live event if nothing really updated
because it's silly
refs #CORE-1739
Change-Id: I0f0aaa0374c2dbee2cad426152da1cb16549bfc8
Reviewed-on: https://gerrit.instructure.com/164418
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
closes CAT-2293
test plan:
- add `:docker-compose/kinesis.override.yml` to your .env file
- do docker-compose up
- in another terminal window, type `AWS_ACCESS_KEY_ID=key
AWS_SECRET_ACCESS_KEY=secret aws --endpoint-url
http://kinesis.canvaslms.docker/ kinesis create-stream
--stream-name=live-events --shard-count=1 --region=us-east-1`
- go to canvas.docker/plugins
- find the Live Events plugin
- select All Accounts and click Create Config
- deselect the Disable this Plugin checkbox
- enter the following information and save:
Kinesis Stream Name live-events
AWS Region us-east-1
AWS Endpoint http://kinesis:4567
AWS Access Key ID key
AWS Secret Access Key secret
- close and reopen docker-compose up
- create a course with a single student enrolled
- create an assignment with web text entry worth 10 points in a module
- create a requirement for the module to earn 10/10 on the assignment
- masquerade as the student
- submit the assignment
- stop masquerading
- type `docker-compose run --rm web script/tail_kinesis
http://kinesis:4567 live-events` in another terminal window
- grade the assignment as a 10/10 for the student
- ensure an event appears with its event_name as "course_completed"
Change-Id: Iffd5d6148fadcb66da3f8eca3a4caa9355485a90
Reviewed-on: https://gerrit.instructure.com/161106
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
refs QUIZ-4415
test plan:
- cr
- Quiz.Next CC import is not ready for test with only this patch
- regression on `Import Content`, to make sure:
1) `Qti .zip file` import works
2) `Common Catridge 1.x Package` import works
Change-Id: Iba2818a2b864020b6c59ef55e02f122b996e4c40
Reviewed-on: https://gerrit.instructure.com/149978
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Han Yan <hyan@instructure.com>
Test plan:
- Merge and warmfix onto beta
- Configure our EventManager Kinesis stream
to listen to the Module and ModuleItem
live events
- Create a Module and a ModuleItem and
validate that the events were sent
- Update a Module and a ModuleItem and
validate that the events were sent
refs SKUNK-17, SKUNK-18
Change-Id: Ia047024b0f5d38e5c14a19194f75b131f9fc68cc
Reviewed-on: https://gerrit.instructure.com/146858
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Tested-by: Jenkins
Product-Review: Nate Collings <ncollings@instructure.com>
QA-Review: Nate Collings <ncollings@instructure.com>
`sis_batch_id` is updated even when no other field is changed on a sis
batch import. Add `sis_batch_id` to the list of fields that will not
trigger a live-events stream update.
Test Plan:
* Specs
closes RECNVS-239
Change-Id: I15f0b82dbbe1dc47885d3f2ce05932ba66f96c97
Reviewed-on: https://gerrit.instructure.com/137963
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Jonathan Featherstone <jfeatherstone@instructure.com>
QA-Review: Jonathan Featherstone <jfeatherstone@instructure.com>
This change adds a check to the `after_update` callback to make sure
that actual update has happened. This change is in response to a flood
of `user_updated` events being written to the live-events stream from a
SIS integration that was posting updated user records to the API even
though no actual change of user data had occurred.
Test Plan:
* Follow instructions in `doc/live_events.md` to get live events setup
* Create a user record in local canvas UI
* Generate an API token for local canvas UI
* Use simple script below to PUT user same user record data
* Confirm that live event record was not written using `tail_kinesis`
script:
`docker-compose run --rm web script/tail_kinesis http://kinesis:4567 live-events`
Sample
```
const axios = require("axios");
const canvasBaseUrl = "http://canvas.docker";
const canvasAccessToken = "<TOKEN>"
axios.defaults.baseURL = canvasBaseUrl;
axios.defaults.headers.common.Authorization = `Bearer ${canvasAccessToken}`;
// Change ID and data below to match test record
axios
.put(`/api/v1/users/<ID>`, {
user: {
name: "Test User",
short_name: "Test User",
email: "test@example.com",
time_zone: "Mountain Time (US & Canada)"
}
})
.catch(err => console.log(err))
.then(res => console.log(res.statusText));
```
refs RECNVS-75
closes CORE-73
Change-Id: I89326df5ef77e28fcdebf5b3085cc8bacddf0104
Reviewed-on: https://gerrit.instructure.com/133560
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Collin Parrish <cparrish@instructure.com>
Product-Review: Jonathan Featherstone <jfeatherstone@instructure.com>
Closes CNVS-39302
Test Plan:
* As an admin
* With avatars enabled
* Visit a user's profile
* Inspect their avatar image
* The alt text should read "Click to change profile
picture for USER", where USER is the profile user's
short name/display name
Change-Id: I51fd7cf1e5ab05046808e97b01ec404993aed64d
Reviewed-on: https://gerrit.instructure.com/126040
Reviewed-by: James Williams <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Note: Since this is a live events change this must
be merged into and QAd on beta
Change-Id: Iac407dafcca989b0c17298ffffef260d9e47a46c
refs: PFS-8567
Reviewed-on: https://gerrit.instructure.com/126477
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Jay Shaffer <jshaffer@instructure.com>
Product-Review: Jay Shaffer <jshaffer@instructure.com>
Tested-by: Jenkins
Fixes CNVS-37088
Test plan:
* Create a course
* Enroll 2 students
* Create an assignment with a due date
* Grade student 1
* From rails console, run grade calculator for a single student
GradeCalculator.new(user1_id, course)
* From console, run effective due dates for a single student
EffectiveDueDates.for_course(course, assignment).filter_students_to(user1_id).to_hash
It should return a hash with only user 1's due date
Change-Id: Ibd509153558b2674775566b1f8ccd444a4aed1ce
Reviewed-on: https://gerrit.instructure.com/112839
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Matt Taylor <mtaylor@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
refs CNVS-32764
for address book
- add group_updated and group_membership_updated events
- add associated_user_id to enrollment_created and enrollment_updated
events for observer enrollments
- add workflow_state to group_memberhsip_created events
- add context_type, context_id, account_id, and workflow_state to
group_created events
test-plan:
- configure local canvas to write live events to a local kinesis stream
[group fields, group_updated events]
- create a course group; the group_created event in the stream should
have a context_type of 'Course', a context_id of the group's course,
an account_id of the group's account, and a workflow_state of created
- create an account group; the group_created event in the stream should
have a context_type of 'Account', a context_id of the group's account,
an account_id of the same, and a workflow_state of 'created'
- delete a group; a group_updated event should be emitted in the stream,
with all the same fields and a workflow_state of 'deleted'
[group_membership fields, group_membership_updated events]
- add a user to a group; the group_membership_created event in the
stream should have a workflow_state of 'accepted'
- remove the user from the same group; a group_membership_updated event
should be emitted in the stream, with all the same fields and a
workflow_state of 'deleted'
[enrollment associated_user_id field]
- create a non-observer enrollment (e.g. teacher); the
enrollment_created event should not include an associated_user_id
- create an observer enrollment without an assigned observee; the
enrollment_created event should include a null associated_user_id
- attach the observer enrollment to an observee; the enrollment_updated
event should include the updated associated_user_id
Change-Id: I15066b7c6cc85f914be433530d542c6f13643e6a
Reviewed-on: https://gerrit.instructure.com/106335
Tested-by: Jenkins
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
closes: QUIZ-1235
test plan:
pre-reqs: quizzes2 feature enabled, course and quiz made,
kinesis stream setup (doc/live_events.md)
1. hit the content export endpoint with your quiz id
2. verify the content export has a completed status
3. verify you see output in the kinesis stream
4. verify you see the assignment payload in the settings hash
5. verify the payload includes:
a. resource link id
b. title
c. context title
d. context_type
e. context_id
Change-Id: I967a5c9260830ff99afc36e4a098435b81431f83
Reviewed-on: https://gerrit.instructure.com/103755
Reviewed-by: John Corrigan <jcorrigan@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Tested-by: Jenkins
Product-Review: Hannah Bottalla <hannah@instructure.com>
closes: CYOE-389
Test plan:
1. Create a rule with student choice
2. Score a student in a range with choice
3. As student, view choice page
4. As teacher, update the choice to add or remove
options
5. As student, review choice page
The options should have been updated
Change-Id: Ibb48085a8e3fa7cb2eed2f659e50ab3adb238b92
Reviewed-on: https://gerrit.instructure.com/95298
Reviewed-by: Christian Prescott <cprescott@instructure.com>
Tested-by: Jenkins
QA-Review: Alex Ortiz-Rosado <aortiz@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
Test Plan:
* Set up Kinesis locally (see doc/live_events.md for details)
* Create a new course, verify that 'course_created' event is sent to
kinesis stream
* Modify existing course, verify that 'course_modified' is sent to
kinesis stream
refs CNVS-30242
Change-Id: I8b0b27110cc3fd03ee21d27a56aad14b52071a3c
Reviewed-on: https://gerrit.instructure.com/95709
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jonathan Featherstone <jfeatherstone@instructure.com>
Test Plan:
* Set up Kinesis locally (see doc/live_events.md for details)
* Create a new user, verify that 'user_created' event is sent to kinesis
stream
* Modify existing user, verify that 'user_modified' is sent to kinesis
stream
refs CNVS-30242
Change-Id: I827f63b5106abec17810f4dc9a700277d7550254
Reviewed-on: https://gerrit.instructure.com/95204
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jonathan Featherstone <jfeatherstone@instructure.com>
closes MBL-6063
test plan:
- I'm not sure how these things are tested, but
- create an account notification
- check that a live event was fired off
Change-Id: I2d041183fc4da859a9c7f2ab9a28f1572a02ccfb
Reviewed-on: https://gerrit.instructure.com/93222
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
QA-Review: Benjamin Christian Nelson <bcnelson@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
refs: CYOE-324
Test plan:
Solely an internal API, though can be tested from the
rails console:
1. Ensure cyoe config
2. For an assignment, call
ConditionalRelease::Service.rule_triggered_by( a, user )
and you should receive back the rule if it exists (nil otherwise)
Call
ConditionalRelease::Service.rules_assigning( a, user )
and you should get back the rules that assign `a`
Call
ConditionalRelease::Service.is_trigger/(a, user)
and you should get back a boolean if rule_triggered_by would return a
rule
Change-Id: I877775c2a7b53a0cd786734bed41ab7398fcdb67
Reviewed-on: https://gerrit.instructure.com/91091
Reviewed-by: Christian Prescott <cprescott@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
Change-Id: I7f22825fa4dbfbbe77e0a16fa8f62bad1f93285c
Reviewed-on: https://gerrit.instructure.com/90608
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
refs CYOE-123
WikiPagesApiController already soft deletes pages, by updating
workflow_state manually. Overrides WikiPage#destroy to soft delete page
and associated objects.
Test Plan
1. Create a wiki page. Delete it.
2. In a Rails console, find the WikiPage and restore it.
`WikiPage.last.restore`
3. Ensure the page is available in the app again.
4. With MP flag enabled, do the same for a "mastery paths content" page.
Ensure the restored page appears in pages and assignments lists.
5. With an MP page, find the page's Assignment in the console and
restore it. Should restore like 3.
6. Restoring a page that was in a module should not reappear in the
module, but otherwise the page+assignment should restore like 3.
Change-Id: I4148f7ca0127ed2625a27059f918e64724cf2705
Reviewed-on: https://gerrit.instructure.com/90332
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Christian Prescott <cprescott@instructure.com>
test plan:
* create attachments by uploading course files
* update display name of course files
* delete some course files
* delete a course wiki page
* ensure appropriate messages are in the kinesis queue
Change-Id: I3036a3079abef5a5ae3b51b71c325e0fe2cbae05
Reviewed-on: https://gerrit.instructure.com/88703
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes: PFS-5114
test case:
- Update a enrollment and verify that it fires the event message
- Create a enrollment and verify the create event is still fired.
Change-Id: I2f5b45a2b766c6fc8dcc7dac27924b476c07cf32
Reviewed-on: https://gerrit.instructure.com/87560
Reviewed-by: Cody Tanner <ctanner@instructure.com>
Reviewed-by: Andrew Huff <ahuff@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Brandon Broschinsky <brandonbr@instructure.com>
closes CYOE-239
closes CYOE-270
Test Plan:
* Prerequisites: CYOE-240 deployed on CYOE testing
environment (if not already merged).
* Create a module with various module items that have
conditional content/mastery paths data associated
with them (e.g. assignment sets in scoring ranges
with associated assignments)
* Make a Canvas API request to the List Module Items
endpoint, adding `mastery_paths` to the `includes`
parameter as part of the call
* The response should include the mastery paths data
for the requested module items
Change-Id: I7f5f37ea10b1b37d8dc81bd54b1a9413f8bbbc05
Reviewed-on: https://gerrit.instructure.com/86868
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Adds kinesis events for enrollment create and
user_account_association create.
Adds missing specs for kinesis events
Test Plan:
* Set up Kinesis locally (see doc/live_events.md for instructions)
* Create an enrollment; verify that a `enrollment_created` event is sent
to kinesis (use the `script/tail_kinesis` tool to view kinesis events)
* Reigster a new user; verify that a `user_account_association_created`
event is sent to kinesis with `is_admin: false`
* Reigster a new admin; verify that a `user_account_association_created`
event is sent to kinesis with `is_admin: true`
refs CNVS-30241
refs CNVS-30242
Change-Id: If1a4a2f415b95cc78a177a7cef75fbb03808dce1
Reviewed-on: https://gerrit.instructure.com/84339
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Andrew Huff <ahuff@instructure.com>
* issueid: DS-595
* test plan:
* create assignment and submission
* update assignment and submission
* ensure appropriate messages are in the kinesis queue
Change-Id: I0d7730c8a4ec01f780ae3b77581efb7b48c2733e
Reviewed-on: https://gerrit.instructure.com/68362
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Linda Feng <lfeng@instructure.com>
refs #CNVS-25593
Change-Id: I073e1c196d8ad50818dca0bbf350e79bcfc4153b
Reviewed-on: https://gerrit.instructure.com/68940
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes a problem where context stream items were not being
invalidated correctly for rails 4
test plan:
* set up an environment with a server running with rails 4
and delayed_jobs running with rails 3, and a redis cache store
* create a published course with an active student
* create and publish a new assignment
* confirm that the "recent activity" dashboard on the course
shows the new assignment message for the student
fixes #CNVS-25139
Change-Id: I555f7e082faf5d6f9d933b82cf7f7eec2d1c8fa6
Reviewed-on: https://gerrit.instructure.com/67575
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
This commit adds a new module called LiveEvents that knows how to send a
certain set of events to Kinesis. The module is configured via
normal plugin settings per account. Once the plugin is configured with
a Kinesis stream, events will start getting sent to that stream.
Events are sent asynchronously, in a background thread.
test plan:
* See `doc/live_events.md` for instructions on how to setup a local
kinesis stream and configure the LiveEvents plugin.
* Start tailing the stream with the command specified in
`doc/live_events.md` in a terminal.
* Perform the actions described in `doc/api/live_events.md` and verify
that events show up in your Kinesis terminal with the correct data.
Change-Id: Id799688c972205a1eee84a673912f84b0c7abb57
Reviewed-on: https://gerrit.instructure.com/50324
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Product-Review: Zach Wily <zach@instructure.com>