|
@@ -7,12 +7,20 @@
|
|
|
|
|
|
|
|
## 1. Purpose
|
|
## 1. Purpose
|
|
|
|
|
|
|
|
-A C++20 REST API service that fronts `smartbotic-database` (a gRPC document +
|
|
|
|
|
-vector store) for **n8n workflows**. It stores:
|
|
|
|
|
|
|
+A C++20 **general-purpose, client-agnostic** REST API service that fronts
|
|
|
|
|
+`smartbotic-database` (a gRPC document + vector store). Any HTTP client can use
|
|
|
|
|
+it; **n8n workflows are the primary and most-used consumer**, but the API,
|
|
|
|
|
+`openapi.json`, and `llms.txt` are designed for arbitrary clients (agentic tools,
|
|
|
|
|
+custom services, scripts) — nothing in the surface is n8n-specific. It stores:
|
|
|
|
|
|
|
|
- **Vectors for RAG** — embeddings + payload, with cosine similarity search.
|
|
- **Vectors for RAG** — embeddings + payload, with cosine similarity search.
|
|
|
- **JSON for everything else** — arbitrary documents with full CRUD.
|
|
- **JSON for everything else** — arbitrary documents with full CRUD.
|
|
|
|
|
|
|
|
|
|
+Design implications of being client-agnostic: standard REST semantics and HTTP
|
|
|
|
|
+status codes (no client-specific envelopes), a discoverable/self-describing
|
|
|
|
|
+surface (`/openapi.json`, `/llms.txt`), and configurable CORS so browser-based
|
|
|
|
|
+and cross-origin clients work alongside server-side callers like n8n.
|
|
|
|
|
+
|
|
|
It adds bearer authentication (a single key is sufficient) and a small React
|
|
It adds bearer authentication (a single key is sufficient) and a small React
|
|
|
admin web UI (login, DB stats, full CRUD on JSON content, RAG search tester,
|
|
admin web UI (login, DB stats, full CRUD on JSON content, RAG search tester,
|
|
|
settings editor). It produces the `smartbotic-vectorapi` binary and Debian 13
|
|
settings editor). It produces the `smartbotic-vectorapi` binary and Debian 13
|