| Work in progress This site is in the process of being reviewed and updated. |
Introduction
This page is used to describe the MetaSchema using OpenLdap schema syntx, so that it can be loaded into the ou=schema special partition
The MetaSchema schema
This part expose the elements we have to declare to be able to store the schema using a standard schema
Meta top level elements
MetaTop OjectClass
This Meta object is used as the top-level class which will be the mother of all MetaObjects
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.1
NAME MetaTop
DESC 'Top level ObjectClass of all Meta objects'
SUP top
ABSTRACT
MUST ( m-oid $ m-description )
)
MetaTop AttributeTypes
We also need to describe all the meta attributeTypes we will use :
| name | ldif form |
|---|---|
| m-oid | dn: m-name=m-oid,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.1 m-name: m-oid m-description: The Object Identifier m-equality: OidMatch m-syntax: NumericOid m-singleValue: true |
| m-name | dn: m-name=m-name,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.2 m-name: m-name m-description: The Object name m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} |
| m-description | dn: m-name=m-description,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.3 m-name: m-description m-description: Meta descriptive information m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{1024} m-single-value: true |
| m-obsolete | dn: m-name=m-obsolete,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.4 m-name: m-obsolete m-description: The type is obsolete m-equality: BooleanMatch m-syntax: Boolean m-singleValue: true |
| m-supObjectClass | dn: m-name=m-supObjectClass,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.5 m-name: m-sup-objectclass m-description: The list of superiors m-equality: NameOrOidMatch m-syntax: Oid |
| m-must | dn: m-name=m-must,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.6 m-name: m-must m-description: The list of mandatory ATs m-equality: NameOrOidMatch m-syntax: Oid |
| m-may | dn: m-name=m-may,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.7 m-name: m-may m-description: The list of authorized ATs m-equality: NameOrOidMatch m-syntax: Oid |
| m-typeObjectClass | dn: m-name=m-typeObjectClass,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.8 m-name: m-type-object-class m-description: The ObjectClass type m-equality: TypeObjectClassMatch m-syntax: TypeObjectClass m-singleValue: true |
| m-extensionObjectClass | dn: m-name=m-extensionObjectClass,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.9 m-name: m-extension-object-class m-description: An objectclass extension m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} |
| m-supAttributeType | dn: m-name=m-supAttributeType,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.10 m-name: m-sup-attribute-type m-description: The list of superior m-equality: nameOrOidMatch m-syntax: Oid m-singleValue: true |
| m-equality | dn: m-name=m-equality,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.11 m-name: m-equality m-description: Equality matching rule m-equality: nameOrOidMatch m-syntax: Oid m-singleValue: true |
| m-ordering | dn: m-name=m-ordering,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.12 m-name: m-ordering m-description: Ordering matching rule m-equality: nameOrOidMatch m-syntax: Oid m-singleValue: true |
| m-substr | dn: m-name=m-substr,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.13 m-name: m-substr m-description: Substring matching rule m-equality: nameOrOidMatch m-syntax: Oid m-singleValue: true |
| m-attributeTypeSyntax | dn: m-name=m-attributeTypeSyntax,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.14 m-name: m-attributeTypeSyntax m-description: The attributeType syntax m-equality: OidLenMatch m-syntax: OidLen m-singleValue: true |
| m-singleValue | dn: m-name=m-singleValue,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.15 m-name: m-singleValue m-description: The attribute is single valued m-equality: BooleanMatch m-syntax: Boolean m-singleValue: true |
| m-collective | dn: m-name=m-collective,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.16 m-name: m-collective m-description: The attribute is collective m-equality: BooleanMatch m-syntax: Boolean m-singleValue: true |
| m-noUserModification | dn: m-name=m-noUserModification,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.17 m-name: m-noUserModification m-description: The attribute is protected m-equality: BooleanMatch m-syntax: Boolean m-singleValue: true |
| m-usage | dn: m-name=m-usage,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.18 m-name: m-usage m-description: Type of operation m-equality: UsageMatch m-syntax: AttributeTypeUsage m-single-value: true |
| m-extensionAttributeType | dn: name=m-extensionAttributeType,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.19 m-name: m-extensionAttributeType m-description: Extension for attributeType m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} |
| m-ruleId | dn: name=mruleId,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.20 m-name: m-ruleId m-description: The rule ID m-equality: ruleIDMatch m-syntax: Number |
| m-form | dn: name=m-form,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.21 m-name: m-form m-description: The name form associated with this DITStructure rule m-equality: caseIgnoreMatch m-syntax: Oid |
| m-supDITStructureRule | dn: name=m-supDITStructureRule,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.22 m-name: m-supDITStructureRule m-description: The list of superiors m-equality: Match m-syntax: NumericString |
| m-extensionDITStructureRule | dn: name=m-extensionDITStructureRule,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.23 m-name: m-extensionDITStructureRule m-description: Extensions for DITStructureRule m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} |
| m-oc | dn: name=m-oc,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.24 m-name: m-oc m-description: The structural ObjectClass m-equality: numericOidMatch m-syntax: Oid m-singleValue: true |
| m-extensionNameForm | dn: name=m-extensionNameForm,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.25 m-name: m-extensionNameForm m-description: Extensions for NameForm m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} |
| m-aux | dn: name=m-aux,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.26 m-name: m-aux m-description: List of auxiliary ObjectClasses m-equality: numericOidMatch m-syntax: Oid |
| m-not | dn: name=m-not,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.27 m-name: m-not m-description: List of precluded attribute types m-equality: numericOidMatch m-syntax: Oid |
| m-extensionDITContentRule | dn: name=m-extensionDITContentRule,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.28 m-name: m-extensionDITContentRule m-description: Extensions for DITContentRule m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} |
| m-applies | dn: name=m-applies,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.29 m-name: m-applies m-description: List of attribute types the matching rule applies to m-equality: numericOidMatch m-syntax: Oid |
| m-extensionMatchingRuleUse | dn: name=m-extensionMatchingRuleUse,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.30 m-name: m-extensionMatchingRuleUse m-description: Extensions for DITContentRule m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} |
| m-matchingRuleSyntax | dn: m-name=m-matchingRuleSyntax,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.0.4.0.2.31 m-name: m-matchingRuleSyntax m-description: The matchingRule attribute syntax m-equality: NumericOidMatch m-syntax: NumericOid m-singleValue: true |
MetaTop ObjectClasses instances
MetaObjectClass
The following text is the description of the MetaObjectClass :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.2
NAME MetaObjectClass
DESC 'Meta definition of the ObjectClass object'
SUP MetaTop
STRUCTURAL
MUST m-name
MAY ( m-sup-object-class $ m-must $ m-may $ m-type-object-class $ m-obsolete $ m-extension )
)
MetaAttributeType
The following text is the description of the MetaAttributeType :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.3
NAME MetaAttributeType
DESC 'Meta definition of the AttributeType object'
SUP MetaTop
STRUCTURAL
MUST ( m-name $ m-syntax )
MAY ( m-sup-attribute-type $ m-type-attribute-type $ m-obsolete $ m-equality $ m-ordering $ m-substr $ m-single-value $ m-collective $ m-no-user-modification $ m-usage $ m-extension )
)
MetaSyntax
The following text is the description of the MetaSyntax :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.4
NAME MetaSyntax
DESC 'Meta definition of the Syntax object'
SUP MetaTop
STRUCTURAL
)
MetaMatchingRule
The following text is the description of the MatchingRule :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.5
NAME MetaMatchingRule
DESC 'Meta definition of the MatchingRule object'
SUP MetaTop
STRUCTURAL
MUST m-syntax
MAY ( m-obsolete $ m-extensions )
)
MetaDITStructureRule
The following text is the description of the DITStructureRule :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.6
NAME MetaDITStructureRule
DESC 'Meta definition of the DITStructureRule object'
SUP top
STRUCTURAL
MUST ( m-ruleId $ m-form )
MAY ( m-obsolete $ m-supDITStructureRule $ m-extensionDITStructureRule )
)
MetaNameForm
The following text is the description of the NameForm :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.7
NAME MetaNameForm
DESC 'Meta definition of the NameForm object'
SUP top
STRUCTURAL
MUST ( m-oc $ m-must )
MAY ( m-obsolete $ m-may $ m-extensionNameForm )
)
MetaMatchingRuleUse
The following text is the description of the MatchingRuleUse :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.8
NAME MetaMatchingRuleUse
DESC 'Meta definition of the MatchingRuleUse object'
SUP top
STRUCTURAL
MUST ( m-applies )
MAY ( m-obsolete $ m-extensionMatchingRuleUse )
)
MetaDITContentRule
The following text is the description of the DITContentRule :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.9
NAME MetaDITContentRule
DESC 'Meta definition of the DITContentRule object'
SUP top
STRUCTURAL
MAY ( m-obsolete $ m-aux $ m-must $ m-may $ m-not $ m-extensionDITContentRule )
)
Application to Core Schema
We will express the Core schema using the previously defined Ldap objects :
Country
The country ObjectClass in OpenLdap format :
objectclass ( 2.5.6.2 NAME 'country'
DESC 'RFC2256: a country'
SUP top
STRUCTURAL
MUST c
MAY ( searchGuide $ description )
)
The Country ObjectClass using the MetaObjectClass definition will be inserted as an entry into the ou=schema partition. As it is declared in core, we use a DN which describe this relationship with the original filer :
dn: name=country, dc=core, ou=schema objectclass: MetaObjectClass objectclass: MetaTop objectClass: top m-oid: 2.5.6.2 m-name: country m-desc: RFC2256: a country m-sup-objectClass: top m-type-objectClass: STRUCTURAL m-must: c m-may: searchGuide m-may: description