- allows CYOE listener to avoid api call to reconcile
students/assignments/grades
refs CYOE-80
Test plan:
1. Set up live_events in Canvas
2. Monitor the live_events stream using
`script/tail_kinesis`
3. Create and grade on a student assignment
4. Verify that there are user_id and assignment_id
fields on the `grade_change`, `submission_created`,
and `submission_updated` events
Change-Id: I0c24d6773e5f635b0f6a00cd18865600c498a98d
Reviewed-on: https://gerrit.instructure.com/74155
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
QA-Review: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
Reviewed-by: Matt Smith <msmith@instructure.com>
fixes CNVS-17612
test plan:
- try using this feature in sis csv import and make sure it works as
advertised
Change-Id: I07517af1d9d8567642268057772c49cc47036eb5
Reviewed-on: https://gerrit.instructure.com/73329
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
for an account csv sis import, the file must include the
parent_account_id column even if all the values in it are blank, so that
we can differentiate the file from a group import.
fixes CNVS-16875
test plan:
- check sis csv docs
Change-Id: I5c897a249886e8234a530ce9ea8e3b3dec88c093
Reviewed-on: https://gerrit.instructure.com/73205
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
refs CNVS-26735
test plan:
* create a user, pseudonym, and update a pseudonym via API
setting integration_id
* it should work
* with a user with an integration id set, launch an LTI tool
with the Canvas.user.sisIntegrationId variable being sent;
ensure it gets sent
Change-Id: I549ba6e64e993c4867acfe33577722c1118b8988
Reviewed-on: https://gerrit.instructure.com/70874
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
This image is an appliance more in line with the postgres or redis
images, so it manages its own data volume. Thus the docker-compose and
doc file changes.
Change-Id: I8f435400bd8427313d0bc290c84cd44639ead074
Reviewed-on: https://gerrit.instructure.com/71502
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
The sunburst theme wasn't high contrast enough.
test plan: `rake doc:api` and the generated api docs should be using the
default prettify.js theme, which is darker text on a white background.
Change-Id: I44f3e105ea11a99308163318db675f9be5c41f24
Reviewed-on: https://gerrit.instructure.com/71813
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
Add FAQ, where we can add things as people run into problems
Change-Id: I671bee6d53c845d66de7d65fd25baf46adb1d240
Reviewed-on: https://gerrit.instructure.com/71533
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Ethan Vizitei <evizitei@instructure.com>
fixes gh-754
test plan: dinghy link in docs should work
Change-Id: I655145f5440f076717c4131b5bf9d24e88b3ef3e
Reviewed-on: https://gerrit.instructure.com/71149
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
refs CNVS-26515
A couple more tweaks from UX
test plan: generate the api docs, bask in the glory. scrollbars should
only appear when necessary on example code, not always.
Change-Id: I2513ff160ddd226cb01614ec90e45780dec15a06
Reviewed-on: https://gerrit.instructure.com/70787
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
Tested-by: Jenkins
QA-Review: Brian Palmer <brianp@instructure.com>
refs CNVS-26515
Some tweaks from UX to bring the docs more in line with the rest of
Canvas, and better call out important information.
test plan: generate and view the api docs
Change-Id: Ibf1d56f1dcdd663d993efca8f48513136baa009b
Reviewed-on: https://gerrit.instructure.com/70648
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
refs CNVS-26515
Request params are now formatted in an HTML table, with separate fields
for name, type, required/optional, valid enum values, and description.
This is at the same time more compact and more readable.
To parse this information out of what is actually free-form text
comments, I'm re-using the OpenAPI (swagger) parsing code, which I
tweaked and simplified slightly. Eventually I'd like to see the whole
API documentation generated from the OpenAPI spec, and then we can
slowly move away from using free-form code comments to more declarative
code constructs, but still generate an OpenAPI spec and get the same API
docs.
test plan: Generate the api documentation, and view request parameter
information. you should see the new formatting.
Change-Id: Ida00869d96a9b2d9fa84c29079ddf2511a2d5917
Reviewed-on: https://gerrit.instructure.com/70485
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
refs CNVS-26515
Pretty much anything that wasn't a number was being rendered as a
string, including sub-arrays and sub-objects. Worse, a lot of our api
docs were defining them using ruby syntax rather than json syntax.
This change fixes types so that booleans, arrays, and objects all render
correctly in the @model docs (the "A ModuleItem object looks like:"
sections of the docs). It also adds some basic error checking to help
avoid future mistakes.
This doesn't fully support the "$ref" OpenAPI (swagger) syntax yet, but
still renders examples for "$ref" fields when an example is provided.
Eventually it'd be nice to auto-generate an example for "$ref" fields,
since we can look at the linked documentation and just embed it.
test plan: generate the api documentation and look through the @model
definitions at the top of each Resources page. the new rendering should
show more accurate type information.
Change-Id: Id5af514cd235e66af2ce868bce95eb49d71062ab
Reviewed-on: https://gerrit.instructure.com/70484
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
refs CNVS-26515
Renders the @model definitions as json, and improves the json
formatting. Also renders all json as the prettify "js" type internally,
because we put a lot of code comments in our json which isn't strictly json
anymore, and so doesn't render correctly as json.
test plan: compile the api docs and look at some @model blocks ("A File
object looks like", e.g. in the Files API) to verify the new formatting.
Change-Id: Icac9ad04bb42af80da66bc5ad0b5adead70ec168
Reviewed-on: https://gerrit.instructure.com/70483
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
refs CNVS-26515
The rails4 upgrade changed the formatting so that this sub didn't match
anymore, and we ended up with "(.:format)" on the end of each url.
test plan: generate the api docs, the path for each endpoint shouldn't
include "(.:format)" at the end.
Change-Id: I8073c30d780b23abacc97f417e608db598415b28
Reviewed-on: https://gerrit.instructure.com/70537
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
Change-Id: I2e24741a2cfbd6d2a3ba16739fc68a6a807c601c
Reviewed-on: https://gerrit.instructure.com/69909
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
QA-Review: Jon Willesen <jonw@instructure.com>
refs CNVS-26515
Switch to the prettify library and highlight not just json but html,
xml, and bash.
test plan:
`rake doc:api` and open up the generated docs. throughout the docs, code
should be syntax highlighted, including stuff like curl commands and xml
that weren't highlighted before. It should be easier to copy/paste this
code now, without a weird hidden text box appearing.
Change-Id: Icd33159836826e144cb14b96187cb8c645559885
Reviewed-on: https://gerrit.instructure.com/70345
Reviewed-by: Brad Humphrey <brad@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
closes CNVS-26213
Allow using a config file rather than an env var
for turning on web pack.
TEST PLAN:
1) set USE_WEBPACK env var to nothing
2) touch config/WEBPACK
3) web pack should still be enabled
4) rm config/WEBPACK
5) restart server
6) canvas should use require-js bundles again
Change-Id: Ie733b66326482341c2371fddefe17c1cfa3006b3
Reviewed-on: https://gerrit.instructure.com/69739
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
refs CNVS-25916
Proximity loader makes little sense
in a bundled environment anyway. This was
the last thing that used it.
TEST PLAN:
1) regression test profile editing, avatar in
particular
2) web pack selenium builds should have another passing file
Change-Id: Id6e0a93f1dbcf308b49500ead5f72551adad73d8
Reviewed-on: https://gerrit.instructure.com/69407
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ethan Vizitei <evizitei@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>
When not using dinghy, canvas is accessible on localhost:3000.
Test Plan:
- None required. This is documentation only
Change-Id: I4bc91bb50e7a4387b97235aafd377a4bd1e24040
Reviewed-on: https://gerrit.instructure.com/69033
Tested-by: Jenkins
Reviewed-by: Matt Berns <mberns@instructure.com>
Product-Review: Benjamin Porter <bporter@instructure.com>
QA-Review: Benjamin Porter <bporter@instructure.com>
closes #CNVS-25906
Change-Id: I02512e4128de1b99aaf39461f52d5db16837923c
Reviewed-on: https://gerrit.instructure.com/68944
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Change-Id: Iaae1c625873b4bcdb13e3976acc08c34c9aa0bd7
Reviewed-on: https://gerrit.instructure.com/68714
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
There are a couple of pot-holes in the road currently with canvas
development on linux. Add some troubleshooting info to help
with permissions errors that might be encountered.
Test Plan:
Absolutely nothing.
Change-Id: I987f31f59e3a887df396713dc2db604240c563c7
Reviewed-on: https://gerrit.instructure.com/67070
Reviewed-by: Adam Ard <aard@instructure.com>
Product-Review: Adam Ard <aard@instructure.com>
QA-Review: Adam Ard <aard@instructure.com>
Tested-by: Adam Ard <aard@instructure.com>
fixes CNVS-24017
test plan:
- read the users.csv section of the SIS CSV Format page
- it should say "from a previous SIS import or otherwise"
Change-Id: I79b8c7d45cdb65f43cdd2fcfbe6c6c0d5cefbd84
Reviewed-on: https://gerrit.instructure.com/66667
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
closes CNVS-24124
makes working with web pack possible in canvas
instead of require-js. See doc/working_with_webpack.md
for instructions.
TEST PLAN:
Nothing should change in non-webpack'd behavior
Things should mostly work when you use the
USE_WEBPACK environment variable, but make sure to document
and ticket things that don't
Change-Id: I493a259a609e9e183950bc57aa5876df70108547
Reviewed-on: https://gerrit.instructure.com/64386
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
add warning message to the api docs about expiring access tokens
fixes PLAT-1263 PLAT-1243
test plan:
*create a developer key before cherry picking change set
*cherry-pick change set
*generate an Access Token using the old dev key
*it should not have an expiration
*create a new developer key
*create an access token with the new dev key
*it should have an expiration
*check the api doc on the oauth page for the warning message
Change-Id: Id53d9b7fab4b8b308a0abbae0268c1c25a2d4c6f
Reviewed-on: https://gerrit.instructure.com/64881
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
Add instructions for installing docker-compose with pip to the
instructions for setting up a canvas in docker development environment.
Change-Id: I67ab66b2be402a919b64bdbc28a326715757ba9c
Reviewed-on: https://gerrit.instructure.com/65791
Tested-by: Jenkins
Reviewed-by: Adam Ard <aard@instructure.com>
Product-Review: Adam Ard <aard@instructure.com>
QA-Review: Adam Ard <aard@instructure.com>
Tested-by: Adam Ard <aard@instructure.com>
Explain how to use refresh tokens, and make it a little more coherent
Fixes PLAT-1264
Test Plan:
How do we test documentation?
Change-Id: I302cbe8121194a24ae30f5e87272dc31f8b7dc48
Reviewed-on: https://gerrit.instructure.com/64957
Tested-by: Jenkins
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
Change-Id: I22ec9d05e24f90125c67709908d3cb95e2224e49
Reviewed-on: https://gerrit.instructure.com/63951
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
fixes: PLAT-1220
test-plan:
*using the oauth flow generate an access token
*you shouldl get an expires_in time with the token
*the token should expire after the expire_in time lapses
Change-Id: If25bea7a11dbd0c8e717d53eb131fdae6c156606
Reviewed-on: https://gerrit.instructure.com/62951
Tested-by: Jenkins
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
test plan: render API docs and ensure pages include
the subject in the title (i.e., click on "Admins" and the
browser tab should show "Admins - Canvas API ..."
instead of just "Canvas API ...")
fixes CNVS-22171
Change-Id: Ideccae141869cb3c37c91fc986eb402866897138
Reviewed-on: https://gerrit.instructure.com/62904
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Building the Selenium image, and running the selenium container, is
pretty resource heavy. Therefore, we'll require you to uncomment it
when you want to use it. Hopefully Docker Compose will provide a more
elegant way to do this in the future.
Change-Id: I1ea2ccbd4dd384cc5dcdb973c09caf9d36367015
Reviewed-on: https://gerrit.instructure.com/63380
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Zach Wily <zach@instructure.com>
QA-Review: Zach Wily <zach@instructure.com>
test plan:
- in a wiki page, use the wiki sidebar to create links to the
Modules List and to a specific module
- save the page
- inspect the page source and you should find data-api-endpoint
and data-api-returntype attributes on these links
as documented at /doc/api/file.endpoint_attributes.html
fixes CNVS-22381
Change-Id: If805689a3974f6e101d5c640521da53b19db585d
Reviewed-on: https://gerrit.instructure.com/60235
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
test plan:
* create an auth provider
* do an sis import without auth provider; it should still work
* specify the auth provider by name in the import; it should work
* specify the auth provider by id in the import; it should work
Change-Id: I71f381a1bc140c3992cac6eb45bb077e5bd26baa
Reviewed-on: https://gerrit.instructure.com/59558
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
with the new css stuff, we don't actually use
jammit so jammit_css has been renamed to css_bundle.
we left an aliased jammit_css and marked it deprecated
so these all still worked but spit out a deprecation warning.
Change-Id: Ib74037711f559f64851d9379644479587c1f83f2
Reviewed-on: https://gerrit.instructure.com/55888
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
this does the following:
* renames some sass files to put a "_"
at the beginning of their filenames so they are
used as a sass partial.
* fixes some bad css syntax
* doesn't include all of "common" in the "styleguide"
bundle, and instead loads "common" seperately
on the styleguide page
* removes "canvas_icons" from conversations bundle
since it is already included in "common"
this is all to get ready for the new sass system
test plan:
nothing actually changes.
load /styleguide, make sure it looks right
load conversations, make sure it looks right
Change-Id: Ief7613b0b2edbb0ba63d961c20e250aafe695cdd
Reviewed-on: https://gerrit.instructure.com/54804
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
also adds a feature flag for bulk sis grade export
test plan:
* enable the bulk sis grade export flag
* teachers should be able to mark assignments
as postable to SIS (same as if the
"Post Grades to SIS" flag is enabled)
* should be able to reach the API GET endpoint
(should be documented under the SIS Integration category)
/api/sis/grade_export/accounts/:account_id/assignments
* this should return a list of course and assignment ids
corresponding to the assignments with this checkbox marked
closes #SIS-1058
Change-Id: Ic1017d494ead63f1c9433f1cda93bc3c6ca4580c
Reviewed-on: https://gerrit.instructure.com/54418
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
We already have several asset accesses instrumented via
log_asset_access, so this captures those and sends them to the live
events as well. In order to better categorize the data, the synthetic
keys generated like "syllabus:course_1234" have been changed to arrays,
so that we can break that data apart in the live events without parsing
the string.
test plan:
* Ensure that asset accesses are still being logged normally
* Ensure that asset accesses also get sent as live events. (See
change Id799688c972205a1eee84a673912f84b0c7abb57 for more information
about that.)
Change-Id: I947a7f8b1d104bfafba96c30b81d0cb9bae81b9d
Reviewed-on: https://gerrit.instructure.com/50521
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Zach Wily <zach@instructure.com>