Home | History | Annotate | Line # | Download | only in schema
      1   1.1.1.4      tron # $OpenLDAP$
      2       1.1     lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      3       1.1     lukem ##
      4  1.1.1.10  christos ## Copyright 1998-2024 The OpenLDAP Foundation.
      5       1.1     lukem ## All rights reserved.
      6       1.1     lukem ##
      7       1.1     lukem ## Redistribution and use in source and binary forms, with or without
      8       1.1     lukem ## modification, are permitted only as authorized by the OpenLDAP
      9       1.1     lukem ## Public License.
     10       1.1     lukem ##
     11       1.1     lukem ## A copy of this license is available in the file LICENSE in the
     12       1.1     lukem ## top-level directory of the distribution or, alternatively, at
     13       1.1     lukem ## <http://www.OpenLDAP.org/license.html>.
     14       1.1     lukem #
     15       1.1     lukem #
     16       1.1     lukem # OpenLDAP Project's directory schema items
     17       1.1     lukem #
     18       1.1     lukem # depends upon:
     19       1.1     lukem #	core.schema
     20       1.1     lukem #	cosine.schema
     21       1.1     lukem #	inetorgperson.schema
     22       1.1     lukem #
     23       1.1     lukem # These are provided for informational purposes only.
     24       1.1     lukem #
     25       1.1     lukem # This openldap.ldif file is provided as a demonstration of how to
     26       1.1     lukem # convert a *.schema file into *.ldif format. The key points:
     27       1.1     lukem #   In LDIF, a blank line terminates an entry. Blank lines in a *.schema
     28       1.1     lukem #     file should be replaced with a single '#' to turn them into
     29       1.1     lukem #     comments, or they should just be removed.
     30       1.1     lukem #   In addition to the actual schema directives, the file needs a small
     31       1.1     lukem #     header to make it a valid LDAP entry. This header must provide the
     32       1.1     lukem #     dn of the entry, the objectClass, and the cn, as shown here:
     33       1.1     lukem #
     34       1.1     lukem dn: cn=openldap,cn=schema,cn=config
     35       1.1     lukem objectClass: olcSchemaConfig
     36       1.1     lukem cn: openldap
     37       1.1     lukem #
     38       1.1     lukem # The schema directives need to be changed to LDAP Attributes.
     39       1.1     lukem #   First a basic string substitution can be done on each of the keywords:
     40       1.1     lukem #     objectIdentifier -> olcObjectIdentifier:
     41       1.1     lukem #     objectClass -> olcObjectClasses:
     42       1.1     lukem #     attributeType -> olcAttributeTypes:
     43       1.1     lukem #   Then leading whitespace must be fixed. The slapd.conf format allows
     44       1.1     lukem #     tabs or spaces to denote line continuation, while LDIF only allows
     45       1.1     lukem #     the space character.
     46       1.1     lukem #   Also slapd.conf preserves the continuation character, while LDIF strips
     47       1.1     lukem #     it out. So a single TAB/SPACE in slapd.conf must be replaced with
     48       1.1     lukem #     two SPACEs in LDIF, otherwise the continued text may get joined as
     49       1.1     lukem #     a single word.
     50       1.1     lukem #   The directives must be listed in a proper sequence:
     51       1.1     lukem #     All olcObjectIdentifiers must be first, so they may be referenced by
     52       1.1     lukem #        any following definitions.
     53       1.1     lukem #     All olcAttributeTypes must be next, so they may be referenced by any
     54       1.1     lukem #        following objectClass definitions.
     55       1.1     lukem #     All olcObjectClasses must be after the olcAttributeTypes.
     56       1.1     lukem #   And of course, any superior must occur before anything that inherits
     57       1.1     lukem #     from it.
     58       1.1     lukem #
     59       1.1     lukem olcObjectIdentifier: OpenLDAProot 1.3.6.1.4.1.4203
     60       1.1     lukem #
     61       1.1     lukem olcObjectIdentifier: OpenLDAP OpenLDAProot:1
     62       1.1     lukem olcObjectIdentifier: OpenLDAPattributeType OpenLDAP:3
     63       1.1     lukem olcObjectIdentifier: OpenLDAPobjectClass OpenLDAP:4
     64       1.1     lukem #
     65       1.1     lukem olcObjectClasses: ( OpenLDAPobjectClass:3
     66       1.1     lukem   NAME 'OpenLDAPorg'
     67       1.1     lukem   DESC 'OpenLDAP Organizational Object'
     68       1.1     lukem   SUP organization
     69       1.1     lukem   MAY ( buildingName $ displayName $ labeledURI ) )
     70       1.1     lukem #
     71       1.1     lukem olcObjectClasses: ( OpenLDAPobjectClass:4
     72       1.1     lukem   NAME 'OpenLDAPou'
     73       1.1     lukem   DESC 'OpenLDAP Organizational Unit Object'
     74       1.1     lukem   SUP organizationalUnit
     75       1.1     lukem   MAY ( buildingName $ displayName $ labeledURI $ o ) )
     76       1.1     lukem #
     77       1.1     lukem olcObjectClasses: ( OpenLDAPobjectClass:5
     78       1.1     lukem   NAME 'OpenLDAPperson'
     79       1.1     lukem   DESC 'OpenLDAP Person'
     80       1.1     lukem   SUP ( pilotPerson $ inetOrgPerson )
     81       1.1     lukem   MUST ( uid $ cn )
     82       1.1     lukem   MAY ( givenName $ labeledURI $ o ) )
     83       1.1     lukem #
     84       1.1     lukem olcObjectClasses: ( OpenLDAPobjectClass:6
     85       1.1     lukem   NAME 'OpenLDAPdisplayableObject'
     86       1.1     lukem   DESC 'OpenLDAP Displayable Object'
     87       1.1     lukem   AUXILIARY
     88       1.1     lukem   MAY displayName )
     89