Artifact Keeper Web 1.1.0 ships platform parity with artifact-keeper 1.1.0 backend. This release consolidates rc.5 through rc.9 plus the post-RC work, and is the first official stable of the web frontend.
Container images:
- Docker Hub:
docker pull artifactkeeper/web:1.1.0(or:latest) - GHCR:
docker pull ghcr.io/artifact-keeper/artifact-keeper-web:1.1.0(or:latest)
Sponsors
Thank you to our backers for supporting ongoing development:
- Ash A. (@dragonpaw)
- Gabriel Rodriguez (@injectedfusion)
Become a sponsor to support the project and get your name listed here.
Thank You
- @TechEnchante for the admin permissions UI work with repository selection (#186) — first contribution
- @nikitatsym for the SSO callback auth-refresh fix (#276) — first contribution
Highlights
- Chunked upload for multi-GB artifacts with pause / resume / cancel, per-chunk retry, SHA-256 verification, and an engaged-at-100MB threshold (#218)
- Repository-scoped access tokens restrictable by format filters, name pattern, and labels (#294)
- Repository Settings and Notifications tabs for inline edit without leaving the detail view (#293, #298)
- SMTP configuration in admin settings (#299)
- Webhook payload template selector (#295)
- Quarantine status badges and banners on artifacts (#292)
- Auth source badges on the admin users list (#291)
- Account lockout UX on login failure and password expiry warning / force-change flow (#284, #286)
- Global and root error boundaries with Next.js
error.tsx/global-error.tsx(#290) - Admin permissions UI with repository selection (#186)
- Expanded Playwright E2E suite (250+ interaction tests, RBAC roles, visual regression, sharding) and Vitest unit tests with coverage gating
See CHANGELOG.md for the full categorized list.
What's Changed
- test: add Playwright tests for private repo visibility by @brandonrc in #105
- fix: API keys/access tokens not showing after creation by @brandonrc in #106
- fix: add /v2 to middleware matcher for Docker login by @brandonrc in #108
- test: improve new code coverage to meet 80% quality gate by @brandonrc in #112
- test: improve new code coverage to meet 80% quality gate (round 2) by @brandonrc in #113
- fix: resolve flaky E2E tests for security scans and access tokens by @brandonrc in #119
- fix: correct download URL pattern to match backend route by @brandonrc in #115
- test: add E2E tests for edit, toggle, and action button interactions by @brandonrc in #121
- Add compatibility release gate for tagged releases by @brandonrc in #122
- chore: add GitHub issue templates by @brandonrc in #136
- chore: remove documentation template, link to artifact-keeper-site for doc issues by @brandonrc in #137
- fix: use correct type param for staging repo filtering by @brandonrc in #138
- chore: bump tailwindcss from 4.2.0 to 4.2.1 by @dependabot[bot] in #135
- chore: bump @tailwindcss/postcss from 4.2.0 to 4.2.1 by @dependabot[bot] in #129
- chore: bump @aws-sdk/client-polly from 3.995.0 to 3.1000.0 by @dependabot[bot] in #130
- chore: bump actions/attest-build-provenance from 3 to 4 by @dependabot[bot] in #126
- chore: bump actions/upload-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in #127
- chore: bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #128
- chore: bump actions/checkout from 4 to 6 by @dependabot[bot] in #125
- chore: bump react-resizable-panels from 4.6.5 to 4.7.0 by @dependabot[bot] in #132
- chore: bump @artifact-keeper/sdk from 1.1.0-rc.2 to 1.1.0-rc.5 by @dependabot[bot] in #131
- chore: bump @types/node from 20.19.30 to 25.3.3 by @dependabot[bot] in #133
- feat: add staging repository creation to UI by @brandonrc in #142
- chore: temporarily ignore eslint v10 in dependabot by @brandonrc in #140
- test: add E2E tests for access token creation by @brandonrc in #151
- chore: bump lucide-react from 0.575.0 to 0.577.0 by @dependabot[bot] in #149
- chore: bump react-resizable-panels from 4.7.0 to 4.7.1 by @dependabot[bot] in #147
- chore: bump eslint from 9.39.2 to 9.39.3 by @dependabot[bot] in #145
- chore: bump actions/setup-node from 6.2.0 to 6.3.0 by @dependabot[bot] in #144
- chore: bump docker/login-action from 3 to 4 by @dependabot[bot] in #143
- chore: bump @aws-sdk/client-polly from 3.1000.0 to 3.1002.0 by @dependabot[bot] in #146
- chore: bump rollup from 4.57.1 to 4.59.0 by @dependabot[bot] in #117
- chore: bump framer-motion from 12.34.3 to 12.35.0 by @dependabot[bot] in #148
- chore: bump minimatch from 3.1.2 to 3.1.5 by @dependabot[bot] in #141
- feat: show git commit hash in sidebar and settings by @brandonrc in #153
- Add artifact content viewer with syntax highlighting by @brandonrc in #154
- chore: bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #155
- chore: bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #156
- chore: bump react-resizable-panels from 4.7.1 to 4.7.2 by @dependabot[bot] in #157
- chore: bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #158
- chore: bump @types/node from 25.3.3 to 25.3.5 by @dependabot[bot] in #159
- chore: bump eslint from 9.39.3 to 9.39.4 by @dependabot[bot] in #161
- chore: bump framer-motion from 12.35.0 to 12.35.1 by @dependabot[bot] in #160
- chore: bump shiki from 4.0.1 to 4.0.2 by @dependabot[bot] in #171
- chore: bump framer-motion from 12.35.1 to 12.36.0 by @dependabot[bot] in #174
- chore: bump @aws-sdk/client-polly from 3.1004.0 to 3.1009.0 by @dependabot[bot] in #176
- chore: bump @types/node from 25.3.5 to 25.5.0 by @dependabot[bot] in #179
- chore: bump undici from 7.22.0 to 7.24.1 by @dependabot[bot] in #170
- chore: bump vitest from 4.0.18 to 4.1.0 by @dependabot[bot] in #177
- chore: bump next from 16.1.6 to 16.1.7 by @dependabot[bot] in #180
- chore: bump @vitejs/plugin-react from 5.1.4 to 6.0.1 by @dependabot[bot] in #173
- feat: add upstream auth fields to remote repo create/edit dialogs by @brandonrc in #181
- Error handling, accessibility, type safety, and Server Components by @brandonrc in #169
- feat: add storage quota field to repository create and edit dialogs by @brandonrc in #184
- feat: suggest default upstream URL based on repository format by @brandonrc in #185
- fix: include member_repos in virtual repo create, fix members list field mapping by @brandonrc in #187
- staging: validate PR #186 permissions fix (SonarCloud gate) by @brandonrc in #188
- Fix permission save flow and add repository selection in admin permissions UI by @TechEnchante in #186
- chore: bump flatted from 3.3.3 to 3.4.2 by @dependabot[bot] in #183
- chore: bump jsdom from 28.1.0 to 29.0.0 by @dependabot[bot] in #175
- Fix admin token management for other users by @brandonrc in #191
- fix: add rewrite so /auth/callback reaches the SSO callback page by @brandonrc in #201
- fix: handle forced password change in E2E test setup by @brandonrc in #202
- fix(security): tighten CSP, replace Math.random, sanitize SSO errors by @brandonrc in #217
- chore: bump picomatch by @dependabot[bot] in #221
- chore: bump fast-xml-parser and @aws-sdk/xml-builder by @dependabot[bot] in #220
- chore: bump react-resizable-panels from 4.7.2 to 4.7.5 by @dependabot[bot] in #200
- chore: bump @tailwindcss/postcss from 4.2.1 to 4.2.2 by @dependabot[bot] in #198
- chore: bump framer-motion from 12.36.0 to 12.38.0 by @dependabot[bot] in #195
- chore: bump react-hook-form from 7.71.2 to 7.72.0 by @dependabot[bot] in #193
- ci(mergify): upgrade configuration to current format by @mergify[bot] in #232
- chore: bump jsdom from 29.0.0 to 29.0.1 by @dependabot[bot] in #224
- chore: bump @aws-sdk/client-polly from 3.1009.0 to 3.1019.0 by @dependabot[bot] in #225
- chore: bump @vitest/coverage-v8 from 4.1.0 to 4.1.2 by @dependabot[bot] in #226
- chore: bump lucide-react from 0.577.0 to 1.7.0 by @dependabot[bot] in #227
- fix(devops): exclude pre-release tags from Docker Hub :latest by @brandonrc in #223
- chore: bump @artifact-keeper/sdk to 1.1.0-rc.9 by @brandonrc in #231
- chore: update SDK to v1.1.0 by @brandonrc in #233
- chore: use self-hosted runners for CI by @brandonrc in #277
- chore: bump lodash from 4.17.23 to 4.18.1 by @dependabot[bot] in #234
- chore: bump defu from 6.1.4 to 6.1.6 by @dependabot[bot] in #235
- chore: bump docker/login-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #236
- chore: bump SonarSource/sonarqube-scan-action from 7.0.0 to 7.1.0 by @dependabot[bot] in #237
- chore: bump react-resizable-panels from 4.7.5 to 4.9.0 by @dependabot[bot] in #238
- chore: bump react-hook-form from 7.72.0 to 7.72.1 by @dependabot[bot] in #239
- chore: bump @aws-sdk/client-polly from 3.1019.0 to 3.1024.0 by @dependabot[bot] in #240
- chore: bump eslint-config-next from 16.1.6 to 16.2.2 by @dependabot[bot] in #243
- chore: bump @tanstack/react-query from 5.90.21 to 5.96.2 by @dependabot[bot] in #244
- chore: bump actions/upload-artifact from 7.0.0 to 7.0.1 by @dependabot[bot] in #248
- chore: bump aws-actions/configure-aws-credentials from 6.0.0 to 6.1.0 by @dependabot[bot] in #249
- chore: bump vite from 8.0.1 to 8.0.8 by @dependabot[bot] in #272
- chore: bump next from 16.1.7 to 16.2.3 by @dependabot[bot] in #247
- feat: add /api/version endpoint with SCM-derived version by @brandonrc in #278
- feat: display password policy requirements on password fields by @brandonrc in #281
- Add /api/health endpoint for container health checks by @brandonrc in #282
- ci: replace SonarCloud with native 80% coverage and 3% duplication gates by @brandonrc in #289
- fix: handle empty response bodies in apiFetch to prevent stale cache by @brandonrc in #287
- fix: show repository name in security dashboard scores table by @brandonrc in #279
- fix: show correct scan status when scan fails to execute by @brandonrc in #288
- Fix CVE findings showing GHSA instead of CVE identifier by @brandonrc in #280
- fix: increase proxy body size limit for large artifact uploads by @brandonrc in #285
- feat: add password expiry warning banner and force-change flow by @brandonrc in #286
- Show account lockout status on login failure by @brandonrc in #284
- feat: add global-error and root error boundary pages by @brandonrc in #290
- feat: show auth source badge on admin users list and edit dialog by @brandonrc in #291
- feat: show artifact quarantine status in list and detail views by @brandonrc in #292
- feat: add notification configuration tab to repository settings by @brandonrc in #293
- Add SMTP configuration to admin settings by @brandonrc in #299
- chore: bump @artifact-keeper/sdk to v1.1.4 by @brandonrc in #297
- feat: add Settings tab for greater repository edit control by @brandonrc in #298
- Display password reuse rejection message on change password by @brandonrc in #296
- feat: add payload template selector to webhook create dialog by @brandonrc in #295
- feat: add repository-scoped access token management by @brandonrc in #294
- fix: disambiguate E2E selectors for access token dialog name field by @brandonrc in #301
- fix: cap access token dialog height to prevent viewport overflow by @brandonrc in #312
- chore: bump lucide-react from 1.7.0 to 1.8.0 by @dependabot[bot] in #310
- chore: bump vitest from 4.1.2 to 4.1.4 by @dependabot[bot] in #304
- chore: bump react-resizable-panels from 4.9.0 to 4.10.0 by @dependabot[bot] in #303
- chore: bump @tanstack/react-query from 5.96.2 to 5.99.2 by @dependabot[bot] in #311
- chore: bump @aws-sdk/client-polly from 3.1024.0 to 3.1032.0 by @dependabot[bot] in #309
- chore: bump @types/node from 25.5.0 to 25.6.0 by @dependabot[bot] in #306
- chore: bump next from 16.2.3 to 16.2.4 by @dependabot[bot] in #302
- feat: chunked upload support in web UI for large artifacts (#563) by @brandonrc in #218
- fix: refresh auth context after SSO callback token exchange by @nikitatsym in #276
- fix: make code duplication gate result visible and fail-fast by @brandonrc in #313
- docs: add [1.1.0] changelog entry by @brandonrc in #314
New Contributors
- @TechEnchante made their first contribution in #186
- @mergify[bot] made their first contribution in #232
- @nikitatsym made their first contribution in #276
Full Changelog: v1.1.0-rc.8...v1.1.0