SD(5)

NAME
sd - Full-screen directory user agent.

SYNOPSIS
sd

DESCRIPTION

Read and search calls to the directory in sd are carried out using parameters specified in configuration files contained in a configuration directory. This directory can be held on a per-user basis, and will otherwise default to a system-wide default directory held in the ETCDIR defined during isode installation. These directories are called “$(HOME)/.duaconfig” and “$(ETCDIR)/sd/duaconfig” respectively.

Configuration is trivial in the case of reads, requiring a list of numeric OIDs (one on each line), specifying the attribute types to be read. A sample section of the default configuration file (called readTypes and held in one of the above configuration directories) is,

"alias"         2.5.6.1
"c"             2.5.4.6
"l"             2.5.4.7

where the quoted sections (required but always ignored) state the actual name of the type specified and the numeric sections equate to their actual OIDs.

Configuration of search is more complicated and is best illustrated by describing the search mechanism used by sd (for information on how to use sd consult section 1c of the manual). Each attribute type in an sd search consists of a complex filter, that may make use of a number of actual primitive attribute types. Thus a search using the sd type “Person”, as provided in the default configuration set-up, actually corresponds to the filter,

objectClass=person AND (  commonName ~= *
		      	OR surname~= *
		      	OR title~= *)

where '*' means the value supplied at search-time, '~=' means approximately matches, '%=' means substring matches and '=' means exactly matches. Each of the types used by sd is described in a separate file called “/filterTypes/Type_whatever” under one of the configuration directories described above (note that each file name must have the prefix “Type_”). The set of filter-types provided (Person, Place, Department, Organization) can thus be added to or modified as wished. The precise syntax that must be used is shown in the follwing example,

#Composition of type Place
name:"Place"
( & ( | (2.5.4.0 = "country")   #"objectClass"
        (2.5.4.0 = "room")	# ditto
        (2.5.4.0 = "locality")) # ditto
    ( | (2.5.4.7 ~= *)         	#"l" - locality
        (2.5.4.8 ~= *)		#"stateOrProvinceName"
        (2.5.4.6 ~= *)		#"c" - country
        (0.9.2342.19200300.100.1.6 ~= *) #"roomNumber"
        (2.5.4.3 ~= *)))	#"cn" - "commonName"

The first thing to note is that comments begin with a '#'. The rest of the line following a '#' is ignored. The name used by sd to denote the type is specified using the syntax

name:"STRING".

The following lines describe the filter that the type is composed of. It has a lisp-like syntax and uses symbols that correspond to those used in dish. The points to note are;

(1) Each filter or filter-item must be enclosed in brackets.
(2) Hard-wired values (as in 2.5.4.0 = "country" above)
    must be enclosed in quotes.
(3) '*' denotes a value supplied at search time.

Additions to the search types will make modification to the “typeDefaults” file necassary. This describes the set of types, chosen from those specified as above, that are available to search with when a specific level of the DIT, e.g. country level, is occupied by the user. In addition it specifies the default type at any level. A typical “typeDefaults” file is shown below,

#
# Format is:
#   OID of RDN: Types available at this level: Default type
#
2.5.4.10:Person, Place, Department: Person
2.5.4.11:Person, Place, Department: Person
2.5.4.6:Place, Organization:Organization
2.5.4.7:Place, Organization, Department: Organization
@: Place: Place

Each line, composed of three colon separated fields, specifies defaults for one level of the DIT. The first field contains the numeric OID of an attribute that may be used as an RDN. The root entry, though, is specified by an “@” character, as can be seen in the lowermost line. The first line contains the OID for “organizationName”. The second field describes the types that are available to the user when occupying the specified level of the DIT. The third field, which must also be a member of the second field, states the default type available at this level. Thus the first line says that the types Person, Place and Department are available at the orgainzational level, and that the default type given to the user is Person.

To view the list of OID's used in the directory, use the 'oiddump' tool provided with isode. (held in 'ISODE/others/quipu/tools').

SEE ALSO
sd(1c) dish(1c) pod(1c) xd(1c)
The ISO Development Environment: User's Manual, Volume 5: QUIPU
ISO 9594:Information Processing -- Open Systems Interconnection -- The Directory

AUTHOR
Damanjit.Mahl@brunel.ac.uk
Andrew.Findlay@brunel.ac.uk