{"openapi":"3.1.0","info":{"title":"takt — holoscope « Chaînes de valeur »","version":"0.1.2","description":"API of the holoscope of the Holon circle \"Chaînes de valeur\": analysis of the processing chains of a company (actions, flows, actors, costs, value-added / non-value-added steps). Every function of the web front is available through this API."},"tags":[{"name":"system","description":"Server state and self-description."},{"name":"chains","description":"Processing chains and their value-added / non-value-added indicators."}],"paths":{"/api/health":{"get":{"tags":["system"],"summary":"Liveness check","description":"Returns 200 with status \"ok\" while the server runs. No authentication.","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status","name","version"],"properties":{"status":{"type":"string","enum":["ok"]},"name":{"type":"string","description":"Application name (APP_NAME)."},"version":{"type":"string","description":"Software version, x.y.z (VERSION)."}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/version":{"get":{"tags":["system"],"summary":"Software version","description":"Name and version of the running software. No authentication.","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["name","version"],"properties":{"name":{"type":"string","description":"Application name (APP_NAME)."},"version":{"type":"string","description":"Software version, x.y.z (VERSION)."}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/chains":{"get":{"tags":["chains"],"summary":"List the chains","description":"Every chain known to the holoscope, with its data status (fictitious or public only).","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"dataStatus":{"type":"string"}}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/chains/{id}":{"get":{"tags":["chains"],"summary":"One chain with its indicators","description":"The chain and its computed lean indicators: lead time, touch time by category (VA, NVA_NEEDED, NVA), share of value-added time in the lead time, internal cost by category, revenue, margin, customer time, external dependencies, and per step the expected number of passes (probability × rework loops). Times in working minutes. 404 if the id is unknown.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"object","description":"Processing chain: actors (roles), ordered steps, rework loops. Always fictitious or public data.","required":["id","title","dataStatus","source","workingMinutesPerDay","actors","steps"],"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"dataStatus":{"type":"string","enum":["fictitious","public"]},"source":{"type":"string","description":"Where the figures come from."},"currency":{"type":"string"},"workingMinutesPerDay":{"type":"number"},"actors":{"type":"array","items":{"type":"object"}},"steps":{"type":"array","items":{"type":"object"}},"loops":{"type":"array","items":{"type":"object"}}}},"indicators":{"type":"object"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/openapi.json":{"get":{"tags":["system"],"summary":"OpenAPI 3.1 description of this API","description":"The full, machine-readable description of every route, generated from the route table. Served without authentication (holoscope principle 8) so that a FAB can learn and use the API.","security":[],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","description":"OpenAPI 3.1 document."}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Machine-readable error code (not_found, method_not_allowed, internal_error)."}}}}}}