Skip to content

Reference Eligibility expressions

A Reference Eligibility expression returns TRUE when Candidate may be assigned to the dependent Reference on Current. The server compiles the same expression for metadata dependency analysis and impact SQL.

This expression profile is used by validation, metadata authoring and activation, impact preview, Form and Table-filter candidate consumers, and authoritative API mutation validation.

  • Current.Field reads a direct persisted scalar on the source record.
  • Candidate.Field reads a direct persisted scalar on a possible target.
  • Current.Reference.Field reads one supported scalar through a direct, single-value Reference whose delete behavior is Restrict.

Examples:

Current.Type = 'Feature' AND Candidate.Type IN ('Epic', 'Feature')
Candidate.Code = Current.Scope.Code
(Current.Type = 'Bug' AND Candidate.Type IN ('Feature', 'Task'))
OR (Current.Type = 'Feature' AND Candidate.Type IN ('Epic', 'Feature'))

Use AND, OR, NOT, and parentheses to compose cases. IN (...) is useful when one driver value permits several candidate values. Comparisons are type-checked: text compares with text, Select values use existing option keys, and numeric/date/time values use compatible values from the same family.

The Entity Definition editor offers the same shared code editor and syntax help as other Moltaro expressions. Its simple designer inserts one compatible Candidate-to-Current equality or inequality. Use the code editor for multi-branch matrices; the editor preserves the expression text and the server remains the parser and type-checking authority.

The V1 profile deliberately rejects:

  • paths deeper than one Reference hop;
  • collection fields, child tables, and inverse references;
  • variables and functions;
  • raw SQL;
  • null-driver rules such as Current.Driver IS NULL;
  • Part, Association, and Projection traversal;
  • References that do not use Restrict.

Supported scalar operands are Bool, Integer, a valid Decimal, DateOnly, TimeOnly, DateTimeOffset, a bounded String, a Select with options, and a scalar Reference id. Text, read-only, calculated, deleted, collection, and malformed field shapes are not exposed as operands.

The validation endpoint returns stable codes plus the offending token or canonical path. See the Reference Eligibility configuration workflow for routes, impact behavior, concurrency, and activation.