You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/decisions/0022-competency-criteria-model.rst
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -121,7 +121,7 @@ Decision
121
121
3. `course_id`: The `course_id` of the course that this competency rule profile is scoped to. Null if it is not scoped to a specific course.
122
122
4. `competency_taxonomy_id`: The `oel_competency_taxonomy.taxonomy_ptr_id` of the competency taxonomy that this competency rule profile is scoped to.
123
123
5. `rule_type`: “View”, “Grade”, “MasteryLevel” (Only “Grade” will be supported for now)
124
-
6. `rule_payload`: JSON payload keyed by `rule_type` to avoid freeform strings. Examples:
124
+
6. `rule_payload`: JSON payload keyed by `rule_type` to avoid freeform strings. It is structured JSON (not arbitrary freeform data): each `rule_type` defines the allowed payload shape and required keys, and validation enforces this contract. JSON is used instead of fixed columns like `op`, `value`, and `scale` so that future rule types (for example, `MasteryLevel` thresholds or plugin-defined evaluators such as CEL-based rules) can add their own fields without repeated schema migrations or many nullable columns. Examples:
3. `oel_tagging_objecttag_id`: Tag/Object Association id
143
143
4. `competency_rule_profile_id`: Nullable FK to the `CompetencyRuleProfile` applied to this criterion. If null, evaluate using fallback lookup order: taxonomy-scoped profile, then course-scoped profile, then organization-scoped profile, then system default.
144
144
5. `rule_type_override`: Nullable enumerated rule type: “View”, “Grade”, “MasteryLevel” (Only “Grade” will be supported for now). When set, this overrides the `rule_type` in the associated `CompetencyRuleProfile` for this criterion.
145
-
6. `rule_payload_override`: Nullable JSON payload keyed by `rule_type` to avoid freeform strings. When set, this overrides the `rule_payload` in the associated `CompetencyRuleProfile` for this criterion. Examples:
145
+
6. `rule_payload_override`: Nullable JSON payload keyed by `rule_type` to avoid freeform strings. When set, this overrides the `rule_payload` in the associated `CompetencyRuleProfile` for this criterion. The same typed/validated payload contract as `rule_payload` applies. Examples:
0 commit comments