ifcurl/ifcurl
Bruno Postle 63a6b2bfa6 documents_api: implement OpenCDE Documents API 1.0
POST /documents/1.0/document-versions resolves document_ids (base64url
encoding of owner/repo/path) to versioned download URLs. Exposes only
git tags + the current HEAD commit — mirrors CDE conventions where only
released versions are visible, while still surfacing the WIP state.

version_number is the tag name for releases and short SHA for HEAD.
Tagged SHAs are deduplicated so HEAD at a tag doesn't create a duplicate.
Download URLs point at Forgejo's existing raw/commit endpoint.

Auth forwarded verbatim. No Go code, no Forgejo recompilation.
Proxy at /documents/ on the Forgejo hostname.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 20:27:25 +01:00
..
__init__.py Preview service and improved CLI help 2026-04-15 21:46:50 +01:00
__main__.py Split service into ifcurl-api + ifcurl-render for RCE isolation 2026-04-25 10:00:33 +01:00
auth.py service: fix preview pipeline for local Forgejo deployment 2026-04-25 23:10:35 +01:00
bcf.py bcf_api: implement BCF 3.0 REST API as Python routes in the preview service 2026-04-29 19:38:34 +01:00
bcf_api.py bcf_api: implement BCF 3.0 REST API as Python routes in the preview service 2026-04-29 19:38:34 +01:00
diff.py style: ruff --fix + black across ifcurl/ and tests/ 2026-04-25 08:34:56 +01:00
documents_api.py documents_api: implement OpenCDE Documents API 1.0 2026-04-29 20:27:25 +01:00
git.py render: fix render_diff — tuple unpack, IfcProduct filter, diff-area zoom 2026-04-25 23:54:35 +01:00
py.typed Python core library and ifcurl CLI 2026-04-15 21:24:35 +01:00
render.py render: fix render_diff — tuple unpack, IfcProduct filter, diff-area zoom 2026-04-25 23:54:35 +01:00
render_service.py Split service into ifcurl-api + ifcurl-render for RCE isolation 2026-04-25 10:00:33 +01:00
sandbox.py style: ruff --fix + black across ifcurl/ and tests/ 2026-04-25 08:34:56 +01:00
service.py documents_api: implement OpenCDE Documents API 1.0 2026-04-29 20:27:25 +01:00
url.py bcf: add bcf_viewpoint_to_ifc_url() and IfcUrl.to_string() 2026-04-29 19:04:04 +01:00