Skip to content

Core Data API

Repo: savvydealer-adam/core-data-api · Path: C:/Users/adam/openclaw/core-data-api (not cloned to ~/) · Owner: Adam Status: Active dev · % Done: 40 · Last commit: 2026-02-28 Deployed: not deployed (local FastAPI on port 8091)

What it is

FastAPI canonical entity storage with upsert/read endpoints and file-backed JSONL persistence. The internal data layer meant to replace Freshdesk/notes with API-native services.

Why it exists

SavvyDealer outgrew Freshdesk. Core Data API is the canonical bridge layer — all source adapters write normalized records here so downstream tools share one source of truth instead of re-scraping or re-querying vendor systems.

How it works

FastAPI + JSONL persistence + OpenAPI docs. - POST /v1/{entity}/upsert and bulk_upsert - GET /v1/{entity}/{id} and list endpoint - Entities: client, store, person, role, process, process_step, issue_type, sop, decision, ticket, call, document, kpi - Runs on localhost:8091 - Contract-first: OpenAPI docs at /docs

What's done

  • v1 entity model locked in
  • Upsert/read endpoints live
  • Workflow transitions, SLA endpoints, reply-draft approval flow
  • OpenAPI contract published

What's next

  • adapter-freshdesk to ingest and sync normalized records from Freshdesk
  • Freshdesk writeback (gated by FRESHDESK_WRITEBACK_ENABLED)
  • Migrate file-backed JSONL to a real DB once contract stabilizes

Where the code lives

  • C:/Users/adam/openclaw/core-data-api/ (needs clone — lives under openclaw/ tree)
  • Entry: app/main.py, run with uvicorn app.main:app --port 8091
  • Part of savvy-platform-suite umbrella

Integrations

  • Fronted by unified-gateway (port 8090)
  • Paired with Knowledge API (port 8092) for semantic retrieval
  • Downstream: AI CRM, DealerPulse, Contracts, Ticket System can all read/write canonical entities

Don't rebuild this — extend it

If you need to store clients, stores, people, tickets, SOPs, or decisions in any internal tool, upsert into Core Data API instead of standing up a new DB.