Difference between revisions of "stoney core: Resellers Resource Mapping (REST - LDAP)"

From stoney cloud
Jump to: navigation, search
[unchecked revision][unchecked revision]
(Resellers Resource Mapping)
(Resellers Resource Mapping)
Line 29: Line 29:
 
|| '''id''' || uid=4000000,ou=reseller || uid || Always read-only.
 
|| '''id''' || uid=4000000,ou=reseller || uid || Always read-only.
 
|-
 
|-
|| isCompany || uid=4000000,ou=reseller || sstIsCompany || if isCompany is set to true, organizationName is/must be set, else givenName and surname are/must be set
+
|| isCompany || uid=4000000,ou=reseller || sstIsCompany || if isCompany is set to true, organizationName is/must be set and givenName and surname must be empty, otherwise givenName and surname are/must be set and organizationName must be empty
 
|-
 
|-
 
|| isActive || uid=4000000,ou=reseller || sstIsActive ||
 
|| isActive || uid=4000000,ou=reseller || sstIsActive ||
 
|-
 
|-
|| organizationName || uid=4000000,ou=reseller || organizationName ||  
+
|| organizationName || uid=4000000,ou=reseller || organizationName || unavailable if isCompany is true
 
|-
 
|-
|| givenName || uid=4000000,ou=reseller || givenName ||  
+
|| givenName || uid=4000000,ou=reseller || givenName || unavailable if isCompany is false
 
|-
 
|-
|| surname || uid=4000000,ou=reseller || surname ||  
+
|| surname || uid=4000000,ou=reseller || surname || unavailable if isCompany is false
 
|-
 
|-
 
|| (none) || uid=4000000,ou=reseller || sstExternalID ||
 
|| (none) || uid=4000000,ou=reseller || sstExternalID ||

Revision as of 17:39, 8 January 2014

Overview

The resellers resource mapping describes the business logic behind the LDAP to JSON transformation and visa versa for the request and response objects. The actual resellers resource REST API is located in the REST API category and is named stoney core: Resellers Resource - REST API.

Principles:

  • for the ressource objects there is most of the time a one-to-one mapping between LDAP attributes and JSON object
  • for collections only a subset of the ressource object attributes will be returned which may be also be merged or otherwise mangled

This specification puts together the Reseller frontend API and the LDAP Data Backend

Resellers Resource Mapping

If not specified otherwise, the following rules apply:

  • an attribut which exists in the LDAP object but has no corresponding entry in the API will never be exported
  • the mapping has always to be explicit for the API attributes: it is always considered an error if the client provides an attribute which is not listed below (aka no hidden attributes)
  • whether an attribute is mandatory or not is specified by the corresponding LDAP object and/or REST API specification
  • the attribute in bold letters is the REST API ressource identifier and can as such never be specified in a POST request but will always be generated on the server side
  • specifying a read-only attribut in a PUT or PATCH request is allowed as long as the value is the same as currently set
  • the mapping applies to create (POST), read (GET) and update (PATCH or PUT). For delete (DELETE) the REST principles apply

Base DN: dc=stoney-cloud,dc=org

API Attribute LDAP Object DN LDAP Attribute Details
id uid=4000000,ou=reseller uid Always read-only.
isCompany uid=4000000,ou=reseller sstIsCompany if isCompany is set to true, organizationName is/must be set and givenName and surname must be empty, otherwise givenName and surname are/must be set and organizationName must be empty
isActive uid=4000000,ou=reseller sstIsActive
organizationName uid=4000000,ou=reseller organizationName unavailable if isCompany is true
givenName uid=4000000,ou=reseller givenName unavailable if isCompany is false
surname uid=4000000,ou=reseller surname unavailable if isCompany is false
(none) uid=4000000,ou=reseller sstExternalID
(none) uid=4000000,ou=reseller sstBelongsToResellerUID Always set equal to uid.
(none) ou=address,uid=4000000,ou=reseller organizationName Internally set to the same value as sstReseller's organizationName
address.gender ou=address,uid=4000000,ou=reseller sstGender
address.givenName ou=address,uid=4000000,ou=reseller givenName
address.surname ou=address,uid=4000000,ou=reseller surname
address.postalAddress ou=address,uid=4000000,ou=reseller postalAddress
address.postOfficeBox ou=address,uid=4000000,ou=reseller postOfficeBox
address.stateOrProvinceName ou=address,uid=4000000,ou=reseller stateOrProvinceName
address.countryName ou=address,uid=4000000,ou=reseller countryName
address.postalCode ou=address,uid=4000000,ou=reseller postalCode
address.localityName ou=address,uid=4000000,ou=reseller localityName
address.preferredLanguage ou=address,uid=4000000,ou=reseller preferredLanguage
address.mail ou=address,uid=4000000,ou=reseller mail
address.telephoneNumber ou=address,uid=4000000,ou=reseller telephoneNumber
address.mobileTelephoneNumber ou=address,uid=4000000,ou=reseller mobileTelephoneNumber
address.websiteURL ou=address,uid=4000000,ou=reseller sstWebsiteURL

Resellers Collection Mapping

If not specified otherwise, the following rules apply:

  • the table below lists one entry in the collection/array/list to be returned
  • additional attributes like pagination-headers, location attribute, etc. are not part of this spec but must be part of the final object, as per stoney core: Resellers Resource - REST API

Base DN: dc=stoney-cloud,dc=org

API Attribute LDAP Object DN LDAP Attribute Details
id uid=4000000,ou=reseller uid
reseller uid=4000000,ou=reseller organizationName or givenName surname $sstIsCompany == TRUE ? "$organizationName" : "$givenName $surname"
contact ou=address,uid=4000000,ou=reseller givenName surname "$givenName $surname"
mail ou=address,uid=4000000,ou=reseller mail
phone ou=address,uid=4000000,ou=reseller telephoneNumber or mobileTelephoneNumber or (none) both attributes are optional, therefore this attribute may not be available

Links