Skip to content

v0.5.0

Compare
Choose a tag to compare
@kpcyrd kpcyrd released this 24 Dec 14:56
· 163 commits to main since this release
  • Add a selectors: feature to only enable routes based on criterias of the request, like ip address or certain headers
  • Add features to do partial collisions of git hashes. It uses a multi-threaded bruteforce on a commit header that isn't visibile when using git show. To take a commit from a repository, bruteforce a collision and write the new objects back into the repository use git cat-file commit HEAD | sh4d0wup tamper git-commit --stdin --collision-prefix dead --strip-header | git hash-object --stdin -t commit -w. The output is a commit hash, to create a new branch named new-main on that commit use git branch new-main dead.... It can also be used in a plot, see contrib/plot-git.yaml.
  • Add sh4d0wup req command to emulate http requests, this allows debugging a plot configuration from the cli without starting the server. -r can be used to show the whole response, -c can be used to show only the content to stdout, -cC to get the content as hexdump. When using -r it also shows the http status and the response headers, but often there aren't any explicitly set so you would only see the http status line.
  • Add -q option to reduce the default log level from INFO to WARN
  • The path_template: variable still has access to sha256, sha1 and md5, but those are now calculated lazily on first use. This way we avoid calculating unused hashes during startup.
  • Allow static routes to reference multiple artifacts: and use the rendered path_template: as the key for a lookup table. Hopefully this performs well and scales to large number of objects, routing in sh4d0wup works by walking through a list, so it becomes slow if you add to many routes (like thousands or tens of thousands). This feature allows you to use a hashmap in one of the list items.

Thanks

We'd like to thank @SantiagoTorres, @repi and @rgacogne for their support on github sponsors.