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} |
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 |
---|
ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.1 NAME MetaTop DESC 'Top level ObjectClass of all Meta objects' SUP top ABSTRACT MUST ( m-oid $ m-desc ) ) |
MetaTop AttributeTypes
We also need to describe all the meta attributeTypes we will use :
...
name
...
ldif form
...
m-oid
...
{code} h3. 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.1.1.0.3.1 |
...
m-name: m-oid |
...
m-description: |
...
The Object Identifier m-equality: |
...
OidMatch m-syntax: |
...
Oid m-single-value: true m-no-user-modification: true |
...
m-usage: dSAOperation |
...
| |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.1.1.0.3.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-no-user-modification: true |
...
m-usage: dSAOperation |
...
| |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.1.1.0.3.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-no-user-modification: |
...
true m-single-value: true m-usage: dSAOperation |
...
| |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.1.1.0.3. |
...
4 m-name: m- |
...
obsolete m-description: The |
...
type is obsolete m-equality: BooleanMatch m-syntax: Boolean m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |m-sup-objectclass|dn: m-name=m-sup-objectclass,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.5 m-name: m-sup-objectclass m-description: The list of superiors m-equality: NameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-usage: dSAOperation| |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.1.1.0.3.6 m-name: m-must m-description: The list of mandatory ATs m-equality: NameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-usage: dSAOperation| |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.1.1.0.3.7 m-name: m-may m-description: The list of authorized ATs m-equality: NameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-usage: dSAOperation| |m-type-object-class|dn: m-name=m-type-object-class,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.8 m-name: m-type-object-class m-description: The ObjectClass type m-equality: TypeObjectClassMatch m-syntax: TypeObjectClass m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |m-extension-object-class|dn: m-name=m-extension-object-class,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.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-no-user-modification: yes m-usage: dSAOperation| |m-sup-attribute-type|dn: m-name=m-sup-attribute-type,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.10 m-name: m-sup-attribute-type m-description: The list of superior m-equality: nameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-single-value: true |
...
m-usage: dSAOperation |
...
| |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.1.1.0.3.11 |
...
m-name: m-equality |
...
m-desc: Equality matching |
...
rule m-equality: nameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |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.1.1.0.3.12 m-name: m-ordering m-description: Ordering matching rule m-equality: nameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |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.1.1.0.3.13 m-name: m-substr m-description: Substring matching rule m-equality: nameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |m-syntax|dn: m-name=m-syntax,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.14 m-name: m-syntax m-description: The attribute syntax m-equality: nameOrOidMatch m-syntax: NameOrOid m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |m-single-value|dn: m-name=m-single-value,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.15 m-name: m-single-value m-description: The attribute is single valued m-equality: BooleanMatch m-syntax: Boolean m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |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.1.1.0.3.16 m-name: m-collective m-description: The attribute is collective m-equality: BooleanMatch m-syntax: Boolean m-no-user-modification: |
...
true m-single-value: true m-usage: |
...
m-extension-attributeType
...
m-extension-objectClass
...
m-may
...
m-must
...
m-no-user-modificatio
...
m-obsolete
...
m-ordering
...
m-single-value
...
m-substr
...
m-sup-attribute-type
...
m-sup-objectclass
...
m_syntax
...
m-type-attribute-type
...
m-type-objectclass
...
m-usage
MetaTop ObjectClasses instances
MetaObjectClass
The following text is the description of the MetaObjectClass :
Code Block |
---|
dSAOperation| |m-no-user-modification|dn: m-name=m-no-user-modification,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.17 m-name: m-no-user-modification m-description: The attribute is protected m-equality: BooleanMatch m-syntax: Boolean m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |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.1.1.0.3.18 m-name: m-usage m-description: Type of operation m-equality: UsageMatch m-syntax: Usage m-no-user-modification: true m-single-value: true m-usage: dSAOperation| |m-type-attribute-type|dn: m-name=m-type-attribute-type,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.19 m-name: m-type-attribute-type m-description: Type of attributeType m-equality: TypeAttributeTypeMatch m-syntax: TypeAttributeType m-no-user-modification: m-single-value: true m-usage: dSAOperation| |m-extension-attribute-type|dn: name=m-extension-attribute-type,ou=meta,ou=schema objectclass: meta-attributeType objectclass: meta-top objectclass: top m-oid: 1.3.6.1.4.1.18060.1.1.0.3.20 m-name: m-extension-attribute-type m-description: Extension for attributeType m-equality: caseIgnoreMatch m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} m-no-user-modification: true m-single-value: false m-usage: dSAOperation| h2. MetaTop ObjectClasses instances h3. MetaObjectClass The following text is the description of the *MetaObjectClass* : {code} ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.2 NAME MetaObjectClass DESC 'Meta definition of the ObjectClass object' SUP MetaTop STRUCTURAL MUST m-name MAY ( m-sup-objectclass $ m-must $ m-may $ m-type-objectclass $ 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.1.1.0.0.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 :
Code Block |
---|
{code}
h3. MetaSyntax
The following text is the description of the *MetaSyntax* :
{code}
ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.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 |
---|
{code}
h3. MetaMatchingRule
The following text is the description of the *MatchingRule* :
{code}
ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.5
NAME MetaMatchingRule
DESC 'Meta definition of the MatchingRule object'
SUP MetaTop
STRUCTURAL
MUST m-syntax
MAY ( m-obsolete $ m-extensions )
)
|
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 |
---|
{code} 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 |
} 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} |