Repository: Significant-Gravitas/Auto-GPT
File: autogpt_platform/frontend/src/components/CustomNode.tsx (TypeScript)

Code before:
          const isRequired = data.inputSchema.required?.includes(propKey);
          const isAdvanced = propSchema.advanced;
          const isHidden = propSchema.hidden;
          const isConnectable =
            // No input connection handles on INPUT and WEBHOOK blocks
            ![BlockUIType.INPUT, BlockUIType.WEBHOOK].includes(nodeType) &&
            // No input connection handles for credentials
            propKey !== "credentials" &&
            !propKey.endsWith("_credentials") &&
            // For OUTPUT blocks, only show the 'value' (hides 'name') input connection handle
            !(nodeType == BlockUIType.OUTPUT && propKey == "name");
          const isConnected = isInputHandleConnected(propKey);
          return (
            !isHidden &&
            (isRequired || isAdvancedOpen || isConnected || !isAdvanced) && (
              <div key={propKey} data-id={`input-handle-${propKey}`}>
                {isConnectable ? (
                  <NodeHandle
                    keyName={propKey}
                    isConnected={isConnected}
                    isRequired={isRequired}
                    schema={propSchema}
                    side="left"
                  />
                ) : (
                  propKey != "credentials" &&
                  !propKey.endsWith("_credentials") && (
                    <div className="flex gap-1">
                      <span className="text-m green mb-0 text-gray-900">
                        {propSchema.title || beautifyString(propKey)}
                      </span>
                      <SchemaTooltip description={propSchema.description} />
                    </div>
                  )
                )}
                {isConnected || (
                  <NodeGenericInputField
                    nodeId={id}
                    propKey={getInputPropKey(propKey)}
                    propSchema={propSchema}
                    currentValue={getValue(
                      getInputPropKey(propKey),
                      data.hardcodedValues,
                    )}
                    connections={data.connections}
                    handleInputChange={handleInputChange}
                    handleInputClick={handleInputClick}
                    errors={data.errors ?? {}}
                    displayName={propSchema.title || beautifyString(propKey)}
                  />
                )}

Review comment (security):
nit
```suggestion
                  propKey !== "credentials" &&
```

Code after:
        return keys.map(([propKey, propSchema]) => {
          const isRequired = data.inputSchema.required?.includes(propKey);
          const isAdvanced = propSchema.advanced;
          const isHidden = propSchema.hidden;
          const isConnectable =
            // No input connection handles on INPUT and WEBHOOK blocks
            ![
              BlockUIType.INPUT,
              BlockUIType.WEBHOOK,
              BlockUIType.WEBHOOK_MANUAL,
            ].includes(nodeType) &&
            // No input connection handles for credentials
            propKey !== "credentials" &&
            !propKey.endsWith("_credentials") &&
            // For OUTPUT blocks, only show the 'value' (hides 'name') input connection handle
            !(nodeType == BlockUIType.OUTPUT && propKey == "name");
          const isConnected = isInputHandleConnected(propKey);
          return (
            !isHidden &&
            (isRequired || isAdvancedOpen || isConnected || !isAdvanced) && (
              <div key={propKey} data-id={`input-handle-${propKey}`}>
                {isConnectable ? (
                  <NodeHandle
                    keyName={propKey}
                    isConnected={isConnected}
                    isRequired={isRequired}
                    schema={propSchema}
                    side="left"
                  />
                ) : (
                  propKey !== "credentials" &&
                  !propKey.endsWith("_credentials") && (
                    <div className="flex gap-1">
                      <span className="text-m green mb-0 text-gray-900 dark:text-gray-100">
                        {propSchema.title || beautifyString(propKey)}
                      </span>
                      <SchemaTooltip description={propSchema.description} />
                    </div>
                  )
                )}
                {isConnected || (
                  <NodeGenericInputField
                    nodeId={id}
                    propKey={getInputPropKey(propKey)}
                    propSchema={propSchema}
                    currentValue={getValue(
                      getInputPropKey(propKey),
                      data.hardcodedValues,
                    )}
                    connections={data.connections}
                    handleInputChange={handleInputChange}