Portainer 2.45.3-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/portainer:2.45.3-CE-ubuntu24.04-r2 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/portainer:2.45.3-CE-ubuntu24.04-r2 - Index digestsha256:075e7d9c83a5aaaddccbbcbd06419d2708f07fb72541e9b39a17bfaf7df18246
- linux/amd64 digestsha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4
- Archive
ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now9105c96018f4328bbc8538fa3b82f31f390b94987e48a132b1055559cfa35dc4
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-08T12:07:22Z by KitForge release/build_trail.py
- Sections9 sections, 7 fully recorded; 2 items not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductPortainer (portainer) [MANIFEST.json]
- Release tag2.45.3-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/portainer:2.45.3-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:075e7d9c83a5aaaddccbbcbd06419d2708f07fb72541e9b39a17bfaf7df18246 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4 [ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz (bytes 490873264) [MANIFEST.json]
- Archive sha256 at publish9105c96018f4328bbc8538fa3b82f31f390b94987e48a132b1055559cfa35dc4 [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
- Upstream repositoryhttps://github.com/portainer/portainer [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream ref2.45.3 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit0fa764dc81c76bb7914d65d8e62b026d7c746899 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashfc0d8c88ba3ecea1aac3b366fe50414c75b27220c0ae5e1371033d834f8d0a93 (files 5387) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:b8f039be76dcce8f331ea4234e24a67c7707254d92bbfcc721b66674f1748886 [ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1792624796 (utc 2026-10-21T23:19:56Z) [ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.rebuild.json, inputs.source_date_epoch]
- Base images
- ref golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af · platform digest sha256:88750ccdd0f2a77fcc00a14b1a48d6409bd8ddb5d7c2dd6ec0b4a2e916daf9d9
- ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit ff3112bd2cb03ee39fd394ed644a9522854803de · dirty yes · first drive 3489
- commit 1965bb7c468fd301b7164e27ef82448632bd34f4 · dirty yes · first drive 3644
- commit 3d32cc1dd39bba72d2a0135dfa6216cfa284f64a · dirty yes · first drive 3770
- commit 3f293445cabe810db9516d3ae7007081f497c8ca · dirty yes · first drive 3787
Why this release exists
Fully recorded- Chain737 (created 2026-10-28T00:03:55Z · trigger customer_request · upstream version 2.45.3) [chains, chains #737]
- Requestbuild request #421 (rebuild) (requested at 2026-10-27T20:11:04Z · requested by kitforge-agent · version 2.45.3) [build_requests, build_requests #421]
- Reasonrevision 2.45.3-CE-ubuntu24.04-r2: same upstream version rebuilt (retarget.py --rev-bump) [build_requests, build_requests #421 request_reason]
- Supersedesreadystack/portainer:2.45.3-CE-ubuntu24.04-r1 (chain 707) [chains, chains #707]
The path through the harness
Fully recorded1 chain · 7 drives · 18 stages · 6 rewinds
Chain 737 release · ready_to_ship
Created 2026-10-28T00:03:55Z, upstream 2.45.3, build request 421 [chains, chains #737]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 459 | 2026-10-28T00:04:19Z | 39.6 | build host 2 withhold-publish | stage_failed at package_archive [drive_runs, drive_runs #459] rebuilt from a build line's log |
| 460 | 2026-10-28T00:47:34Z | 6.8 | build host 2 withhold-publish | ready_to_ship [drive_runs, drive_runs #460] rebuilt from a build line's log |
| 463 | 2026-10-28T01:26:15Z | 3.4 | build host 2 withhold-publish | ready_to_ship [drive_runs, drive_runs #463] rebuilt from a build line's log |
| 3489 | 2026-11-03T09:47:06Z | 18.6 | build host 2 withhold-publish | stage_failed at package_archive; first failed check g8; 15 ticks [drive_runs, drive_runs #3489] |
| 3644 | 2026-11-07T10:49:16Z | 16.7 | build host 2 withhold-publish | stage_failed at verdict; first failed check scout_verdict:release_check_passed; 4 ticks [drive_runs, drive_runs #3644] |
| 3770 | 2026-11-08T11:04:19Z | 25.6 | build host 2 withhold-publish | ready_to_ship at package_archive; 16 ticks [drive_runs, drive_runs #3770] |
| 3787 | 2026-11-08T12:02:23Z | — | build host 2 publish-held | not recorded [drive_runs, drive_runs #3787] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-10-28T00:04:24Z | 2026-10-28T00:04:25Z | 1 | 4
|
— |
acquire |
2026-10-28T00:04:29Z | 2026-10-28T00:04:30Z | 1 | 12
|
— |
plan |
2026-10-28T00:05:42Z | 2026-10-28T00:05:43Z | 1 | 10
|
— |
assemble_kit |
2026-10-28T00:15:12Z | 2026-11-08T11:14:16Z | 4 | 27
|
dockerfile cb063cc8c70c…build_recipe 0a552952ebac…system_pinning aa8db05a9a8a…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 4527dc258961…verify_offline_sh 3e8184ea230c…base_image_digests 93df12635857…dockerfile_offline cb063cc8c70c…first_build_digest 25e6a0bfbd04… |
remediate |
2026-10-28T00:16:25Z | 2026-11-08T11:14:21Z | 4 | 8
|
vendored_apt e3b0c44298fc…remediation_log 21c377da0eba…security_report e8062aaa8112… |
build_kit |
2026-10-28T00:22:13Z | 2026-11-08T11:20:24Z | 4 | 9
|
cosign_stamp 45d439c9da3b…locked_digest 28d141d0bf98…freeze_manifest a21e0f772652…offline_rebuild_transcript cc20a713d0e4… |
verdict |
2026-10-28T00:22:55Z | 2026-11-08T11:21:31Z | 4 | 8
|
scout_verdict 6456f85b2714… |
publish_image |
2026-10-28T00:23:29Z | 2026-11-08T11:22:03Z | 3 | 7
|
hub_readme f94df0d9050c…promotion_record bd37a1d8ca75… |
boot_instance |
2026-10-28T00:23:35Z | 2026-11-08T11:22:15Z | 6 | 3
|
instance_handle d327d663c0fd… |
sbom |
2026-10-28T00:23:47Z | 2026-11-08T11:22:27Z | 3 | 5
|
sbom_md 9660a505c247…sbom_json f5a486515758… |
schema_discovery |
2026-10-28T00:23:50Z | 2026-11-08T11:22:31Z | 3 | 7
|
schema_hash 764d84f328e3…dependency_tree 9d20b1e37a93…table_classification 8f322d8c44ce… |
admin_handbook |
2026-10-28T00:32:36Z | 2026-11-08T11:22:39Z | 3 | 7
|
api_map 6f47067753bf…admin_handbook 67a9892f8f74… |
db_handbook |
2026-10-28T00:41:50Z | 2026-11-08T11:22:50Z | 3 | 8
|
db_handbook 8ba5b583c197…seed_isolation 5d27f5c38139… |
seed_data |
2026-10-28T00:41:57Z | 2026-11-08T11:22:59Z | 3 | 6
|
seed_data_sql f02025cd56e1…seed_cases_json df05517a34a8… |
seed_validate |
2026-10-28T00:42:00Z | 2026-11-08T11:23:03Z | 3 | 3
|
seed_data_contract 145f2129b93c… |
usecase_validate |
2026-10-28T00:42:26Z | 2026-11-08T11:23:16Z | 3 | 10
|
failed_tests b2247b16f5f7…passed_tests 42184651b3fe…test_results c56e003580df…usecase_contract e2ad9ac3a4f8… |
finalize_docs |
2026-10-28T00:42:32Z | 2026-11-08T11:23:24Z | 3 | 9
|
defects_json 7580d8753821…release_notes 06d038af0e3e…api_integration_guide 8c2e3a840bbb… |
package_archive invalidated 2026-11-08T12:01:59Z |
2026-10-28T00:43:51Z | 2026-11-08T11:29:54Z | 5 | 34 (final gate PASS)
|
sale_tar a096a34f6d9c…checksums 279e3ba9041b…verify_md 999633cf38ef…rebuild_md d71a99d763e8…manifest_txt ead184da7c1a…actions_jsonl 2f0ed4c08c72…provenance_md 07b37ad6db25…assetchain_log_md e9eccaec0c0f…assetchain_log_json 96b358b94cd8… |
[stage_runs]
Rewinds
- 2026-10-28T01:18:22Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py) [stage_events, stage_events #2199] - 2026-11-03T09:45:33Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive --allow-rebuild) [stage_events, stage_events #22418] - 2026-11-03T09:47:10Z:
package_archivetoassemble_kiton strategy_changed (strategy changed (dbb0e1a10e3d -> 205ad0f773fd)) [stage_events, stage_events #22433] - 2026-11-07T10:49:19Z:
package_archivetoassemble_kiton strategy_changed (strategy changed (205ad0f773fd -> ff2969f0a1ad)) [stage_events, stage_events #24596] - 2026-11-08T11:04:23Z:
verdicttoassemble_kiton strategy_changed (strategy changed (ff2969f0a1ad -> 987e8052cb3d)) [stage_events, stage_events #25939] - 2026-11-08T12:01:59Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #26088]
Model work per stage
1 item not recordedRole: writer model. Calls up to 2026-11-08T11:29:54Z.
103 calls over 5 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | not recorded | not recorded | — |
remediate | 2 | 0 | 0 | 1 | not recorded | not recorded | — |
admin_handbook | 49 | 15 | 0 | 3 | not recorded | not recorded | — |
db_handbook | 47 | 12 | 0 | 3 | not recorded | not recorded | — |
usecase_validate | 3 | 0 | 0 | 1 | 0 | 1619 | — |
[micro_step_runs]
- Not recorded: the lesson rules shown to the writer model (lesson_recalls holds no rows for this chain: its recorder was silent from 2026-06-06 to 2026-11-02)
Review
Fully recordedRole: review model.
3 rounds, 3 counted, $7.11 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-10-28T00:55:57Z | 23 | 5 | 17 | findings to repackage [held_rounds, held_rounds #147] rebuilt from a held-review state file | $2.86 | not recorded | not recorded |
| 2 | 2026-10-28T01:30:17Z | 0 | 0 | 14 | clean to tests_broken [held_rounds, held_rounds #148] rebuilt from a held-review state file | $2.54 | not recorded | 08083047d339… |
| 3 | 2026-11-08T11:30:52Z | 0 | 0 | 4 | clean to publish [held_rounds, held_rounds #1507] | $1.71 | 3 rounds, $40.00 | a096a34f6d9c… |
Defects
Fully recorded- Ledger entries58 [defects, defects where product_slug=portainer and this tag or chain]
- Disclosed in the archive50 [docs/defects/defects.json, entries]
58 ledger entries: by severity low 44, critical 9, high 5; by status open 1, fixed-before-release 49, fixed-in-release 8.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-portainer-6f521b53ffRelease notes: Claims a tested run of BUILD_OFFLINE.sh and VERIFY_OFFLINE.sh from the archive; the cited record shows only the rebuilt-digest comparison. [defects, defects #124073] | low | open | held review (review model) | — |
RSD-portainer-2200114baaAdmin handbook: The documented command runs `tar` as the image ENTRYPOINT, but the chiselled r2 image has no tar (IMAGE_BINARIES.txt). [defects, defects #124987] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-efbfef3683Admin handbook: The documented restore runs `tar xf` with --entrypoint tar, which does not exist in the r2 image, so the restore cannot be performed (the volume has already been removed and recreated empty at this… [defects, defects #124988] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-4017310c41Admin handbook: The documented ownership repair runs --entrypoint chown, which does not exist in the r2 image (IMAGE_BINARIES.txt). [defects, defects #124989] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-35d222d71eAdmin handbook: The documented command runs `tar` as the image ENTRYPOINT, but the chiselled r2 image has no tar (IMAGE_BINARIES.txt). [defects, defects #124990] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-2ac5a17731Admin handbook: Sentence describes the tar command that does not exist in the image. [defects, defects #124991] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-d73c8be96aAdmin handbook: The documented restore runs `tar xf` with --entrypoint tar, which does not exist in the r2 image, so the restore cannot be performed (the volume has already been removed and recreated empty at this… [defects, defects #124992] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-7432bed620Admin handbook: The documented ownership repair runs --entrypoint chown, which does not exist in the r2 image (IMAGE_BINARIES.txt). [defects, defects #124993] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-05a5b894d0Admin handbook: The paragraph describes tar commands that do not run on this image. [defects, defects #124994] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-819dfd6de2Admin handbook: The documented command runs `tar` as the image ENTRYPOINT, but the chiselled r2 image has no tar (IMAGE_BINARIES.txt). [defects, defects #124995] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-6ec67d56d9Admin handbook: Describes the tar-in-image command that does not run. [defects, defects #124996] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-4c46caa7b1Admin handbook: Refers to the nonexistent tar restore command. [defects, defects #124997] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-374a37408dDatabase handbook: Describes tar commands that do not run on this image. [defects, defects #124998] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-47ef1f4c89Database handbook: The 'for example' command creates a tarball with a tar that this image does not contain; the next paragraph also says tar can be run with --entrypoint. [defects, defects #124999] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-1565e73d83Database handbook: Command fails (no tar in the image) and the sentence says the backup is taken while Portainer runs, but the command stops it. [defects, defects #125000] | critical | fixed-before-release | held review (review model) | — |
RSD-portainer-e4bbf1c0daAdmin handbook: The example is presented as avoiding host ownership, but a root tar extract keeps the archive's uid (measured 1000), leaving files Portainer (uid 999) cannot write. [defects, defects #125001] | high | fixed-before-release | held review (review model) | — |
RSD-portainer-11f113905fAdmin handbook: Misdescribes what POST /api/restore does. [defects, defects #125002] | high | fixed-before-release | held review (review model) | — |
RSD-portainer-9e6364d5b5Database handbook: Credential-change procedure is wrong: the admin cannot set another user's password through /passwd without the current password. [defects, defects #125003] | high | fixed-before-release | held review (review model) | — |
RSD-portainer-6f521e0d08Admin handbook: The example starts /bin/bash, which the image does not contain (also contradicts the handbook's own statement that it has no bash). [defects, defects #125004] | high | fixed-before-release | held review (review model) | — |
RSD-portainer-09c233c94eDatabase handbook: Tells the customer a backup utility or the reset helper can be run with docker exec in this image; neither exists there. [defects, defects #125005] | high | fixed-before-release | held review (review model) | — |
RSD-portainer-03d7947b69Admin handbook: Wrong interval. [defects, defects #125006] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-f7050b5057Admin handbook: Tells the customer to use `id`, which is not in the image. [defects, defects #125007] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-cea989ccabDatabase handbook: Tells the customer to use `id`, which is not in the image. [defects, defects #125008] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-d14882237aAdmin handbook: The example labelled as failing is a valid command; the failing form is not shown. [defects, defects #125009] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-09404d2918Admin handbook: Says the frontend is built offline with vendored pnpm/webpack; the offline build runs neither. [defects, defects #125010] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-bb13ad4205Admin handbook: This image declares 8000/tcp too. [defects, defects #125011] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-f86f9104ddAdmin handbook: Same error as the table row. [defects, defects #125012] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-1a940c9466Database handbook: Cross-section contradiction. [defects, defects #125013] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-88032a76aeDatabase handbook: Restore is not available after the timeout. [defects, defects #125014] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-61e5305acaDatabase handbook: Portainer exits with code 2 on SIGTERM; 'cleanly' misleads anyone checking the exit status or a Restart policy. [defects, defects #125015] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-3356cd9abdDatabase handbook: Contradicts the handbook's statement of the shell and coreutils. [defects, defects #125016] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-8a82269e5aRelease notes: The release notes say the unexercised check named a path that is not part of the product's API; /api/system/status is a real route (the check ran after the timeout and got 303). [defects, defects #125017] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-9a703f4b6aAdmin handbook: This image declares 8000/tcp too; the table says it declares only 9000 and 9443. [defects, defects #126346] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-44456076fcAdmin handbook: Same port error as the table row, still present after round 1. [defects, defects #126347] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-3177c16768Admin handbook: 'The layouts differ' contradicts the table on the same page: the data path is /data in both images. [defects, defects #126348] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-05cfcbd692Database handbook: The command shown at DB_HANDBOOK.md:1236 (`docker exec portainer /bin/sh`, also :1214) has no -i/-t, so it opens no shell. [defects, defects #126349] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-39197ab095Database handbook: Without -it the shell gets no terminal and exits immediately. [defects, defects #126350] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-41d0436b50Database handbook: The example under 'docker run --entrypoint <program>' is not an --entrypoint command. [defects, defects #126351] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-518284252dDatabase handbook: Uses tar as the example program although the image has no tar, so `--entrypoint tar` would fail too. [defects, defects #126352] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-8fadeedd68Admin handbook: Says restoring with `docker cp` leaves wrong ownership and the Fix tells the customer to avoid it, contradicting the documented docker cp restore, which keeps owner 999 (run end to end). [defects, defects #126353] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-649ca1c8edAdmin handbook: Recommends replacing the docker cp restore with an alpine tar stream, contradicting the verified restore. [defects, defects #126354] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-dd7cd37431Admin handbook: For a fresh host directory the quoted error is not the one Portainer prints. [defects, defects #126355] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-2c41aae25dAdmin handbook: Says the backup fails with Permission denied; the documented backup is docker cp, which is not blocked, as the same handbook says at 'Troubleshooting Backup and Restore'. [defects, defects #126356] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-3165c435f7Database handbook: Implies that with an administrator the page is only for authenticated users; it is served to anyone. [defects, defects #126357] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-a4299e3fc2Database handbook: Credentials are per user; they are not issued only by the administrator account. [defects, defects #126358] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-163c8be861Release notes: The route is part of the product's API; round-1 finding not corrected. [defects, defects #126359] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-73c997e371Admin handbook: The example /api/status response still shows the previous upstream version, contradicting the same handbook's Health check section. [defects, defects #175427] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-f5dd72060cAPI guide: Troubleshooting maps 401 to an invalid, revoked or missing key and 403 to a valid key without permission. [defects, defects #175428] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-27439b9d89API guide: Says the password-change endpoint needs a JWT for the user being changed. [defects, defects #175429] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-4925adaeb9API guide: Tells customers that only administrators can call PUT /api/users/<id> and that a standard user always gets 403. [defects, defects #175430] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-8e3fc6279dAPI guide: Says revoking a token requires a JWT. [defects, defects #175431] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-6db3a69631Admin handbook: States a reverse proxy is a production requirement. [defects, defects #175432] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-12c063d086Admin handbook: Presents the identity of the build's test container (no --group-add) as the identity inside the container. [defects, defects #175433] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-a107b1c4e9Release notes: Claims ReadyStack ran ./BUILD_OFFLINE.sh then ./VERIFY_OFFLINE.sh before publishing. [defects, defects #175434] | low | fixed-in-release | held review (review model) | 2.45.3-CE-ubuntu24.04-r2 |
RSD-portainer-1ea9d91dd6Database handbook: Round-2 finding (RSD-portainer-05cfcbd692) corrected only at :1236 (note added at :1239); :1214 still shows the command without -i/-t. [defects, defects #176106] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-3b914a3a68Database handbook: Live on the held digest: POST /api/restore on an initialised instance returned 400 {"message":"Cannot restore already initialized instance"} with a valid, a wrong and no X-Setup-Token; 403 never… [defects, defects #176107] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-ffc69c4989Database handbook: Live, 5 min 20 s after start with no administrator: / 307 -> /timeout.html; /api/system/status, /api/users/admin/check, /api/users, /api/auth, /api/endpoints, /api/users/admin/init and /api/restore… [defects, defects #176108] | low | fixed-before-release | held review (review model) | — |
RSD-portainer-31af267da2API guide: validation/test-results.json portainer_root_get: GET / expect 200, actual 200, passed. [defects, defects #176109] | low | fixed-before-release | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4 · published digest sha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 167) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, trademark_shipped, vex_shipped) [g8_result.json, result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-08T12:02:45Z · failing Docker Scout counts 7 packages with copyleft licences (GPL, LGPL, MPL), all of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-08T12:02:34Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3754330591 · transparency-log entry
- log index 3754331146 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3754875165 · transparency-log entry · integrated 2026-11-08T12:06:11Z) [ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:075e7d9c83a5aaaddccbbcbd06419d2708f07fb72541e9b39a17bfaf7df18246 · state attached · log index 3754875308 · transparency-log entry
- kind sbom · digest sha256:075e7d9c83a5aaaddccbbcbd06419d2708f07fb72541e9b39a17bfaf7df18246 · state attached · log index 3754875387 · transparency-log entry
- kind vsa · digest sha256:075e7d9c83a5aaaddccbbcbd06419d2708f07fb72541e9b39a17bfaf7df18246 · state attached · log index 3754875442 · transparency-log entry
- kind provenance · digest sha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4 · state attached · log index 3754875556 · transparency-log entry
- kind sbom · digest sha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4 · state attached · log index 3754875667 · transparency-log entry
- kind vsa · digest sha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4 · state attached · log index 3754875768 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/portainer/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-10-28T00:55:59Z on build host 4 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:e7e97c42d107e46c0aee285bb137ccc450142cbe6d56d543790cd4cc0aaf88eb [clean-room rebuild ledger, runs[500]] - 2026-11-08T11:30:56Z on build host 2 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:a490310f9ea1e569bdbc7198b726c81ac3c186580a069f8ebf85a6bba1d28ad4 [clean-room rebuild ledger, runs[643]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-08T11:22:03Z [stage_runs, stage_runs chain 737 stage publish_image]
- Archive manifests written2026-11-08T12:04:22Z [PUBLISH_MANIFEST.json, published_at]
- Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)
Packages and CPU level
Fully recorded- x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 57 · probed 2026-11-07T11:02:07Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-08T12:07:22Z generated: by KitForge release/build_trail.py · generator commit 14ac19f4178268c2dbfa7e7cae4be76d466ea445
- 2026-11-08T12:08:42Z publication: promoted at 2026-11-08T12:07:53Z · promoted digest sha256:075e7d9c83a5aaaddccbbcbd06419d2708f07fb72541e9b39a17bfaf7df18246 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 366 · checklist status complete · checklist at 2026-11-08T12:08:42Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
Records
24 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/portainer/2.45.3-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/portainer/2.45.3-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/portainer/2.45.3-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/portainer/2.45.3-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/portainer/2.45.3-CE-ubuntu24.04-r2/), as staged for publishing | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 421 |
chains | sadb, ReadyStack's engine database (not published) | 737 |
defects | sadb, ReadyStack's engine database (not published) | portainer 2.45.3-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 737 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 737 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 737 |
release_images | sadb, ReadyStack's engine database (not published) | portainer 2.45.3-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 737 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 737 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
g8_result.json | the chain's workspace on the controller (not published) | — |