Bestätigung des API-Zugriffs auf die Site-Einstellungen für die Authoring-Grenze

Ich arbeite an einer Integration, die Begleitthemen über die API in Discourse veröffentlicht und synchronisiert. Für die Einrichtungsdiagnose möchte ich die aktuellen Autorengrenzen des Forums lesen, damit die Integration den Inhalt vorab prüfen kann, bevor sie versucht, Themen zu erstellen oder zu aktualisieren.

Die Einstellungen, auf die ich Zugriff prüfen möchte, sind:

min_topic_title_length
max_topic_title_length
min_first_post_length
min_post_length
max_post_length
max_tags_per_topic
max_tag_length
tagging_enabled
create_tag_allowed_groups
tag_topic_allowed_groups

Ich habe zuerst /site.json überprüft, das zugänglich und nützlich für öffentliche Funktionshinweise ist, aber es scheint diese konkreten Einstellungen für Autorengrenzen nicht offenzulegen.

Mit einem API-Schlüssel für einen Nicht-Admin-Bot-Benutzer gaben diese 404 zurück:

/site_settings.json
/admin/site_settings.json
/admin/site_settings

Nachdem ich den Bot-Benutzer zum Administrator gemacht hatte, funktionierten diese:

/admin/site_settings.json
/admin/site_settings

Verwendete Header:

Accept: application/json
Api-Key: ...
Api-Username: discussbridge-bot
X-Requested-With: XMLHttpRequest

/site_settings.json gab weiterhin 404 zurück.

Meine Fragen:

  1. Ist /admin/site_settings.json der erwartete API-Pfad zum Lesen der aktuellen Site-Einstellungen?
  2. Ist Administratorbenutzerberechtigung erforderlich, oder gibt es einen unterstützten schreibgeschützten/granularen API-Bereich dafür?
  3. Ist /site_settings.json veraltet, pluginabhängig oder soll es nicht existieren?
  4. Ist für Integrationen das empfohlene Muster, einen adminfähigen Diagnose-/Einrichtungsschlüssel zum Lesen von Einstellungen zu verwenden, während ein weniger privilegierter Veröffentlichungsschlüssel für die normale Synchronisation von Themen/Beiträgen genutzt wird?

Das Ziel ist es nicht, Einstellungen über die API zu ändern, sondern sie nur während der Einrichtungsdiagnose zu lesen, damit die Integration

  1. Es ist /admin/site_settings.json

  2. Du musst Administrator sein, außer bei Einstellungen, die client: true haben; diese findest du in /site/settings.json

Alle Einstellungen, die du benötigst, mit Ausnahme der letzten beiden, findest du in /site/settings.json.

Bei erlaubten Gruppen funktioniert der Mechanismus jedoch anders: Wenn du /site.json als bestimmter Benutzer anforderst, kannst du can_tag_topics und can_create_tags überprüfen.

  1. Soweit ich weiß, hat /site_settings.json nie existiert.

  2. Ich denke, dass du für deinen speziellen Anwendungsfall mit einem normalen Benutzer auskommst und das Muster unter Nr. 2 verwendest.