canvas_sync 0.16.4 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +235 -151
  3. data/app/controllers/{api → canvas_sync/api}/v1/health_check_controller.rb +1 -1
  4. data/app/controllers/canvas_sync/api/v1/live_events_controller.rb +122 -0
  5. data/app/models/canvas_sync/sync_batch.rb +5 -0
  6. data/config/initializers/apartment.rb +10 -1
  7. data/config/routes.rb +7 -0
  8. data/db/migrate/20170915210836_create_canvas_sync_job_log.rb +12 -31
  9. data/db/migrate/20180725155729_add_job_id_to_canvas_sync_job_logs.rb +4 -13
  10. data/db/migrate/20190916154829_add_fork_count_to_canvas_sync_job_logs.rb +3 -11
  11. data/db/migrate/20201018210836_create_canvas_sync_sync_batches.rb +11 -0
  12. data/db/migrate/20201030210836_add_full_sync_to_canvas_sync_sync_batch.rb +7 -0
  13. data/lib/canvas_sync/batch_processor.rb +41 -0
  14. data/lib/canvas_sync/concerns/ability_helper.rb +72 -0
  15. data/lib/canvas_sync/concerns/account/ancestry.rb +2 -0
  16. data/lib/canvas_sync/concerns/account/base.rb +15 -0
  17. data/lib/canvas_sync/concerns/api_syncable.rb +17 -10
  18. data/lib/canvas_sync/concerns/live_event_sync.rb +46 -0
  19. data/lib/canvas_sync/concerns/role/base.rb +57 -0
  20. data/lib/canvas_sync/concerns/sync_mapping.rb +120 -0
  21. data/lib/canvas_sync/engine.rb +80 -0
  22. data/lib/canvas_sync/generators/install_generator.rb +1 -0
  23. data/lib/canvas_sync/generators/install_live_events_generator.rb +0 -1
  24. data/lib/canvas_sync/generators/templates/migrations/create_content_migrations.rb +24 -0
  25. data/lib/canvas_sync/generators/templates/migrations/create_course_nicknames.rb +17 -0
  26. data/lib/canvas_sync/generators/templates/migrations/create_grading_period_groups.rb +18 -0
  27. data/lib/canvas_sync/generators/templates/migrations/create_grading_periods.rb +22 -0
  28. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcome_results.rb +46 -0
  29. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcomes.rb +30 -0
  30. data/lib/canvas_sync/generators/templates/migrations/create_rubric_assessments.rb +31 -0
  31. data/lib/canvas_sync/generators/templates/migrations/create_rubric_associations.rb +36 -0
  32. data/lib/canvas_sync/generators/templates/migrations/create_rubrics.rb +38 -0
  33. data/lib/canvas_sync/generators/templates/migrations/create_user_observers.rb +17 -0
  34. data/lib/canvas_sync/generators/templates/migrations/create_users.rb +0 -1
  35. data/lib/canvas_sync/generators/templates/models/account.rb +3 -0
  36. data/lib/canvas_sync/generators/templates/models/admin.rb +2 -0
  37. data/lib/canvas_sync/generators/templates/models/assignment.rb +3 -0
  38. data/lib/canvas_sync/generators/templates/models/assignment_group.rb +3 -0
  39. data/lib/canvas_sync/generators/templates/models/content_migration.rb +12 -0
  40. data/lib/canvas_sync/generators/templates/models/context_module.rb +3 -0
  41. data/lib/canvas_sync/generators/templates/models/context_module_item.rb +3 -0
  42. data/lib/canvas_sync/generators/templates/models/course.rb +11 -0
  43. data/lib/canvas_sync/generators/templates/models/course_nickname.rb +13 -0
  44. data/lib/canvas_sync/generators/templates/models/enrollment.rb +14 -0
  45. data/lib/canvas_sync/generators/templates/models/grading_period.rb +10 -0
  46. data/lib/canvas_sync/generators/templates/models/grading_period_group.rb +9 -0
  47. data/lib/canvas_sync/generators/templates/models/group.rb +2 -0
  48. data/lib/canvas_sync/generators/templates/models/group_membership.rb +2 -0
  49. data/lib/canvas_sync/generators/templates/models/learning_outcome.rb +24 -0
  50. data/lib/canvas_sync/generators/templates/models/learning_outcome_result.rb +48 -0
  51. data/lib/canvas_sync/generators/templates/models/pseudonym.rb +2 -0
  52. data/lib/canvas_sync/generators/templates/models/role.rb +2 -0
  53. data/lib/canvas_sync/generators/templates/models/rubric.rb +29 -0
  54. data/lib/canvas_sync/generators/templates/models/rubric_assessment.rb +17 -0
  55. data/lib/canvas_sync/generators/templates/models/rubric_association.rb +14 -0
  56. data/lib/canvas_sync/generators/templates/models/section.rb +9 -0
  57. data/lib/canvas_sync/generators/templates/models/submission.rb +3 -0
  58. data/lib/canvas_sync/generators/templates/models/term.rb +3 -0
  59. data/lib/canvas_sync/generators/templates/models/user.rb +11 -0
  60. data/lib/canvas_sync/generators/templates/models/user_observer.rb +13 -0
  61. data/lib/canvas_sync/generators/templates/services/live_events/assignment_event.rb +1 -1
  62. data/lib/canvas_sync/generators/templates/services/live_events/assignment_group_event.rb +1 -1
  63. data/lib/canvas_sync/generators/templates/services/live_events/course_event.rb +1 -3
  64. data/lib/canvas_sync/generators/templates/services/live_events/course_section_event.rb +1 -1
  65. data/lib/canvas_sync/generators/templates/services/live_events/enrollment_event.rb +1 -1
  66. data/lib/canvas_sync/generators/templates/services/live_events/grade_event.rb +1 -1
  67. data/lib/canvas_sync/generators/templates/services/live_events/module_event.rb +1 -1
  68. data/lib/canvas_sync/generators/templates/services/live_events/module_item_event.rb +1 -1
  69. data/lib/canvas_sync/generators/templates/services/live_events/submission_event.rb +1 -1
  70. data/lib/canvas_sync/generators/templates/services/live_events/syllabus_event.rb +1 -1
  71. data/lib/canvas_sync/generators/templates/services/live_events/user_event.rb +1 -3
  72. data/lib/canvas_sync/importers/bulk_importer.rb +138 -31
  73. data/lib/canvas_sync/job.rb +7 -5
  74. data/lib/canvas_sync/job_batches/active_job.rb +108 -0
  75. data/lib/canvas_sync/job_batches/batch.rb +543 -0
  76. data/lib/canvas_sync/job_batches/callback.rb +149 -0
  77. data/lib/canvas_sync/job_batches/chain_builder.rb +249 -0
  78. data/lib/canvas_sync/job_batches/context_hash.rb +159 -0
  79. data/lib/canvas_sync/job_batches/hier_batch_ids.lua +25 -0
  80. data/lib/canvas_sync/job_batches/jobs/base_job.rb +7 -0
  81. data/lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb +22 -0
  82. data/lib/canvas_sync/job_batches/jobs/managed_batch_job.rb +170 -0
  83. data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +22 -0
  84. data/lib/canvas_sync/job_batches/pool.rb +245 -0
  85. data/lib/canvas_sync/job_batches/pool_refill.lua +47 -0
  86. data/lib/canvas_sync/job_batches/redis_model.rb +69 -0
  87. data/lib/canvas_sync/job_batches/redis_script.rb +163 -0
  88. data/lib/canvas_sync/job_batches/schedule_callback.lua +14 -0
  89. data/lib/canvas_sync/job_batches/sidekiq/web/batches_assets/css/styles.less +182 -0
  90. data/lib/canvas_sync/job_batches/sidekiq/web/batches_assets/js/batch_tree.js +108 -0
  91. data/lib/canvas_sync/job_batches/sidekiq/web/batches_assets/js/util.js +2 -0
  92. data/lib/canvas_sync/job_batches/sidekiq/web/helpers.rb +41 -0
  93. data/lib/canvas_sync/job_batches/sidekiq/web/views/_batch_tree.erb +6 -0
  94. data/lib/canvas_sync/job_batches/sidekiq/web/views/_batches_table.erb +44 -0
  95. data/lib/canvas_sync/job_batches/sidekiq/web/views/_common.erb +13 -0
  96. data/lib/canvas_sync/job_batches/sidekiq/web/views/_jobs_table.erb +21 -0
  97. data/lib/canvas_sync/job_batches/sidekiq/web/views/_pagination.erb +26 -0
  98. data/lib/canvas_sync/job_batches/sidekiq/web/views/batch.erb +81 -0
  99. data/lib/canvas_sync/job_batches/sidekiq/web/views/batches.erb +23 -0
  100. data/lib/canvas_sync/job_batches/sidekiq/web/views/pool.erb +137 -0
  101. data/lib/canvas_sync/job_batches/sidekiq/web/views/pools.erb +47 -0
  102. data/lib/canvas_sync/job_batches/sidekiq/web.rb +218 -0
  103. data/lib/canvas_sync/job_batches/sidekiq.rb +136 -0
  104. data/lib/canvas_sync/job_batches/status.rb +91 -0
  105. data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +99 -0
  106. data/lib/canvas_sync/jobs/canvas_process_waiter.rb +41 -0
  107. data/lib/canvas_sync/jobs/report_checker.rb +70 -8
  108. data/lib/canvas_sync/jobs/report_processor_job.rb +4 -7
  109. data/lib/canvas_sync/jobs/report_starter.rb +34 -20
  110. data/lib/canvas_sync/jobs/sync_accounts_job.rb +3 -5
  111. data/lib/canvas_sync/jobs/sync_admins_job.rb +2 -4
  112. data/lib/canvas_sync/jobs/sync_assignment_groups_job.rb +2 -4
  113. data/lib/canvas_sync/jobs/sync_assignments_job.rb +2 -4
  114. data/lib/canvas_sync/jobs/sync_content_migrations_job.rb +20 -0
  115. data/lib/canvas_sync/jobs/sync_context_module_items_job.rb +2 -4
  116. data/lib/canvas_sync/jobs/sync_context_modules_job.rb +2 -4
  117. data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +16 -50
  118. data/lib/canvas_sync/jobs/sync_roles_job.rb +2 -5
  119. data/lib/canvas_sync/jobs/sync_rubric_assessments_job.rb +15 -0
  120. data/lib/canvas_sync/jobs/sync_rubric_associations_job.rb +15 -0
  121. data/lib/canvas_sync/jobs/sync_rubrics_job.rb +15 -0
  122. data/lib/canvas_sync/jobs/sync_simple_table_job.rb +11 -32
  123. data/lib/canvas_sync/jobs/sync_submissions_job.rb +6 -4
  124. data/lib/canvas_sync/jobs/sync_terms_job.rb +9 -8
  125. data/lib/canvas_sync/jobs/term_batches_job.rb +50 -0
  126. data/lib/canvas_sync/{generators/templates/services/live_events/base_event.rb → live_events/base_handler.rb} +6 -10
  127. data/lib/canvas_sync/live_events/process_event_job.rb +26 -0
  128. data/lib/canvas_sync/live_events.rb +38 -0
  129. data/lib/canvas_sync/misc_helper.rb +63 -0
  130. data/lib/canvas_sync/processors/assignment_groups_processor.rb +3 -8
  131. data/lib/canvas_sync/processors/assignments_processor.rb +3 -8
  132. data/lib/canvas_sync/processors/content_migrations_processor.rb +19 -0
  133. data/lib/canvas_sync/processors/context_module_items_processor.rb +3 -8
  134. data/lib/canvas_sync/processors/context_modules_processor.rb +3 -8
  135. data/lib/canvas_sync/processors/model_mappings.yml +420 -0
  136. data/lib/canvas_sync/processors/normal_processor.rb +3 -3
  137. data/lib/canvas_sync/processors/provisioning_report_processor.rb +42 -55
  138. data/lib/canvas_sync/processors/report_processor.rb +15 -9
  139. data/lib/canvas_sync/processors/rubric_assessments_processor.rb +19 -0
  140. data/lib/canvas_sync/processors/rubric_associations_processor.rb +19 -0
  141. data/lib/canvas_sync/processors/rubrics_processor.rb +19 -0
  142. data/lib/canvas_sync/processors/submissions_processor.rb +3 -8
  143. data/lib/canvas_sync/record.rb +103 -0
  144. data/lib/canvas_sync/version.rb +1 -1
  145. data/lib/canvas_sync.rb +124 -125
  146. data/spec/canvas_sync/canvas_sync_spec.rb +224 -155
  147. data/spec/canvas_sync/jobs/canvas_process_waiter_spec.rb +34 -0
  148. data/spec/canvas_sync/jobs/job_spec.rb +9 -17
  149. data/spec/canvas_sync/jobs/report_checker_spec.rb +1 -3
  150. data/spec/canvas_sync/jobs/report_processor_job_spec.rb +0 -3
  151. data/spec/canvas_sync/jobs/report_starter_spec.rb +19 -28
  152. data/spec/canvas_sync/jobs/sync_admins_job_spec.rb +1 -4
  153. data/spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb +2 -1
  154. data/spec/canvas_sync/jobs/sync_assignments_job_spec.rb +3 -2
  155. data/spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb +30 -0
  156. data/spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb +3 -2
  157. data/spec/canvas_sync/jobs/sync_context_modules_job_spec.rb +3 -2
  158. data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +7 -41
  159. data/spec/canvas_sync/jobs/sync_roles_job_spec.rb +1 -4
  160. data/spec/canvas_sync/jobs/sync_simple_table_job_spec.rb +5 -12
  161. data/spec/canvas_sync/jobs/sync_submissions_job_spec.rb +8 -2
  162. data/spec/canvas_sync/jobs/sync_terms_job_spec.rb +1 -4
  163. data/spec/canvas_sync/live_events/live_event_sync_spec.rb +27 -0
  164. data/spec/canvas_sync/live_events/live_events_controller_spec.rb +54 -0
  165. data/spec/canvas_sync/live_events/process_event_job_spec.rb +38 -0
  166. data/spec/canvas_sync/misc_helper_spec.rb +58 -0
  167. data/spec/canvas_sync/models/assignment_spec.rb +1 -1
  168. data/spec/canvas_sync/processors/content_migrations_processor_spec.rb +13 -0
  169. data/spec/canvas_sync/processors/provisioning_report_processor_spec.rb +101 -1
  170. data/spec/canvas_sync/processors/rubric_assessments_spec.rb +16 -0
  171. data/spec/canvas_sync/processors/rubric_associations_spec.rb +16 -0
  172. data/spec/canvas_sync/processors/rubrics_processor_spec.rb +17 -0
  173. data/spec/dummy/app/models/account.rb +6 -0
  174. data/spec/dummy/app/models/admin.rb +2 -0
  175. data/spec/dummy/app/models/assignment.rb +3 -0
  176. data/spec/dummy/app/models/assignment_group.rb +3 -0
  177. data/spec/dummy/app/models/content_migration.rb +18 -0
  178. data/spec/dummy/app/models/context_module.rb +3 -0
  179. data/spec/dummy/app/models/context_module_item.rb +3 -0
  180. data/spec/dummy/app/models/course.rb +11 -0
  181. data/spec/dummy/app/models/course_nickname.rb +19 -0
  182. data/spec/dummy/app/models/enrollment.rb +14 -0
  183. data/spec/dummy/app/models/grading_period.rb +16 -0
  184. data/spec/dummy/app/models/grading_period_group.rb +15 -0
  185. data/spec/dummy/app/models/group.rb +2 -0
  186. data/spec/dummy/app/models/group_membership.rb +2 -0
  187. data/spec/dummy/app/models/learning_outcome.rb +30 -0
  188. data/spec/dummy/app/models/learning_outcome_result.rb +54 -0
  189. data/spec/dummy/app/models/pseudonym.rb +16 -0
  190. data/spec/dummy/app/models/role.rb +2 -0
  191. data/spec/dummy/app/models/rubric.rb +35 -0
  192. data/spec/dummy/app/models/rubric_assessment.rb +22 -0
  193. data/spec/dummy/app/models/rubric_association.rb +20 -0
  194. data/spec/dummy/app/models/section.rb +9 -0
  195. data/spec/dummy/app/models/submission.rb +4 -0
  196. data/spec/dummy/app/models/term.rb +3 -0
  197. data/spec/dummy/app/models/user.rb +11 -0
  198. data/spec/dummy/app/models/user_observer.rb +19 -0
  199. data/spec/dummy/app/services/live_events/assignment_event.rb +1 -1
  200. data/spec/dummy/app/services/live_events/course_event.rb +1 -3
  201. data/spec/dummy/app/services/live_events/course_section_event.rb +1 -1
  202. data/spec/dummy/app/services/live_events/enrollment_event.rb +1 -1
  203. data/spec/dummy/app/services/live_events/grade_event.rb +1 -1
  204. data/spec/dummy/app/services/live_events/module_event.rb +1 -1
  205. data/spec/dummy/app/services/live_events/module_item_event.rb +1 -1
  206. data/spec/dummy/app/services/live_events/submission_event.rb +1 -1
  207. data/spec/dummy/app/services/live_events/syllabus_event.rb +1 -1
  208. data/spec/dummy/app/services/live_events/user_event.rb +1 -3
  209. data/spec/dummy/config/environments/test.rb +2 -0
  210. data/spec/dummy/config/routes.rb +1 -0
  211. data/spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb +24 -0
  212. data/spec/dummy/db/migrate/20210907233329_create_user_observers.rb +23 -0
  213. data/spec/dummy/db/migrate/20210907233330_create_grading_periods.rb +28 -0
  214. data/spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb +24 -0
  215. data/spec/dummy/db/migrate/20220308072643_create_content_migrations.rb +30 -0
  216. data/spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb +36 -0
  217. data/spec/dummy/db/migrate/{20190702203620_create_users.rb → 20220926221926_create_users.rb} +0 -1
  218. data/spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb +23 -0
  219. data/spec/dummy/db/migrate/20240509105100_create_rubrics.rb +44 -0
  220. data/spec/dummy/db/migrate/20240510094100_create_rubric_associations.rb +42 -0
  221. data/spec/dummy/db/migrate/20240510101100_create_rubric_assessments.rb +37 -0
  222. data/spec/dummy/db/migrate/20240523101010_create_learning_outcome_results.rb +52 -0
  223. data/spec/dummy/db/schema.rb +244 -5
  224. data/spec/factories/user_factory.rb +0 -1
  225. data/spec/job_batching/active_job_spec.rb +107 -0
  226. data/spec/job_batching/batch_spec.rb +489 -0
  227. data/spec/job_batching/callback_spec.rb +38 -0
  228. data/spec/job_batching/context_hash_spec.rb +54 -0
  229. data/spec/job_batching/flow_spec.rb +82 -0
  230. data/spec/job_batching/integration/fail_then_succeed.rb +42 -0
  231. data/spec/job_batching/integration/integration.rb +57 -0
  232. data/spec/job_batching/integration/nested.rb +88 -0
  233. data/spec/job_batching/integration/simple.rb +47 -0
  234. data/spec/job_batching/integration/workflow.rb +134 -0
  235. data/spec/job_batching/integration_helper.rb +50 -0
  236. data/spec/job_batching/pool_spec.rb +161 -0
  237. data/spec/job_batching/sidekiq_spec.rb +125 -0
  238. data/spec/job_batching/status_spec.rb +76 -0
  239. data/spec/job_batching/support/base_job.rb +14 -0
  240. data/spec/job_batching/support/sample_callback.rb +2 -0
  241. data/spec/spec_helper.rb +17 -0
  242. data/spec/support/fixtures/reports/content_migrations.csv +3 -0
  243. data/spec/support/fixtures/reports/course_nicknames.csv +3 -0
  244. data/spec/support/fixtures/reports/grading_period_groups.csv +2 -0
  245. data/spec/support/fixtures/reports/grading_periods.csv +3 -0
  246. data/spec/support/fixtures/reports/learning_outcome_results.csv +3 -0
  247. data/spec/support/fixtures/reports/learning_outcomes.csv +3 -0
  248. data/spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv +3 -0
  249. data/spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv +4 -0
  250. data/spec/support/fixtures/reports/rubric_assessments.csv +3 -0
  251. data/spec/support/fixtures/reports/rubric_associations.csv +3 -0
  252. data/spec/support/fixtures/reports/rubrics.csv +3 -0
  253. data/spec/support/fixtures/reports/user_observers.csv +3 -0
  254. data/spec/support/fixtures/reports/users.csv +3 -2
  255. data/spec/support/fixtures/reports/xlist.csv +1 -1
  256. metadata +329 -27
  257. data/app/controllers/api/v1/live_events_controller.rb +0 -18
  258. data/lib/canvas_sync/job_chain.rb +0 -57
  259. data/lib/canvas_sync/jobs/fork_gather.rb +0 -59
  260. data/spec/canvas_sync/jobs/fork_gather_spec.rb +0 -73
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canvas_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.4
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
- - Nate Collings
8
- autorequire:
7
+ - Instructure CustomDev
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-29 00:00:00.000000000 Z
11
+ date: 2024-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - "<"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.15'
19
+ version: '6.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - "<"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.15'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -234,6 +234,76 @@ dependencies:
234
234
  - - ">="
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: with_model
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: httparty
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: sidekiq
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "<"
270
+ - !ruby/object:Gem::Version
271
+ version: '7.0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "<"
277
+ - !ruby/object:Gem::Version
278
+ version: '7.0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: redis
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: open-uri
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :runtime
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
237
307
  - !ruby/object:Gem::Dependency
238
308
  name: activejob
239
309
  requirement: !ruby/object:Gem::Requirement
@@ -248,6 +318,20 @@ dependencies:
248
318
  - - ">="
249
319
  - !ruby/object:Gem::Version
250
320
  version: '0'
321
+ - !ruby/object:Gem::Dependency
322
+ name: redis
323
+ requirement: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - ">="
326
+ - !ruby/object:Gem::Version
327
+ version: '4.2'
328
+ type: :runtime
329
+ prerelease: false
330
+ version_requirements: !ruby/object:Gem::Requirement
331
+ requirements:
332
+ - - ">="
333
+ - !ruby/object:Gem::Version
334
+ version: '4.2'
251
335
  - !ruby/object:Gem::Dependency
252
336
  name: rails
253
337
  requirement: !ruby/object:Gem::Requirement
@@ -268,14 +352,14 @@ dependencies:
268
352
  requirements:
269
353
  - - ">="
270
354
  - !ruby/object:Gem::Version
271
- version: 1.3.49
355
+ version: 1.5.8
272
356
  type: :runtime
273
357
  prerelease: false
274
358
  version_requirements: !ruby/object:Gem::Requirement
275
359
  requirements:
276
360
  - - ">="
277
361
  - !ruby/object:Gem::Version
278
- version: 1.3.49
362
+ version: 1.5.8
279
363
  - !ruby/object:Gem::Dependency
280
364
  name: activerecord-import
281
365
  requirement: !ruby/object:Gem::Requirement
@@ -304,28 +388,66 @@ dependencies:
304
388
  - - ">="
305
389
  - !ruby/object:Gem::Version
306
390
  version: '0'
307
- description:
391
+ - !ruby/object:Gem::Dependency
392
+ name: chronic_duration
393
+ requirement: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - ">="
396
+ - !ruby/object:Gem::Version
397
+ version: '0'
398
+ type: :runtime
399
+ prerelease: false
400
+ version_requirements: !ruby/object:Gem::Requirement
401
+ requirements:
402
+ - - ">="
403
+ - !ruby/object:Gem::Version
404
+ version: '0'
405
+ - !ruby/object:Gem::Dependency
406
+ name: json-jwt
407
+ requirement: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - ">="
410
+ - !ruby/object:Gem::Version
411
+ version: '0'
412
+ type: :runtime
413
+ prerelease: false
414
+ version_requirements: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - ">="
417
+ - !ruby/object:Gem::Version
418
+ version: '0'
419
+ description:
308
420
  email:
309
- - ncollings@instructure.com
421
+ - pseng@instructure.com
310
422
  executables: []
311
423
  extensions: []
312
424
  extra_rdoc_files: []
313
425
  files:
314
426
  - README.md
315
427
  - Rakefile
316
- - app/controllers/api/v1/health_check_controller.rb
317
- - app/controllers/api/v1/live_events_controller.rb
428
+ - app/controllers/canvas_sync/api/v1/health_check_controller.rb
429
+ - app/controllers/canvas_sync/api/v1/live_events_controller.rb
318
430
  - app/models/canvas_sync/job_log.rb
431
+ - app/models/canvas_sync/sync_batch.rb
319
432
  - config/initializers/apartment.rb
433
+ - config/routes.rb
320
434
  - db/migrate/20170915210836_create_canvas_sync_job_log.rb
321
435
  - db/migrate/20180725155729_add_job_id_to_canvas_sync_job_logs.rb
322
436
  - db/migrate/20190916154829_add_fork_count_to_canvas_sync_job_logs.rb
437
+ - db/migrate/20201018210836_create_canvas_sync_sync_batches.rb
438
+ - db/migrate/20201030210836_add_full_sync_to_canvas_sync_sync_batch.rb
323
439
  - lib/canvas_sync.rb
324
440
  - lib/canvas_sync/api_syncable.rb
441
+ - lib/canvas_sync/batch_processor.rb
325
442
  - lib/canvas_sync/class_callback_executor.rb
443
+ - lib/canvas_sync/concerns/ability_helper.rb
326
444
  - lib/canvas_sync/concerns/account/ancestry.rb
445
+ - lib/canvas_sync/concerns/account/base.rb
327
446
  - lib/canvas_sync/concerns/api_syncable.rb
328
447
  - lib/canvas_sync/concerns/legacy_columns.rb
448
+ - lib/canvas_sync/concerns/live_event_sync.rb
449
+ - lib/canvas_sync/concerns/role/base.rb
450
+ - lib/canvas_sync/concerns/sync_mapping.rb
329
451
  - lib/canvas_sync/config.rb
330
452
  - lib/canvas_sync/engine.rb
331
453
  - lib/canvas_sync/generators/install_generator.rb
@@ -334,37 +456,56 @@ files:
334
456
  - lib/canvas_sync/generators/templates/migrations/create_admins.rb
335
457
  - lib/canvas_sync/generators/templates/migrations/create_assignment_groups.rb
336
458
  - lib/canvas_sync/generators/templates/migrations/create_assignments.rb
459
+ - lib/canvas_sync/generators/templates/migrations/create_content_migrations.rb
337
460
  - lib/canvas_sync/generators/templates/migrations/create_context_module_items.rb
338
461
  - lib/canvas_sync/generators/templates/migrations/create_context_modules.rb
462
+ - lib/canvas_sync/generators/templates/migrations/create_course_nicknames.rb
339
463
  - lib/canvas_sync/generators/templates/migrations/create_courses.rb
340
464
  - lib/canvas_sync/generators/templates/migrations/create_enrollments.rb
465
+ - lib/canvas_sync/generators/templates/migrations/create_grading_period_groups.rb
466
+ - lib/canvas_sync/generators/templates/migrations/create_grading_periods.rb
341
467
  - lib/canvas_sync/generators/templates/migrations/create_group_memberships.rb
342
468
  - lib/canvas_sync/generators/templates/migrations/create_groups.rb
469
+ - lib/canvas_sync/generators/templates/migrations/create_learning_outcome_results.rb
470
+ - lib/canvas_sync/generators/templates/migrations/create_learning_outcomes.rb
343
471
  - lib/canvas_sync/generators/templates/migrations/create_pseudonyms.rb
344
472
  - lib/canvas_sync/generators/templates/migrations/create_roles.rb
473
+ - lib/canvas_sync/generators/templates/migrations/create_rubric_assessments.rb
474
+ - lib/canvas_sync/generators/templates/migrations/create_rubric_associations.rb
475
+ - lib/canvas_sync/generators/templates/migrations/create_rubrics.rb
345
476
  - lib/canvas_sync/generators/templates/migrations/create_sections.rb
346
477
  - lib/canvas_sync/generators/templates/migrations/create_submissions.rb
347
478
  - lib/canvas_sync/generators/templates/migrations/create_terms.rb
479
+ - lib/canvas_sync/generators/templates/migrations/create_user_observers.rb
348
480
  - lib/canvas_sync/generators/templates/migrations/create_users.rb
349
481
  - lib/canvas_sync/generators/templates/models/account.rb
350
482
  - lib/canvas_sync/generators/templates/models/admin.rb
351
483
  - lib/canvas_sync/generators/templates/models/assignment.rb
352
484
  - lib/canvas_sync/generators/templates/models/assignment_group.rb
485
+ - lib/canvas_sync/generators/templates/models/content_migration.rb
353
486
  - lib/canvas_sync/generators/templates/models/context_module.rb
354
487
  - lib/canvas_sync/generators/templates/models/context_module_item.rb
355
488
  - lib/canvas_sync/generators/templates/models/course.rb
489
+ - lib/canvas_sync/generators/templates/models/course_nickname.rb
356
490
  - lib/canvas_sync/generators/templates/models/enrollment.rb
491
+ - lib/canvas_sync/generators/templates/models/grading_period.rb
492
+ - lib/canvas_sync/generators/templates/models/grading_period_group.rb
357
493
  - lib/canvas_sync/generators/templates/models/group.rb
358
494
  - lib/canvas_sync/generators/templates/models/group_membership.rb
495
+ - lib/canvas_sync/generators/templates/models/learning_outcome.rb
496
+ - lib/canvas_sync/generators/templates/models/learning_outcome_result.rb
359
497
  - lib/canvas_sync/generators/templates/models/pseudonym.rb
360
498
  - lib/canvas_sync/generators/templates/models/role.rb
499
+ - lib/canvas_sync/generators/templates/models/rubric.rb
500
+ - lib/canvas_sync/generators/templates/models/rubric_assessment.rb
501
+ - lib/canvas_sync/generators/templates/models/rubric_association.rb
361
502
  - lib/canvas_sync/generators/templates/models/section.rb
362
503
  - lib/canvas_sync/generators/templates/models/submission.rb
363
504
  - lib/canvas_sync/generators/templates/models/term.rb
364
505
  - lib/canvas_sync/generators/templates/models/user.rb
506
+ - lib/canvas_sync/generators/templates/models/user_observer.rb
365
507
  - lib/canvas_sync/generators/templates/services/live_events/assignment_event.rb
366
508
  - lib/canvas_sync/generators/templates/services/live_events/assignment_group_event.rb
367
- - lib/canvas_sync/generators/templates/services/live_events/base_event.rb
368
509
  - lib/canvas_sync/generators/templates/services/live_events/course_event.rb
369
510
  - lib/canvas_sync/generators/templates/services/live_events/course_section_event.rb
370
511
  - lib/canvas_sync/generators/templates/services/live_events/enrollment_event.rb
@@ -377,8 +518,39 @@ files:
377
518
  - lib/canvas_sync/importers/bulk_importer.rb
378
519
  - lib/canvas_sync/importers/legacy_importer.rb
379
520
  - lib/canvas_sync/job.rb
380
- - lib/canvas_sync/job_chain.rb
381
- - lib/canvas_sync/jobs/fork_gather.rb
521
+ - lib/canvas_sync/job_batches/active_job.rb
522
+ - lib/canvas_sync/job_batches/batch.rb
523
+ - lib/canvas_sync/job_batches/callback.rb
524
+ - lib/canvas_sync/job_batches/chain_builder.rb
525
+ - lib/canvas_sync/job_batches/context_hash.rb
526
+ - lib/canvas_sync/job_batches/hier_batch_ids.lua
527
+ - lib/canvas_sync/job_batches/jobs/base_job.rb
528
+ - lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb
529
+ - lib/canvas_sync/job_batches/jobs/managed_batch_job.rb
530
+ - lib/canvas_sync/job_batches/jobs/serial_batch_job.rb
531
+ - lib/canvas_sync/job_batches/pool.rb
532
+ - lib/canvas_sync/job_batches/pool_refill.lua
533
+ - lib/canvas_sync/job_batches/redis_model.rb
534
+ - lib/canvas_sync/job_batches/redis_script.rb
535
+ - lib/canvas_sync/job_batches/schedule_callback.lua
536
+ - lib/canvas_sync/job_batches/sidekiq.rb
537
+ - lib/canvas_sync/job_batches/sidekiq/web.rb
538
+ - lib/canvas_sync/job_batches/sidekiq/web/batches_assets/css/styles.less
539
+ - lib/canvas_sync/job_batches/sidekiq/web/batches_assets/js/batch_tree.js
540
+ - lib/canvas_sync/job_batches/sidekiq/web/batches_assets/js/util.js
541
+ - lib/canvas_sync/job_batches/sidekiq/web/helpers.rb
542
+ - lib/canvas_sync/job_batches/sidekiq/web/views/_batch_tree.erb
543
+ - lib/canvas_sync/job_batches/sidekiq/web/views/_batches_table.erb
544
+ - lib/canvas_sync/job_batches/sidekiq/web/views/_common.erb
545
+ - lib/canvas_sync/job_batches/sidekiq/web/views/_jobs_table.erb
546
+ - lib/canvas_sync/job_batches/sidekiq/web/views/_pagination.erb
547
+ - lib/canvas_sync/job_batches/sidekiq/web/views/batch.erb
548
+ - lib/canvas_sync/job_batches/sidekiq/web/views/batches.erb
549
+ - lib/canvas_sync/job_batches/sidekiq/web/views/pool.erb
550
+ - lib/canvas_sync/job_batches/sidekiq/web/views/pools.erb
551
+ - lib/canvas_sync/job_batches/status.rb
552
+ - lib/canvas_sync/jobs/begin_sync_chain_job.rb
553
+ - lib/canvas_sync/jobs/canvas_process_waiter.rb
382
554
  - lib/canvas_sync/jobs/report_checker.rb
383
555
  - lib/canvas_sync/jobs/report_processor_job.rb
384
556
  - lib/canvas_sync/jobs/report_starter.rb
@@ -386,27 +558,40 @@ files:
386
558
  - lib/canvas_sync/jobs/sync_admins_job.rb
387
559
  - lib/canvas_sync/jobs/sync_assignment_groups_job.rb
388
560
  - lib/canvas_sync/jobs/sync_assignments_job.rb
561
+ - lib/canvas_sync/jobs/sync_content_migrations_job.rb
389
562
  - lib/canvas_sync/jobs/sync_context_module_items_job.rb
390
563
  - lib/canvas_sync/jobs/sync_context_modules_job.rb
391
564
  - lib/canvas_sync/jobs/sync_provisioning_report_job.rb
392
565
  - lib/canvas_sync/jobs/sync_roles_job.rb
566
+ - lib/canvas_sync/jobs/sync_rubric_assessments_job.rb
567
+ - lib/canvas_sync/jobs/sync_rubric_associations_job.rb
568
+ - lib/canvas_sync/jobs/sync_rubrics_job.rb
393
569
  - lib/canvas_sync/jobs/sync_simple_table_job.rb
394
570
  - lib/canvas_sync/jobs/sync_submissions_job.rb
395
571
  - lib/canvas_sync/jobs/sync_terms_job.rb
572
+ - lib/canvas_sync/jobs/term_batches_job.rb
573
+ - lib/canvas_sync/live_events.rb
574
+ - lib/canvas_sync/live_events/base_handler.rb
575
+ - lib/canvas_sync/live_events/process_event_job.rb
576
+ - lib/canvas_sync/misc_helper.rb
396
577
  - lib/canvas_sync/processors/assignment_groups_processor.rb
397
578
  - lib/canvas_sync/processors/assignments_processor.rb
579
+ - lib/canvas_sync/processors/content_migrations_processor.rb
398
580
  - lib/canvas_sync/processors/context_module_items_processor.rb
399
581
  - lib/canvas_sync/processors/context_modules_processor.rb
400
582
  - lib/canvas_sync/processors/model_mappings.yml
401
583
  - lib/canvas_sync/processors/normal_processor.rb
402
584
  - lib/canvas_sync/processors/provisioning_report_processor.rb
403
585
  - lib/canvas_sync/processors/report_processor.rb
586
+ - lib/canvas_sync/processors/rubric_assessments_processor.rb
587
+ - lib/canvas_sync/processors/rubric_associations_processor.rb
588
+ - lib/canvas_sync/processors/rubrics_processor.rb
404
589
  - lib/canvas_sync/processors/submissions_processor.rb
405
590
  - lib/canvas_sync/record.rb
406
591
  - lib/canvas_sync/sidekiq_job.rb
407
592
  - lib/canvas_sync/version.rb
408
593
  - spec/canvas_sync/canvas_sync_spec.rb
409
- - spec/canvas_sync/jobs/fork_gather_spec.rb
594
+ - spec/canvas_sync/jobs/canvas_process_waiter_spec.rb
410
595
  - spec/canvas_sync/jobs/job_spec.rb
411
596
  - spec/canvas_sync/jobs/report_checker_spec.rb
412
597
  - spec/canvas_sync/jobs/report_processor_job_spec.rb
@@ -414,6 +599,7 @@ files:
414
599
  - spec/canvas_sync/jobs/sync_admins_job_spec.rb
415
600
  - spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb
416
601
  - spec/canvas_sync/jobs/sync_assignments_job_spec.rb
602
+ - spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb
417
603
  - spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb
418
604
  - spec/canvas_sync/jobs/sync_context_modules_job_spec.rb
419
605
  - spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb
@@ -421,6 +607,10 @@ files:
421
607
  - spec/canvas_sync/jobs/sync_simple_table_job_spec.rb
422
608
  - spec/canvas_sync/jobs/sync_submissions_job_spec.rb
423
609
  - spec/canvas_sync/jobs/sync_terms_job_spec.rb
610
+ - spec/canvas_sync/live_events/live_event_sync_spec.rb
611
+ - spec/canvas_sync/live_events/live_events_controller_spec.rb
612
+ - spec/canvas_sync/live_events/process_event_job_spec.rb
613
+ - spec/canvas_sync/misc_helper_spec.rb
424
614
  - spec/canvas_sync/models/accounts_spec.rb
425
615
  - spec/canvas_sync/models/admins_spec.rb
426
616
  - spec/canvas_sync/models/assignment_group_spec.rb
@@ -438,10 +628,14 @@ files:
438
628
  - spec/canvas_sync/models/user_spec.rb
439
629
  - spec/canvas_sync/processors/assignment_groups_processor_spec.rb
440
630
  - spec/canvas_sync/processors/assignments_processor_spec.rb
631
+ - spec/canvas_sync/processors/content_migrations_processor_spec.rb
441
632
  - spec/canvas_sync/processors/context_module_items_processor_spec.rb
442
633
  - spec/canvas_sync/processors/context_modules_processor_spec.rb
443
634
  - spec/canvas_sync/processors/normal_processor_spec.rb
444
635
  - spec/canvas_sync/processors/provisioning_report_processor_spec.rb
636
+ - spec/canvas_sync/processors/rubric_assessments_spec.rb
637
+ - spec/canvas_sync/processors/rubric_associations_spec.rb
638
+ - spec/canvas_sync/processors/rubrics_processor_spec.rb
445
639
  - spec/canvas_sync/processors/submissions_processor_spec.rb
446
640
  - spec/canvas_sync/services/module_event_spec.rb
447
641
  - spec/canvas_sync/services/module_item_event_spec.rb
@@ -452,17 +646,28 @@ files:
452
646
  - spec/dummy/app/models/application_record.rb
453
647
  - spec/dummy/app/models/assignment.rb
454
648
  - spec/dummy/app/models/assignment_group.rb
649
+ - spec/dummy/app/models/content_migration.rb
455
650
  - spec/dummy/app/models/context_module.rb
456
651
  - spec/dummy/app/models/context_module_item.rb
457
652
  - spec/dummy/app/models/course.rb
653
+ - spec/dummy/app/models/course_nickname.rb
458
654
  - spec/dummy/app/models/enrollment.rb
655
+ - spec/dummy/app/models/grading_period.rb
656
+ - spec/dummy/app/models/grading_period_group.rb
459
657
  - spec/dummy/app/models/group.rb
460
658
  - spec/dummy/app/models/group_membership.rb
659
+ - spec/dummy/app/models/learning_outcome.rb
660
+ - spec/dummy/app/models/learning_outcome_result.rb
661
+ - spec/dummy/app/models/pseudonym.rb
461
662
  - spec/dummy/app/models/role.rb
663
+ - spec/dummy/app/models/rubric.rb
664
+ - spec/dummy/app/models/rubric_assessment.rb
665
+ - spec/dummy/app/models/rubric_association.rb
462
666
  - spec/dummy/app/models/section.rb
463
667
  - spec/dummy/app/models/submission.rb
464
668
  - spec/dummy/app/models/term.rb
465
669
  - spec/dummy/app/models/user.rb
670
+ - spec/dummy/app/models/user_observer.rb
466
671
  - spec/dummy/app/services/live_events/assignment_created_event.rb
467
672
  - spec/dummy/app/services/live_events/assignment_event.rb
468
673
  - spec/dummy/app/services/live_events/assignment_updated_event.rb
@@ -505,7 +710,6 @@ files:
505
710
  - spec/dummy/config/initializers/wrap_parameters.rb
506
711
  - spec/dummy/config/routes.rb
507
712
  - spec/dummy/config/secrets.yml
508
- - spec/dummy/db/migrate/20190702203620_create_users.rb
509
713
  - spec/dummy/db/migrate/20190702203621_create_courses.rb
510
714
  - spec/dummy/db/migrate/20190702203622_create_accounts.rb
511
715
  - spec/dummy/db/migrate/20190702203623_create_terms.rb
@@ -520,6 +724,18 @@ files:
520
724
  - spec/dummy/db/migrate/20190927204546_create_admins.rb
521
725
  - spec/dummy/db/migrate/20200415171620_create_groups.rb
522
726
  - spec/dummy/db/migrate/20200416214248_create_group_memberships.rb
727
+ - spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb
728
+ - spec/dummy/db/migrate/20210907233329_create_user_observers.rb
729
+ - spec/dummy/db/migrate/20210907233330_create_grading_periods.rb
730
+ - spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb
731
+ - spec/dummy/db/migrate/20220308072643_create_content_migrations.rb
732
+ - spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb
733
+ - spec/dummy/db/migrate/20220926221926_create_users.rb
734
+ - spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb
735
+ - spec/dummy/db/migrate/20240509105100_create_rubrics.rb
736
+ - spec/dummy/db/migrate/20240510094100_create_rubric_associations.rb
737
+ - spec/dummy/db/migrate/20240510101100_create_rubric_assessments.rb
738
+ - spec/dummy/db/migrate/20240523101010_create_learning_outcome_results.rb
523
739
  - spec/dummy/db/schema.rb
524
740
  - spec/factories/account_factory.rb
525
741
  - spec/factories/admin_factory.rb
@@ -536,6 +752,22 @@ files:
536
752
  - spec/factories/submission_factory.rb
537
753
  - spec/factories/term_factory.rb
538
754
  - spec/factories/user_factory.rb
755
+ - spec/job_batching/active_job_spec.rb
756
+ - spec/job_batching/batch_spec.rb
757
+ - spec/job_batching/callback_spec.rb
758
+ - spec/job_batching/context_hash_spec.rb
759
+ - spec/job_batching/flow_spec.rb
760
+ - spec/job_batching/integration/fail_then_succeed.rb
761
+ - spec/job_batching/integration/integration.rb
762
+ - spec/job_batching/integration/nested.rb
763
+ - spec/job_batching/integration/simple.rb
764
+ - spec/job_batching/integration/workflow.rb
765
+ - spec/job_batching/integration_helper.rb
766
+ - spec/job_batching/pool_spec.rb
767
+ - spec/job_batching/sidekiq_spec.rb
768
+ - spec/job_batching/status_spec.rb
769
+ - spec/job_batching/support/base_job.rb
770
+ - spec/job_batching/support/sample_callback.rb
539
771
  - spec/spec_helper.rb
540
772
  - spec/support/fake_canvas.rb
541
773
  - spec/support/fixtures/canvas_responses/admins.json
@@ -545,21 +777,33 @@ files:
545
777
  - spec/support/fixtures/canvas_responses/terms.json
546
778
  - spec/support/fixtures/reports/assignment_groups.csv
547
779
  - spec/support/fixtures/reports/assignments.csv
780
+ - spec/support/fixtures/reports/content_migrations.csv
548
781
  - spec/support/fixtures/reports/context_module_items.csv
549
782
  - spec/support/fixtures/reports/context_modules.csv
783
+ - spec/support/fixtures/reports/course_nicknames.csv
550
784
  - spec/support/fixtures/reports/courses.csv
551
785
  - spec/support/fixtures/reports/enrollments.csv
786
+ - spec/support/fixtures/reports/grading_period_groups.csv
787
+ - spec/support/fixtures/reports/grading_periods.csv
552
788
  - spec/support/fixtures/reports/group_memberships.csv
553
789
  - spec/support/fixtures/reports/groups.csv
790
+ - spec/support/fixtures/reports/learning_outcome_results.csv
791
+ - spec/support/fixtures/reports/learning_outcomes.csv
554
792
  - spec/support/fixtures/reports/provisioning_csv
793
+ - spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv
794
+ - spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv
795
+ - spec/support/fixtures/reports/rubric_assessments.csv
796
+ - spec/support/fixtures/reports/rubric_associations.csv
797
+ - spec/support/fixtures/reports/rubrics.csv
555
798
  - spec/support/fixtures/reports/sections.csv
556
799
  - spec/support/fixtures/reports/submissions.csv
800
+ - spec/support/fixtures/reports/user_observers.csv
557
801
  - spec/support/fixtures/reports/users.csv
558
802
  - spec/support/fixtures/reports/xlist.csv
559
803
  homepage: https://instructure.com
560
804
  licenses: []
561
805
  metadata: {}
562
- post_install_message:
806
+ post_install_message:
563
807
  rdoc_options: []
564
808
  require_paths:
565
809
  - lib
@@ -574,14 +818,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
574
818
  - !ruby/object:Gem::Version
575
819
  version: '0'
576
820
  requirements: []
577
- rubyforge_project:
578
- rubygems_version: 2.5.2.1
579
- signing_key:
821
+ rubygems_version: 3.5.4
822
+ signing_key:
580
823
  specification_version: 4
581
824
  summary: Gem for generating Canvas models and migrations and syncing data from Canvas
582
825
  test_files:
583
826
  - spec/canvas_sync/canvas_sync_spec.rb
584
- - spec/canvas_sync/jobs/fork_gather_spec.rb
827
+ - spec/canvas_sync/jobs/canvas_process_waiter_spec.rb
585
828
  - spec/canvas_sync/jobs/job_spec.rb
586
829
  - spec/canvas_sync/jobs/report_checker_spec.rb
587
830
  - spec/canvas_sync/jobs/report_processor_job_spec.rb
@@ -589,6 +832,7 @@ test_files:
589
832
  - spec/canvas_sync/jobs/sync_admins_job_spec.rb
590
833
  - spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb
591
834
  - spec/canvas_sync/jobs/sync_assignments_job_spec.rb
835
+ - spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb
592
836
  - spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb
593
837
  - spec/canvas_sync/jobs/sync_context_modules_job_spec.rb
594
838
  - spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb
@@ -596,6 +840,10 @@ test_files:
596
840
  - spec/canvas_sync/jobs/sync_simple_table_job_spec.rb
597
841
  - spec/canvas_sync/jobs/sync_submissions_job_spec.rb
598
842
  - spec/canvas_sync/jobs/sync_terms_job_spec.rb
843
+ - spec/canvas_sync/live_events/live_event_sync_spec.rb
844
+ - spec/canvas_sync/live_events/live_events_controller_spec.rb
845
+ - spec/canvas_sync/live_events/process_event_job_spec.rb
846
+ - spec/canvas_sync/misc_helper_spec.rb
599
847
  - spec/canvas_sync/models/accounts_spec.rb
600
848
  - spec/canvas_sync/models/admins_spec.rb
601
849
  - spec/canvas_sync/models/assignment_group_spec.rb
@@ -613,10 +861,14 @@ test_files:
613
861
  - spec/canvas_sync/models/user_spec.rb
614
862
  - spec/canvas_sync/processors/assignment_groups_processor_spec.rb
615
863
  - spec/canvas_sync/processors/assignments_processor_spec.rb
864
+ - spec/canvas_sync/processors/content_migrations_processor_spec.rb
616
865
  - spec/canvas_sync/processors/context_module_items_processor_spec.rb
617
866
  - spec/canvas_sync/processors/context_modules_processor_spec.rb
618
867
  - spec/canvas_sync/processors/normal_processor_spec.rb
619
868
  - spec/canvas_sync/processors/provisioning_report_processor_spec.rb
869
+ - spec/canvas_sync/processors/rubric_assessments_spec.rb
870
+ - spec/canvas_sync/processors/rubric_associations_spec.rb
871
+ - spec/canvas_sync/processors/rubrics_processor_spec.rb
620
872
  - spec/canvas_sync/processors/submissions_processor_spec.rb
621
873
  - spec/canvas_sync/services/module_event_spec.rb
622
874
  - spec/canvas_sync/services/module_item_event_spec.rb
@@ -627,17 +879,28 @@ test_files:
627
879
  - spec/dummy/app/models/application_record.rb
628
880
  - spec/dummy/app/models/assignment.rb
629
881
  - spec/dummy/app/models/assignment_group.rb
882
+ - spec/dummy/app/models/content_migration.rb
630
883
  - spec/dummy/app/models/context_module.rb
631
884
  - spec/dummy/app/models/context_module_item.rb
632
885
  - spec/dummy/app/models/course.rb
886
+ - spec/dummy/app/models/course_nickname.rb
633
887
  - spec/dummy/app/models/enrollment.rb
888
+ - spec/dummy/app/models/grading_period.rb
889
+ - spec/dummy/app/models/grading_period_group.rb
634
890
  - spec/dummy/app/models/group.rb
635
891
  - spec/dummy/app/models/group_membership.rb
892
+ - spec/dummy/app/models/learning_outcome.rb
893
+ - spec/dummy/app/models/learning_outcome_result.rb
894
+ - spec/dummy/app/models/pseudonym.rb
636
895
  - spec/dummy/app/models/role.rb
896
+ - spec/dummy/app/models/rubric.rb
897
+ - spec/dummy/app/models/rubric_assessment.rb
898
+ - spec/dummy/app/models/rubric_association.rb
637
899
  - spec/dummy/app/models/section.rb
638
900
  - spec/dummy/app/models/submission.rb
639
901
  - spec/dummy/app/models/term.rb
640
902
  - spec/dummy/app/models/user.rb
903
+ - spec/dummy/app/models/user_observer.rb
641
904
  - spec/dummy/app/services/live_events/assignment_created_event.rb
642
905
  - spec/dummy/app/services/live_events/assignment_event.rb
643
906
  - spec/dummy/app/services/live_events/assignment_updated_event.rb
@@ -668,7 +931,6 @@ test_files:
668
931
  - spec/dummy/app/services/live_events/user_event.rb
669
932
  - spec/dummy/app/services/live_events/user_updated_event.rb
670
933
  - spec/dummy/bin/rails
671
- - spec/dummy/config.ru
672
934
  - spec/dummy/config/application.rb
673
935
  - spec/dummy/config/boot.rb
674
936
  - spec/dummy/config/database.yml
@@ -680,7 +942,7 @@ test_files:
680
942
  - spec/dummy/config/initializers/wrap_parameters.rb
681
943
  - spec/dummy/config/routes.rb
682
944
  - spec/dummy/config/secrets.yml
683
- - spec/dummy/db/migrate/20190702203620_create_users.rb
945
+ - spec/dummy/config.ru
684
946
  - spec/dummy/db/migrate/20190702203621_create_courses.rb
685
947
  - spec/dummy/db/migrate/20190702203622_create_accounts.rb
686
948
  - spec/dummy/db/migrate/20190702203623_create_terms.rb
@@ -695,6 +957,18 @@ test_files:
695
957
  - spec/dummy/db/migrate/20190927204546_create_admins.rb
696
958
  - spec/dummy/db/migrate/20200415171620_create_groups.rb
697
959
  - spec/dummy/db/migrate/20200416214248_create_group_memberships.rb
960
+ - spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb
961
+ - spec/dummy/db/migrate/20210907233329_create_user_observers.rb
962
+ - spec/dummy/db/migrate/20210907233330_create_grading_periods.rb
963
+ - spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb
964
+ - spec/dummy/db/migrate/20220308072643_create_content_migrations.rb
965
+ - spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb
966
+ - spec/dummy/db/migrate/20220926221926_create_users.rb
967
+ - spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb
968
+ - spec/dummy/db/migrate/20240509105100_create_rubrics.rb
969
+ - spec/dummy/db/migrate/20240510094100_create_rubric_associations.rb
970
+ - spec/dummy/db/migrate/20240510101100_create_rubric_assessments.rb
971
+ - spec/dummy/db/migrate/20240523101010_create_learning_outcome_results.rb
698
972
  - spec/dummy/db/schema.rb
699
973
  - spec/factories/account_factory.rb
700
974
  - spec/factories/admin_factory.rb
@@ -711,6 +985,22 @@ test_files:
711
985
  - spec/factories/submission_factory.rb
712
986
  - spec/factories/term_factory.rb
713
987
  - spec/factories/user_factory.rb
988
+ - spec/job_batching/active_job_spec.rb
989
+ - spec/job_batching/batch_spec.rb
990
+ - spec/job_batching/callback_spec.rb
991
+ - spec/job_batching/context_hash_spec.rb
992
+ - spec/job_batching/flow_spec.rb
993
+ - spec/job_batching/integration/fail_then_succeed.rb
994
+ - spec/job_batching/integration/integration.rb
995
+ - spec/job_batching/integration/nested.rb
996
+ - spec/job_batching/integration/simple.rb
997
+ - spec/job_batching/integration/workflow.rb
998
+ - spec/job_batching/integration_helper.rb
999
+ - spec/job_batching/pool_spec.rb
1000
+ - spec/job_batching/sidekiq_spec.rb
1001
+ - spec/job_batching/status_spec.rb
1002
+ - spec/job_batching/support/base_job.rb
1003
+ - spec/job_batching/support/sample_callback.rb
714
1004
  - spec/spec_helper.rb
715
1005
  - spec/support/fake_canvas.rb
716
1006
  - spec/support/fixtures/canvas_responses/admins.json
@@ -720,14 +1010,26 @@ test_files:
720
1010
  - spec/support/fixtures/canvas_responses/terms.json
721
1011
  - spec/support/fixtures/reports/assignment_groups.csv
722
1012
  - spec/support/fixtures/reports/assignments.csv
1013
+ - spec/support/fixtures/reports/content_migrations.csv
723
1014
  - spec/support/fixtures/reports/context_module_items.csv
724
1015
  - spec/support/fixtures/reports/context_modules.csv
1016
+ - spec/support/fixtures/reports/course_nicknames.csv
725
1017
  - spec/support/fixtures/reports/courses.csv
726
1018
  - spec/support/fixtures/reports/enrollments.csv
1019
+ - spec/support/fixtures/reports/grading_period_groups.csv
1020
+ - spec/support/fixtures/reports/grading_periods.csv
727
1021
  - spec/support/fixtures/reports/group_memberships.csv
728
1022
  - spec/support/fixtures/reports/groups.csv
1023
+ - spec/support/fixtures/reports/learning_outcome_results.csv
1024
+ - spec/support/fixtures/reports/learning_outcomes.csv
729
1025
  - spec/support/fixtures/reports/provisioning_csv
1026
+ - spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv
1027
+ - spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv
1028
+ - spec/support/fixtures/reports/rubric_assessments.csv
1029
+ - spec/support/fixtures/reports/rubric_associations.csv
1030
+ - spec/support/fixtures/reports/rubrics.csv
730
1031
  - spec/support/fixtures/reports/sections.csv
731
1032
  - spec/support/fixtures/reports/submissions.csv
1033
+ - spec/support/fixtures/reports/user_observers.csv
732
1034
  - spec/support/fixtures/reports/users.csv
733
1035
  - spec/support/fixtures/reports/xlist.csv