ranke-tools

module
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2026 License: Apache-2.0

README

ranke-tools

A home for standalone tools that write to a running ranke-db instance as ordinary clients — each its own contributor, over the documented REST API. Claims are built and signed with github.com/rankegraph/ranke-go, and sent with github.com/rankegraph/ranke-db/client, the official Go client that lives beside the OpenAPI contract it is generated from.

Every tool here is an external consumer of that contract, at a pinned version, by a released binary and never a sibling path or a replace. What proves it still holds is the live test: ranke-git's own suite starts the pinned ranke-db release and drives it over HTTP, so a version that no longer answers fails a test here rather than in production.

One Go module, one subdirectory per tool.

Every tool shares one version, released as one bundle (make release) — see each tool's own manual for what that version actually does.

Tools

  • ranke-git — archives an exact git tree (or a repo's full history) into a Ranke-Graph archive, byte-exact and content-deduplicated, attaches arbitrary content (build logs, artifacts, reports) onto an archived commit, and records vulnerability scan findings — signing as a contributor ranke-client provisioned.

More tools are coming soon.

Running a dev server

server/run.sh runs the ranke-db release binary server/.rankedb-version pins, against server/config.json — an ephemeral, in-memory instance with a throwaway signing key, the same shape as ranke-db's own make dev. Storage is memory, so every launch founds its own archive on main under a throwaway founder key too. Nothing persists between runs, and it refuses to start a second instance while one is already running.

server/run.sh          # start (installs the pinned binary first, if needed)
server/stop.sh         # stop it from another shell
make upgrade           # move both pins to their latest release, and install the server

Two pins carry the graph contract into this repo: the ranke-go module every tool signs its claims with, and the ranke-db release the dev server runs. make upgrade moves both, since a contract change lands in the two together. Either pin only moves there, never implicitly on a plain run.sh — a deliberate step, analogous to ranke-db's own make upgrade, rather than the ground shifting under you between runs. Run it regularly, then make check: if ranke-tools breaks against the new pins, that's exactly what its tests are for.

Directories

Path Synopsis
package: main (ranke-git) / attach type: logic + entrypoint job: `ranke-git attach` — cites arbitrary content (a log, a report, an artifact) onto an already-archived commit limits: the commit must already be archived; this adds source claims citing it and resolves the ref naming it, never walking git further (-> DESIGN.md)
package: main (ranke-git) / attach type: logic + entrypoint job: `ranke-git attach` — cites arbitrary content (a log, a report, an artifact) onto an already-archived commit limits: the commit must already be archived; this adds source claims citing it and resolves the ref naming it, never walking git further (-> DESIGN.md)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL