Skip to content
This repository has been archived by the owner on Nov 10, 2020. It is now read-only.

LDAP structure

linuxbandit edited this page Mar 26, 2016 · 3 revisions

#WIP This document is still a work in progress (as the schema may continuously vary). However chances are you don't need it, and all you need is the API docs (which are more stable anyway AND one should always obtain information using the API)

Structure

The database for storing user data will be LDAP. The baseDN will be o=aegee, c=eu. The following structure will be built for the storage of data:

  • o=aegee, c=eu
    • ou=people
      • uid=mayri.tiido
        • bodycode=TAR
      • uid=fabrizio.bellicano
        • bodycode=ITC
        • bodycode=GEN
    • ou=bodies //NOTE! A body is one of WorkingGroup|Local|Project|Committee|Commission|LocalGroup|External
      • bodycode=ATH
      • bodycode=ENS
      • bodycode=KYI
      • bodycode=ITC
      • bodycode=PRC
      • bodycode=HRC
    • ou=services //NOTE: the modules that will connect to the core
      • uid=profiles-module
      • uid=events-module
      • uid=financial-module

In essence,

  • the branch "services" keeps track of the components of the whole IT infrastructure
  • the branch "bodies" keeps track of the entities that compose AEGEE
  • the branch "people" keeps track of the people that compose such entities.

Additionally, every "person" entry has a small sub-entry which tells more information about their specific membership at a specific body.

Details on the entries

Here there will be shown what attributes does a entry present. Some attributes are mandatory (e.g. a membership information MUST tell when is it expiring), but it is also possible to have optional ones - they will be marked with (opt). When useful, there will be presented an example, or possible values to pick (e.g. in the case of a status of antenna)

Example service: uid=profiles-module,ou=services,o=aegee,c=eu

  • uid
  • userPassword

(opt)

  • info
  • changelog

Example body: bodycode=ITC,ou=bodies,o=aegee,c=eu

  • bodyCode [unique 3-letter abbreviation]
  • supervisor [netcom of reference; speaker of reference]
  • bodyNameAscii [name in latin alphabet]
  • mail [primary email to reach the responsible at]
  • bodyCategory [WorkingGroup|Local|Project|Committee|Commission|LocalGroup|External]

(opt)

  • netcomCode
  • bodyName [name in local alphabet]
  • labeledURI
  • bodyStatus [C|CA|A|S|T] -- (mostly for locals; however, Suspended and Terminated could apply to others)
  • latitude (for locals)
  • longitude (for locals)
  • careOf (physical address mainly for locals)
  • postalCode (physical address mainly for locals)
  • l (SHORT for locality, i.e. city. physical address mainly for locals)
  • c (SHORT for country. physical address mainly for locals)
  • telephoneNumber
  • foundedDate
  • info
  • changeLog
  • lastBoardElectionDate
  • bankAccount (for locals)
  • description
  • registeredAddress (for locals)
  • postalAddress (physical address mainly for locals)
  • o

Example person: uid=fabrizio.bellicano,ou=people,o=aegee,c=eu

  • givenName [first name]
  • mail [personal email address]
  • userPassword
  • uid [generated by application]

(opt)

  • csn [card serial number - the AEGEE card will have a role in the future]
  • gender
  • pictureURL [link to profile pic]
  • birthDate
  • preferredLanguage
  • fieldOfStudies
  • changeLog [internal info on membership change]
  • tShirtSize
  • drink [favourite drink :) ]
  • o [internal info on memberships]

Example membership of a person: bodycode=ITC,uid=fabrizio.bellicano,ou=people,o=aegee,c=eu

  • memberSinceDate
  • memberUntilDate
  • cn [full name]
  • mail [mail that the user decided to use when registering: allows for plus-addressing]
  • uid [inherited from the parent entry]
  • bodyCategory
  • bodyCode
  • bodyNameAscii
  • memberType [applicant|member|board|suspended|ancien|deleted|erasmus]

(opt)

  • labeledURI
  • info
  • changeLog
  • title [if memberType = board, this sets if he is secretary, treasurer...]
  • o
  • studentType
  • university
  • bankAccount [some antennae use automatic membership renewal]