You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Pierre Villard (Jira)" <ji...@apache.org> on 2026/04/21 09:56:00 UTC

[jira] [Created] (NIFI-15863) User edits to newly-introduced component properties silently classified as environmental changes

Pierre Villard created NIFI-15863:
-------------------------------------

             Summary: User edits to newly-introduced component properties silently classified as environmental changes
                 Key: NIFI-15863
                 URL: https://issues.apache.org/jira/browse/NIFI-15863
             Project: Apache NiFi
          Issue Type: Bug
          Components: Flow Versioning
    Affects Versions: 2.9.0
            Reporter: Pierre Villard
            Assignee: Pierre Villard


When a newer bundle declares a static property that did not exist in the versioned flow snapshot, *FlowDifferenceFilters.isPropertyAddedFromMigration* (added in NIFI-15776) classifies the resulting *PROPERTY_ADDED* diff as environmental regardless of value. If the user later edits that property the diff relative to the registry is still *PROPERTY_ADDED* (the property descriptor is absent from the snapshot), so the edit is also swallowed as environmental: the flow is not marked dirty and the change cannot be committed through normal local-change workflows.

NIFI-15830 refined related behavior but only addressed cases detected through *isNewPropertyWithDefaultValue*, which compares *valueB* against the descriptor default. It did not tighten *isPropertyAddedFromMigration*, which continues to return *true* for any statically-declared property missing from the snapshot, independent of the value. As a result, user edits away from the default on a newly-introduced property remain indistinguishable from the framework-applied default and are still filtered out.

We need to tighten *isPropertyAddedFromMigration* to only treat a *PROPERTY_ADDED* diff as environmental when *valueB* equals the descriptor's default value. This preserves the NIFI-15776 / NIFI-15830 behavior for bundle upgrades (framework-applied defaults remain filtered), while surfacing genuine user edits as local changes.

Narrow regression: if a component's *migrateProperties* explicitly assigns a new static property to a non-default value, that value will now show as a local change and the user must commit once after upgrade.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)