Este es el lugar para empezar: Build a plugin - Developer Documentation. Me gustaría enlazar a lo que había hecho, pero es uno de los pocos (ojalá el único) proyectos que no subí a Github antes de reinstalar el sistema operativo en mi ordenador la semana pasada.
Tendrás que averiguar cómo hacerlo con Node. Hay un buen ejemplo en Ruby aquí: discourse_api/examples/upload_file.rb at main · discourse/discourse_api · GitHub. Llama a: discourse_api/lib/discourse_api/api/uploads.rb at main · discourse/discourse_api · GitHub.