factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
CSV- und JSON-Dateien einem API-Schema zuordnen, prüfen und einspeisen.
Translation pending
DataTypeScript · JavaScriptGitHub @bks-technologiesOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
CSV- oder JSON-Datei einlesen, Spalten den Feldern einer Ziel-API zuordnen, Fehler vor dem Import sichtbar machen und die gültigen Datensätze paketweise an einen REST-Endpunkt übertragen. Eigenentwicklung von BKS Technologies. Das Zielsystem ist simuliert.Read the full README ↗
CSV- oder JSON-Datei einlesen, Spalten den Feldern einer Ziel-API zuordnen, Fehler vor dem Import sichtbar machen und die gültigen Datensätze paketweise an einen REST-Endpunkt übertragen. Eigenentwicklung von BKS Technologies. Das Zielsystem ist simuliert.
| Zuordnung | Prüfung | Übertragung |
|---|---|---|
; , Tab |),
Anführungszeichen und Zeilenumbrüchen im Feld (RFC 4180) und BOM. JSON als Array oder als Objekt
mit Array; verschachtelte Felder werden zu adresse.plz. Bis 10 MB. Die Datei wird nur im
Browser gelesen.Kdnr_01 → customer_id). Pflichtfelder ohne Quelle sperren den
nächsten Schritt.POST /api/ingest. Der Endpunkt prüft
jedes Paket mit demselben Schema noch einmal und antwortet je Zeile. Bei 5xx und 429 bis zu drei
Versuche mit Backoff, Abbruch jederzeit. Der Schalter „Ausfall simulieren“ erzwingt beim ersten
Versuch ein 503. Ergebnis, Protokoll, abgewiesene Zeilen und Exporte (API-JSON, gemappte CSV,
Fehlerbericht).npm install
npm run dev # http://localhost:3000
npm test # Vitest: Parser, Zuordnung, Prüfung, Beispieldatei
npm run lint
npm run build
node scripts/beispieldaten.mjs # Beispieldateien in public/ neu erzeugen
Node 20 oder neuer. Keine Umgebungsvariablen, keine Datenbank.
lib/schema.ts Zielschema: Felder, Typen, Pflicht, Aliasse, Endpunkt, Paketgröße
lib/parse.ts CSV- und JSON-Parser
lib/mapping.ts Zuordnungsvorschlag, Anwenden der Zuordnung plus Korrekturen
lib/validate.ts Prüfregeln und Umwandlung in typisierte API-Objekte (Browser und Server)
lib/push-engine.ts Pakete, Wiederholung, Abbruch, Zusammenfassung
lib/export.ts CSV-Erzeugung und Download
lib/state/mapper-store.tsx useReducer und Context; das Prüfergebnis wird abgeleitet, nie gespeichert
lib/legal.ts Firmenangaben für Impressum und Datenschutz (Quelle: website/lib/site.ts)
app/api/ingest/route.ts simuliertes Zielsystem: prüft, antwortet, speichert nichts
components/ui/ Button, Card, Badge, Select, Stat, Switch, Stepper
components/mapper/ Dropzone, MappingPanel, PreviewTable, PushPanel, ProtocolLog, MapperApp
Anderes Zielsystem: ein neues TargetSchema in lib/schema.ts anlegen und an
<MapperProvider schema={…}> übergeben. Für einen echten Endpunkt endpoint ändern und die
Antwort auf { received, accepted, rejected: [{ row, reasons }] } abbilden (lib/push-engine.ts).
next.config.ts (nur eigene Quellen)./api/ingest: höchstens 1 MB und 500 Datensätze je Anfrage, 120 Anfragen pro Minute und IP
je Instanz, kein Speichern./impressum und
/datenschutz (Datenschutz ist als Entwurf gekennzeichnet).datenmapper.bkstechnologies.de im Projekt hinzufügen, bei IONOS einen CNAME
datenmapper auf den Wert von Vercel setzen. MX-Einträge nicht anfassen./impressum, /datenschutz.Die Beispieldateien in public/ sind erfunden (Domains auf .example) und enthalten sieben
absichtlich fehlerhafte Zeilen.