MIT IdentiBot is an open-source Discord bot written in Node.js that verifies individuals' affiliations with MIT, grants them roles in a Discord server, and stores information about them in a database backend.
- Create the
config
collection, which is where IdentiBot stores settings that require storage in a database. Create one document with each of the following_name
attributes:servers
, which is formatted as follows:
{
"_name": "servers",
"data": {
"<SERVER/GUILD ID>": {
"verification": {
"verifiedRole": "<ID OF ROLE TO ASSIGN TO USERS ONCE THEIR KERBEROS IDENTITY IS VERIFIED>",
"autochangeNickname": true,
"allowedAffiliations": [
"<ALLOWED AFFILIATIONS TO VERIFY A USER FOR THIS SERVER (one or more of 'student', 'faculty', 'staff', 'affiliate')>"
]
}
}
}
}
- [RECOMMENDED] Create an index for the
_name
attribute in theconfig
collection.
IdentiBot makes use of the following technology stack for core functionality:
Library | Functionality Provided |
---|---|
Express | Routing and middleware for the REST API |
Discord.js | Most interactions with the Discord API |
MongoDB | Database engine |
node-openid-client |
OpenID operations for identity verification |
yaml |
Parsing YAML (configuration files, etc.) |