canvas_sync 0.23.4 → 0.24.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -4
  3. data/lib/canvas_sync/processors/provisioning_report_processor.rb +1 -0
  4. data/lib/canvas_sync/version.rb +1 -1
  5. data/lib/canvas_sync.rb +6 -4
  6. data/spec/canvas_sync/canvas_sync_spec.rb +11 -11
  7. data/spec/canvas_sync/live_events/process_event_job_spec.rb +1 -0
  8. data/spec/{dummy → internal}/app/models/application_record.rb +1 -0
  9. data/spec/{dummy → internal}/app/models/content_migration.rb +0 -0
  10. data/spec/{dummy → internal}/app/models/course.rb +0 -1
  11. data/spec/{dummy → internal}/app/models/course_nickname.rb +0 -0
  12. data/spec/{dummy → internal}/app/models/learning_outcome.rb +0 -0
  13. data/spec/{dummy → internal}/app/services/live_events/assignment_event.rb +0 -0
  14. data/spec/{dummy → internal}/app/services/live_events/course_event.rb +0 -0
  15. data/spec/{dummy → internal}/app/services/live_events/course_section_event.rb +0 -0
  16. data/spec/{dummy → internal}/app/services/live_events/enrollment_event.rb +0 -0
  17. data/spec/{dummy → internal}/app/services/live_events/grade_event.rb +0 -0
  18. data/spec/{dummy → internal}/app/services/live_events/module_event.rb +0 -0
  19. data/spec/{dummy → internal}/app/services/live_events/module_item_event.rb +0 -0
  20. data/spec/{dummy → internal}/app/services/live_events/submission_event.rb +0 -0
  21. data/spec/{dummy → internal}/app/services/live_events/syllabus_event.rb +0 -0
  22. data/spec/{dummy → internal}/app/services/live_events/user_event.rb +0 -0
  23. data/spec/internal/bin/rails +9 -0
  24. data/spec/internal/config/database.yml +5 -0
  25. data/spec/internal/config/routes.rb +5 -0
  26. data/spec/internal/config/storage.yml +3 -0
  27. data/spec/{dummy/db/migrate/20220926221926_create_users.rb → internal/db/migrate/20250912205136_create_users.rb} +0 -0
  28. data/spec/{dummy/db/migrate/20201016181346_create_pseudonyms.rb → internal/db/migrate/20250912205137_create_pseudonyms.rb} +0 -0
  29. data/spec/{dummy/db/migrate/20200415171620_create_groups.rb → internal/db/migrate/20250912205139_create_groups.rb} +0 -0
  30. data/spec/{dummy/db/migrate/20200416214248_create_group_memberships.rb → internal/db/migrate/20250912205140_create_group_memberships.rb} +0 -0
  31. data/spec/{dummy/db/migrate/20190702203622_create_accounts.rb → internal/db/migrate/20250912205141_create_accounts.rb} +0 -0
  32. data/spec/{dummy/db/migrate/20190702203623_create_terms.rb → internal/db/migrate/20250912205142_create_terms.rb} +0 -0
  33. data/spec/{dummy/db/migrate/20190702203625_create_sections.rb → internal/db/migrate/20250912205144_create_sections.rb} +0 -0
  34. data/spec/{dummy/db/migrate/20190702203626_create_assignments.rb → internal/db/migrate/20250912205145_create_assignments.rb} +0 -0
  35. data/spec/{dummy/db/migrate/20190702203627_create_submissions.rb → internal/db/migrate/20250912205146_create_submissions.rb} +0 -0
  36. data/spec/{dummy/db/migrate/20190927204545_create_roles.rb → internal/db/migrate/20250912205147_create_roles.rb} +2 -2
  37. data/spec/{dummy/db/migrate/20190927204546_create_admins.rb → internal/db/migrate/20250912205148_create_admins.rb} +0 -0
  38. data/spec/{dummy/db/migrate/20190702203630_create_assignment_groups.rb → internal/db/migrate/20250912205149_create_assignment_groups.rb} +0 -0
  39. data/spec/{dummy/db/migrate/20190702203631_create_context_modules.rb → internal/db/migrate/20250912205150_create_context_modules.rb} +0 -0
  40. data/spec/{dummy/db/migrate/20190702203632_create_context_module_items.rb → internal/db/migrate/20250912205151_create_context_module_items.rb} +0 -0
  41. data/spec/{dummy/db/migrate/20210907233329_create_user_observers.rb → internal/db/migrate/20250912205152_create_user_observers.rb} +0 -0
  42. data/spec/{dummy/db/migrate/20210907233330_create_grading_periods.rb → internal/db/migrate/20250912205153_create_grading_periods.rb} +0 -0
  43. data/spec/{dummy/db/migrate/20211001184920_create_grading_period_groups.rb → internal/db/migrate/20250912205154_create_grading_period_groups.rb} +0 -0
  44. data/spec/{dummy/db/migrate/20220308072643_create_content_migrations.rb → internal/db/migrate/20250912205155_create_content_migrations.rb} +0 -0
  45. data/spec/{dummy/db/migrate/20220712210559_create_learning_outcomes.rb → internal/db/migrate/20250912205156_create_learning_outcomes.rb} +0 -0
  46. data/spec/{dummy/db/migrate/20240523101010_create_learning_outcome_results.rb → internal/db/migrate/20250912205157_create_learning_outcome_results.rb} +0 -0
  47. data/spec/{dummy/db/migrate/20240510094100_create_rubric_associations.rb → internal/db/migrate/20250912205160_create_rubric_associations.rb} +0 -0
  48. data/spec/{dummy/db/migrate/20240510101100_create_rubric_assessments.rb → internal/db/migrate/20250912205161_create_rubric_assessments.rb} +0 -0
  49. data/spec/{dummy/db/migrate/20240828161300_create_course_progresses.rb → internal/db/migrate/20250912205162_create_course_progresses.rb} +0 -0
  50. data/spec/internal/db/schema.rb +6 -0
  51. data/spec/spec_helper.rb +8 -4
  52. metadata +182 -372
  53. data/lib/canvas_sync/job_batches/batch.rb +0 -595
  54. data/lib/canvas_sync/job_batches/callback.rb +0 -135
  55. data/lib/canvas_sync/job_batches/chain_builder.rb +0 -247
  56. data/lib/canvas_sync/job_batches/compat/active_job.rb +0 -108
  57. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/css/styles.less +0 -182
  58. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/js/batch_tree.js +0 -108
  59. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/js/util.js +0 -2
  60. data/lib/canvas_sync/job_batches/compat/sidekiq/web/helpers.rb +0 -41
  61. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batch_tree.erb +0 -6
  62. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batches_table.erb +0 -44
  63. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_common.erb +0 -13
  64. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_jobs_table.erb +0 -21
  65. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_pagination.erb +0 -26
  66. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batch.erb +0 -81
  67. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batches.erb +0 -23
  68. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pool.erb +0 -137
  69. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pools.erb +0 -47
  70. data/lib/canvas_sync/job_batches/compat/sidekiq/web.rb +0 -218
  71. data/lib/canvas_sync/job_batches/compat/sidekiq.rb +0 -149
  72. data/lib/canvas_sync/job_batches/compat.rb +0 -20
  73. data/lib/canvas_sync/job_batches/context_hash.rb +0 -157
  74. data/lib/canvas_sync/job_batches/hier_batch_ids.lua +0 -25
  75. data/lib/canvas_sync/job_batches/jobs/base_job.rb +0 -5
  76. data/lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb +0 -20
  77. data/lib/canvas_sync/job_batches/jobs/managed_batch_job.rb +0 -175
  78. data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +0 -20
  79. data/lib/canvas_sync/job_batches/pool.rb +0 -254
  80. data/lib/canvas_sync/job_batches/pool_refill.lua +0 -47
  81. data/lib/canvas_sync/job_batches/redis_model.rb +0 -67
  82. data/lib/canvas_sync/job_batches/redis_script.rb +0 -161
  83. data/lib/canvas_sync/job_batches/schedule_callback.lua +0 -14
  84. data/lib/canvas_sync/job_batches/status.rb +0 -89
  85. data/lib/canvas_sync/job_uniqueness/compat/active_job.rb +0 -75
  86. data/lib/canvas_sync/job_uniqueness/compat/sidekiq.rb +0 -135
  87. data/lib/canvas_sync/job_uniqueness/compat.rb +0 -20
  88. data/lib/canvas_sync/job_uniqueness/configuration.rb +0 -25
  89. data/lib/canvas_sync/job_uniqueness/job_uniqueness.rb +0 -47
  90. data/lib/canvas_sync/job_uniqueness/lock_context.rb +0 -199
  91. data/lib/canvas_sync/job_uniqueness/locksmith.rb +0 -92
  92. data/lib/canvas_sync/job_uniqueness/on_conflict/base.rb +0 -32
  93. data/lib/canvas_sync/job_uniqueness/on_conflict/log.rb +0 -13
  94. data/lib/canvas_sync/job_uniqueness/on_conflict/null_strategy.rb +0 -9
  95. data/lib/canvas_sync/job_uniqueness/on_conflict/raise.rb +0 -11
  96. data/lib/canvas_sync/job_uniqueness/on_conflict/reject.rb +0 -21
  97. data/lib/canvas_sync/job_uniqueness/on_conflict/reschedule.rb +0 -20
  98. data/lib/canvas_sync/job_uniqueness/on_conflict.rb +0 -62
  99. data/lib/canvas_sync/job_uniqueness/strategy/base.rb +0 -107
  100. data/lib/canvas_sync/job_uniqueness/strategy/until_and_while_executing.rb +0 -35
  101. data/lib/canvas_sync/job_uniqueness/strategy/until_executed.rb +0 -20
  102. data/lib/canvas_sync/job_uniqueness/strategy/until_executing.rb +0 -20
  103. data/lib/canvas_sync/job_uniqueness/strategy/until_expired.rb +0 -16
  104. data/lib/canvas_sync/job_uniqueness/strategy/while_executing.rb +0 -26
  105. data/lib/canvas_sync/job_uniqueness/strategy.rb +0 -27
  106. data/lib/canvas_sync/job_uniqueness/unique_job_common.rb +0 -79
  107. data/spec/dummy/README.rdoc +0 -1
  108. data/spec/dummy/Rakefile +0 -6
  109. data/spec/dummy/app/services/live_events/assignment_created_event.rb +0 -12
  110. data/spec/dummy/app/services/live_events/assignment_updated_event.rb +0 -12
  111. data/spec/dummy/app/services/live_events/base_event.rb +0 -52
  112. data/spec/dummy/app/services/live_events/course_created_event.rb +0 -12
  113. data/spec/dummy/app/services/live_events/course_section_created_event.rb +0 -12
  114. data/spec/dummy/app/services/live_events/course_section_updated_event.rb +0 -12
  115. data/spec/dummy/app/services/live_events/course_updated_event.rb +0 -12
  116. data/spec/dummy/app/services/live_events/enrollment_created_event.rb +0 -12
  117. data/spec/dummy/app/services/live_events/enrollment_updated_event.rb +0 -12
  118. data/spec/dummy/app/services/live_events/grade_changed_event.rb +0 -12
  119. data/spec/dummy/app/services/live_events/module_created_event.rb +0 -12
  120. data/spec/dummy/app/services/live_events/module_item_created_event.rb +0 -12
  121. data/spec/dummy/app/services/live_events/module_item_updated_event.rb +0 -12
  122. data/spec/dummy/app/services/live_events/module_updated_event.rb +0 -12
  123. data/spec/dummy/app/services/live_events/submission_created_event.rb +0 -12
  124. data/spec/dummy/app/services/live_events/submission_updated_event.rb +0 -12
  125. data/spec/dummy/app/services/live_events/syllabus_updated_event.rb +0 -12
  126. data/spec/dummy/app/services/live_events/user_created_event.rb +0 -12
  127. data/spec/dummy/app/services/live_events/user_updated_event.rb +0 -12
  128. data/spec/dummy/bin/rails +0 -4
  129. data/spec/dummy/config/application.rb +0 -39
  130. data/spec/dummy/config/boot.rb +0 -5
  131. data/spec/dummy/config/database.yml +0 -25
  132. data/spec/dummy/config/environment.rb +0 -5
  133. data/spec/dummy/config/environments/development.rb +0 -41
  134. data/spec/dummy/config/environments/test.rb +0 -44
  135. data/spec/dummy/config/initializers/assets.rb +0 -11
  136. data/spec/dummy/config/initializers/session_store.rb +0 -3
  137. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  138. data/spec/dummy/config/routes.rb +0 -3
  139. data/spec/dummy/config/secrets.yml +0 -22
  140. data/spec/dummy/config.ru +0 -4
  141. data/spec/dummy/db/schema.rb +0 -563
  142. data/spec/job_batching/batch_spec.rb +0 -531
  143. data/spec/job_batching/callback_spec.rb +0 -38
  144. data/spec/job_batching/compat/active_job_spec.rb +0 -107
  145. data/spec/job_batching/compat/sidekiq_spec.rb +0 -127
  146. data/spec/job_batching/context_hash_spec.rb +0 -54
  147. data/spec/job_batching/flow_spec.rb +0 -82
  148. data/spec/job_batching/integration/fail_then_succeed.rb +0 -42
  149. data/spec/job_batching/integration/integration.rb +0 -57
  150. data/spec/job_batching/integration/nested.rb +0 -88
  151. data/spec/job_batching/integration/simple.rb +0 -47
  152. data/spec/job_batching/integration/workflow.rb +0 -134
  153. data/spec/job_batching/integration_helper.rb +0 -50
  154. data/spec/job_batching/pool_spec.rb +0 -161
  155. data/spec/job_batching/status_spec.rb +0 -76
  156. data/spec/job_batching/support/base_job.rb +0 -14
  157. data/spec/job_batching/support/sample_callback.rb +0 -2
  158. data/spec/job_uniqueness/compat/active_job_spec.rb +0 -49
  159. data/spec/job_uniqueness/compat/sidekiq_spec.rb +0 -68
  160. data/spec/job_uniqueness/lock_context_spec.rb +0 -106
  161. data/spec/job_uniqueness/on_conflict/log_spec.rb +0 -11
  162. data/spec/job_uniqueness/on_conflict/raise_spec.rb +0 -10
  163. data/spec/job_uniqueness/on_conflict/reschedule_spec.rb +0 -63
  164. data/spec/job_uniqueness/on_conflict_spec.rb +0 -16
  165. data/spec/job_uniqueness/spec_helper.rb +0 -17
  166. data/spec/job_uniqueness/strategy/base_spec.rb +0 -100
  167. data/spec/job_uniqueness/strategy/until_and_while_executing_spec.rb +0 -48
  168. data/spec/job_uniqueness/strategy/until_executed_spec.rb +0 -23
  169. data/spec/job_uniqueness/strategy/until_executing_spec.rb +0 -23
  170. data/spec/job_uniqueness/strategy/until_expired_spec.rb +0 -23
  171. data/spec/job_uniqueness/strategy/while_executing_spec.rb +0 -33
  172. data/spec/job_uniqueness/support/lock_strategy.rb +0 -28
  173. data/spec/job_uniqueness/support/on_conflict.rb +0 -24
  174. data/spec/job_uniqueness/support/test_worker.rb +0 -19
  175. data/spec/job_uniqueness/unique_job_common_spec.rb +0 -45
  176. /data/spec/{dummy → internal}/app/models/account.rb +0 -0
  177. /data/spec/{dummy → internal}/app/models/admin.rb +0 -0
  178. /data/spec/{dummy → internal}/app/models/assignment.rb +0 -0
  179. /data/spec/{dummy → internal}/app/models/assignment_group.rb +0 -0
  180. /data/spec/{dummy → internal}/app/models/assignment_override.rb +0 -0
  181. /data/spec/{dummy → internal}/app/models/context_module.rb +0 -0
  182. /data/spec/{dummy → internal}/app/models/context_module_item.rb +0 -0
  183. /data/spec/{dummy → internal}/app/models/course_progress.rb +0 -0
  184. /data/spec/{dummy → internal}/app/models/enrollment.rb +0 -0
  185. /data/spec/{dummy → internal}/app/models/grading_period.rb +0 -0
  186. /data/spec/{dummy → internal}/app/models/grading_period_group.rb +0 -0
  187. /data/spec/{dummy → internal}/app/models/group.rb +0 -0
  188. /data/spec/{dummy → internal}/app/models/group_membership.rb +0 -0
  189. /data/spec/{dummy → internal}/app/models/learning_outcome_result.rb +0 -0
  190. /data/spec/{dummy → internal}/app/models/pseudonym.rb +0 -0
  191. /data/spec/{dummy → internal}/app/models/role.rb +0 -0
  192. /data/spec/{dummy → internal}/app/models/rubric.rb +0 -0
  193. /data/spec/{dummy → internal}/app/models/rubric_assessment.rb +0 -0
  194. /data/spec/{dummy → internal}/app/models/rubric_association.rb +0 -0
  195. /data/spec/{dummy → internal}/app/models/score.rb +0 -0
  196. /data/spec/{dummy → internal}/app/models/section.rb +0 -0
  197. /data/spec/{dummy → internal}/app/models/submission.rb +0 -0
  198. /data/spec/{dummy → internal}/app/models/term.rb +0 -0
  199. /data/spec/{dummy → internal}/app/models/user.rb +0 -0
  200. /data/spec/{dummy → internal}/app/models/user_observer.rb +0 -0
  201. /data/spec/{dummy/db/migrate/20190702203621_create_courses.rb → internal/db/migrate/20250912205138_create_courses.rb} +0 -0
  202. /data/spec/{dummy/db/migrate/20190702203624_create_enrollments.rb → internal/db/migrate/20250912205143_create_enrollments.rb} +0 -0
  203. /data/spec/{dummy/db/migrate/20250319194134_create_course_nicknames.rb → internal/db/migrate/20250912205158_create_course_nicknames.rb} +0 -0
  204. /data/spec/{dummy/db/migrate/20250319194135_create_rubrics.rb → internal/db/migrate/20250912205159_create_rubrics.rb} +0 -0
  205. /data/spec/{dummy/db/migrate/20241223080202_create_assignment_overrides.rb → internal/db/migrate/20250912205163_create_assignment_overrides.rb} +0 -0
  206. /data/spec/{dummy/db/migrate/20250626194330_create_scores.rb → internal/db/migrate/20250912205164_create_scores.rb} +0 -0
@@ -1,563 +0,0 @@
1
- # This file is auto-generated from the current state of the database. Instead
2
- # of editing this file, please use the migrations feature of Active Record to
3
- # incrementally modify your database, and then regenerate this schema definition.
4
- #
5
- # This file is the source Rails uses to define your schema when running `bin/rails
6
- # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7
- # be faster and is potentially less error prone than running all of your
8
- # migrations from scratch. Old migrations may fail to apply correctly if those
9
- # migrations use external dependencies or application code.
10
- #
11
- # It's strongly recommended that you check this file into your version control system.
12
-
13
- ActiveRecord::Schema[7.1].define(version: 2025_07_30_124426) do
14
- # These are extensions that must be enabled in order to support this database
15
- enable_extension "plpgsql"
16
-
17
- create_table "accounts", force: :cascade do |t|
18
- t.bigint "canvas_id", null: false
19
- t.string "sis_id"
20
- t.bigint "canvas_parent_account_id"
21
- t.string "sis_parent_account_id"
22
- t.string "name"
23
- t.string "workflow_state"
24
- t.datetime "created_at", precision: nil, null: false
25
- t.datetime "updated_at", precision: nil, null: false
26
- t.index ["canvas_id"], name: "index_accounts_on_canvas_id", unique: true
27
- end
28
-
29
- create_table "admins", force: :cascade do |t|
30
- t.bigint "canvas_id", null: false
31
- t.string "role_name"
32
- t.bigint "canvas_account_id"
33
- t.bigint "canvas_role_id"
34
- t.bigint "canvas_user_id"
35
- t.string "workflow_state"
36
- t.datetime "created_at", precision: nil, null: false
37
- t.datetime "updated_at", precision: nil, null: false
38
- t.index ["canvas_account_id"], name: "index_admins_on_canvas_account_id"
39
- t.index ["canvas_id"], name: "index_admins_on_canvas_id", unique: true
40
- t.index ["canvas_role_id"], name: "index_admins_on_canvas_role_id"
41
- t.index ["canvas_user_id"], name: "index_admins_on_canvas_user_id"
42
- end
43
-
44
- create_table "assignment_groups", force: :cascade do |t|
45
- t.bigint "canvas_id", null: false
46
- t.bigint "canvas_course_id"
47
- t.string "name"
48
- t.text "rules"
49
- t.integer "position"
50
- t.float "group_weight"
51
- t.string "workflow_state"
52
- t.datetime "canvas_created_at", precision: nil
53
- t.datetime "canvas_updated_at", precision: nil
54
- t.datetime "created_at", precision: nil, null: false
55
- t.datetime "updated_at", precision: nil, null: false
56
- t.index ["canvas_course_id"], name: "index_assignment_groups_on_canvas_course_id"
57
- t.index ["canvas_id"], name: "index_assignment_groups_on_canvas_id", unique: true
58
- end
59
-
60
- create_table "assignment_overrides", force: :cascade do |t|
61
- t.bigint "canvas_id", null: false
62
- t.bigint "canvas_assignment_id"
63
- t.bigint "canvas_group_id"
64
- t.bigint "canvas_course_id"
65
- t.bigint "canvas_section_id"
66
- t.bigint "student_ids", array: true
67
- t.datetime "due_at", precision: nil
68
- t.boolean "all_day"
69
- t.datetime "all_day_date", precision: nil
70
- t.datetime "unlock_at", precision: nil
71
- t.datetime "lock_at", precision: nil
72
- t.string "title"
73
- t.string "workflow_state"
74
- t.datetime "created_at", precision: nil, null: false
75
- t.datetime "updated_at", precision: nil, null: false
76
- t.index ["canvas_assignment_id"], name: "index_assignment_overrides_on_canvas_assignment_id"
77
- t.index ["canvas_course_id"], name: "index_assignment_overrides_on_canvas_course_id"
78
- t.index ["canvas_id"], name: "index_assignment_overrides_on_canvas_id", unique: true
79
- end
80
-
81
- create_table "assignments", force: :cascade do |t|
82
- t.bigint "canvas_id", null: false
83
- t.string "title"
84
- t.text "description"
85
- t.datetime "due_at", precision: nil
86
- t.datetime "unlock_at", precision: nil
87
- t.datetime "lock_at", precision: nil
88
- t.float "points_possible"
89
- t.float "min_score"
90
- t.float "max_score"
91
- t.float "mastery_score"
92
- t.string "grading_type"
93
- t.string "submission_types"
94
- t.string "workflow_state"
95
- t.integer "canvas_context_id"
96
- t.string "canvas_context_type"
97
- t.integer "canvas_assignment_group_id"
98
- t.integer "canvas_grading_scheme_id"
99
- t.integer "canvas_grading_standard_id"
100
- t.datetime "created_at", precision: nil, null: false
101
- t.datetime "updated_at", precision: nil, null: false
102
- t.index ["canvas_context_id", "canvas_context_type"], name: "index_assignments_on_canvas_context_id_and_canvas_context_type"
103
- t.index ["canvas_id"], name: "index_assignments_on_canvas_id", unique: true
104
- end
105
-
106
- create_table "canvas_sync_job_logs", id: :serial, force: :cascade do |t|
107
- t.datetime "started_at", precision: nil
108
- t.datetime "completed_at", precision: nil
109
- t.string "exception"
110
- t.text "backtrace"
111
- t.string "job_class"
112
- t.string "status"
113
- t.text "metadata"
114
- t.text "job_arguments"
115
- t.datetime "created_at", precision: nil
116
- t.datetime "updated_at", precision: nil
117
- t.string "job_id"
118
- t.integer "fork_count"
119
- t.index ["job_id"], name: "index_canvas_sync_job_logs_on_job_id"
120
- end
121
-
122
- create_table "canvas_sync_sync_batches", id: :serial, force: :cascade do |t|
123
- t.datetime "started_at", precision: nil
124
- t.datetime "completed_at", precision: nil
125
- t.string "status"
126
- t.datetime "created_at", precision: nil
127
- t.datetime "updated_at", precision: nil
128
- t.boolean "full_sync", default: false
129
- t.string "batch_genre"
130
- t.string "batch_bid"
131
- end
132
-
133
- create_table "content_migrations", force: :cascade do |t|
134
- t.bigint "canvas_id"
135
- t.bigint "canvas_context_id"
136
- t.string "canvas_context_type"
137
- t.string "workflow_state"
138
- t.text "migration_settings"
139
- t.datetime "started_at", precision: nil
140
- t.datetime "finished_at", precision: nil
141
- t.float "progress"
142
- t.bigint "canvas_source_course_id"
143
- t.string "migration_type"
144
- t.bigint "canvas_child_subscription_id"
145
- t.bigint "canvas_root_account_id"
146
- t.datetime "created_at", precision: nil, null: false
147
- t.datetime "updated_at", precision: nil, null: false
148
- t.index ["canvas_id"], name: "index_content_migrations_on_canvas_id", unique: true
149
- end
150
-
151
- create_table "context_module_items", force: :cascade do |t|
152
- t.bigint "canvas_id"
153
- t.bigint "canvas_context_module_id"
154
- t.integer "position"
155
- t.bigint "canvas_content_id"
156
- t.string "canvas_content_type"
157
- t.bigint "canvas_assignment_id"
158
- t.string "workflow_state"
159
- t.datetime "created_at", precision: nil, null: false
160
- t.datetime "updated_at", precision: nil, null: false
161
- t.index ["canvas_context_module_id"], name: "index_context_module_items_on_canvas_context_module_id"
162
- t.index ["canvas_id"], name: "index_context_module_items_on_canvas_id", unique: true
163
- end
164
-
165
- create_table "context_modules", force: :cascade do |t|
166
- t.bigint "canvas_id"
167
- t.bigint "canvas_context_id"
168
- t.string "canvas_context_type"
169
- t.integer "position"
170
- t.string "name"
171
- t.string "workflow_state"
172
- t.datetime "deleted_at", precision: nil
173
- t.datetime "unlock_at", precision: nil
174
- t.text "completion_requirements"
175
- t.text "prerequisites"
176
- t.datetime "created_at", precision: nil, null: false
177
- t.datetime "updated_at", precision: nil, null: false
178
- t.index ["canvas_context_id", "canvas_context_type"], name: "index_context_modules_on_context"
179
- t.index ["canvas_id"], name: "index_context_modules_on_canvas_id", unique: true
180
- end
181
-
182
- create_table "course_nicknames", force: :cascade do |t|
183
- t.bigint "canvas_user_preference_value_id"
184
- t.integer "canvas_user_id"
185
- t.integer "canvas_course_id"
186
- t.string "nickname"
187
- t.datetime "created_at", precision: nil, null: false
188
- t.datetime "updated_at", precision: nil, null: false
189
- t.index ["canvas_course_id", "canvas_user_id"], name: "index_course_nicknames_on_canvas_course_id_and_canvas_user_id", unique: true
190
- t.index ["canvas_user_preference_value_id"], name: "index_course_nicknames_on_canvas_user_preference_value_id", unique: true
191
- end
192
-
193
- create_table "course_progresses", force: :cascade do |t|
194
- t.bigint "canvas_course_id", null: false
195
- t.bigint "canvas_user_id", null: false
196
- t.integer "requirement_count"
197
- t.integer "requirement_completed_count"
198
- t.datetime "completion_date", precision: nil
199
- t.datetime "created_at", precision: nil, null: false
200
- t.datetime "updated_at", precision: nil, null: false
201
- t.index ["canvas_course_id"], name: "index_course_progresses_on_canvas_course_id"
202
- t.index ["canvas_user_id", "canvas_course_id"], name: "index_course_progresses_on_canvas_user_id_and_canvas_course_id", unique: true
203
- t.index ["canvas_user_id"], name: "index_course_progresses_on_canvas_user_id"
204
- end
205
-
206
- create_table "courses", force: :cascade do |t|
207
- t.bigint "canvas_id", null: false
208
- t.string "sis_id"
209
- t.string "course_code"
210
- t.string "name"
211
- t.string "workflow_state"
212
- t.integer "canvas_account_id"
213
- t.integer "canvas_term_id"
214
- t.datetime "start_at", precision: nil
215
- t.datetime "end_at", precision: nil
216
- t.bigint "grading_standard_id"
217
- t.string "public_description"
218
- t.datetime "created_at", precision: nil, null: false
219
- t.datetime "updated_at", precision: nil, null: false
220
- t.index ["canvas_id"], name: "index_courses_on_canvas_id", unique: true
221
- end
222
-
223
- create_table "enrollments", force: :cascade do |t|
224
- t.bigint "canvas_id", null: false
225
- t.bigint "canvas_course_id"
226
- t.string "course_sis_id"
227
- t.bigint "canvas_user_id"
228
- t.string "user_sis_id"
229
- t.string "role"
230
- t.integer "canvas_role_id"
231
- t.bigint "canvas_section_id"
232
- t.string "workflow_state"
233
- t.string "base_role_type"
234
- t.datetime "completed_at", precision: nil
235
- t.datetime "created_at", precision: nil, null: false
236
- t.datetime "updated_at", precision: nil, null: false
237
- t.index ["canvas_course_id"], name: "index_enrollments_on_canvas_course_id"
238
- t.index ["canvas_id"], name: "index_enrollments_on_canvas_id", unique: true
239
- t.index ["canvas_user_id"], name: "index_enrollments_on_canvas_user_id"
240
- end
241
-
242
- create_table "grading_period_groups", force: :cascade do |t|
243
- t.bigint "canvas_id", null: false
244
- t.string "title"
245
- t.boolean "weighted"
246
- t.boolean "display_totals_for_all_grading_periods"
247
- t.string "workflow_state"
248
- t.datetime "created_at", precision: nil, null: false
249
- t.datetime "updated_at", precision: nil, null: false
250
- t.index ["canvas_id"], name: "index_grading_period_groups_on_canvas_id", unique: true
251
- end
252
-
253
- create_table "grading_periods", force: :cascade do |t|
254
- t.bigint "canvas_id", null: false
255
- t.string "title"
256
- t.float "weight"
257
- t.datetime "start_date", precision: nil
258
- t.datetime "end_date", precision: nil
259
- t.datetime "close_date", precision: nil
260
- t.bigint "canvas_grading_period_group_id"
261
- t.string "workflow_state"
262
- t.datetime "created_at", precision: nil, null: false
263
- t.datetime "updated_at", precision: nil, null: false
264
- t.index ["canvas_grading_period_group_id"], name: "index_grading_periods_on_canvas_grading_period_group_id"
265
- t.index ["canvas_id"], name: "index_grading_periods_on_canvas_id", unique: true
266
- end
267
-
268
- create_table "group_memberships", force: :cascade do |t|
269
- t.bigint "canvas_id", null: false
270
- t.bigint "canvas_user_id", null: false
271
- t.bigint "canvas_group_id", null: false
272
- t.string "group_sis_id"
273
- t.string "user_sis_id"
274
- t.string "workflow_state"
275
- t.datetime "created_at", precision: nil, null: false
276
- t.datetime "updated_at", precision: nil, null: false
277
- t.index ["canvas_id"], name: "index_group_memberships_on_canvas_id", unique: true
278
- end
279
-
280
- create_table "groups", force: :cascade do |t|
281
- t.bigint "canvas_id", null: false
282
- t.string "sis_id"
283
- t.bigint "canvas_group_category_id"
284
- t.string "group_category_sis_id"
285
- t.bigint "canvas_account_id"
286
- t.bigint "canvas_course_id"
287
- t.string "name"
288
- t.string "workflow_state"
289
- t.bigint "context_id"
290
- t.string "context_type"
291
- t.integer "max_membership"
292
- t.datetime "created_at", precision: nil, null: false
293
- t.datetime "updated_at", precision: nil, null: false
294
- t.index ["canvas_id"], name: "index_groups_on_canvas_id", unique: true
295
- end
296
-
297
- create_table "learning_outcome_results", force: :cascade do |t|
298
- t.bigint "canvas_id", null: false
299
- t.bigint "canvas_context_id"
300
- t.string "canvas_context_type"
301
- t.bigint "canvas_association_id"
302
- t.string "canvas_association_type"
303
- t.bigint "canvas_content_tag_id"
304
- t.bigint "canvas_learning_outcome_id"
305
- t.bigint "canvas_user_id"
306
- t.boolean "mastery"
307
- t.boolean "original_mastery"
308
- t.bigint "canvas_artifact_id"
309
- t.string "canvas_artifact_type"
310
- t.datetime "assessed_at", precision: nil
311
- t.string "title"
312
- t.float "percent"
313
- t.bigint "canvas_associated_asset_id"
314
- t.string "canvas_associated_asset_type"
315
- t.integer "attempt"
316
- t.float "score"
317
- t.float "possible"
318
- t.float "original_score"
319
- t.float "original_possible"
320
- t.string "workflow_state"
321
- t.datetime "created_at", precision: nil, null: false
322
- t.datetime "updated_at", precision: nil, null: false
323
- t.index ["canvas_artifact_id", "canvas_artifact_type"], name: "index_learning_outcome_results_on_canvas_arid_and_artype"
324
- t.index ["canvas_content_tag_id"], name: "index_learning_outcome_results_on_canvas_content_tag_id"
325
- t.index ["canvas_id"], name: "index_learning_outcome_results_on_canvas_id", unique: true
326
- t.index ["canvas_learning_outcome_id"], name: "index_learning_outcome_results_on_canvas_learning_outcome_id"
327
- t.index ["canvas_user_id", "canvas_content_tag_id", "canvas_association_id", "canvas_association_type", "canvas_associated_asset_id", "canvas_associated_asset_type"], name: "index_learning_outcome_results_association", unique: true
328
- end
329
-
330
- create_table "learning_outcomes", force: :cascade do |t|
331
- t.bigint "canvas_id", null: false
332
- t.integer "canvas_context_id"
333
- t.string "canvas_context_type"
334
- t.string "name"
335
- t.string "friendly_name"
336
- t.string "workflow_state"
337
- t.datetime "canvas_created_at", precision: nil
338
- t.datetime "canvas_updated_at", precision: nil
339
- t.string "migration_id"
340
- t.string "vendor_guid"
341
- t.string "low_grade"
342
- t.string "high_grade"
343
- t.string "calculation_method"
344
- t.string "calculation_int"
345
- t.integer "outcome_import_id"
346
- t.integer "root_account_ids", default: [], array: true
347
- t.text "description"
348
- t.datetime "created_at", precision: nil, null: false
349
- t.datetime "updated_at", precision: nil, null: false
350
- t.index ["canvas_context_id", "canvas_context_type"], name: "index_learning_outcomes_on_context"
351
- t.index ["canvas_id"], name: "index_learning_outcomes_on_canvas_id", unique: true
352
- end
353
-
354
- create_table "pseudonyms", force: :cascade do |t|
355
- t.bigint "canvas_id", null: false
356
- t.bigint "canvas_user_id"
357
- t.string "sis_id"
358
- t.string "unique_id"
359
- t.string "workflow_state"
360
- t.datetime "created_at", precision: nil, null: false
361
- t.datetime "updated_at", precision: nil, null: false
362
- t.index ["canvas_id"], name: "index_pseudonyms_on_canvas_id", unique: true
363
- t.index ["canvas_user_id"], name: "index_pseudonyms_on_canvas_user_id"
364
- end
365
-
366
- create_table "roles", force: :cascade do |t|
367
- t.bigint "canvas_id", null: false
368
- t.string "label"
369
- t.string "base_role_type"
370
- t.bigint "canvas_account_id"
371
- t.string "workflow_state"
372
- t.json "permissions"
373
- t.datetime "created_at", precision: nil, null: false
374
- t.datetime "updated_at", precision: nil, null: false
375
- t.index ["canvas_account_id"], name: "index_roles_on_canvas_account_id"
376
- t.index ["canvas_id"], name: "index_roles_on_canvas_id", unique: true
377
- end
378
-
379
- create_table "rubric_assessments", force: :cascade do |t|
380
- t.bigint "canvas_id"
381
- t.bigint "canvas_user_id"
382
- t.bigint "canvas_rubric_id"
383
- t.bigint "canvas_rubric_association_id"
384
- t.float "score"
385
- t.text "data"
386
- t.bigint "canvas_artifact_id"
387
- t.string "canvas_artifact_type"
388
- t.string "assessment_type"
389
- t.bigint "canvas_assessor_id"
390
- t.integer "artifact_attempt"
391
- t.boolean "hide_points"
392
- t.bigint "canvas_root_account_id"
393
- t.datetime "created_at", precision: nil, null: false
394
- t.datetime "updated_at", precision: nil, null: false
395
- t.index ["canvas_artifact_id", "canvas_artifact_type"], name: "index_rubric_assessments_on_canvas_aid_and_canvas_atype"
396
- t.index ["canvas_assessor_id"], name: "index_rubric_assessments_on_canvas_assessor_id"
397
- t.index ["canvas_id"], name: "index_rubric_assessments_on_canvas_id", unique: true
398
- t.index ["canvas_root_account_id"], name: "index_rubric_assessments_on_canvas_root_account_id"
399
- t.index ["canvas_rubric_association_id"], name: "index_rubric_assessments_on_canvas_rubric_association_id"
400
- t.index ["canvas_rubric_id"], name: "index_rubric_assessments_on_canvas_rubric_id"
401
- t.index ["canvas_user_id"], name: "index_rubric_assessments_on_canvas_user_id"
402
- end
403
-
404
- create_table "rubric_associations", force: :cascade do |t|
405
- t.bigint "canvas_id", null: false
406
- t.bigint "canvas_rubric_id"
407
- t.bigint "canvas_association_id"
408
- t.string "canvas_association_type"
409
- t.boolean "use_for_grading"
410
- t.string "title"
411
- t.text "description"
412
- t.text "summary_data"
413
- t.string "purpose"
414
- t.string "url"
415
- t.bigint "canvas_context_id"
416
- t.string "canvas_context_type"
417
- t.boolean "hide_score_total"
418
- t.boolean "bookmarked"
419
- t.string "context_code"
420
- t.boolean "hide_points"
421
- t.boolean "hide_outcome_results"
422
- t.bigint "canvas_root_account_id"
423
- t.string "workflow_state"
424
- t.datetime "created_at", precision: nil, null: false
425
- t.datetime "updated_at", precision: nil, null: false
426
- t.index ["canvas_association_id", "canvas_association_type"], name: "index_rubric_associations_on_canvas_aid_and_canvas_atype"
427
- t.index ["canvas_context_id", "canvas_context_type"], name: "index_rubric_associations_on_canvas_cid_and_canvas_ctype"
428
- t.index ["canvas_id"], name: "index_rubric_associations_on_canvas_id", unique: true
429
- t.index ["canvas_root_account_id"], name: "index_rubric_associations_on_canvas_root_account_id"
430
- t.index ["canvas_rubric_id"], name: "index_rubric_associations_on_canvas_rubric_id"
431
- t.index ["context_code"], name: "index_rubric_associations_on_context_code"
432
- end
433
-
434
- create_table "rubrics", force: :cascade do |t|
435
- t.bigint "canvas_id", null: false
436
- t.bigint "canvas_user_id"
437
- t.bigint "canvas_rubric_id"
438
- t.bigint "canvas_context_id"
439
- t.string "canvas_context_type"
440
- t.text "data"
441
- t.float "points_possible"
442
- t.string "title"
443
- t.text "description"
444
- t.boolean "reusable"
445
- t.boolean "public"
446
- t.boolean "read_only"
447
- t.integer "association_count"
448
- t.boolean "free_form_criterion_comments"
449
- t.string "context_code"
450
- t.string "migration_id"
451
- t.boolean "hide_score_total"
452
- t.string "workflow_state"
453
- t.bigint "canvas_root_account_id"
454
- t.boolean "hide_points"
455
- t.string "rating_order"
456
- t.string "button_display"
457
- t.datetime "created_at", precision: nil, null: false
458
- t.datetime "updated_at", precision: nil, null: false
459
- t.index ["canvas_context_id", "canvas_context_type"], name: "index_rubrics_on_canvas_context_id_and_canvas_context_type"
460
- t.index ["canvas_id"], name: "index_rubrics_on_canvas_id", unique: true
461
- t.index ["canvas_root_account_id"], name: "index_rubrics_on_canvas_root_account_id"
462
- t.index ["canvas_rubric_id"], name: "index_rubrics_on_canvas_rubric_id"
463
- t.index ["canvas_user_id"], name: "index_rubrics_on_canvas_user_id"
464
- end
465
-
466
- create_table "scores", force: :cascade do |t|
467
- t.bigint "canvas_id", null: false
468
- t.bigint "canvas_enrollment_id", null: false
469
- t.bigint "canvas_assignment_group_id"
470
- t.bigint "canvas_grading_period_id"
471
- t.float "current_score"
472
- t.float "unposted_current_score"
473
- t.string "workflow_state", limit: 255, default: "active", null: false
474
- t.float "final_score"
475
- t.boolean "course_score", default: false, null: false
476
- t.float "unposted_final_score"
477
- t.float "current_points"
478
- t.float "unposted_current_points"
479
- t.float "final_points"
480
- t.float "unposted_final_points"
481
- t.float "override_score"
482
- t.datetime "created_at", precision: nil, null: false
483
- t.datetime "updated_at", precision: nil, null: false
484
- t.index ["canvas_enrollment_id", "canvas_assignment_group_id"], name: "index_scores_on_canvas_enrollment_id_and_assignment_group_id", unique: true, where: "(canvas_assignment_group_id IS NOT NULL)"
485
- t.index ["canvas_enrollment_id", "canvas_grading_period_id"], name: "index_scores_on_canvas_enrollment_id_and_grading_period_id", unique: true, where: "(canvas_grading_period_id IS NOT NULL)"
486
- t.index ["canvas_enrollment_id"], name: "index_scores_on_canvas_enrollment_id", unique: true, where: "course_score"
487
- t.index ["canvas_id"], name: "index_scores_on_canvas_id", unique: true
488
- end
489
-
490
- create_table "sections", force: :cascade do |t|
491
- t.bigint "canvas_id", null: false
492
- t.string "sis_id"
493
- t.bigint "canvas_course_id"
494
- t.bigint "canvas_nonxlist_course_id"
495
- t.string "name"
496
- t.string "workflow_state"
497
- t.datetime "start_at", precision: nil
498
- t.datetime "end_at", precision: nil
499
- t.datetime "created_at", precision: nil, null: false
500
- t.datetime "updated_at", precision: nil, null: false
501
- t.index ["canvas_course_id"], name: "index_sections_on_canvas_course_id"
502
- t.index ["canvas_id"], name: "index_sections_on_canvas_id", unique: true
503
- end
504
-
505
- create_table "submissions", force: :cascade do |t|
506
- t.bigint "canvas_id", null: false
507
- t.bigint "canvas_course_id"
508
- t.bigint "canvas_assignment_id"
509
- t.bigint "canvas_user_id"
510
- t.datetime "submitted_at", precision: nil
511
- t.datetime "due_at", precision: nil
512
- t.datetime "graded_at", precision: nil
513
- t.float "score"
514
- t.float "points_possible"
515
- t.boolean "excused"
516
- t.string "workflow_state"
517
- t.datetime "created_at", precision: nil, null: false
518
- t.datetime "updated_at", precision: nil, null: false
519
- t.index ["canvas_assignment_id"], name: "index_submissions_on_canvas_assignment_id"
520
- t.index ["canvas_course_id"], name: "index_submissions_on_canvas_course_id"
521
- t.index ["canvas_id"], name: "index_submissions_on_canvas_id", unique: true
522
- t.index ["canvas_user_id"], name: "index_submissions_on_canvas_user_id"
523
- end
524
-
525
- create_table "terms", force: :cascade do |t|
526
- t.integer "canvas_id", null: false
527
- t.string "name"
528
- t.datetime "start_at", precision: nil
529
- t.datetime "end_at", precision: nil
530
- t.string "workflow_state"
531
- t.integer "grading_period_group_id"
532
- t.string "sis_id"
533
- t.datetime "created_at", precision: nil, null: false
534
- t.datetime "updated_at", precision: nil, null: false
535
- t.index ["canvas_id"], name: "index_terms_on_canvas_id", unique: true
536
- end
537
-
538
- create_table "user_observers", force: :cascade do |t|
539
- t.bigint "observing_user_id"
540
- t.bigint "observed_user_id"
541
- t.string "workflow_state"
542
- t.datetime "created_at", precision: nil, null: false
543
- t.datetime "updated_at", precision: nil, null: false
544
- t.index ["observed_user_id", "observing_user_id"], name: "index_user_observers_on_observed_user_id_and_observing_user_id", unique: true
545
- t.index ["observed_user_id"], name: "index_user_observers_on_observed_user_id"
546
- t.index ["observing_user_id"], name: "index_user_observers_on_observing_user_id"
547
- end
548
-
549
- create_table "users", force: :cascade do |t|
550
- t.bigint "canvas_id", null: false
551
- t.string "email"
552
- t.string "first_name"
553
- t.string "last_name"
554
- t.string "workflow_state"
555
- t.string "login_id"
556
- t.string "name"
557
- t.string "sortable_name"
558
- t.datetime "created_at", precision: nil, null: false
559
- t.datetime "updated_at", precision: nil, null: false
560
- t.index ["canvas_id"], name: "index_users_on_canvas_id", unique: true
561
- end
562
-
563
- end