[
https://issues.apache.org/jira/browse/NIFI-11627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17770614#comment-17770614
]
Mark Payne commented on NIFI-11627:
-----------------------------------
It does make sense to allow for a reference to be stored in a FlowFile
attribute and then reference it in much the same way that you would when
looking up a schema in a SchemaRegistry.
But Parameter Contexts are not the right approach. Making use of a Controller
Service would work well. We could have a Controller Service that allows
user-added properties where the values are JSON Schemas, and then allow
ValidateJson to be configured with a Controller Service and take in the name of
the schema, which would allow for Expression Language to be used. So I believe
that would give you exactly what you're looking for, [~nwchuckster], no?
The reason that Parameter Contexts won't work here are two-fold. Firstly, you
cannot use Expression Language within a Parameter Context because parameters'
values are resolved before the processor ever even has access to the property
value. So, if you were to enter #\{${schema.name}} what would happen is that
NiFi would resolve that to a parameter named ${schema.name} and the processor
would be invalid, before it ever had any chance to even evaluate Expression
Language.
Secondly, we never allow creating a String value and then evaluating it to get
a parameter due to security concerns. There are security policies that guard
who is allow to reference parameters, etc. and allowing dynamic creation of
parameter names would violate the security constraints.
> Add Dynamic Schema References to ValidateJSON Processor
> -------------------------------------------------------
>
> Key: NIFI-11627
> URL: https://issues.apache.org/jira/browse/NIFI-11627
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Extensions
> Affects Versions: 1.19.1
> Reporter: Chuck Tilly
> Assignee: Daniel Stieglitz
> Priority: Major
>
> For the ValidateJSON processor, add support for flowfile attribute references
> that will allow for a JSON schema located in the Parameter Contexts, to be
> referenced dynamically based on a flowfile attribute. e.g.
> {code:java}
> #{${schema.name}} {code}
>
> The benefits of adding support for attribute references are significant.
> Adding this capability will allow a single processor to be used for all JSON
> schema validation. Unfortunately, the current version of this processor
> requires a dedicated processor for every schema, i.e. 12 schemas requires 12
> ValidateJSON processors. This is very laborious to construct and maintain,
> and resource expensive.
> ValidateJSON processor (https://issues.apache.org/jira/browse/NIFI-7392)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)