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
  • No labels