Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
538 commits
Select commit Hold shift + click to select a range
adfe1a6
Merge pull request #73 from ontrack-features-t2-2026/automation/weekl…
Clupai8o0 Aug 27, 2026
dfaba26
Merge pull request #49 from ontrack-features-t2-2026/email/portfolio-…
Clupai8o0 Aug 27, 2026
62cdd16
Merge pull request #43 from ontrack-features-t2-2026/email/sidekiq-wo…
Clupai8o0 Aug 27, 2026
2eded19
Merge pull request #57 from ontrack-features-t2-2026/test/notificatio…
Clupai8o0 Aug 27, 2026
8298a38
merge: resolve feature/notifications into email/task-availability-paths
Clupai8o0 Aug 27, 2026
468901d
Merge pull request #56 from ontrack-features-t2-2026/fix/notification…
Clupai8o0 Aug 27, 2026
512a9c6
merge: rewrite preference-gating tests for the queued email path
Clupai8o0 Aug 27, 2026
32bad0f
ci: keep the SHA pins while taking the new CodeQL trigger
Clupai8o0 Aug 27, 2026
cbc5de7
Merge pull request #50 from ontrack-features-t2-2026/email/discussion…
Clupai8o0 Aug 27, 2026
b7eaa5e
Merge feature/notifications into email/task-availability-paths
Clupai8o0 Aug 27, 2026
96ae771
test(notifications): drain the mail queue in the portfolio and discus…
Clupai8o0 Aug 27, 2026
fc97680
fix(ci): restore required RuboCop context
maplefoxgit Aug 27, 2026
eded7da
Merge pull request #60 from ontrack-features-t2-2026/integration/11.0…
maplefoxgit Aug 27, 2026
4cabc55
Merge remote-tracking branch 'origin/feature/notifications' into emai…
maplefoxgit Aug 27, 2026
81016ac
test(notifications): drain queued email assertions
maplefoxgit Aug 27, 2026
f0f0e8f
Merge pull request #65 from ontrack-features-t2-2026/email/task-avail…
Clupai8o0 Aug 27, 2026
023cdfa
merge: keep one drain in submit_portfolio
Clupai8o0 Aug 27, 2026
b578424
fix(auth): enforce shared authentication rate limits
maplefoxgit Aug 27, 2026
cb03f80
Merge pull request #76 from ontrack-features-t2-2026/fix/auth-rate-li…
maplefoxgit Aug 27, 2026
ad70886
Merge pull request #52 from ontrack-features-t2-2026/email/test-prefe…
maplefoxgit Aug 27, 2026
d16545a
Merge remote-tracking branch 'origin/11.0.x' into closure/api-ontrack…
maplefoxgit Aug 27, 2026
ef32dbb
Merge remote-tracking branch 'origin/feature/peer-progress-indicator'…
maplefoxgit Aug 27, 2026
6c8ebff
test(security): assert upload validation paths
maplefoxgit Aug 27, 2026
4cbad44
Merge remote-tracking branch 'origin/feature/notifications' into clos…
maplefoxgit Aug 27, 2026
d920892
fix(cpd): bound previous-unit project queries
maplefoxgit Aug 27, 2026
f25945d
ci: expand deterministic API test matrix
maplefoxgit Aug 27, 2026
c95f553
test(notifications): reconcile protected push settings
maplefoxgit Aug 27, 2026
6c74dbb
test(notifications): isolate portfolio receipt lookup
maplefoxgit Aug 27, 2026
6b45974
Merge pull request #77 from ontrack-features-t2-2026/closure/api-ontr…
Clupai8o0 Aug 27, 2026
4945d15
fix(tasks): grant the resubmission extension once per round of feedback
Clupai8o0 Aug 26, 2026
cdc22ec
fix(tasks): read deadline days in the campus time zone
Clupai8o0 Aug 27, 2026
17538ce
docs(notifications): correct push service host comments for Edge
Clupai8o0 Aug 27, 2026
42d4eba
test(security): tighten FILE-S01 evidence
maplefoxgit Aug 27, 2026
7b57fc9
fix(auth): match a federated assertion only on what it asserts
Clupai8o0 Aug 27, 2026
938cf42
fix(tasks): require assessment permission to set a task grade
Clupai8o0 Aug 27, 2026
fbb927a
fix(overseer): scope assessment results to the authorised project
Clupai8o0 Aug 27, 2026
6dbeae7
fix(submission): refuse student uploads to a finalised task
Clupai8o0 Aug 27, 2026
8e06487
fix(lti): bind an enrolment token to its subject and make it single use
Clupai8o0 Aug 27, 2026
3fc2664
fix(communications): keep sending when one recipient's delivery fails
Clupai8o0 Aug 27, 2026
a224fb7
fix(scorm): authorise the success status wherever it is written
Clupai8o0 Aug 27, 2026
b762a2f
fix(tasks): return 403 when a status transition is refused
Clupai8o0 Aug 27, 2026
b977a54
fix(notifications): dedicate the push queue
maplefoxgit Aug 27, 2026
1003df4
Merge pull request #95 from ontrack-features-t2-2026/fix/notification…
maplefoxgit Aug 27, 2026
062e095
Merge pull request #80 from ontrack-features-t2-2026/fix/api-pr72-fin…
maplefoxgit Aug 27, 2026
b5c015e
Merge remote-tracking branch 'origin/11.0.x' into refresh/api-pr79-20…
maplefoxgit Aug 27, 2026
d4f00ef
docs(notifications): scope the observed Edge endpoint
maplefoxgit Aug 27, 2026
ea265b1
Merge pull request #79 from ontrack-features-t2-2026/docs/edge-wns-ho…
maplefoxgit Aug 27, 2026
723b233
ci: reduce API test shard runtime
maplefoxgit Aug 27, 2026
c085538
Merge pull request #96 from ontrack-features-t2-2026/perf/api-ci-runt…
maplefoxgit Aug 27, 2026
c10f50a
fix(auth): reject mismatched login ids on email fallback
maplefoxgit Aug 28, 2026
5ee5889
Merge pull request #84 from ontrack-features-t2-2026/fix/grade-requir…
maplefoxgit Aug 28, 2026
466a1cb
Merge pull request #85 from ontrack-features-t2-2026/fix/scope-overse…
maplefoxgit Aug 28, 2026
11b8d90
Merge pull request #90 from ontrack-features-t2-2026/fix/close-submis…
maplefoxgit Aug 28, 2026
c2709d1
Merge pull request #94 from ontrack-features-t2-2026/fix/resubmission…
maplefoxgit Aug 28, 2026
d70bfb8
fix(lti): clean consumed tokens up with users
maplefoxgit Aug 28, 2026
f735d15
fix(communications): report failed deliveries accurately in CSV
maplefoxgit Aug 28, 2026
46b7503
fix(calendar): preserve weekdays in imported task weeks
maplefoxgit Aug 28, 2026
761a8b3
fix(notifications): route comment alerts to feedback
maplefoxgit Aug 28, 2026
8cdccc7
fix(notifications): open all feedback alerts in feedback
maplefoxgit Aug 28, 2026
95819a3
Merge pull request #86 from ontrack-features-t2-2026/fix/scorm-succes…
maplefoxgit Aug 28, 2026
6210ab7
Merge pull request #89 from ontrack-features-t2-2026/fix/refused-tran…
maplefoxgit Aug 28, 2026
1cb9579
fix(calendar): preserve weekdays in imported task weeks
maplefoxgit Aug 28, 2026
47cc3b2
fix(calendar): preserve weekdays in imported task weeks
maplefoxgit Aug 28, 2026
44c6315
Merge pull request #88 from ontrack-features-t2-2026/fix/federated-lo…
maplefoxgit Aug 28, 2026
fedac4f
Merge pull request #87 from ontrack-features-t2-2026/fix/lti-bind-tok…
maplefoxgit Aug 28, 2026
35cb052
Merge pull request #91 from ontrack-features-t2-2026/fix/communicatio…
maplefoxgit Aug 28, 2026
81c04b3
Merge branch '11.0.x' into fix/feedback-notification-route-20260828
Clupai8o0 Aug 28, 2026
d924862
Merge pull request #99 from ontrack-features-t2-2026/fix/feedback-not…
Clupai8o0 Aug 28, 2026
b22b08a
fix(security): resolve high-severity CodeQL alerts
maplefoxgit Aug 28, 2026
b177cf1
ci: run logical test shards within runner capacity
maplefoxgit Aug 28, 2026
6f9308a
ci: overlap test image builds
maplefoxgit Aug 28, 2026
49f3d39
ci: fingerprint shard profiles and streamline aggregation
maplefoxgit Aug 28, 2026
0596f84
ci: balance hosted workers with measured shard timings
maplefoxgit Aug 28, 2026
e333bdc
ci: profile runnable timings and trim warm setup
maplefoxgit Aug 28, 2026
a8b7c23
ci: balance logical shards with hosted test timings
maplefoxgit Aug 28, 2026
19df415
Merge pull request #103 from ontrack-features-t2-2026/fix/codeql-and-…
maplefoxgit Aug 29, 2026
5a020a8
ci: rebalance task model test shards (#100)
maplefoxgit Aug 30, 2026
02ac545
docs(notifications): record Android push verification (#102)
maplefoxgit Aug 30, 2026
55a2956
fix(mail): use configured production sender (#104)
maplefoxgit Aug 30, 2026
04b2c8f
fix(auth): renew refresh tokens before expiry (#101)
maplefoxgit Aug 30, 2026
42f7373
fix(api): mailer text leak, image bloat, dependabot path and an api-r…
Clupai8o0 Aug 30, 2026
f7aabcd
chore(ci): lint workflow YAML with actionlint
Clupai8o0 Aug 30, 2026
16f6f0b
ci(codeql): cancel superseded CodeQL runs on the same ref
Clupai8o0 Aug 30, 2026
ce6d79a
fix(submission): write the done zip atomically so a failed write keep…
Clupai8o0 Aug 30, 2026
d56f432
fix(similarity): a deleted task no longer aborts the whole plagiarism…
Clupai8o0 Aug 30, 2026
ebbdfe2
fix(lti): return 404 when a unit has no D2L mapping
Clupai8o0 Aug 30, 2026
c83d367
fix(tasks): return 403 instead of 500 for unauthorized submission access
jmirchh75 Aug 30, 2026
d9552e8
fix(comments): return 4xx for a bad comment attachment, not 500
Clupai8o0 Aug 30, 2026
727852d
fix(comments): let group members open a shared comment attachment
Clupai8o0 Aug 31, 2026
2cfe140
fix(ci): verify actionlint release checksum
maplefoxgit Aug 31, 2026
8cdae0f
Merge pull request #124 from ontrack-features-t2-2026/fix/pr-file-01
maplefoxgit Aug 31, 2026
6167869
Merge pull request #122 from ontrack-features-t2-2026/fix/submission-…
maplefoxgit Aug 31, 2026
01fd301
Merge pull request #120 from ontrack-features-t2-2026/fix/d2l-mapping…
maplefoxgit Aug 31, 2026
78ac690
Merge pull request #118 from ontrack-features-t2-2026/fix/dom-21
maplefoxgit Aug 31, 2026
3fff999
Merge pull request #115 from ontrack-features-t2-2026/fix/pr-slr-01
maplefoxgit Aug 31, 2026
7ff9176
Merge pull request #114 from ontrack-features-t2-2026/ci/tci-06-codeq…
maplefoxgit Aug 31, 2026
f0aad99
Merge pull request #111 from ontrack-features-t2-2026/fix/api-audit-8
maplefoxgit Aug 31, 2026
c319ed7
fix(discussions): scope attachment status handling
maplefoxgit Aug 31, 2026
7643d38
Merge pull request #112 from ontrack-features-t2-2026/chore/tci-07
maplefoxgit Aug 31, 2026
58513be
feat(units): let a convenor trigger a plagiarism rescan on demand
Clupai8o0 Aug 30, 2026
74afd31
fix(similarity): isolate JPlag work directory cleanup
maplefoxgit Aug 31, 2026
66f4448
fix(tasks): make discussed:false unmark a task instead of marking it
Clupai8o0 Aug 30, 2026
181215d
fix(domain): "Mark comment as unread" always returns 500 - delete_all
Clupai8o0 Aug 30, 2026
23765e6
fix(tasks): clear all discussed markers
maplefoxgit Aug 31, 2026
01f5e72
fix(comments): scope unread lookup to group submission
maplefoxgit Aug 31, 2026
447e56b
fix(similarity): harden JPlag workspace execution
maplefoxgit Aug 31, 2026
38e6bc3
feat(users): persist and timestamp the theme preference
Clupai8o0 Aug 30, 2026
0ea0c91
fix(users): keep theme preference account-private
maplefoxgit Aug 31, 2026
bdda1b9
fix(units): reject duplicate similarity scans cleanly
maplefoxgit Sep 1, 2026
3e16b04
fix(push): add notification icon and badge
shalitha99 Sep 1, 2026
a5eaa02
Merge pull request #110 from ontrack-features-t2-2026/theme/user-them…
maplefoxgit Sep 2, 2026
b353749
Merge pull request #113 from ontrack-features-t2-2026/feat/int-05
maplefoxgit Sep 2, 2026
8580479
Merge pull request #116 from ontrack-features-t2-2026/fix/dom-07
maplefoxgit Sep 2, 2026
4696313
Merge pull request #121 from ontrack-features-t2-2026/fix/comment-att…
maplefoxgit Sep 2, 2026
e1b0856
Merge pull request #117 from ontrack-features-t2-2026/fix/dom-03
maplefoxgit Sep 2, 2026
79ce5bd
fix(uploads): the portfolio upload endpoint enforces no size limit at…
anaghwadhwa123 Sep 2, 2026
b20ed98
feat: expose privacy-safe dashboard feedback state
Tyler2811 Sep 2, 2026
5605a96
docs(config): read import lead time from correctly spelled env var
jmirchh75 Sep 2, 2026
9949cbd
fix(uploads): return 4xx for invalid chat attachments
Tyler2811 Sep 4, 2026
45f5d7c
feat(submissions): authorise student submission history access
Tyler2811 Sep 5, 2026
801f93b
Merge pull request #133 from ontrack-features-t2-2026/feature/cpd-fb0…
Tyler2811 Sep 5, 2026
865542e
Merge pull request #134 from ontrack-features-t2-2026/fix/pr-file-02
Tyler2811 Sep 5, 2026
66f1dff
Merge pull request #132 from ontrack-features-t2-2026/docs/dx-a06
maplefoxgit Sep 5, 2026
9d50755
Merge pull request #129 from ontrack-features-t2-2026/fix/pr-file-05
maplefoxgit Sep 5, 2026
f898751
Merge pull request #130 from ontrack-features-t2-2026/fix/pr-mn-14
maplefoxgit Sep 5, 2026
3ba3bb5
fix(mail): lTI import stores the Exception object in its JSON result
blankb0t Sep 6, 2026
4a9a179
fix(submissions): keep history reads authorised and read only
maplefoxgit Sep 7, 2026
f895bc8
Merge pull request #136 from ontrack-features-t2-2026/fix/bgw-20
maplefoxgit Sep 7, 2026
74eb164
Merge pull request #135 from ontrack-features-t2-2026/feature/slr-h01…
maplefoxgit Sep 7, 2026
710d6b0
feat(api): add pagination for large collection endpoints; optimize co…
Sep 9, 2026
1bd6bc2
fix(notifications): notify recipients of attachment comments
Clupai8o0 Sep 9, 2026
45deed5
fix(notifications): encode the changed-due-date deep link
Clupai8o0 Sep 9, 2026
f9bfdcf
test(calendar): add failure-path coverage for public webcal endpoint
Sep 11, 2026
e892cdf
fix(notifications): re-check the category preference before push deli…
Clupai8o0 Sep 11, 2026
1a48783
fix(notifications): make the due-date-changed sweep retry-safe
Clupai8o0 Sep 11, 2026
7af9fde
fix(notifications): notify recipients of feedback review requests
Clupai8o0 Sep 11, 2026
fe44701
fix(notifications): harden web push delivery against bad keys and loc…
Clupai8o0 Sep 11, 2026
a56d10e
fix(notifications): build mail recipient addresses safely
Clupai8o0 Sep 11, 2026
f36b45d
test(notifications): update fixtures for the push key validation and …
Clupai8o0 Sep 11, 2026
a7bdecc
fix(calendar): the refresh-interval hint is built from the string '1D'
blankb0t Sep 12, 2026
af5c1f0
TCI-01 - Every api test errors in setup when the test database is mig…
mudith-perera Sep 13, 2026
90734b1
fix(api): repair broken feedback chip track_usage endpoint and add mi…
jmirchh75 Sep 13, 2026
823d262
feat(notifications): give a notification a target and clear it when t…
Clupai8o0 Aug 27, 2026
19a1191
fix(users): assign the promote action for auditor role changes
Clupai8o0 Aug 28, 2026
4eff4e0
fix(pdf-gen): return false from the pid guard instead of rreturn
Clupai8o0 Aug 28, 2026
612d95f
fix(populate): correct TaskStatus typo and status ranges
Clupai8o0 Aug 28, 2026
b2eb205
fix(mail): give plain-text notification emails a deep link (BGW-29)
Clupai8o0 Aug 29, 2026
d91664d
fix(mail): encode plain-text task links
maplefoxgit Aug 30, 2026
373b575
test(platform): publish the task status vocabulary through a public e…
Clupai8o0 Aug 29, 2026
985d5e5
feat(ops): log every authorisation denial at the shared chokepoint
Clupai8o0 Aug 29, 2026
794a28c
fix(db): pin utf8mb4 for staging and production connections
Clupai8o0 Aug 29, 2026
34c8160
fix(communications): give the bulk email a greeting, sign-off and uns…
Clupai8o0 Aug 29, 2026
20aeba7
chore: remove the dead whenever schedule and point to the live schedu…
Clupai8o0 Aug 29, 2026
ba71889
feat(ops): audit-log bulk unenrolment and the whole-class PII export
Clupai8o0 Aug 29, 2026
10472f2
test(auth): make logger stubs self-contained
maplefoxgit Aug 30, 2026
335647b
feat(comments): accept DOCX feedback attachments
maplefoxgit Aug 30, 2026
054dee5
feat(submissions): track submission processing state
maplefoxgit Aug 30, 2026
7edf00e
feat(demo): add the guarded mobile feedback demo registry
maplefoxgit Aug 30, 2026
78f36ca
feat(notifications): delete all notifications up to a confirmed id
maplefoxgit Aug 30, 2026
25593d3
feat(notifications): add a verified additional notification email
maplefoxgit Aug 30, 2026
1c31080
fix(notifications): encode the task abbreviation in notification links
Clupai8o0 Aug 27, 2026
7811ce7
test(notifications): stabilize future import coverage
maplefoxgit Aug 30, 2026
64abdb2
fix(mail): remove the AngularJS hashbang from mail deep-links
Clupai8o0 Aug 28, 2026
a2101b2
fix(mail): render the weekly staff summary overdue highlight
Clupai8o0 Aug 28, 2026
5a27e90
fix(maintenance): delete old portfolio PDFs without a broken shell-out
Clupai8o0 Aug 28, 2026
d7a4a2c
fix(rake): guard db:generate_feedback_chips and scope it to its own data
Clupai8o0 Aug 28, 2026
d4dd85d
fix(mail): point the tutor note email at the marking inbox
Clupai8o0 Aug 28, 2026
a0afacb
fix(communications): log each action's real execution time
Clupai8o0 Aug 28, 2026
8273ede
fix(mail): encode task links and stabilize tests
maplefoxgit Aug 30, 2026
59fd333
fix(mail): route tutor notes through the task explorer
maplefoxgit Aug 31, 2026
ac0360d
test(mail): handle HTML-escaped sender names
maplefoxgit Sep 1, 2026
7e6094e
fix(config): parse the PDF process limit as a bounded integer
Clupai8o0 Aug 30, 2026
c1d4344
test(api): allowlist the public task status endpoint
Clupai8o0 Sep 13, 2026
6dbbce0
fix(communications): stamp a failed delivery with its attempt time
Clupai8o0 Sep 13, 2026
6670d3c
fix(ops): record the actor by id only in the unit CSV audit lines
Clupai8o0 Sep 13, 2026
359497f
test(api): allowlist the public additional email verification endpoint
Clupai8o0 Sep 13, 2026
7e92ad5
chore(db): regenerate schema.rb for the attachment metadata migration
Clupai8o0 Sep 13, 2026
83b7b3f
fix(api): record chip usage against the current user
Clupai8o0 Sep 13, 2026
953ca10
test(notifications): prove delete-all is scoped to the current user
Clupai8o0 Sep 13, 2026
dd99a4b
fix(demo): keep the scenario contract honest after demo data changes
Clupai8o0 Sep 13, 2026
84e1962
chore(db): regenerate schema.rb for the submission processing migration
Clupai8o0 Sep 13, 2026
14efa6b
test(auth): move the authorise? logging test out of test/helpers
Clupai8o0 Sep 13, 2026
b8b8e82
test(notifications): cover the event field on the notification list
Clupai8o0 Sep 13, 2026
cefb113
fix(comments): settle overlapping retries and clean up stored files
Clupai8o0 Sep 13, 2026
f60af39
fix(db): create the additional email tables with the standard collation
Clupai8o0 Sep 13, 2026
02f900c
fix(notifications): isolate the optional copy and keep addresses out …
Clupai8o0 Sep 13, 2026
083b714
fix(submissions): close the gaps found reviewing the processing state
Clupai8o0 Sep 13, 2026
93f8a72
chore(db): regenerate schema.rb for the processing options migration
Clupai8o0 Sep 13, 2026
4dc739b
fix(demo): resolve notification hooks by their seeded key, count ever…
Clupai8o0 Sep 13, 2026
2e39858
fix(notifications): drop jobs for removed rows, use the production se…
Clupai8o0 Sep 13, 2026
5dd32d7
fix(submissions): hold the lock through the restore, and three smalle…
Clupai8o0 Sep 13, 2026
3e6cf6b
fix(comments): check the DOCX main part, keep download names honest
Clupai8o0 Sep 13, 2026
7612b5b
test(api): reject auditor feedback chip usage
maplefoxgit Sep 14, 2026
6402bba
fix(push): validate P-256 points before storage and delivery
maplefoxgit Sep 14, 2026
3ebc9b9
fix(notifications): deduplicate due-date changes by occurrence
maplefoxgit Sep 14, 2026
b3c17b1
Locally validate PR #141 with the reviewed batch
maplefoxgit Sep 14, 2026
4208177
Locally validate PR #142 with the reviewed batch
maplefoxgit Sep 14, 2026
7c58abc
Locally validate PR #143 with the reviewed batch
maplefoxgit Sep 14, 2026
1cfc6fc
Locally validate PR #144 with the reviewed batch
maplefoxgit Sep 14, 2026
4cc7552
Locally validate PR #145 with the reviewed batch
maplefoxgit Sep 14, 2026
e8683b5
Locally validate PR #146 with the reviewed batch
maplefoxgit Sep 14, 2026
e1e237c
Locally validate PR #147 with the reviewed batch
maplefoxgit Sep 14, 2026
65f115a
Locally validate PR #148 with the reviewed batch
maplefoxgit Sep 14, 2026
d1a56d3
Locally validate PR #150 with the reviewed batch
maplefoxgit Sep 14, 2026
5ec6963
Locally validate PR #151 with the reviewed batch
maplefoxgit Sep 14, 2026
f9c3e50
Locally validate PR #152 with the reviewed batch
maplefoxgit Sep 14, 2026
730ff60
Reconcile reviewed PR #142 without losing its regression coverage
maplefoxgit Sep 14, 2026
31f22b4
Preserve both reviewed changes and regression coverage
maplefoxgit Sep 14, 2026
c2cea39
Keep the latest schema version and both sets of columns
maplefoxgit Sep 14, 2026
1ff4e9c
Preserve reviewed identity tests and accessible calendar subscription
maplefoxgit Sep 14, 2026
69d02ff
Locally validate PR #153 with the reviewed batch
maplefoxgit Sep 14, 2026
e309adc
Locally validate PR #156 with the reviewed batch
maplefoxgit Sep 14, 2026
1aaf3e5
Strengthen calendar setup assertions requested in review
maplefoxgit Sep 14, 2026
390eab0
Retain reviewed calendar feed test assertions
maplefoxgit Sep 14, 2026
f9ef1f8
Merge pull request #141 from ontrack-features-t2-2026/fix/encode-chan…
maplefoxgit Sep 14, 2026
243a1b7
Merge pull request #142 from ontrack-features-t2-2026/fix/notify-atta…
maplefoxgit Sep 14, 2026
f0ec114
Merge pull request #143 from ontrack-features-t2-2026/test/pr-cal-16
maplefoxgit Sep 14, 2026
d40e6e9
Merge pull request #144 from ontrack-features-t2-2026/fix/push-job-re…
maplefoxgit Sep 14, 2026
ccec74e
Merge pull request #145 from ontrack-features-t2-2026/fix/harden-web-…
maplefoxgit Sep 14, 2026
0f3beae
Merge pull request #146 from ontrack-features-t2-2026/fix/safe-notifi…
maplefoxgit Sep 14, 2026
cf7ca57
Merge pull request #147 from ontrack-features-t2-2026/fix/pr-cal-04
maplefoxgit Sep 14, 2026
5647861
Merge pull request #148 from ontrack-features-t2-2026/fix/mudith/tci-01
maplefoxgit Sep 14, 2026
64c3221
Merge pull request #150 from ontrack-features-t2-2026/integration/not…
maplefoxgit Sep 14, 2026
f541799
Merge pull request #151 from ontrack-features-t2-2026/feat/mobile-not…
maplefoxgit Sep 14, 2026
954a61e
Merge pull request #152 from ontrack-features-t2-2026/feat/mobile-dem…
maplefoxgit Sep 14, 2026
c751dfd
Update approved DOCX changes with the merged API base
maplefoxgit Sep 14, 2026
d544fbe
Reconcile approved API schema changes before submission processing
maplefoxgit Sep 14, 2026
6a210b0
Preserve approved schema and security regressions in additional email…
maplefoxgit Sep 14, 2026
7b5d2c6
Merge pull request #153 from ontrack-features-t2-2026/feat/mobile-doc…
maplefoxgit Sep 14, 2026
068f692
Refresh submission processing against the merged DOCX base
maplefoxgit Sep 14, 2026
c0e9ffc
Merge pull request #154 from ontrack-features-t2-2026/feat/mobile-sub…
maplefoxgit Sep 14, 2026
5dbe76f
Refresh additional notification email against the merged API base
maplefoxgit Sep 14, 2026
6cbf928
Merge pull request #155 from ontrack-features-t2-2026/feat/mobile-add…
maplefoxgit Sep 14, 2026
d948010
feat: add enrolled-unit announcements and learning sessions
maplefoxgit Sep 14, 2026
c7fcd6c
feat: sync approved Teams announcements through managed Graph access
maplefoxgit Sep 14, 2026
f9e0067
test: include Teams sync in scheduled job expectations
maplefoxgit Sep 14, 2026
b76b61e
fix(api): refuse chip writes from observer-only staff
Clupai8o0 Sep 14, 2026
3ab2fb3
Merge branch '11.0.x' into integration/reviewed-api-20260914
Clupai8o0 Sep 14, 2026
13a6378
Merge pull request #159 from ontrack-features-t2-2026/integration/rev…
Clupai8o0 Sep 14, 2026
1d4c381
Merge branch '11.0.x' into feat/unit-hub-announcements-sessions
Clupai8o0 Sep 14, 2026
c189290
fix(unit-hub): enforce date offsets and wrap Teams DNS failures
Clupai8o0 Sep 14, 2026
f176f9f
Merge pull request #160 from ontrack-features-t2-2026/feat/unit-hub-a…
Clupai8o0 Sep 14, 2026
4b902a4
feat(notifications): tell the tutor when a student asks for help
Clupai8o0 Sep 14, 2026
c1c6b05
feat(notifications): tell the tutor when a student asks for an extension
Clupai8o0 Sep 14, 2026
f9cfb2d
Merge branch '11.0.x' into feature/peer-progress-indicator-JE-live
Clupai8o0 Sep 14, 2026
73927cb
Merge pull request #161 from ontrack-features-t2-2026/feat/tutor-noti…
maplefoxgit Sep 15, 2026
57e022b
fix(api): preserve collection compatibility and convenor privacy
maplefoxgit Sep 15, 2026
9219194
Merge remote-tracking branch 'origin/11.0.x' into HEAD
maplefoxgit Sep 15, 2026
6ff9b0f
Merge pull request #158 from ontrack-features-t2-2026/feature/peer-pr…
maplefoxgit Sep 15, 2026
9ea5231
test(api): add preferred-name regression and privacy tests
Shaashwat3 Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .ci-setup/crontab
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ PATH=/tmp/texlive/bin/x86_64-linux:/tmp/texlive/bin/aarch64-linux:/usr/local/bun

10,15,20,25,30,35,40,45,50,55 * * * * /doubtfire/lib/shell/generate_pdfs.sh
0,10,20,30,40,50 * * * * /doubtfire/lib/shell/send_overseer_notifications.sh
0 5 * * * /doubtfire/lib/shell/check_plagiarism.sh
0 8 * * * /doubtfire/lib/shell/portfolio_autogen_check.sh
0 7 * * 1 /doubtfire/lib/shell/send_weekly_emails.sh
0 1 * * * /doubtfire/lib/shell/sync_enrolments.sh
25 changes: 25 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,32 @@
Dockerfile
.git
.github
.docker
.bundle
.env
.env.*
!.env.example
.npmrc
.gem/credentials
.ssh
.aws
.config/gcloud
build
coverage
dist
log
node_modules
tmp
vendor
student-work
config/master.key
config/credentials
config/credentials.yml.enc
**/*.key
**/*.pem
**/*.p12
**/*.pfx
**/*.jks
**/*.keystore
test
test_files
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Optional values for development through the legacy root docker-compose.yml.
# Copy to .env. Database authentication remains the safe default. Never commit
# an institution credential or reuse a production registration.
DF_AUTH_METHOD=database
DF_AAF_ISSUER_URL=
DF_AAF_AUDIENCE_URL=http://localhost:3000
DF_AAF_CALLBACK_URL=http://localhost:3000/api/auth/jwt
DF_AAF_IDENTITY_PROVIDER_URL=
DF_AAF_UNIQUE_URL=
DF_AAF_AUTH_SIGNOUT_URL=
DF_SECRET_KEY_AAF=
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# The App key is available only to the default-branch policy job. Keep every
# workflow and the evaluator itself under lead review.
/.github/workflows/ @ontrack-features-t2-2026/ontrack-leads
/.github/review-policy/ @ontrack-features-t2-2026/ontrack-leads
/.github/CODEOWNERS @ontrack-features-t2-2026/ontrack-leads
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Set update schedule for GitHub Actions and Ruby dependencies

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
- package-ecosystem: "bundler"
directory: "/"
schedule:
# Check for updates to Ruby gems every week
interval: "weekly"
51 changes: 51 additions & 0 deletions .github/review-policy/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# OnTrack pull-request review policy

The required status context `ontrack/review-policy` passes when the current pull
request head has either:

- one approval from a current `ontrack-leads` member; or
- two approvals from distinct current `ontrack-contributors` members.

Approvals from the pull-request author, bots, stale commits, dismissed reviews,
or reviewers whose latest actionable review requests changes do not count.

## Security model

`ontrack-review-policy-signal.yml` is unprivileged and never checks out pull-request
code. A completed signal wakes `ontrack-review-policy.yml` through `workflow_run`.
The evaluator workflow checks out only this directory from the protected default
branch, then mints a short-lived token for the organization-owned GitHub App.

The App is installed only on the three OnTrack Doubtfire repositories and has:

- organization Members: read;
- repository Metadata: read (mandatory);
- repository Pull requests: read; and
- repository Commit statuses: write.

The App has no contents, workflow, administration, merge, or webhook permission.
Its private key is held in `ONTRACK_REVIEW_APP_PRIVATE_KEY` in the
`ontrack-review-policy` environment, which only permits the protected `11.0.x`
branch. Its numeric App ID is held in `ONTRACK_REVIEW_APP_ID`.

The evaluator reports on the pull-request head commit. GitHub gates on the test merge
commit whenever that commit carries a status and only falls back to the head when it
carries none, so reporting on the test merge commit would move the merge gate onto a
commit that carries none of this repository's other checks. The head is also stable,
where the test merge commit is recomputed every time the base branch moves.
A five-minute reconciliation covers team membership and base-branch changes that
do not emit a pull-request review event. Unchanged results are not republished,
which avoids GitHub's per-commit status limit.

## Ruleset integration

Keep the native one-overall-approval rule, stale-review dismissal, and conversation
resolution. Require `ontrack/review-policy` with the OnTrack Review Policy App as
its expected source. Remove the native `ontrack-leads` required-reviewer entry only
after the App status has been observed and made required; otherwise GitHub combines
the native team rules with AND semantics.

Changes to any workflow, the evaluator, or CODEOWNERS should continue to require
one `ontrack-leads` approval through a path-specific native reviewer rule. This is
necessary because any default-branch workflow could otherwise reference the App's
environment secret.
Loading