# OhReallyAddressbook.schema
#
# This LDAP schema holds all the elements I'd like to see in a
# corporate addressbook.
# Some elements are renamed copies of elements in the Mozilla
# addressbook schema; I don't want to depend on that schema, because
# it is still in alpha state.
# Copyright (c) 2006 Rob la Lau <rob@OhReally.nl>.
#
# This document is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
# License as published by the Free Software Foundation.
#
# This document is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# The full text of the GNU General Public License can be found at
# http://www.opensource.org/licenses/gpl-license.php.
######################################################################
# Depends upon:
# - core.schema
# - cosine.schema
# Documentation used:
# - http://www.oreillynet.com/pub/a/sysadmin/2006/07/27/demystifying-ldap.html
# - http://www.openldap.org/doc/admin22/schema.html#Extending%20Schema
# - http://www.rfc-editor.org/rfc/rfc2252.txt
# - http://www.rfc-editor.org/rfc/rfc2798.txt
# - http://www.alvestrand.no/objectid/1.3.6.1.4.1.1466.115.121.1.html
# - http://www.mozilla.org/projects/thunderbird/specs/ldap.html
# - http://docs.sun.com/source/816-6700-10/schema.html
# - http://docs.sun.com/source/816-6699-10/schemaov.html
# - http://docs.sun.com/source/816-6698-10/schema.html#Extending%20the%20Directory%20Schema
# Changelog:
#
# 20061105:
# - initial version
######################################################################
#
# IANA has assigned the following Private Enterprise
# Number (PEN) to OhReally:
#
# 27224
#
######################################################################
# object identifiers (see also http://nerdstock.org/oid)
objectIdentifier OhReallyOID 1.3.6.1.4.1.27224
objectIdentifier OhReallyLDAP OhReallyOID:2
objectIdentifier OhReallyAbook OhReallyLDAP:1
objectIdentifier OhReallyABAttrTypeSup OhReallyAbook:1
objectIdentifier OhReallyABObjClassSup OhReallyAbook:2
objectIdentifier OhReallyABAttrType OhReallyAbook:3
objectIdentifier OhReallyABObjClass OhReallyAbook:4
# The fields I want in an addressbook:
# - last name # surname (sn)
# - first name(s) # givenName (gn)
# - initials # initials
# - nickname > OhReallyABNickname
# - organization # organizationName (o)
# - department # organizationalUnitName (ou)
# - function title # title
# - manager # manager
# - work direct phone # telephoneNumber
# - work phone > OhReallyABWorkTelephoneNumber
# - work mobile # mobileTelephoneNumber (mobile)
# - work fax # facsimileTelephoneNumber (fax)
# - work email # rfc822Mailbox (mail)
# - work prefer HTML mail > OhReallyABWorkUseHtmlMail
# - work PGP public key > OhReallyABWorkPGPPubkey
# - work preferred written language > OhReallyABWorkPreferredWrittenLanguage
# - work preferred spoken language > OhReallyABWorkPreferredSpokenLanguage
# - work preferred character set > OhReallyABWorkPreferredCharset
# - work url # labeledURI
# - mail address # streetAddress (street)
# - mail postal code # postalCode
# - mail locality # localityName (l)
# - mail state # stateOrProvinceName (st)
# - mail country # countryName (c)
# - visiting address > OhReallyABVisitStreet
# - visiting postal code > OhReallyABVisitPostalCode
# - visiting locality > OhReallyABVisitLocality
# - visiting state > OhReallyABVisitState
# - visiting country > OhReallyABVisitCountry
# - home address > OhReallyABHomeStreet
# - home postal code > OhReallyABHomePostalCode
# - home locality > OhReallyABHomeLocality
# - home state > OhReallyABHomeState
# - home country > OhReallyABHomeCountry
# - home phone > OhReallyABHomePhone
# - home mobile > OhReallyABHomeMobile
# - home fax > OhReallyABHomeFax
# - home email > OhReallyABHomeEmail
# - home prefer HTML mail > OhReallyABHomeUseHtmlMail
# - home PGP public key > OhReallyABHomePGPPubkey
# - home preferred written language > OhReallyABHomePreferredWrittenLanguage
# - home preferred spoken language > OhReallyABHomePreferredSpokenLanguage
# - home preferred character set > OhReallyABHomePreferredCharset
# - home url > OhReallyABHomeUrl
# - date of birth > OhReallyABBirthDate
# - sex > OhReallyABSex
# - notes > OhReallyABNotes
# - photo > OhReallyABFace
# - see also # seeAlso
# - IM IDs ? > ?
#####
# Superior types
# boolean
attributetype ( OhReallyABAttrTypeSup:1
NAME 'OhReallyABUseHtmlMail'
DESC 'Prefers to receive HTML formatted email (superior type)'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE )
attributetype ( OhReallyABAttrTypeSup:2
NAME 'OhReallyABPGPPubkey'
DESC 'ASCII representation of PGP public key (superior type)'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# copied from inetorgperson.schema
attributetype ( OhReallyABAttrTypeSup:3
NAME 'OhReallyABPreferredLanguage'
DESC 'RFC2798: preferred written or spoken language (superior type)'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
# max. 40 characters (http://www.iana.org/assignments/character-sets)
attributetype ( OhReallyABAttrTypeSup:4
NAME 'OhReallyABPreferredCharset'
DESC 'Preferred character set (superior type)'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{40} )
#####
######################################################################
# core.schema
#attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' )
# DESC 'RFC2256: last (family) name(s) for which the entity is known by'
# SUP name )
# core.schema
#attributetype ( 2.5.4.42 NAME ( 'givenName' 'gn' )
# DESC 'RFC2256: first name(s) for which the entity is known by'
# SUP name )
# core.schema
#attributetype ( 2.5.4.43 NAME 'initials'
# DESC 'RFC2256: initials of some or all of names, but not the surname(s).'
# SUP name )
attributetype ( OhReallyABAttrType:1
NAME 'OhReallyABNickname'
DESC 'A name this object is also known by'
SUP name )
# core.schema
#attributetype ( 2.5.4.10 NAME ( 'o' 'organizationName' )
# DESC 'RFC2256: organization this object belongs to'
# SUP name )
# core.schema
#attributetype ( 2.5.4.11 NAME ( 'ou' 'organizationalUnitName' )
# DESC 'RFC2256: organizational unit this object belongs to'
# SUP name )
# core.schema
#attributetype ( 2.5.4.12 NAME 'title'
# DESC 'RFC2256: title associated with the entity'
# SUP name )
# cosine.schema
#attributetype ( 0.9.2342.19200300.100.1.10 NAME 'manager'
# DESC 'RFC1274: DN of manager'
# EQUALITY distinguishedNameMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
# core.schema
#attributetype ( 2.5.4.20 NAME 'telephoneNumber'
# DESC 'RFC2256: Telephone Number'
# EQUALITY telephoneNumberMatch
# SUBSTR telephoneNumberSubstringsMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} )
attributetype ( OhReallyABAttrType:2
NAME 'OhReallyABWorkTelephoneNumber'
DESC 'General work telephone number'
SUP telephoneNumber )
# cosine.schema
#attributetype ( 0.9.2342.19200300.100.1.41
# NAME ( 'mobile' 'mobileTelephoneNumber' )
# DESC 'RFC1274: mobile telephone number'
# EQUALITY telephoneNumberMatch
# SUBSTR telephoneNumberSubstringsMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )
# core.schema
#attributetype ( 2.5.4.23 NAME ( 'facsimileTelephoneNumber' 'fax' )
# DESC 'RFC2256: Facsimile (Fax) Telephone Number'
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.22 )
# core.schema
#attributetype ( 0.9.2342.19200300.100.1.3
# NAME ( 'mail' 'rfc822Mailbox' )
# DESC 'RFC1274: RFC822 Mailbox'
# EQUALITY caseIgnoreIA5Match
# SUBSTR caseIgnoreIA5SubstringsMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
attributetype ( OhReallyABAttrType:3
NAME 'OhReallyABWorkUseHtmlMail'
DESC 'Prefers to receive HTML formatted mail at work'
SUP OhReallyABUseHtmlMail )
attributetype ( OhReallyABAttrType:4
NAME 'OhReallyABWorkPGPPubkey'
DESC 'ASCII representation of PGP public key at work'
SUP OhReallyABPGPPubkey )
attributetype ( OhReallyABAttrType:5
NAME 'OhReallyABWorkPreferredWrittenlanguage'
DESC 'Preferred written language at work'
SUP OhReallyABPreferredLanguage )
attributetype ( OhReallyABAttrType:6
NAME 'OhReallyABWorkPreferredSpokenlanguage'
DESC 'Preferred spoken language at work'
SUP OhReallyABPreferredLanguage )
attributetype ( OhReallyABAttrType:7
NAME 'OhReallyABWorkPreferredCharset'
DESC 'Preferred character set at work'
SUP OhReallyABPreferredCharset )
# system schema
#attributetype ( 1.3.6.1.4.1.250.1.57 NAME 'labeledURI'
# DESC 'RFC2079: Uniform Resource Identifier with optional label'
# EQUALITY caseExactMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# core.schema
#attributetype ( 2.5.4.9 NAME ( 'street' 'streetAddress' )
# DESC 'RFC2256: street address of this object'
# EQUALITY caseIgnoreMatch
# SUBSTR caseIgnoreSubstringsMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
# core.schema
#attributetype ( 2.5.4.17 NAME 'postalCode'
# DESC 'RFC2256: postal code'
# EQUALITY caseIgnoreMatch
# SUBSTR caseIgnoreSubstringsMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{40} )
# core.schema
#attributetype ( 2.5.4.7 NAME ( 'l' 'localityName' )
# DESC 'RFC2256: locality which this object resides in'
# SUP name )
# core.schema
#attributetype ( 2.5.4.8 NAME ( 'st' 'stateOrProvinceName' )
# DESC 'RFC2256: state or province which this object resides in'
# SUP name )
# core.schema
#attributetype ( 2.5.4.6 NAME ( 'c' 'countryName' )
# DESC 'RFC2256: ISO-3166 country 2-letter code'
# SUP name SINGLE-VALUE )
attributetype ( OhReallyABAttrType:8
NAME 'OhReallyABVisitStreet'
DESC 'Street of visiting address'
SUP street )
attributetype ( OhReallyABAttrType:9
NAME 'OhReallyABVisitPostalCode'
DESC 'Postal code of visiting address'
SUP postalCode )
attributetype ( OhReallyABAttrType:10
NAME 'OhReallyABVisitLocality'
DESC 'Locality of visiting address'
SUP l )
attributetype ( OhReallyABAttrType:11
NAME 'OhReallyABVisitState'
DESC 'State or province of visiting address'
SUP st )
attributetype ( OhReallyABAttrType:12
NAME 'OhReallyABVisitCountry'
DESC 'ISO-3166 country code of visiting address'
SUP c )
attributetype ( OhReallyABAttrType:13
NAME 'OhReallyABHomeStreet'
DESC 'Street of home address'
SUP street )
attributetype ( OhReallyABAttrType:14
NAME 'OhReallyABHomePostalCode'
DESC 'Postal code of home address'
SUP postalCode )
attributetype ( OhReallyABAttrType:15
NAME 'OhReallyABHomeLocality'
DESC 'Locality of home address'
SUP l )
attributetype ( OhReallyABAttrType:16
NAME 'OhReallyABHomeState'
DESC 'State or province of home address'
SUP st )
attributetype ( OhReallyABAttrType:17
NAME 'OhReallyABHomeCountry'
DESC 'Country of home address'
SUP c )
attributetype ( OhReallyABAttrType:18
NAME 'OhReallyABHomePhone'
DESC 'Private phone number'
SUP telephoneNumber )
attributetype ( OhReallyABAttrType:19
NAME 'OhReallyABHomeMobile'
DESC 'Private mobile phone number'
SUP telephoneNumber )
attributetype ( OhReallyABAttrType:20
NAME 'OhReallyABHomeFax'
DESC 'Private fax number'
SUP fax )
attributetype ( OhReallyABAttrType:21
NAME 'OhReallyABHomeEmail'
DESC 'Private email address'
SUP mail )
attributetype ( OhReallyABAttrType:22
NAME 'OhReallyABHomeUseHtmlMail'
DESC 'Prefers to receive HTML formatted mail at home'
SUP OhReallyABUseHtmlMail )
attributetype ( OhReallyABAttrType:23
NAME 'OhReallyABHomePGPPubkey'
DESC 'ASCII representation of PGP public key at home'
SUP OhReallyABPGPPubkey )
attributetype ( OhReallyABAttrType:24
NAME 'OhReallyABHomePreferredWrittenLanguage'
DESC 'Preferred written language at home'
SUP OhReallyABPreferredLanguage )
attributetype ( OhReallyABAttrType:25
NAME 'OhReallyABHomePreferredSpokenLanguage'
DESC 'Preferred spoken language at home'
SUP OhReallyABPreferredLanguage )
attributetype ( OhReallyABAttrType:26
NAME 'OhReallyABHomePreferredCharset'
DESC 'Preferred character set at home'
SUP OhReallyABPreferredCharset )
attributetype ( OhReallyABAttrType:27
NAME 'OhReallyABHomeUrl'
DESC 'Private website'
SUP labeledURI )
attributetype ( OhReallyABAttrType:28
NAME 'OhReallyABBirthDate'
DESC 'Date of birth'
SUP name )
# value should be 'm' or 'f', the interpretation should be up to the client
attributetype ( OhReallyABAttrType:29
NAME 'OhReallyABSex'
DESC 'Sex'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1} )
attributetype ( OhReallyABAttrType:30
NAME 'OhReallyABNotes'
DESC 'Notes'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
attributetype ( OhReallyABAttrType:31
NAME 'OhReallyABFace'
DESC 'An image displaying this object'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
SINGLE-VALUE )
# system schema
#attributetype ( 2.5.4.34 NAME 'seeAlso'
# DESC 'RFC2256: DN of related object'
# SUP distinguishedName )
######################################################################
objectclass ( OhReallyABObjClass:1
NAME 'OhReallyAbookPerson'
DESC 'Addressbook record'
SUP top
AUXILIARY
MUST ( cn )
MAY ( c $
fax $
gn $
initials $
l $
labeledURI $
mail $
manager $
mobile $
OhReallyABBirthDate $
OhReallyABFace $
OhReallyABHomeCountry $
OhReallyABHomeEmail $
OhReallyABHomeFax $
OhReallyABHomeLocality $
OhReallyABHomeMobile $
OhReallyABHomePGPPubkey $
OhReallyABHomePhone $
OhReallyABHomePostalCode $
OhReallyABHomePreferredCharset $
OhReallyABHomePreferredSpokenLanguage $
OhReallyABHomePreferredWrittenLanguage $
OhReallyABHomeState $
OhReallyABHomeStreet $
OhReallyABHomeUrl $
OhReallyABHomeUseHtmlMail $
OhReallyABNickname $
OhReallyABNotes $
OhReallyABSex $
OhReallyABVisitCountry $
OhReallyABVisitLocality $
OhReallyABVisitPostalCode $
OhReallyABVisitState $
OhReallyABVisitStreet $
OhReallyABWorkPGPPubkey $
OhReallyABWorkPreferredCharset $
OhReallyABWorkPreferredSpokenLanguage $
OhReallyABWorkPreferredWrittenLanguage $
OhReallyABWorkTelephoneNumber $
OhReallyABWorkUseHtmlMail $
o $
ou $
postalCode $
seeAlso $
sn $
st $
street $
telephoneNumber $
title ) )
######################################################################
# vim: ts=4
| Responses are welcomed: rob[at]nerdstock.org |
![]() http://creativecommons.org/licenses/by-nc-sa/3.0/nl/deed.en |