procurement-ingest/lambdas/api/docs.html
Adam Moussa 24c89b43e5
Some checks are pending
Deploy / deploy (push) Waiting to run
feat(api): swap /docs from Swagger UI to Redoc (vendored offline) (#129)
Redoc 2.5.3 standalone bundle (MIT) replaces the three swagger-ui-dist
assets: one ~1.05MB JS file instead of ~1.8MB of JS+CSS+preset, and the
layout traps (StandaloneLayout/BaseLayout) go away. Redoc is read-only by
design, which matches the existing posture: try-it-out was already
disabled since data routes need SigV4 (Postman for live calls).

Unchanged: single token-gated response, offline vendoring (no CDN),
per-request server-URL injection, script-breakout guards, cached shell
with per-request spec splice. Bundle self-containment verified: the
search worker is an inlined Blob, and the only new Worker(filename) path
is Prism's async mode, which Redoc never invokes.

Verified via headless-Chrome render of the real handler output: all
routes, the OpenAPI 3.1 webhooks section, and planned-route markers
render; no placeholder leakage.
2026-07-24 12:00:22 -04:00

41 lines
1.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Procurement Ingest API</title>
<!--
Redoc (redoc.standalone.js, MIT), vendored offline and inlined server-side
so /docs is a single token-gated request with no CDN or follow-up asset
fetch. The bundle and the OpenAPI spec are substituted for the placeholders
below by lambdas/api/handler.py::_load_docs_html. Redoc is read-only by
design -- there is no try-it-out to disable; live calls go through Postman
(Authorization type "AWS Signature") since data routes require SigV4.
The theme pins a system font stack: Redoc defaults to Roboto, which is not
vendored and must not be fetched from Google Fonts.
-->
<style>
html, body { margin: 0; padding: 0; }
</style>
</head>
<body>
<div id="redoc"></div>
<script>__REDOC_JS__</script>
<script>
Redoc.init(
__OPENAPI_SPEC_JSON__,
{
theme: {
typography: {
fontFamily: 'system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif',
headings: {
fontFamily: 'system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif'
}
}
}
},
document.getElementById("redoc")
);
</script>
</body>
</html>