Open
Conversation
Merge branch 'master' into range-download-support
Pass the VERSION environment variable as a --build-arg to Docker buildx so the version embedded in the plik binary matches the Docker image tag. - release.sh: forward VERSION as --build-arg - Dockerfile: accept VERSION ARG in client and server builder stages - docker-build-pr.yaml: set VERSION alongside TAG
ci(docker): pass VERSION to Docker build system
Backend: - Add `admin` (bool) filter to GetUsers handler and metadata query - Wire `provider` query param through GetUsers handler - Use raw SQL for admin filter to avoid GORM zero-value pitfall Frontend: - Add sort controls (Date/Size, Desc/Asc) to users view - Add provider filter chips (All/local/google/ovh/oidc) - Add admin role filter (All/Admin/Non-Admin) - Display creation date on user cards with tooltip - Add "View uploads" quick link button on user cards - Fix token filter bug: use upload.token (auth token) not upload.uploadToken (per-upload management token) - Show "Never" instead of empty text for non-expiring uploads Tests: - Add TestGetUsersFilterByProvider (handler) - Add TestGetUsersFilterByAdmin (handler + metadata) - Add 5 Playwright e2e tests for filter controls, creation date, admin/provider filters, and user-to-uploads quick link Docs: - Update ARCHITECTURE.md endpoint description
Remove hardcoded "v" prefix from BuildInfo.String() and compute a richer version for PR Docker builds: <latest-tag>:pr-<number>:<short-commit> (e.g. 1.4-RC4:pr-555:6fde4f).
fix(docker): improve PR build version string
Colons in the VERSION string caused tar to interpret the archive filename as a remote host path (e.g. plik-server-1.4-RC4:pr-636:abc is parsed as host:path), breaking the build with "resolve failed".
fix(docker): use dashes instead of colons in PR build version string
When no ~/.plikrc exists and plik --login is used, the first-run setup wizard in LoadConfig() would trigger an interactive login flow (if auth is enabled/forced on the server), and then main() would trigger it again via the --login handler. Skip the wizard's interactive login when --login is already set, since main() will handle it after config is saved.
…angelog For stable builds, exclude RC releases from the version endpoint's releases list to avoid cluttering the upgrade changelog (e.g. 1.3.8 to 1.4.0 no longer shows intermediate RC changelogs). RC builds retain all releases for RC-to-RC visibility. When the client's version is not found in the releases list (e.g. RC client upgrading to stable), show the target version's changelog instead of skipping changelog display entirely. Also fix off-by-one: currentReleaseIndex > 0 to >= 0 so the first release in the list can be used as a changelog boundary.
- Add searchUsers() API function for GET /users/search - Add debounced search input (300ms, min 2 chars) to admin users view - Show dropdown with up to 5 results (login, name, email, admin badge) - Click result navigates to user's uploads - Search respects active provider/admin filters - Add 2 Playwright e2e tests (input visibility, search + select flow)
- New 'plikd fakedb' subcommand populates a SQLite DB with test data - Parameterizable: --users, --tokens, --uploads, --files, --anon-uploads - Default output: /tmp/test-plik.db (safe, no risk of overwriting prod) - Creates admin/plikplik user for login - Randomised names, emails, providers (~10% admins, 50/50 token usage) - Prints ready-to-use plikd launch command on completion
…utton - Add Total field to PagingResponse with WithTotal() builder - Add CountUsers(provider, admin) replacing unfiltered CountUsers() - Add CountUploads(user, token) method - Admin handlers attach total counts to paging responses - Frontend shows 'Showing X of Y' for users and uploads - Fix user search: clicking result filters user list instead of navigating to uploads - Add view-user button (🔍) in uploads filter bar to jump to user tab - Add e2e tests for result counts (users + uploads) - Document TOCTOU race on count queries
Add helm-docs `# --` annotations to all values in values.yaml. Create README.md.gotmpl template with installation instructions and quick-start examples. Generate README.md with a complete values reference table. Add `make helm-docs` target and integrate it as a dependency of `make helm`. Document the values reference in kubernetes.md. Add helm-docs CI job to tests.yaml that catches forgotten regeneration by checking for uncommitted changes after running make helm-docs.
fix(client): prevent double login and improve update changelog display
docs(helm): add helm-docs annotations and generate chart README
feat(admin): add user management controls, search, and fakedb tool
- Add changelog/1.4-RC5 - Update Helm chart CHANGELOG
chore(release): prepare 1.4-RC5
- Add actions/setup-go@v5 before nfpm install to ensure Go toolchain is available - Add GOPATH/bin to GITHUB_PATH so nfpm is on PATH for subsequent steps - Fixes "nfpm: command not found" in 1.4-RC5 release workflow
…t-test fix(ci): add setup-go for nfpm install and add oneshot E2E test
GPG signing fails in non-interactive CI with "Inappropriate ioctl for device" because gpg tries to prompt on a TTY. Adding --pinentry-mode loopback allows gpg to read the passphrase non-interactively.
- Add allow-loopback-pinentry to gpg-agent.conf and reload agent - Pass --passphrase "" to gpg signing commands for keys without a passphrase
Pipe empty passphrase via stdin with --passphrase-fd 0 instead of --passphrase flag which GPG rejects in batch mode.
- Configure gpg-agent with allow-preset-passphrase - Preset GPG_PASSPHRASE for all secret keygrips after import - Add GPG_PASSPHRASE secret to release workflow env
- Remove gpg-preset-passphrase (may not exist on CI runners) - Pass --pinentry-mode loopback --passphrase "$GPG_PASSPHRASE" directly - Only needs allow-loopback-pinentry in gpg-agent.conf
Add autocapitalize="off" to the login input field to prevent mobile keyboards from suggesting an uppercase first letter for usernames.
fix(webapp): disable autocapitalize on login input
Include file.Size in getParams() so the server receives the declared file size when creating uploads. This allows the server to use the declared size for quota enforcement on in-flight uploads. Regular files (via AddFileFromPath) have their size set from os.Stat. Stdin and archive files naturally stay at 0 (size unknown). Add unit tests for getParams() covering reader-based files, path-based files, and metadata propagation.
…chars fix: URL-encode filenames with special characters to prevent 404 errors
Show a green checkmark on successful file uploads and a red cross on failures for clearer visual feedback in the CLI output.
feat(client): add ✅/❌ emoji to upload progress bar
fix(client): declare file size in upload metadata
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.