App Connect

 View Only

 Add properties in OpenLDAP using an LDAP Request node and an update operation

Jose Ollero's profile image
Jose Ollero posted Mon June 23, 2025 06:33 AM

This is my first time opening a thread, and I'm not sure if this is the right place to do it. If this isn't the appropriate place for my question, could you please let me know where I should ask it? Thank you very much.

I’m working with App Connect Enterprise (ACE) version 13.0.3 on-premise, and I want to build a flow that connects to OpenLDAP in order to add a new member to a groupOfNames entry.

I’ve seen in the documentation that there is an LDAP Request node which supports update operations using the "Use input message unchanged" option.

From what I’ve observed, in a previous Compute node (for example), I can create the tree structure with the data I want to update, since the update operation seems to behave like a replacement — that is, it overwrites the existing elements with the values I provide.

Let’s assume that the groupOfNames entry already contains the following member:

cn=SLLMMR0081,ou=Persones,ou=Directori,dc=preproduccio,dc=dc,dc=intranet,dc=gencat,dc=cat

And I want to add:

cn=GBDDMR0001,ou=Persones,ou=Directori,dc=preproduccio,dc=dc,dc=intranet,dc=gencat,dc=cat

What I’m doing in my ESQL code is the following:

CREATE FIELD OutputRoot.JSON.Data.member IDENTITY(JSON.Array)member; CREATE LASTCHILD OF OutputRoot.JSON.Data.member TYPE NameValue NAME 'Item' VALUE 'cn=SLLMMR0081,ou=Persones,ou=Directori,dc=preproduccio,dc=dc,dc=intranet,dc=gencat,dc=cat'; CREATE LASTCHILD OF OutputRoot.JSON.Data.member TYPE NameValue NAME 'Item' VALUE 'cn=GBDDMR0001,ou=Persones,ou=Directori,dc=preproduccio,dc=dc,dc=intranet,dc=gencat,dc=cat';

I configure it as an array of members because when generating the LDAP Request node, the JSON schema that is automatically generated is:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "member": {
      "title": "Member",
      "description": "RFC2256: member of a group",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "businessCategory": {
      "title": "Business category",
      "description": "RFC2256: business category",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "seeAlso": {
      "title": "See also",
      "description": "RFC4519: DN of related object",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "owner": {
      "title": "Owner",
      "description": "RFC2256: owner (of the object)",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "description": {
      "title": "Description",
      "description": "RFC4519: descriptive information",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "title": "groupOfNames",
  "additionalProperties": false,
  "connectorName": "ldap",
  "interaction": "UPDATEALL"
}

However, what I'm getting as a result is a single member attribute with both values concatenated, as shown in the following image:

'cn=SLLMMR0081,ou=Persones,ou=Directori,dc=preproduccio,dc=dc,dc=intranet,dc=gencat,dc,cn=GBDDMR0001,ou=Persones,ou=Directori,dc=preproduccio,dc=dc,dc=intranet,dc=gencat,dc=cat'

What am i doing wrong? My flow is: HTTP_INPUT-->COMPUTE NODE-->LDAP REQUEST-->HTTP_OUTPUT


I want to do it this way because the next step in my flow is to first retrieve the existing member attributes using an LDAP Request node, and then build a new tree with the existing members plus one or more new ones.