Skip to content

Conditional validation rules #17

@avrabe

Description

@avrabe

Context

Eclipse SCORE's docs-as-code tooling cannot express conditional validation rules like "if status == valid then mitigated_by is mandatory" (docs-as-code #180). Their schema-based approach only supports static field requirements.

Problem

Safety-critical traceability requires constraints that depend on artifact state. Examples:

  • A requirement with status: approved must have a non-empty verification-criteria field
  • An artifact with safety: ASIL_B must have mitigated_by links
  • A cybersecurity-goal with risk-level: high must have at least one cybersecurity-req satisfying it

Current Rivet validation checks required fields and link cardinality statically per-type. There's no way to express "field X is required when field Y has value Z."

Proposed approach

Extend schema YAML with conditional validation rules:

conditional-rules:
  - name: approved-requires-verification-criteria
    when:
      field: status
      equals: approved
    then:
      required-fields: [verification-criteria]
  - name: asil-requires-mitigation
    when:
      field: safety
      matches: "ASIL_.*"
    then:
      required-links: [mitigated_by]

Rivet artifacts

  • REQ-023
  • DD-018
  • FEAT-040

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions