[
https://issues.apache.org/jira/browse/NIFI-15674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pierre Villard resolved NIFI-15674.
-----------------------------------
Fix Version/s: 2.9.0
(was: 2.8.0)
Resolution: Fixed
> Add "isValidDate" and "isValidInstant" Expression Language functions
> --------------------------------------------------------------------
>
> Key: NIFI-15674
> URL: https://issues.apache.org/jira/browse/NIFI-15674
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Core Framework
> Reporter: Richard Scott
> Assignee: Richard Scott
> Priority: Minor
> Fix For: 2.9.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> NiFi currently has no simple top-level Expression Language function to check
> whether a value is a valid date or instant before attempting to parse it.
> Today, users often need to rely on regex, advanced expressions, or extra
> processor logic in *UpdateAttribute* or *RouteOnAttribute* to validate date
> input first. Regex can help check whether a value matches the expected shape,
> but it is not calendar-aware and cannot reliably determine whether a value is
> an actual valid date. For example, a value may match {{dd-MM-yyyy}} while
> still being invalid as a real calendar date.
> This pushes validation logic into more complex or buried configurations and
> makes flows harder to read.
> It also creates operational risk. If an invalid value is parsed without first
> checking validity, the expression can fail. In some flow designs, this can
> lead to FlowFiles repeatedly retrying or looping in a queue instead of being
> cleanly handled.
> Adding {{isValidDate}} and {{isValidInstant}} would allow users to validate
> input safely and keep that logic visible at the top level of an expression.
> h2. Proposed Functions
> *{{isValidDate(format)}}*
> Returns {{true}} if the subject can be parsed as a valid date using the
> supplied format, otherwise {{{}false{}}}.
> *{{isValidDate(format, timezone)}}*
> Returns {{true}} if the subject can be parsed as a valid date using the
> supplied format and timezone, otherwise {{{}false{}}}.
> *{{isValidInstant()}}*
> Returns {{true}} if the subject can be parsed as a valid ISO-8601 instant,
> otherwise {{{}false{}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)