pfaffman
(Jay Pfaffman)
11. März 2026 um 14:33
1
Dies funktionierte vor zwei Tagen für einen gehosteten Kunden nicht mehr:
HTTP_STATUS=$(curl -s -o /tmp/discourse_response.json -w \"%{http_code}\" \
-X POST \"https://HOSTNAME/admin/plugins/discourse-data-explorer/queries/3/run\" \
-H \"Content-Type: multipart/form-data;\" \
-H \"Api-Key: $DISCOURSE_API_KEY\" \
-H \"Api-Username: $DISCOURSE_API_USER\" \
-F \"limit=ALL\")
Ich sehe eine erfolgreiche Verwendung dieses Schlüssels:
Er hat nur Lesezugriffsberechtigungen für Abfragen:
Ich habe noch einmal überprüft, ob sich die URL der Abfrage erneut geändert hat, indem ich die Discourse-API umgekehrt analysiert habe .
Dann habe ich einen neuen globalen Schlüssel generiert und erhalte immer noch einen 400-Fehler.
Ich weiß nicht, was das Problem sein könnte.
Falco
(Falco)
11. März 2026 um 14:48
2
400 oder 406?
Versuchen Sie, einen Accept: application/json-Header hinzuzufügen.
pfaffman
(Jay Pfaffman)
11. März 2026 um 15:15
3
Warten Sie. Ich habe es gefunden:
{"errors":["Sie haben ungültige Parameter für die Anforderung übergeben: limit"],"error_type":"invalid_parameters"}
Das Problem ist also -F "limit=ALL"
Meine Frage ist nun, warum das nicht mehr funktioniert hat?
1 „Gefällt mir“
pfaffman
(Jay Pfaffman)
11. März 2026 um 17:29
5
Vielen Dank. Aber ich konnte limit=ALL selbst als Administrator mit einem globalen Schlüssel nicht verwenden. Der Client muss alle Daten herunterladen (ich bin mir derzeit nicht klar darüber, was das Limit ist oder wie groß die Menge wahrscheinlich sein wird).
Falco
(Falco)
11. März 2026 um 17:41
6
Das ist genau das, was der PR erreichen sollte!
Optionen sind Backups oder die Paginierung mit
select * from table where id > (:page * 5000)
damit Sie es in Blöcken zu je 5k erhalten.
pfaffman
(Jay Pfaffman)
11. März 2026 um 17:42
7
Es funktioniert!
Ist das Maximum für eine normale Abfrage, die ich durchführe, 5000? Wenn ja, bin ich definitiv auf der sicheren Seite.
Falco
(Falco)
11. März 2026 um 17:43
8
pfaffman:
Es funktioniert!
pfaffman:
Ist das Maximum für eine normale Abfrage, die ich mache, 5000? Wenn ja, bin ich auf jeden Fall auf der sicheren Seite.
Sieht so aus, als wären es 10k
register_svg_icon "pencil"
register_svg_icon "upload"
add_admin_route "explorer.title", "discourse-data-explorer", use_new_show_route: true
module ::DiscourseDataExplorer
PLUGIN_NAME = "discourse-data-explorer"
# This should always match the max value for the
# data_explorer_query_result_limit site setting
QUERY_RESULT_MAX_LIMIT = 10_000
end
require_relative "lib/discourse_data_explorer/engine"
after_initialize do
GlobalSetting.add_default(:max_data_explorer_api_reqs_per_10_seconds, 2)
# Available options:
# - warn
# - warn+block
2 „Gefällt mir“
pfaffman
(Jay Pfaffman)
11. März 2026 um 17:46
9
Vielen Dank. Es sieht so aus, als hätte ich diese unbegrenzte Option sowieso nicht gebraucht.
Ich war sehr zufrieden, dass ich herausgefunden habe, wie man Github Actions verwendet, um diese Abfrage täglich abzurufen und auf die FTP-Seite eines Anbieters hochzuladen. Sie ist in den letzten Wochen zweimal ausgefallen. Hoffentlich ist das das letzte Mal für eine lange Zeit!
1 „Gefällt mir“