Within the Bolk we save all member information on a LDAP server. The Bolks Leden InformatiePunt (BLIP) offers an easy way to request and use information about the members for use within your application for the association. You can compare it with a Facade pattern.
This is a OAuth2 resource server. The information is secured with OAuth2 via https://auth.debolk.nl/. You need a valid authentication token for every endpoint, you can supply it within a URI: /?access_token=1234. You can also supply it as a header: "Bearer: 1234".
The API is accessible on https://people.i.bolkhuis.nl. It requires internal network access (BolkNet or VPN). https://people.debolk.nl/ is also available, but it has a lot less information accessible. This is mentioned explicitly at the endpoint itself.
Do you need help when using BLIP? Contact Jakob, Max or Melody. You can get our contact information from the board.
BLIP is available under the GPL3 License. You can find the code on GitHub.
The Person is the basis of the API. You can read, update & create it through the API.
Some information may be non-readable depending on the user: this is personal information which the user opted not to share. However, for administrative reasons, this information is readable by those with the highest permission level.
Attribute | Description | Always readable | Writeable |
---|---|---|---|
uid | unique user id | yes | no |
href | URL of the Person | yes | no |
initials | initials | yes | yes |
firstname | first name | yes | yes |
surname | surname | yes | yes |
nickname | nickname | yes | yes |
name | full name (incl nickname, if applicable) | yes | yes |
dateofbirth | date of birth (YYYY-MM-DD) | no | yes |
pronouns | pronouns (e.g.: he/him, she/her, they/them) | no | yes |
e-mail address | no | yes | |
phone | phone number | no | yes |
phone_emergency | phone number in cases of emergency | no | yes |
address | home address | no | yes |
inauguration_date | date of inauguration | yes | yes |
resignation_letter_date | date of receiving letter of resignation | yes | yes |
resignation_date | date of official resignation | yes | yes |
programme | study programme(s) | no | yes |
institution | instution(s) they study/ied at | no | yes |
membership | membership status | yes | yes |
iva | if they are allowed to tend the bar by themselves | yes | no |
dead | are they still alive? | yes | yes |
photo_visible | if they would like to share their picture | yes | no |
avg | if they accepted the privacy statement | yes | no |
avg_address | if they allow sharing their address | yes | no |
avg_dob | if they allow sharing their date of birth | yes | no |
avg_institution | if they allow sharing the instution(s) they study at | yes | no |
avg_programme | if they allow sharing their study programme(s) | yes | no |
avg_email | if they allow sharing their e-mail address | yes | no |
avg_phone | if they allow sharing their phone number | yes | no |
avg_phone_emergency | if they allow sharing their emergency contact | yes | no |
avg_pronouns | if they allow sharing their pronouns | yes | no |
All API methods only accept and return JSON.
Basic information: uid, href, name, membership, email, avg_email & photo_visible
Returns the all users' uid, URL, full name, email and if they allow sharing mail and profile picture.
This endpoint is also available externally: https://people.debolk.nl/persons
Every user
none
[..., {"uid": "peter", "href": "https://blip.i.bolkhuis.nl/persons/peter", "email": "peter@nieuwedelft.nl", "name": "Peter Dummy", "avg_email": "true": photo_visible: "false"}, ...]
Returns all the attributes of all Persons, without the data they specified not to be shared.
Only members
none
[..., {
"uid": "pdummy",
"initials": "P",
"firstname": "Peter",
"surname": "Dummy",
"email": "pdummy@debolk.nl",
"mobile": "06-123456789",
"phone_emergency": "0031229218245",
"pronouns": "she/they",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"membership": "lid",
"inauguration_date": "2064-09-11",
"institution": "TU Delft & Leiden University",
"iva": "false",
"dead": "false",
"photo_visible": "true",
"avg": "true",
"avg_address": "false",
"avg_dob": "false",
"avg_institution": "true",
"avg_programme": "false",
"avg_email": "true",
"avg_phone": "true"
"avg_phone_emergency": "true",
"avg_pronouns": "true"
}, ...]
Returns the users' profile pictures. Note: to prevent crashing, the server stops processing after 164 pictures have been collected.
Clients should implement a method to collect pictures after 164 pictures have been received.
This endpoint is also available externally: https://people.debolk.nl/persons/photo?users={uid1},{uid2},{uid3},...
Every user
users - included in the url
Accepts JSON that describes a new user, creates it in the LDAP and returns the data if successful.
Only the board & the IT team
All writeable Person attributes
{
"uid": "pdummy",
"initials": "P",
"firstname": "Peter",
"surname": "Dummy",
"email": "pdummy@debolk.nl",
"mobile": "06-123456789",
"address": "Buitenwatersloot 1-3\r\n2613 TA, Delft"
"phone_emergency": "0031229218245",
"dateofbirth": "1960-10-27",
"pronouns": "she/they",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"membership": "lid",
"inauguration_date": "2064-09-11",
"institution": "TU Delft & Leiden University",
"programme": "Life, Science & Technology",
"iva": "false",
"dead": "false",
"photo_visible": "true",
"avg": "true",
"avg_address": "false",
"avg_dob": "true",
"avg_institution": "true",
"avg_programme": "false",
"avg_email": "true",
"avg_phone": "true"
"avg_phone_emergency": "true",
"avg_pronouns": "true"
}
Returns the basic information about the Person specified. Replace {uid} with their uid.
This endpoint is also available externally: https://people.debolk.nl/person/{uid}
Every user
user id
{
"uid": "peter",
"initials": "P",
"email": "pdummy@debol.nl",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"avg_email": "true",
"photo_visible": "false"
}
Deletes the specified person from the LDAP.
Only the board & the IT team
user id
Returns all the information about a Person.
Only members
user id
{
"uid": "pdummy",
"initials": "P",
"firstname": "Peter",
"surname": "Dummy",
"email": "pdummy@debolk.nl",
"mobile": "06-123456789",
"address": "Buitenwatersloot 1-3\r\n2613 TA, Delft"
"phone_emergency": "0031229218245",
"dateofbirth": "1960-10-27",
"pronouns": "she/they",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"membership": "lid",
"inauguration_date": "2064-09-11",
"institution": "TU Delft & Leiden University",
"programme": "Life, Science & Technology",
"iva": "false",
"dead": "false",
"photo_visible": "true",
"avg": "true",
"avg_address": "false",
"avg_dob": "true",
"avg_institution": "true",
"avg_programme": "false",
"avg_email": "true",
"avg_phone": "true"
"avg_phone_emergency": "true",
"avg_pronouns": "true"
}
Returns the user's profile picture.
This endpoint is also available externally: https://people.debolk.nl/person/{uid}/photo
Every user
user id
Accepts a JSON that describes the user's new information. Not supplied parameters are ignored.
This endpoint returns the complete new information for the Person.
Only the board & the IT team
All writeable Person attributes
{
"uid": "pdummy",
"initials": "P",
"firstname": "Peter",
"surname": "Dummy",
"email": "pdummy@debolk.nl",
"mobile": "06-123456789",
"address": "Buitenwatersloot 1-3\r\n2613 TA, Delft"
"phone_emergency": "0031229218245",
"dateofbirth": "1960-10-27",
"pronouns": "she/they",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"membership": "oud lid",
"inauguration_date": "2064-09-11",
"resignation_letter_date": "2082-10-27",
"resignation_date": "2082-11-01"
"institution": "TU Delft & Leiden University",
"programme": "Life, Science & Technology",
"iva": "false",
"dead": "false",
"photo_visible": "true",
"avg": "true",
"avg_address": "false",
"avg_dob": "true",
"avg_institution": "true",
"avg_programme": "false",
"avg_email": "true",
"avg_phone": "true"
"avg_phone_emergency": "true",
"avg_pronouns": "true"
}
Accepts a JSON that describes the user's new password.
Every user, but only their own password.
user id, old_password & new_password
200 - Successfully changed melody's password.
Resets a user's password in the same way as when the account is created.
Only the Board & the IT team.
none
200 - Successfully reset melody's password.
Returns the basic information on all Persons with one of the following membership stati:
lid, kandidaatlid, oud lid, lid van verdienste, erelid
This endpoint is also available externally: https://people.debolk.nl/members
Every user
none
[..., {
"uid": "peter",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"avg_email": "false",
"photo_visible", "true",
"membership": "lid"
}, ...]
Returns all information on all Persons with one of the following membership stati: lid, kandidaatlid, oud lid, lid van verdienste, erelid
Only members
none
[..., {
"uid": "pdummy",
"initials": "P",
"firstname": "Peter",
"surname": "Dummy",
"email": "pdummy@debolk.nl",
"mobile": "06-123456789",
"phone_emergency": "0031229218245",
"pronouns": "she/they",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"membership": "lid",
"inauguration_date": "2064-09-11",
"institution": "TU Delft & Leiden University",
"iva": "false",
"dead": "false",
"photo_visible": "true",
"avg": "true",
"avg_address": "false",
"avg_dob": "false",
"avg_institution": "true",
"avg_programme": "false",
"avg_email": "true",
"avg_phone": "true"
"avg_phone_emergency": "true",
"avg_pronouns": "true"
}, ...]
Returns the basic information about the current members (lid, kandidaatlid, lid van verdienste, erelid)
This endpoint is also available externally: https://people.debolk.nl/members/current
Every user
none
[..., {
"uid": "peter",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"avg_email": "false",
"photo_visible", "true",
"membership": "lid"
}, ...]
Returns basic information about the past members
Only members
none
[..., {
"uid": "peter",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"avg_email": "false",
"photo_visible", "true",
"membership": "oud lid"
}, ...]
Return the basic information about the candidate members.
This endpoint is also available externally: https://people.debolk.nl/members/candidate
Alleen leden
none
[..., {
"uid": "peter",
"href": "https://people.i.bolkhuis.nl/persons/pdummy",
"name": "Peter Dummy",
"avg_email": "false",
"photo_visible", "true",
"membership": "kandidaatlid"
}, ...]