Skip to content

Expressions cannot read across a link #85

Closed

Description

@GabeBolton

${x} resolves only to elements of the same form, so a condition cannot read a value from a linked row. Drafting the ROPA schema (#65) hit this twice, and the consequence is a correctness problem rather than an ergonomic one:

  • A processing record re-asks "is this special category data?" when the linked data_fields row already records it.
  • It re-asks "is this outside the UK/EEA?" when the linked organisations row already implies it.

The register therefore stores the same fact twice and nothing stops the copies disagreeing. In a compliance record that is exactly the failure mode that destroys credibility.

The same capability solves a second problem: select_one cannot filter its source table. Three places want it — data_fields.product should offer only product-level scopes, the justification dropdowns only justifications of the matching kind, and agreement only agreements with the chosen recipient. Without it a user can pick a combination that is not merely wrong but incoherent.

Sketch: ${data_field.special_category} in the expression language, plus a filter: on a select_one's parameters written in the same language.

Acceptance: a condition can read a field of a linked row; a select_one can restrict its options by an expression over the current form; the ROPA schema stops duplicating facts it can reach by link.


Found while drafting the ROPA schema (#65) and building provenance (#82).

Activity

  1. added
    enhancementNew feature or request
    coreThe Pantograph engine, not a plugin
    formsThe generic form engine
    on Aug 11, 2026
  2. GabeBolton commented on Aug 11, 2026

    @GabeBolton
    ContributorAuthor

    Cross-link reads merged in #95. The remaining two acceptance items are split out: #93 (select_one filtering) and #94 (dropping the ROPA columns that duplicate linked facts). Closing this in favour of those.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreThe Pantograph engine, not a pluginenhancementNew feature or requestformsThe generic form engine

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions