> For the complete documentation index, see [llms.txt](https://coldbox-validation.ortusbooks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://coldbox-validation.ortusbooks.com/v3.x-1/intro/release-history/whats-new-with-3.1.0.md).

# What's New With 3.1.0

### \[3.1.0] => 2021-MAY-15

#### Added

* New validator: `ArrayItem` which can validate an array's items and make sure all the items pass validation against a specific constraints schema.
* New validator: `DateEquals` which can help you validate that a target value is a date and is the same date as the validation date or other field
* New validator: `After` which can help you validate that a target value is a date and is after the validation date
* New validator: `AfterOrEqual` which can help you validate that a target value is a date and is after or equal the validation date
* New validator: `Before` which can help you validate that a target value is a date and is before the validation date
* New validator: `BeforeOrEqual` which can help you validate that a target value is a date and is before or equal the validation date
* New `onError( closure ), onSuccess( closure )` callbacks that can be used to validate results using the `validate()` method and concatenate the callbacks.
* New `assert()` helper that can assit you in validating truthful expressions or throwing exceptions
* Two new helpers: `validateIsNullorEmpty()` and `validateHasValue()` so you can do simple validations not only on objects and constraints.
* `RequiredIf, RequiredUnless` can now be declared with a simple value pointing to a field. Basically testing if `anotherField` exists, or unless `anotherField` exists.
* New `BaseValidator` for usage by all validators to bring uniformity, global di, and helpers.

#### Changed

* The `IValidator` removes the `getName()` since that comes from the `BaseValidator` now.
* The `UniqueValidator` now supports both creation and update checks with new constraints.
* Removed hard interface requirements to avoid lots of issues across CFML engines. Moved them to the `interfaces` folder so we can continue to document them and use them without direct compilation.

#### Fixed

* Metadata for arguments did not have the right spacing for tosn of validators.
* Added the missing `rules` struct argument to several validators that missed it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://coldbox-validation.ortusbooks.com/v3.x-1/intro/release-history/whats-new-with-3.1.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
