The following example sets up the managerName virtual attribute introduced in the previous section:

  1. Update the schema to define the managerName attribute.

    You can optionally add the attribute to an object class.

    1. In a text editor, create a file with the following schema definition for the attribute.
      dn: cn=schema
      objectClass: top
      objectClass: ldapSubentry
      objectClass: subschema attributeTypes: ( NAME ‘managerName’ 
        EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX{256} 
        X-ORIGIN ‘PingDirectory Server Example’ )
    2. Save the file as 98-myschema.ldif in the <server-root>/config/schema folder.
  2. Restart the PingDirectory server.
    $ bin/stop-server --restart
  3. To create the virtual attribute, use dsconfig.
    $ bin/dsconfig create-virtual-attribute \ 
      --name "managerName" \ 
      --type mirror \ 
      --set "description:managerName from manager cn" \ 
      --set enabled:true \
      --set attribute-type:managerName \ 
      --set source-attribute:cn \
      --set source-entry-dn-attribute:manager
  4. To verify the mirror virtual attribute, search for an entry.
    $ bin/ldapsearch --baseDN dc=example,dc=com "(uid=apeters)"
    Your search results in the following.
    dn: uid=apeters,ou=People,dc=example,dc=com
    ... (attributes) ... 
    manager: uid=jdoe,ou=People,dc=example,dc=com
    managerName: John Doe