# End to end: HTTP, real PostgreSQL + pgvector, the shipped application.yml schema from init.sql: [document_chunks_embedding_idx, document_chunks_pkey] --- POST /api/ingest (acme, then globex, then acme again) --- {"filename":"acme-handbook.pdf","status":"ingested","chunksWritten":4,"chunksReplaced":0} {"filename":"globex-manual.pdf","status":"ingested","chunksWritten":1,"chunksReplaced":0} {"filename":"acme-handbook.pdf","status":"skipped","chunksWritten":0,"chunksReplaced":0} --- what is in the table --- rows: 5 rows per tenant: [acme=4, globex=1] metadata of one row: {"doc_type": "general", "tenant_id": "globex", "chunk_index": 0, "page_number": 1, "source_file": "globex-manual.pdf", "total_chunks": 1} --- POST /api/query --- tenantId acme: {"answer":"Full-time employees are entitled to 20 working days\nof annual leave per calendar year.","sources":[{"file":"acme-handbook.pdf","page":2,"rerankScore":8,"preview":"4.1 Annual Leave Entitlement. Full-time employees are entitled to 20 working day"},{"file":"acme-handbook.pdf","page":3,"rerankScore":6,"preview":"4.3 Requesting Leave. All leave requests must be submitted through the HR portal"},{"file":"acme-handbook.pdf","page":1,"rerankScore":6,"preview":"Acme Employee Handbook 2026\n\n3.5 Probationary Period. During the three month pro"},{"file":"acme-handbook.pdf","page":4,"rerankScore":4,"preview":"6.1 Expenses. Receipts are required for every expense above 50 euros.\nClaims mus"}],"grounded":true,"status":"answered"} tenantId globex: {"answer":"Full-time staff are entitled to 25 working days\nof annual leave per calendar year.","sources":[{"file":"globex-manual.pdf","page":1,"rerankScore":6,"preview":"Globex Staff Manual 2026\n\n4.1 Annual Leave Entitlement. Full-time staff are enti"}],"grounded":true,"status":"answered"} --- GET /actuator/prometheus (only the rag_ series; the timer's sum and max are left out because they change every run) --- rag_chunks_ingested_total 5.0 rag_context_chunks_count 2 rag_context_chunks_sum 5.0 rag_context_chunks_max 4.0 rag_ingestion_skipped_total 1.0 rag_queries_total{status="answered"} 2.0 rag_query_duration_seconds_count{status="answered"} 2