Richtig, Obsidian ist eine Electron-App, die lokal läuft. Sie verwendet lokalen Speicher, sodass der API-Schlüssel auf dem Gerät des Benutzers verbleibt.
Es gibt eine Lösung für das CORS-Problem. Ich habe sie bisher nur auf meinem Desktop-Computer getestet. Außerdem ist Discourse großartig!
Der Code, den ich oben gepostet habe, musste geändert werden zu:
import DiscoursePlugin from "./main";
import { requestUrl, TFile } from "obsidian";
//...
const response = await requestUrl({
url: url,
method: "POST",
contentType: "application/json",
body,
headers,
});
//...
Die nächste Frage wird sich darum drehen, ob Benutzer User-API-Schlüssel von der App anfordern können, aber das ist ein separates Problem.