ruumica documentation

Record a delivered package

Record the package you deliver so it can never change unnoticed, and deliver a corrected state with a new freeze instant.

Recording fixes a delivered package in the database, with who recorded it. From then on ruumica refuses to record a different package under the same project, profile and freeze instant.

Before you start

  • You have exported the package and checked its warnings (Export a closeout package).
  • You know the e-mail of the person the package is recorded for. They must belong to the project’s organisation.

Steps

  1. Export with --record and --created-by:

    $ asbuilt export --project ee-demo --profile ee.default.v1 --frozen-at 2026-01-01T00:00:00Z --out delivered --allow-grid-absent 'ee.*' --allow-unverified-profile --record --created-by tech@ee-demo.invalid
    …
    manifest_sha256 d0b2a38e6d15840031a1bf30c8defc48c72994c218b2bd569fc0da82c178e3df
    
  2. Send the ZIP from that folder. Give the recipient the manifest_sha256 separately, for example in the covering e-mail, so they can check what they received (Verify a package).

Check

Recording the same package again changes nothing and prints the same manifest_sha256:

$ asbuilt export --project ee-demo --profile ee.default.v1 --frozen-at 2026-01-01T00:00:00Z --out delivered-again --allow-grid-absent 'ee.*' --allow-unverified-profile --record --created-by tech@ee-demo.invalid
…
manifest_sha256 d0b2a38e6d15840031a1bf30c8defc48c72994c218b2bd569fc0da82c178e3df

Delivering a correction

If a record that was already in the delivered package is corrected later, such as a node’s label, the package for the same freeze instant would now be different. Recording it is refused, and nothing is written. The message names the recorded package, both fingerprints and the files that differ:

Blocking FROZEN_PACKAGE_CHANGED: closeout package <id> (ee-demo, ee.default.v1, frozen at 2026-01-01T00:00:00Z) is recorded with manifest_sha256 <recorded>; this export gives <new> — differing: ee-demo.dxf, ee-demo.geojson, … Nothing was written.
export refused: blocking findings above; nothing written

To deliver the corrected state, export and record it with a new freeze instant, after the correction. The first package stays recorded as it was, so both deliveries remain provable.

What can go wrong

You see Meaning Do
no such user in the organisation of project --created-by names someone outside the project’s organisation, or no one. Use the e-mail of a user of that organisation.
FROZEN_PACKAGE_CHANGED A different package is already recorded for this freeze instant. Use a new freeze instant (above).

Last changed 2026-11-15