Я немного гадает, но, думаю, что настройка CORS в данном случае не сработает. Источник (по крайней мере, из десктопного приложения Obsidian) — 'app://obsidian.md'. Я думаю, что CORS можно настроить в Discourse только для обработки HTTP-запросов.
@maxtim, вам нужно, чтобы это работало с мобильных устройств, или достаточно будет возможности публиковать в Discourse только с десктопного приложения? Опять же, немного гадая… насколько я понимаю, десктопное приложение построено на Electron. Оно работает на комбинации Chromium и Node.js. Возможно, вы сможете использовать node-fetch для выполнения серверных запросов к Discourse. Если это сработает, проблема с CORS будет решена, и вы сможете использовать FormData в запросах.