Este é o lugar para começar: Build a plugin - Developer Documentation. Eu gostaria de linkar o que eu fiz, mas é um dos poucos (espero que o único) projetos que eu não enviei para o Github antes de reinstalar o sistema operacional no meu computador na semana passada.
Você terá que descobrir como fazer isso com o Node. Existe um bom exemplo em Ruby aqui: discourse_api/examples/upload_file.rb at main · discourse/discourse_api · GitHub. Ele chama: discourse_api/lib/discourse_api/api/uploads.rb at main · discourse/discourse_api · GitHub.