Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Note
titleWork in progress

This site is in the process of being reviewed and updated.

Table of Contents
typelist

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

Code Block
Wiki Markup
h1. 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

h1. The MetaSchema schema

This part expose the elements we have to declare to be able to store the schema using a standard schema

h2. Meta top level elements


h3. MetaTop OjectClass

This Meta object is used as the top-level class which will be the mother of all MetaObjects
{code}
ObjectClass ( 1.3.6.1.4.1.18060.10.14.0.03.1
    NAME MetaTop
    DESC 'Top level ObjectClass of all Meta objects'
    SUP top
    ABSTRACT
    MUST ( m-oid $ m-descdescription )
)
{code}

h3. MetaTop AttributeTypes
We also need to describe all the meta attributeTypes we will use :
||name||description||ldif form||
|m-collective|attributetype ( 

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 :

Code Block
1024}
m-no-user-modification: true
m-usage: dSAOperation|
|m-desc|||
|m-equality|||
|m-extension|||
|m-must|||
|m-name|||
|m-no-user-modificatio|||
|m-obsolete|||
|m-oid|||
|m-ordering|||
|m-single-value|||
|m-substr|||
|m-sup-attribute-type|||
|m-sup-objectclas|||
|m-type-attribute-type|||
|m-type-objectclass|||
|m-usage|||


h2. MetaTop ObjectClasses instances


h3. MetaObjectClass

The following text is the description of the *MetaObjectClass* :
{code}
ObjectClass ( 1.3.6.1.4.1.18060.10.14.0.03.2
    NAME MetaObjectClass
    DESC 'Meta definition of the ObjectClass object'
    SUP MetaTop
    STRUCTURAL
    MUST m-name
    MAY ( m-sup-objectclassobject-class $ m-must $ m-may $ m-type-object-objectclassclass $ m-obsolete $ m-extension )
)

MetaAttributeType

The following text is the description of the MetaAttributeType :

Code Block
{code}

h3. MetaAttributeType

The following text is the description of the *MetaAttributeType* :
{code}
ObjectClass ( 1.3.6.1.4.1.18060.10.14.0.03.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 )
)
{code}

h3. MetaSyntax

The following

MetaSyntax

The following text is the description of the MetaSyntax :

Code Block

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 :

Code Block
 text is the description of the *MetaSyntax* :
{code}
ObjectClass ( 1.3.6.1.4.1.18060.10.14.0.03.45
    NAME MetaSyntaxMetaMatchingRule
    DESC 'Meta definition of the SyntaxMatchingRule object'
    SUP MetaTop
    STRUCTURAL
    MUST m-syntax
    MAY ( m-obsolete $ m-extensions )
)

MetaDITStructureRule

The following text is the description of the DITStructureRule :

Code Block

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 :

Code Block

ObjectClass ( 
)
{code}

h3. MetaMatchingRule

The following text is the description of the *MatchingRule* :
{code}
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 :

Code Block

ObjectClass (  1.3.6.1.4.1.18060.0.4.0.3.58
    NAME MetaMatchingRuleMetaMatchingRuleUse
    DESC 'Meta definition of the MatchingRuleMatchingRuleUse object'
    SUP MetaToptop
    STRUCTURAL
    MUST ( m-syntaxapplies )
    MAY ( m-obsolete $ m-extensionsextensionMatchingRuleUse )
)
{code}

MetaDITContentRule

The following text is the description of the DITContentRule :

Code Block

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 :

Code Block


h1. Application to Core Schema

We will express the Core schema using the previously defined Ldap objects :

h2. Country

The country ObjectClass in OpenLdap format :
{code}
objectclass ( 2.5.6.2 NAME 'country'
    DESC 'RFC2256: a country'
    SUP top 
    STRUCTURAL
    MUST c
    MAY ( searchGuide $ description )
)
{code}

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

...

:

{
Code Block
}
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
{code}