"flow_stack" node in settings.xml contains unwanted data

Hey,

I have this simple workflow
Screenshot 2024-05-16 143927
The excel file looks like this
Screenshot 2024-05-16 143939

When I execute, reset and save the workflow, the settings.xml of the “Table Row to Variable Node (#42)” contains data from the excel file under the “flow_stack” node.
Extract from the settings.xml file:

    <config key="flow_stack">
        <...shortened...>
        <config key="Variable_4">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="column2"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value="Important"/>
        </config>
        <config key="Variable_5">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="column1"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value="Secret information"/>
        </config>
    </config>

When I replace the “Excel Reader” with a “Table Creator” or “CSV Reader” with identical values, no data is written into settings.xml file.

We save our workflows in a Git repository and our workflows process protective data from Excel files. We do not want this protective data in our repository.

Is there any way to avoid this situation? What is the difference of the output table of an “Excel Reader” node and a “CSV Reader” node?

Tested with Knime 4.7.8 and 5.2.3.

Thanks
Marc

Hi @marc_hofmann,

sounds like a bug so maybe your post is better located in:

@ScottF maybe you can move it if you agree to my conclusion?

PS: @marc_hofmann can you share a test workflow? That might significantly ease debugging, reproduction and resolution.

Cheers
Mike

Hello,

here is a test workflow.: FlowStackTest.knwf (14.1 KB)

Please move it to a more appropriate location.

Thanks
Marc

1 Like

Good morning @marc_hofmann,

I don’t think this is a bug but rather exactly what you configured the Table Row to Variable node to do … converting the two columns to a variable

In the settings.xml of the corresponding node, there is actually no trace of any information form the Excel file such as the file name, path, sheet etc…

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://www.knime.org/2008/09/XMLConfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.knime.org/2008/09/XMLConfig http://www.knime.org/XMLConfig_2008_09.xsd" key="settings.xml">
    <entry key="node_file" type="xstring" value="settings.xml"/>
    <config key="flow_stack">
        <config key="Variable_0">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="RowID"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value=""/>
        </config>
        <config key="Variable_1">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="column2"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value="missing"/>
        </config>
        <config key="Variable_2">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="column1"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value="missing"/>
        </config>
        <config key="Variable_3">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="RowID"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value="Row0"/>
        </config>
        <config key="Variable_4">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="column2"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value="Important"/>
        </config>
        <config key="Variable_5">
            <entry key="type" type="xstring" value="variable"/>
            <entry key="name" type="xstring" value="column1"/>
            <entry key="class" type="xstring" value="STRING"/>
            <entry key="value" type="xstring" value="Secret information"/>
        </config>
    </config>
    <config key="internal_node_subsettings">
        <entry key="memory_policy" type="xstring" value="CacheSmallInMemory"/>
    </config>
    <config key="model">
        <config key="missing_value_policy_Internals">
            <entry key="SettingsModelID" type="xstring" value="SMID_string"/>
            <entry key="EnabledStatus" type="xboolean" value="true"/>
        </config>
        <entry key="missing_value_policy" type="xstring" value="DEFAULT"/>
        <config key="default_value_string_Internals">
            <entry key="SettingsModelID" type="xstring" value="SMID_string"/>
            <entry key="EnabledStatus" type="xboolean" value="true"/>
        </config>
        <entry key="default_value_string" type="xstring" value="missing"/>
        <config key="default_value_boolean_Internals">
            <entry key="SettingsModelID" type="xstring" value="SMID_string"/>
            <entry key="EnabledStatus" type="xboolean" value="true"/>
        </config>
        <entry key="default_value_boolean" type="xstring" value="false"/>
        <config key="default_value_integer_Internals">
            <entry key="SettingsModelID" type="xstring" value="SMID_integer"/>
            <entry key="EnabledStatus" type="xboolean" value="true"/>
        </config>
        <entry key="default_value_integer" type="xint" value="0"/>
        <config key="default_value_long_Internals">
            <entry key="SettingsModelID" type="xstring" value="SMN_long"/>
            <entry key="EnabledStatus" type="xboolean" value="true"/>
        </config>
        <entry key="default_value_long" type="xlong" value="0"/>
        <config key="default_value_double_Internals">
            <entry key="SettingsModelID" type="xstring" value="SMID_double"/>
            <entry key="EnabledStatus" type="xboolean" value="true"/>
        </config>
        <entry key="default_value_double" type="xdouble" value="0.0"/>
        <config key="column_selection_Internals">
            <entry key="SettingsModelID" type="xstring" value="SMID_columnfilter"/>
            <entry key="EnabledStatus" type="xboolean" value="true"/>
        </config>
        <config key="column_selection">
            <entry key="filter-type" type="xstring" value="STANDARD"/>
            <config key="included_names">
                <entry key="array-size" type="xint" value="2"/>
                <entry key="0" type="xstring" value="column1"/>
                <entry key="1" type="xstring" value="column2"/>
            </config>
            <config key="excluded_names">
                <entry key="array-size" type="xint" value="0"/>
            </config>
            <entry key="enforce_option" type="xstring" value="EnforceExclusion"/>
            <config key="name_pattern">
                <entry key="pattern" type="xstring" value=""/>
                <entry key="type" type="xstring" value="Wildcard"/>
                <entry key="caseSensitive" type="xboolean" value="true"/>
                <entry key="excludeMatching" type="xboolean" value="false"/>
            </config>
            <config key="datatype">
                <config key="typelist">
                    <entry key="org.knime.core.data.StringValue" type="xboolean" value="false"/>
                    <entry key="org.knime.core.data.BooleanValue" type="xboolean" value="false"/>
                    <entry key="org.knime.core.data.IntValue" type="xboolean" value="false"/>
                    <entry key="org.knime.core.data.DoubleValue" type="xboolean" value="false"/>
                    <entry key="org.knime.core.data.LongValue" type="xboolean" value="false"/>
                    <entry key="org.knime.core.data.date.DateAndTimeValue" type="xboolean" value="false"/>
                </config>
            </config>
        </config>
    </config>
    <config key="nodeAnnotation">
        <entry key="text" type="xstring" value="Node 42"/>
        <entry key="bgcolor" type="xint" value="16777215"/>
        <entry key="x-coordinate" type="xint" value="587"/>
        <entry key="y-coordinate" type="xint" value="259"/>
        <entry key="width" type="xint" value="106"/>
        <entry key="height" type="xint" value="15"/>
        <entry key="alignment" type="xstring" value="CENTER"/>
        <entry key="borderSize" type="xint" value="0"/>
        <entry key="borderColor" type="xint" value="16777215"/>
        <entry key="defFontSize" type="xint" value="9"/>
        <entry key="annotation-version" type="xint" value="20151123"/>
        <config key="styles">
            <config key="style_0">
                <entry key="start" type="xint" value="0"/>
                <entry key="length" type="xint" value="7"/>
                <entry key="fontname" type="xstring" value="Arial"/>
                <entry key="fontstyle" type="xint" value="0"/>
                <entry key="fontsize" type="xint" value="9"/>
                <entry key="fgcolor" type="xint" value="0"/>
            </config>
        </config>
    </config>
    <entry key="customDescription" type="xstring" isnull="true" value=""/>
    <entry key="state" type="xstring" value="IDLE"/>
    <entry key="factory" type="xstring" value="org.knime.base.node.flowvariable.tablerowtovariable3.TableToVariable3NodeFactory"/>
    <entry key="node-name" type="xstring" value="Table Row to Variable"/>
    <entry key="node-bundle-name" type="xstring" value="KNIME Base Nodes"/>
    <entry key="node-bundle-symbolic-name" type="xstring" value="org.knime.base"/>
    <entry key="node-bundle-vendor" type="xstring" value="KNIME AG, Zurich, Switzerland"/>
    <entry key="node-bundle-version" type="xstring" value="4.7.8.v202312111527"/>
    <entry key="node-feature-name" type="xstring" value="KNIME Base nodes"/>
    <entry key="node-feature-symbolic-name" type="xstring" value="org.knime.features.base.feature.group"/>
    <entry key="node-feature-vendor" type="xstring" value="KNIME AG, Zurich, Switzerland"/>
    <entry key="node-feature-version" type="xstring" value="4.7.8.v202312111527"/>
    <config key="factory_settings"/>
    <entry key="name" type="xstring" value="Table Row to Variable"/>
    <entry key="hasContent" type="xboolean" value="false"/>
    <entry key="isInactive" type="xboolean" value="false"/>
    <config key="ports">
        <config key="port_1">
            <entry key="index" type="xint" value="1"/>
            <entry key="port_dir_location" type="xstring" isnull="true" value=""/>
        </config>
    </config>
    <config key="filestores">
        <entry key="file_store_location" type="xstring" isnull="true" value=""/>
        <entry key="file_store_id" type="xstring" isnull="true" value=""/>
    </config>
</config>

Maybe I got you wrong. Can you elaborate please?

Best
Mike

Hey @mwiegand,

when you reset and save the workflow, information from the excel file are still in the settings.xml. We share the workflows and do not want any information from the processed data to be stored in the workflow itself in reset state.

Thanks
Marc

Thanks for highlighting this again. I missed that part from your initial post. A more secure way is to use the credential nodes:

Here is the test workflow. Depending on the actual auth method you might want to adjust this further:

Best
Mike

Hi @marc_hofmann,

There is an existing ticket to resolve this. For internal reference, the ticket number: AP-19566.

Best,
Keerthan

2 Likes

Hi @mwiegand,

thanks for your suggestion, I’ll take a look into it.

@k10shetty1
thanks for taking care of the issue.

Kind regards
Marc

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.