Skip to content

v1.2.0

Choose a tag to compare

@EvanSchleret EvanSchleret released this 20 May 16:10
· 21 commits to main since this release
dd0b164

v1.2.0

Added

  • Single-field validation capability for FormForge schemas, allowing validation of one input against one question in one form without creating a submission.
  • New public API methods:
    • FormInstance::validateField(string $field, mixed $value): array
    • FormManager::validateField(string $formKey, string $field, mixed $value, ?string $version = null): array
    • ScopedFormManager::validateField(string $formKey, string $field, mixed $value, ?string $version = null): array
  • New HTTP endpoints (available in both scoped and non-scoped route trees):
    • POST /forms/{key}/validate-field
    • POST /forms/{key}/versions/{version}/validate-field
  • New validation config option:
    • formforge.validation.field.stop_on_first_failure (default: false)

Changed

  • Resolve endpoint group now also exposes targeted field validation routes, reusing existing endpoint middleware/auth/action routing patterns.
  • Authorization action map extended with:
    • resolve.validate_field_latest
    • resolve.validate_field_version
  • Base policy contract extended with:
    • resolve_validate_field_latest(...)
    • resolve_validate_field_version(...)

Notes

  • Field-level validation returns a structured result (valid, errors, validated) instead of persisting data.
  • Unknown field names are rejected consistently with existing validation behavior.

Full Changelog: v1.1.1...v1.2.0