# Object attribute spec

## users
- ObjectClass:
    - inetOrgPerson
- cn = Name
- sn = Surname
- title = title (e.g. "Dr.", "Herr", "Frau", etc.)
- uid = user identifier (e.g. sn + cn or sn[1:3] + cn[1:3])
- jpegPhoto = jpeg photo of the user
- userPassword = user password (hashed using one of these: PBKDF2, BCrypt/SCrypt, Argon2)
- description = json string containing data as JSON. E.g.:
    - `{"BirthDate": "01.01.2001", "Address": {"City": "Gelsenkirchen", "Street": "Vattmannstraße", "StreetNr": "11" }, "Workplace": "btg-317-23"}`

## locations
- ObjectClass:
    - extensibleObject
    - locality
    - top
- cn = location identifier (e.g. location name + room name + seat)
- l = location name (e.g. "btg")
- street = Street name and number (e.g. "Overwegstraße 30")
- description = json string containing data as JSON. E.g.:
    - `{"RoomNumber": "317", "Seat": "23"}`

## groups
- ObjectClass:
    - extensibleObject
    - posixGroup
    - top
- cn = group identifier (e.g. "admin")
- gidNumber = group id number (e.g. 1)
- displayName = display name (e.g. "Administrator")
- description = json string containing data as JSON. E.g.:
    - `{"Permissions": ["CanInventorize", "CanManageUsers", "CanManageLocations", "CanManageAssets", "CanManageGroups"]}`

## assets
- ObjectClass:
    - device
    - extensibleObject
    - top
- cn = inventory id of the device (e.g. "2000001")
- name = Make & model of the device (e.g.: "AMD Radeon RX9070 XT OC Black Triple Fan 16 GB GDDR6", "Voodoo 3 3500TV")
- serialNumber = serial number of the product as specified by the manufacturer
- owner = current owner of the product as an attribute list (e.g.: "uid=testuser")
- l = location cn (e.g. "btg-317-23")
- description = json string containing data as JSON. E.g.:
    - `{"Type": "PC Component", "Purchase":{"PurchaseDate": "2024-01-01", "PurchaseValue": "877.33", "PurchasedAt": "SpechtleKG", "purchasedBy": "musterfrauandrea"}}`
