Skip to content

Update stale THREAT_MODEL.md references to removed data.trusted_task_rules architecture #1807

Description

@fullsend-ai-retro

What happened

In PR #1806, BohdanMar removed the data.trusted_task_rules input path and its dual-source merge logic from policy/lib/tekton/trusted.rego. The review agent (run #31599152163) correctly identified that THREAT_MODEL.md was not updated and now contains stale security architecture descriptions. The agent submitted CHANGES_REQUESTED with a high-severity stale-doc finding. Human reviewer jsmid1 approved the PR without addressing the documentation findings, and the PR was merged on 2026-08-13.

The following THREAT_MODEL.md sections are now stale:

  • Line 135: Security-critical key table implies trusted_task_rules has a data.* input path
  • Lines 145–163 (Section 3.3): Describes a dual-source merge architecture (data.trusted_task_rules concatenated with rule_data.trusted_task_rules) that no longer exists
  • Line 264 (Threat DP-2): References "ruleData entries concatenated with system data" — the merge no longer exists
  • Line 275 (Threat LE-4): References concatenation order between system-level and ruleData-level rules
  • Lines 314–319 (Open question Check the sha when installing opa #3): Asks about merge precedence in the removed _trusted_task_rules_data logic
  • Lines 368, 384–388 (Recommendations Check the sha when installing opa #3 and Add policies from POC & data fetch improvments #6): Reference schema validation and precedence semantics for both data paths

What could go better

The review agent detected the staleness, but the findings were not actioned before merge and no follow-up issue was created. The THREAT_MODEL.md now describes a trust boundary architecture that does not exist in code. A security reviewer relying on this document would incorrectly believe that trusted_task_rules can flow from two independent data sources with additive merge semantics, when in reality there is now a single validated path through lib_rule_data.

This is a high-confidence finding. The stale references were verified by searching THREAT_MODEL.md — all 9+ locations still reference the removed architecture as of the current HEAD.

Proposed change

Update THREAT_MODEL.md to reflect that trusted_task_rules now flows exclusively through lib_rule_data("trusted_task_rules") with JSON schema validation. Specifically:

  1. Section 3.3 (lines 145–163): Rewrite to describe the single-source architecture. Remove references to data.trusted_task_rules and the array.concat merge logic.
  2. Threat DP-2 (line 264): Update to reflect that injection is now only possible through rule_data, not through a dual-source merge. The threat surface is narrower.
  3. Threat LE-4 (line 275): Update or remove the concatenation-order precedence concern, since there is no longer a system-level vs. ruleData-level merge.
  4. Open question Check the sha when installing opa #3 (lines 314–319): Close or update, since the merge precedence question is moot.
  5. Recommendations Check the sha when installing opa #3 and Add policies from POC & data fetch improvments #6 (lines 368, 384–388): Update to reflect the single-source architecture.
  6. Key table (line 135): Clarify that trusted_task_rules has only a rule_data path.

Validation criteria

After the fix, grep -c 'data\.trusted_task_rules' THREAT_MODEL.md should return 0 (or only appear in historical/changelog context). Section 3.3 should describe the current single-source architecture through lib_rule_data. Threats DP-2 and LE-4 should accurately describe the current threat surface without referencing the removed merge logic.


Generated by retro agent from #1806

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions