Surfaces the Artifact Keeper 1.6.0 backend capabilities in the web UI (epic #599), on @artifact-keeper/sdk 1.6.0. Highlights: audit-log SIEM export, per-folder deduplicated storage usage, CVE blast-radius latent-exposure disclosure, 1.6.0 format-specific repository config, the age-gate review queue, and a browseable folder tree for RAW/Generic repositories — plus authorization hardening and a round of admin-UI fixes.
Sponsors
Thank you to our sponsors for supporting ongoing development of Artifact Keeper.
Backers
- Ash A. (@dragonpaw)
- Gabriel Rodriguez (@injectedfusion)
Become a sponsor to support the project and get your name listed here.
Thank You
- @rockdrilla — single-line and DEB822 APT source formats in the setup guide (#595)
- @nicola-preda — packages empty-state layout fix (#622)
- @cazlo — disable actions for the local self-peer (#581) and auth test-timing hardening (#583)
- @nicexe2e4 — render the Environment badge from the settings API (#556)
- @mymarche — group members now show in the admin dialog (#525)
Added
- Audit-log SIEM export — CSV and versioned JSON export of the audit log (#606).
- Per-folder deduplicated storage usage plus a repository dedup storage panel;
storage.tsmigrated to the SDK (#608, #594). - CVE blast-radius latent exposure — surface users who can access a restricted repository but have not yet downloaded the affected artifact (#607).
- 1.6.0 format-specific repository configuration in the create dialog and the settings tab (#609).
- Age-gate review queue admin page (#635).
- Browseable folder tree for RAW/Generic repositories (#630).
- APT setup offers both single-line and DEB822 source formats in the setup guide (#595).
- First-run setup hint rendered on the login page from the backend (#620).
Changed
- Consume
@artifact-keeper/sdk1.6.0 (#601); web version bumped to 1.6.0 (#598). - Maintainer-focused ARCHITECTURE.md for the frontend (#617).
- Routine dependency and CI-action bumps (Next.js, React, lucide-react, shiki, openapi-ts, and several GitHub Actions).
Fixed
- Packages empty-state layout (#622).
- Disable peer actions for the local self-peer (#581).
- Render the Environment badge from the settings API (#556).
- Group members now show in the admin dialog (#525).
Security
- Authorization hardening — plugin-config Configure gate and signing-key-owner gate (#612).
What's Changed
- fix(migration): guard job-detail report render against absent category summaries (#2455) by @brandonrc in #589
- feat(storage): repository dedup storage usage panel (#2056) by @brandonrc in #594
- chore(release): bump web version to 1.6.0 by @brandonrc in #598
- chore(deps): bump @artifact-keeper/sdk to 1.6.0 by @brandonrc in #601
- feat(audit): SIEM export (CSV + versioned JSON) for the audit log by @brandonrc in #606
- feat(security): accessible-not-downloaded latent exposure on blast radius by @brandonrc in #607
- feat(storage): per-folder deduplicated usage + migrate storage.ts to SDK by @brandonrc in #608
- feat(repositories): add 1.6.0 format-specific config to create dialog & settings tab by @brandonrc in #609
- Authz hardening: plugin-config Configure gate + signing key-owner gate decision (1.6.0) by @brandonrc in #612
- docs: add maintainer-focused ARCHITECTURE.md for the web frontend by @brandonrc in #617
- feat(login): render backend-provided first-run setup hint by @brandonrc in #620
- fix: group members not showing in admin dialog by @mymarche in #525
- fix(settings): render Environment badge from settings API by @nicexe2e4 in #556
- fix(peers): disable actions for the local self-peer by @cazlo in #581
- test(auth): wait for the captured context, not just the DOM, before changePassword by @cazlo in #583
- feat(setup): offer both single-line and DEB822 APT source formats by @rockdrilla in #595
- Fix packages empty-state layout by @nicola-preda in #622
- chore: bump @vitest/coverage-v8 from 4.1.5 to 4.1.10 by @dependabot[bot] in #496
- chore: allowlist known E2E JWT_SECRET test fixture in GitGuardian by @brandonrc in #627
- chore: bump docker/build-push-action from 7.1.0 to 7.2.0 by @dependabot[bot] in #431
- chore: bump actions/github-script from 7.0.1 to 9.0.0 by @dependabot[bot] in #433
- chore: bump github/codeql-action from 4.35.5 to 4.36.0 by @dependabot[bot] in #434
- chore: bump docker/setup-buildx-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #435
- chore: bump actions/stale from 10.2.0 to 10.3.0 by @dependabot[bot] in #436
- chore: bump ubi9/ubi-micro from 9.7 to 9.8 by @dependabot[bot] in #430
- chore: bump ubi9/ubi from 9.7 to 9.8 by @dependabot[bot] in #432
- chore: bump @tailwindcss/postcss from 4.3.0 to 4.3.3 by @dependabot[bot] in #499
- chore: bump @hookform/resolvers from 5.2.2 to 5.4.0 by @dependabot[bot] in #500
- chore: bump jsdom from 29.0.1 to 29.1.1 by @dependabot[bot] in #526
- chore: bump @aws-sdk/client-polly from 3.1045.0 to 3.1094.0 by @dependabot[bot] in #527
- chore: bump next from 16.2.6 to 16.2.10 by @dependabot[bot] in #528
- chore: bump shiki from 4.0.2 to 4.3.1 by @dependabot[bot] in #529
- chore: bump lucide-react from 1.14.0 to 1.26.0 by @dependabot[bot] in #530
- chore: bump js-yaml from 4.1.1 to 4.3.0 by @dependabot[bot] in #533
- chore: bump @hey-api/openapi-ts from 0.92.3 to 0.99.0 by @dependabot[bot] in #538
- chore: bump react-dom from 19.2.6 to 19.2.7 by @dependabot[bot] in #495
- feat(repositories): browseable folder tree for RAW/Generic repositories by @brandonrc in #630
- Add age-gate review queue admin page by @brandonrc in #635
- chore(release): web 1.6.0 prep — CHANGELOG + granular-scope token fix (1.7.0 compat) by @brandonrc in #664
New Contributors
- @mymarche made their first contribution in #525
- @nicexe2e4 made their first contribution in #556
- @cazlo made their first contribution in #581
- @rockdrilla made their first contribution in #595
Full Changelog: v1.5.3...v1.6.0