<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sisudoc-spine/org, branch main</title>
<subtitle>SiSU Spine: document publishing and search (in D) 2015</subtitle>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/'/>
<entry>
<title>spine may be run against a zipped spine-pod url</title>
<updated>2026-04-13T20:55:02+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-04-13T20:32:08+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=c28f9e360110cd797d47d57cb29d4e4498fb1e0b'/>
<id>c28f9e360110cd797d47d57cb29d4e4498fb1e0b</id>
<content type='text'>
- claude contributed src
  - processes zip from url using (system
    installed) curl for download
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- claude contributed src
  - processes zip from url using (system
    installed) curl for download
</pre>
</div>
</content>
</entry>
<entry>
<title>spine may be run against a document-markup zip pod</title>
<updated>2026-04-13T20:25:56+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-04-13T19:33:07+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=d0ac448e6425c9e4246cd529aeb11643dce8093f'/>
<id>d0ac448e6425c9e4246cd529aeb11643dce8093f</id>
<content type='text'>
- claude contributed src
  - Opens the zip with std.zip.ZipArchive (reads the whole file into
    memory)
  - Locates pod.manifest inside the archive to discover document paths
    and languages
  - Extracts markup files (.sst/.ssm/.ssi) as in-memory strings
  - Extracts images as in-memory byte arrays
  - Extracts conf/dr_document_make if present
  - Presents these to the existing pipeline as if they were read from
    the filesystem
  - Some security mitigations:
    - Zip Slip / Path Traversal: Reject entries containing `..` or
      starting with `/`; canonicalize resolved paths and verify they
      fall within extraction root
    - Zip Bomb: Check `ArchiveMember.size` before extracting; enforce
      per-file (50MB) and total size limits (500MB)
    - Entry Count: Limit number of entries (a pod should have at most
      ~100 files)
    - Path depth: limit (Maximum 10 path components).
    - Symlinks: Verify no symlinks in extracted content before
      processing (post-extraction recursive scan)
    - Filename Validation: Only allow expected characters; reject null
      bytes
    - Malformed Zips: Catch `ZipException` from `std.zip.ZipArchive`
      constructor
    - Cleanup on error
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- claude contributed src
  - Opens the zip with std.zip.ZipArchive (reads the whole file into
    memory)
  - Locates pod.manifest inside the archive to discover document paths
    and languages
  - Extracts markup files (.sst/.ssm/.ssi) as in-memory strings
  - Extracts images as in-memory byte arrays
  - Extracts conf/dr_document_make if present
  - Presents these to the existing pipeline as if they were read from
    the filesystem
  - Some security mitigations:
    - Zip Slip / Path Traversal: Reject entries containing `..` or
      starting with `/`; canonicalize resolved paths and verify they
      fall within extraction root
    - Zip Bomb: Check `ArchiveMember.size` before extracting; enforce
      per-file (50MB) and total size limits (500MB)
    - Entry Count: Limit number of entries (a pod should have at most
      ~100 files)
    - Path depth: limit (Maximum 10 path components).
    - Symlinks: Verify no symlinks in extracted content before
      processing (post-extraction recursive scan)
    - Filename Validation: Only allow expected characters; reject null
      bytes
    - Malformed Zips: Catch `ZipException` from `std.zip.ZipArchive`
      constructor
    - Cleanup on error
</pre>
</div>
</content>
</entry>
<entry>
<title>package.nix cosmetic line-breaks for build command</title>
<updated>2026-04-13T19:27:20+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-04-13T19:27:17+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=75740d5463991f41b70745182c11a564f987a456'/>
<id>75740d5463991f41b70745182c11a564f987a456</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nix keeping: nix-shell, nix-build derivation.nix</title>
<updated>2026-04-11T01:18:49+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-04-11T01:04:08+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=0abf018794e7d32e5b9f670b9458033aa38c04e1'/>
<id>0abf018794e7d32e5b9f670b9458033aa38c04e1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>flake.nix dmd build fix overlay: revert to GCC14</title>
<updated>2026-04-09T13:24:53+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-04-09T13:17:45+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=f125c5892ce48c60af00dc3114bf2aa8c2014a89'/>
<id>f125c5892ce48c60af00dc3114bf2aa8c2014a89</id>
<content type='text'>
- revert to using GCC14: (current) GCC 15
  introduced nullptr in its headers, and DMD's
  ImportC parser needs update to handle it,
  monitor and update

- (nix ldc overlay, minor comsetic)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- revert to using GCC14: (current) GCC 15
  introduced nullptr in its headers, and DMD's
  ImportC parser needs update to handle it,
  monitor and update

- (nix ldc overlay, minor comsetic)
</pre>
</div>
</content>
</entry>
<entry>
<title>nix cleanup flake.nix and shell.nix</title>
<updated>2026-04-07T04:18:26+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-04-07T04:18:26+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=5a10ef80aa457078075ef55254ffc5264e6875b3'/>
<id>5a10ef80aa457078075ef55254ffc5264e6875b3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>latex minor improvements and fixes, require testing</title>
<updated>2026-04-07T02:19:14+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-04-07T02:19:11+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=47d3a00c05728521c4af109266c073ae1b764768'/>
<id>47d3a00c05728521c4af109266c073ae1b764768</id>
<content type='text'>
- FIXES issue with .tex files and xetex finding image paths when run
  within latex/ output directory
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- FIXES issue with .tex files and xetex finding image paths when run
  within latex/ output directory
</pre>
</div>
</content>
</entry>
<entry>
<title>package housekeeping, minor</title>
<updated>2026-03-19T21:19:54+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-03-19T21:03:43+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=49c5f0f0d6c43dc6840f45554dde08d3f3fa35a9'/>
<id>49c5f0f0d6c43dc6840f45554dde08d3f3fa35a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title> nix direnv 3.1.0</title>
<updated>2026-03-05T22:36:14+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-03-05T21:42:11+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=7bf3e40d005f21881240a0b9c2140b5244eecd3b'/>
<id>7bf3e40d005f21881240a0b9c2140b5244eecd3b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ldc-1.42.0 overlay</title>
<updated>2026-03-01T21:55:25+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-03-01T21:54:26+00:00</published>
<link rel='alternate' type='text/html' href='https://www.sisudoc.org/projects/sisudoc-spine/commit/?id=6a7a3ea70aa5b442faf450f7a0f5fe0db1c2cd53'/>
<id>6a7a3ea70aa5b442faf450f7a0f5fe0db1c2cd53</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
