Repository navigation
v0.14.0
Pre-releaseThe release that made throwing away as cheap as minting.
Reserving in bulk is a way of working — numbers go to objects that are still under
review, sometimes for years — and until now abandoning such a batch meant one request per
ARK, which in practice means nobody does it. What is left behind is exactly the dead
numbers the reservation rule exists to avoid. The cheap path is bounded by what is being
lost: it is only for names nobody has ever seen.
Added
-
POST /api/delete/bulk(ark:delete), andarkhe ark deletenow takes several
ARKs or reads them from standard input. Deleting has to be as cheap as minting was:
reserving in bulk is a way of working — numbers go to objects still under review,
sometimes for years — and when a batch is abandoned, one request at a time means it is
never thrown away at all, which leaves exactly the dead numbers the reservation rule
exists to avoid.What makes it safe to be cheap is that none of those names has ever been seen. A
row that is published, or that has ever been published, fails the whole request with
the newARKHE-1504; that name goes through/api/deleteon its own, with a
reason and the ARK typed again. Nothing is deleted in part, every name is still kept
and never assigned again, and the batch is one audit event.The Python client gained
delete_bulk(), and its bulk methods are now named after
the endpoints:mint_bulk,import_bulk,update_bulk,delete_bulk(they were
*_many). A check keeps them that way — an endpoint under/bulkis called by a
method ending in_bulk, and nothing else is. The client has not been released, so
nothing depended on the old names. -
A page comparing arkhe with the other ARK software (
docs/project/comparison.md,
both languages). arklet, arklet-frick and EZID were installed, given their own
database and driven over HTTP rather than only read, and the page marks which findings
were measured that way. It records where arkhe is on its own (delegated minting
answered with 307, holding redirection, the idempotency key, reach in three tiers),
and where it followed — the publication lifecycle is EZID's status model in different
words, and?info/?jsonand suffix passthrough were in arklet-frick first.It carries a feature matrix: four tables (resolution, minting and writing, the life
of an identifier, authorisation and operation) across arkhe, arklet, arklet-frick and
EZID, with a dagger on every cell that was measured by running the software, and a
coarser table for AMS, greens, arks-service, the NOID family and N2T. A cell is left
at "—" where nothing was found and nothing was confirmed, rather than reading absence
as a ✗. Both READMEs link to it from the passage that already named arklet.
Fixed
- The claim that arklet turns a minting collision into an update is now dated. It
was true of the version arkhe started from and has since been fixed upstream; the
invariant and the data model page said it in the present tense.
Changelog in Japanese
· Full Changelog: v0.13.0...v0.14.0