Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / API referansı

API

Paylaşılan sunucu yolları API

Modüllerin dışında src/cluster_erp/server/routes içinde tanımlı HTTP uç noktaları: notlar, ekler, e-posta, sohbet, taraflar ve kiracı alanları için 40 yol.

Bu sayfa src/cluster_erp/server/routes/ klasörünün tanımladığı ve create_app tarafından doğrudan eklenen 40 uç noktayı listeler (src/cluster_erp/server/app.py:1433-1440). Bunlar bir modülün parçası değildir; bu bağlamada require_app bağımlılığı eklenmez. Aynı klasörde currencies modülünün bağladığı currencies.py ile Sistem uç noktaları sayfasında belgelenen signup.py ve vendor.py de bulunur. Bu yolların arkasındaki mekanizma Paylaşılan sunucu yolları sayfasında anlatılır.

Grup olguları

Öğe Değer Kaynak
Temel yollar /api/v1/notes, /api/v1/attachments, /api/v1/email, /api/v1/chat, /api/v1/parties, /api/v1/{module}/_fields, /api/v1 Uç nokta özeti bölümünde listelenen yönlendirici tanımları
Uç noktalar 40; yedi dosyadaki yol dekoratörlerinden sayıldı src/cluster_erp/server/routes/
Kimlik doğrulama Bearer başlığı veya oturum çerezi; bkz. Kimlik doğrulama ve başlıklar src/cluster_erp/modules/auth/guards.py:85-167
Yetki koruması 40 yolun 39 tanesi require_permission bildirir; GET /api/v1/_overlay get_current_user bağımlılığına dayanır src/cluster_erp/server/routes/tenant_fields.py:446-449
Hata biçimi Bkz. Hatalar src/cluster_erp/server/error_handler.py:33-46

Uç nokta özeti

create_app tarafından eklenen src/cluster_erp/server/routes/ dosyası başına bir satır.

Dosya Yönlendiriciler Uç noktalar Yönlendirici kaynağı
notes.py router (/api/v1/notes) 6 src/cluster_erp/server/routes/notes.py:14
attachments.py router (/api/v1/attachments) 8 src/cluster_erp/server/routes/attachments.py:27
email.py router (/api/v1/email) 3 src/cluster_erp/server/routes/email.py:22
chat.py router (/api/v1/chat) 1 src/cluster_erp/server/routes/chat.py:23
party_composite.py router (/api/v1/parties) 1 src/cluster_erp/server/routes/party_composite.py:27
party_roles.py router (/api/v1/parties) 3 src/cluster_erp/server/routes/party_roles.py:31
tenant_fields.py router (/api/v1/{module}/_fields), overlay_router (/api/v1) 18 src/cluster_erp/server/routes/tenant_fields.py:42, src/cluster_erp/server/routes/tenant_fields.py:43

Notlar uç noktaları

Varlık türü ve kimlikle herhangi bir kayda bağlanan notlar. Her yol ayrıca _assert_parent_readable ile üst varlığın okuma kodunu denetler (src/cluster_erp/server/routes/notes.py:17-29).

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/notes/{entity_type}/{entity_id} list_notes note.read yok yok list[NoteRead] 200 (varsayılan) src/cluster_erp/server/routes/notes.py:33
GET /api/v1/notes/count/{entity_type}/{entity_id} count_notes note.read yok yok dict 200 (varsayılan) src/cluster_erp/server/routes/notes.py:46
POST /api/v1/notes/ create_note note.create NoteCreate yok NoteRead 201 src/cluster_erp/server/routes/notes.py:59
PUT /api/v1/notes/{note_id} update_note note.update NoteUpdate yok NoteRead 200 (varsayılan) src/cluster_erp/server/routes/notes.py:71
POST /api/v1/notes/bulk-delete bulk_delete_notes note.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/server/routes/notes.py:89
DELETE /api/v1/notes/{note_id} delete_note note.delete yok yok yok 204 src/cluster_erp/server/routes/notes.py:104

Ekler uç noktaları

Herhangi bir kaydın dosya ekleri: yükleme, sayma, indirme, listeleme, dosyayı değiştirme, güncelleme, toplu kullanımdan kaldırma ve kullanımdan kaldırma. Her yol ayrıca üst varlığın okuma yetkisini ister (src/cluster_erp/server/routes/attachments.py:29-57).

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
POST /api/v1/attachments/ upload_attachment attachment.create çok parçalı entity_type, entity_id, description, file yok AttachmentRead 201 src/cluster_erp/server/routes/attachments.py:62
GET /api/v1/attachments/count/{entity_type}/{entity_id} count_attachments attachment.read yok yok dict 200 (varsayılan) src/cluster_erp/server/routes/attachments.py:88
GET /api/v1/attachments/{attachment_id}/download download_attachment attachment.download yok yok Response 200 (varsayılan) src/cluster_erp/server/routes/attachments.py:102
GET /api/v1/attachments/{entity_type}/{entity_id} list_attachments attachment.read yok yok list[AttachmentRead] 200 (varsayılan) src/cluster_erp/server/routes/attachments.py:124
PUT /api/v1/attachments/{attachment_id}/replace replace_attachment_file attachment.update çok parçalı file yok AttachmentRead 200 (varsayılan) src/cluster_erp/server/routes/attachments.py:138
PUT /api/v1/attachments/{attachment_id} update_attachment attachment.update AttachmentUpdate yok AttachmentRead 200 (varsayılan) src/cluster_erp/server/routes/attachments.py:165
POST /api/v1/attachments/bulk-delete bulk_delete_attachments attachment.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/server/routes/attachments.py:184
DELETE /api/v1/attachments/{attachment_id} delete_attachment attachment.delete yok yok yok 204 src/cluster_erp/server/routes/attachments.py:202

E-posta uç noktaları

Alıcı çözümleme, kayıtları e-postayla gönderme ve serbest e-posta gönderme.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
POST /api/v1/email/resolve resolve_emails email.send EmailResolveRequest yok EmailResolveResponse 200 (varsayılan) src/cluster_erp/server/routes/email.py:95
POST /api/v1/email/send-records send_records email.send EmailSendRecordsRequest yok EmailSendResponse 200 (varsayılan) src/cluster_erp/server/routes/email.py:122
POST /api/v1/email/send send_email email.send EmailSendRequest yok EmailSendResponse 200 (varsayılan) src/cluster_erp/server/routes/email.py:187

Sohbet uç noktaları

Niyet motoruyla bir sohbet iletisini yanıtlayan tek yol; bkz. Niyet asistanı.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
POST /api/v1/chat/message chat_message dashboard.read ChatRequest yok ChatResponse 200 (varsayılan) src/cluster_erp/server/routes/chat.py:1191

Bileşik taraf oluşturma uç noktaları

Bir tarafı rolleriyle tek istekte oluşturan tek yol; PartyCompositeCreate üzerine kurulur (src/cluster_erp/server/routes/party_composite.py:40-51).

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
POST /api/v1/parties/composite create_party_composite party.create PartyCompositeCreate yok dict 201 src/cluster_erp/server/routes/party_composite.py:54

Taraf rolleri uç noktaları

Var olan bir tarafın müşteri, tedarikçi veya çalışan rolünü açan üç yol.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
POST /api/v1/parties/{party_id}/roles/customer enable_customer_role customer.create dict[str, Any] yok dict 201 src/cluster_erp/server/routes/party_roles.py:58
POST /api/v1/parties/{party_id}/roles/supplier enable_supplier_role supplier.create dict[str, Any] yok dict 201 src/cluster_erp/server/routes/party_roles.py:80
POST /api/v1/parties/{party_id}/roles/employee enable_employee_role employee.create dict[str, Any] yok dict 201 src/cluster_erp/server/routes/party_roles.py:102

Kiracı alanları uç noktaları

İki yönlendirici: alan tanımları, alan ayarları ve alan kataloğu için /api/v1/{module}/_fields altındaki router ve /api/v1/_overlay için overlay_router. module yol bölümü bildirilen tanımlara karşı denetlenir (src/cluster_erp/server/routes/tenant_fields.py:1-9); bkz. Kiracı alanları.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/{module}/_fields/definitions/ list_definitions tenant_field_definition.read yok module, entity_type list[FieldDefinitionRead] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:150
POST /api/v1/{module}/_fields/definitions/ create_definition tenant_field_definition.create FieldDefinitionCreate module FieldDefinitionRead 201 src/cluster_erp/server/routes/tenant_fields.py:167
GET /api/v1/{module}/_fields/definitions/{definition_id} get_definition tenant_field_definition.read yok module FieldDefinitionRead 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:181
PATCH /api/v1/{module}/_fields/definitions/{definition_id} update_definition tenant_field_definition.update FieldDefinitionUpdate module FieldDefinitionRead 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:197
POST /api/v1/{module}/_fields/definitions/{definition_id}/actions/close close_definition tenant_field_definition.update yok module FieldDefinitionRead 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:215
POST /api/v1/{module}/_fields/definitions/{definition_id}/actions/reopen reopen_definition tenant_field_definition.update yok module FieldDefinitionRead 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:232
GET /api/v1/{module}/_fields/settings/ list_settings tenant_field_setting.read yok module, entity_type list[dict[str, Any]] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:252
GET /api/v1/{module}/_fields/settings/{setting_id} get_setting tenant_field_setting.read yok module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:273
PATCH /api/v1/{module}/_fields/settings/{setting_id} update_setting tenant_field_setting.update FieldSettingUpdate module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:294
GET /api/v1/{module}/_fields/catalog/ list_catalog tenant_field_catalog.read yok module list[dict[str, Any]] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:320
POST /api/v1/{module}/_fields/catalog/ create_catalog_entry tenant_field_catalog.create FieldCatalogCreate module dict[str, Any] 201 src/cluster_erp/server/routes/tenant_fields.py:334
GET /api/v1/{module}/_fields/catalog/{entry_id} get_catalog_entry tenant_field_catalog.read yok module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:348
PATCH /api/v1/{module}/_fields/catalog/{entry_id} update_catalog_entry tenant_field_catalog.update FieldCatalogUpdate module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:364
POST /api/v1/{module}/_fields/catalog/{entry_id}/actions/bind bind_catalog_entry tenant_field_catalog.update FieldCatalogBind module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:379
POST /api/v1/{module}/_fields/catalog/{entry_id}/actions/derive derive_catalog_entry tenant_field_catalog.update FieldCatalogDerive module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:397
POST /api/v1/{module}/_fields/catalog/{entry_id}/actions/close close_catalog_entry tenant_field_catalog.update yok module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:415
POST /api/v1/{module}/_fields/catalog/{entry_id}/actions/reopen reopen_catalog_entry tenant_field_catalog.update yok module dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:429
GET /api/v1/_overlay get_overlay oturum açmış kullanıcı (get_current_user) yok yok dict[str, Any] 200 (varsayılan) src/cluster_erp/server/routes/tenant_fields.py:446

Hata kodları

Tablo, yedi yol dosyasının attığı hata kodlarını modül sayfalarındaki aynı sözdizimi ağacı taramasıyla listeler. Koruma, yetkilendirme ve doğrulama hataları Hatalar sayfasında listelenir.

Kod HTTP durumu Atıldığı yer İlk konum
AUTH_PERMISSION_DENIED 403 `` src/cluster_erp/server/routes/attachments.py:55
FILE_NOT_FOUND_ON_DISK 404 `` src/cluster_erp/server/routes/attachments.py:115
HTTP_404 404 `` src/cluster_erp/server/routes/party_roles.py:54
HTTP_422 422 `` src/cluster_erp/server/routes/party_composite.py:37
PARTY_ASSIGNMENT_INCOMPLETE 422 `` src/cluster_erp/server/routes/party_composite.py:134
RESOURCE_NOT_FOUND 404 `` src/cluster_erp/server/routes/attachments.py:112
SMTP_ERROR 502 `` src/cluster_erp/server/routes/email.py:184
SMTP_NOT_CONFIGURED 503 `` src/cluster_erp/server/routes/email.py:132

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13