mirror of
https://github.com/saltbo/zpan.git
synced 2026-08-28 15:51:29 +08:00
00f48cf355
* feat(avatars): host avatars + team logos on Cloud via SDK 2.4.0; remove public-bucket mode Host user avatars and org logos on the ZPan Cloud avatar service (zpan-cloud-sdk ^2.4.0) instead of a public S3/R2 bucket, then remove the now-dead storages.mode / public-bucket concept entirely (#456 parts 2-3). - image-upload gateway: upload/delete via SDK uploadAvatar/deleteAvatar against a bound Cloud client; validate mime (AVATAR_CONTENT_TYPES) + size (MAX_AVATAR_BYTES) before the call; map cloud error codes to 400/403/413/500; unbound instance returns 503 cloud_required (delete is a best-effort no-op). - licensing-cloud: createAvatarUploadClient builds the client with a plain-object bearer header so both the image content-type and Authorization survive hono's per-request header merge (a Headers instance would be dropped). - drop storages.mode (migration via drizzle-kit), StorageRepo.select() no longer takes a mode, remove StorageMode / Storage.mode / mode schema+audit+UI+i18n and the PUBLIC_IMAGES bucket + PUBLIC_IMAGES_URL wiring. Agent-Profile: https://agent-kanban.dev/agents/f759c704c282d88a * ci(deploy): drop dead PUBLIC_IMAGES R2 provisioning from CF deploy The Cloud avatar migration removed the PUBLIC_IMAGES binding from wrangler.toml, so the deploy workflow's R2 public-images steps are dead and must go too — otherwise every CF deploy keeps re-provisioning a public-read zpan-public-images bucket (the footgun #456 eliminates) and sets an unused PUBLIC_IMAGES_URL secret. Removes the bucket-create, managed-public-URL, and secret steps (steps.r2 was only consumed by the secret step). Also drops a stale storage-modes line from the v2.0 roadmap. Agent-Profile: https://agent-kanban.dev/agents/f759c704c282d88a --------- Co-authored-by: Alex Chen <alex-chen@mails.agent-kanban.dev>
1.7 KiB
1.7 KiB
v2.0 — Foundation
The minimum viable ZPan v2. Get the new stack running, ship it, validate it.
Major Features
File Management
- Upload files via drag-and-drop or file picker
- Direct-to-S3 upload via presigned URLs (files never touch the server)
- List files with type icons and metadata (size, date, type)
- Create folders, navigate directory tree
- Rename, move, copy files and folders
- Batch select and move / delete
- File detail view with download link
- Preview for common types (images, PDF, text, audio, video)
Authentication
- Email + password registration and login
- User roles: admin, member
- Admin can list, disable, and delete users
Storage Backends
- Add / edit / remove S3-compatible storage backends
- Cloudflare R2 as recommended default
- Support any S3-compatible provider (AWS S3, MinIO, Backblaze B2, etc.)
- S3-compatible backends for personal file storage
Infrastructure
- Recycle bin (soft delete, restore, permanent delete, empty)
- Per-user storage quotas set by admin
- Site name and description configurable via admin panel
- Environment variable based configuration
- Cloudflare Workers one-click deploy
- Docker image + docker-compose
Web UI
- Clean, modern file manager interface
- Responsive layout (desktop + mobile)
- Admin panel for storage, user, and system management
v1 Issues Resolved
- #219 Hardcoded JWT secret
- #211 GLIBC crash
- #212 ARM image
- #197 Synology Docker errors
- #172 docker-compose errors
- #159 Baota deployment
- #143 Deployment complexity
- #56 systemd errors
- #214 VPC internal endpoint
- #218 MinIO config issues
- #199 Cloudflare R2 support
- #108 Batch file operations