Repository navigation
Referans Editor
Cavanshirpro edited this page Sep 19, 2026
·
1 revision
English · Türkçe · Languages / Diller
Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe
Menü ve çalışma akışları Editör çalışma alanında; ağ/session ayarları remote rehberde açıklanır. Aşağıdakiler kaynakta tanımlanan tercih alanlarıdır; süre adları Ms ile bitiyorsa milisaniye kullanılır.
int requestTimeoutMs = 60'000;
int authenticationTimeoutMs = 120'000;
int uploadTimeoutMs = 300'000;
int downloadTimeoutMs = 300'000;
int safeGetRetries = 1;
int retryBaseDelayMs = 750;
int maxResponseMiB = 8;
bool confirmDiscard = true;
bool restoreWindowLayout = true;
bool rightDragPan = true;
double graphZoomSensitivity = 1.0;
QStringList serverHistory;Kaynakta ayarların yüklenmesi/kaydedilmesinde uygulanan sınırlar:
requestTimeoutMs = qBound(MinimumTimeoutMs, requestTimeoutMs, MaximumTimeoutMs);
authenticationTimeoutMs = qBound(MinimumTimeoutMs, authenticationTimeoutMs, MaximumTimeoutMs);
uploadTimeoutMs = qBound(MinimumTimeoutMs, uploadTimeoutMs, MaximumTimeoutMs);
downloadTimeoutMs = qBound(MinimumTimeoutMs, downloadTimeoutMs, MaximumTimeoutMs);
safeGetRetries = qBound(0, safeGetRetries, 3);
retryBaseDelayMs = qBound(100, retryBaseDelayMs, 10'000);
maxResponseMiB = qBound(1, maxResponseMiB, 64);
graphZoomSensitivity = std::isfinite(graphZoomSensitivity) ? qBound(0.25, graphZoomSensitivity, 3.0) : 1.0;
QStringList sanitizedHistory;
for (const auto &entry : std::as_const(serverHistory)) {
const QUrl url(entry);
if (entry.size() > 2048 || !url.isValid() || url.host().isEmpty()
|| !url.userInfo().isEmpty() || url.hasQuery() || url.hasFragment()
|| (url.scheme() != QStringLiteral("https") && url.scheme() != QStringLiteral("http"))) {
continue;
}
const auto normalized = url.toString();
if (!sanitizedHistory.contains(normalized)) {
sanitizedHistory.append(normalized);
}
if (sanitizedHistory.size() == 10) {
break;
}
}
serverHistory = sanitizedHistory;Şablonlar başlangıç yapılandırması üretir; gerçek iş alanının bütün kurallarını tamamlamaz. Üretilen config’i çalıştırmadan önce DB/env/izinleri inceleyin.
| ID | Ad | Kategori | Resource yolu | RPC adı |
|---|---|---|---|---|
secure-crud |
Secure Operations Hub | Foundation | operations/records |
operations.summary |
saas-control-plane |
SaaS Control Plane | Platform | tenants/subscriptions |
tenants.subscription-summary |
event-orders |
Event-Driven Commerce | Commerce | commerce/orders |
commerce.order-summary |
analytics-read-model |
Analytics Read Model | Data | analytics/snapshots |
analytics.status-rollup |
plugin-registry |
Forge Plugin Registry | Editor | editor/plugins |
editor.plugin-summary |
python-enterprise-gateway |
Python Enterprise Gateway | Integration | integrations/jobs |
integrations.job-summary |
media-operations |
Media Operations | Content | media/jobs |
media.processing-summary |
ledger-workflow |
Audited Ledger Workflow | Finance | ledger/batches |
ledger.batch-summary |
Plugin API 2 için derleyici arayüzü. Yükleme/manifest/ZIP güven sınırları Plugin kılavuzundadır.
#pragma once
#include <QAction>
#include <QDockWidget>
#include <QJsonObject>
#include <QObject>
#include <QString>
namespace ForgeEditor {
inline constexpr int PluginApiVersion = 2;
class EditorHost {
public:
virtual ~EditorHost() = default;
virtual void addPaletteComponent(const QString &label, const QString &collection, const QJsonObject &documentTemplate) = 0;
virtual void addGraphNodeType(const QString &label, const QString &type, const QJsonObject &defaultProperties) = 0;
virtual void addToolAction(QAction *action) = 0;
virtual void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dock) = 0;
virtual void showStatusMessage(const QString &message, int timeoutMs = 4000) = 0;
};
class IEditorPlugin {
public:
virtual ~IEditorPlugin() = default;
[[nodiscard]] virtual QString pluginId() const = 0;
[[nodiscard]] virtual QString displayName() const = 0;
[[nodiscard]] virtual int apiVersion() const = 0;
virtual bool initialize(EditorHost *host, QString *errorMessage) = 0;
virtual void shutdown() = 0;
};
} // namespace ForgeEditor
#define ForgeEditorPluginInterface_iid "dev.jsonapiforge.EditorPlugin/2.0"
Q_DECLARE_INTERFACE(ForgeEditor::IEditorPlugin, ForgeEditorPluginInterface_iid)Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.
Editor/editor/src/EditorSettings.hppEditor/editor/src/EditorSettings.cppEditor/editor/resources/templates/catalog.jsonEditor/editor/include/forgeeditor/IEditorPlugin.hpp