Files
zpan/docs/roadmap/v2.0.md
T
agent-kanban-local[bot] 00f48cf355 feat(avatars): host avatars + team logos on Cloud via SDK 2.4.0; remove public-bucket mode (#467)
* 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>
2026-06-20 00:16:07 -04:00

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